Skip to content
Agentmart
Submit a tool

pjecalc-agent-architect

Skill de arquitetura e refatoração do repositório pjecalc-agente — o agente de automação remota do PJE-Calc Cidadão.

Skill by bragabarreto

IndexedMIT★ 9
Write a review

Chalk Labs

Need help deploying pjecalc-agent-architect?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/bragabarreto-pjecalc-agent-architect

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Skill de arquitetura e refatoração do repositório pjecalc-agente — o agente de automação remota do PJE-Calc Cidadão. Use esta skill SEMPRE que o problema envolver: reestruturar o código do agente, eliminar código morto ou duplicado, resolver conflitos entre múltiplas estratégias de automação (automation.py vs playwright_pjecalc.py vs extensão), migrar de arquivos JSON para banco de dados, desacoplar o monólito Flask+Tomcat em microsserviços, otimizar o Dockerfile ou inicialização do Tomcat, planejar filas assíncronas (Celery/Redis), resolver problemas de escalabilidade no Railway, ou qualquer decisão arquitetural sobre como o agente deve ser organizado. Também use quando precisar entender a estrutura atual do repositório, mapear dependências entre módulos, ou planejar uma refatoração segura sem quebrar funcionalidades existentes. Se a conversa mencionar "refatorar o agente", "limpar o código", "arquitetura do pjecalc-agente", "microsserviços", "desacoplar", "código morto", "rotas órfãs", ou "escalabilidade do Railway", esta é a skill certa.

Use cases: agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/pjecalc-agent-architect

What's inside

Skill name
pjecalc-agent-architect
Description
Skill de arquitetura e refatoração do repositório pjecalc-agente — o agente de automação remota do PJE-Calc Cidadão. Use esta skill SEMPRE que o problema envolver: reestruturar o código do agente, eliminar código morto ou duplicado, resolver conflitos entre múltiplas estratégias de automação (automation.py vs playwright_pjecalc.py vs extensão), migrar de arquivos JSON para banco de dados, desacoplar o monólito Flask+Tomcat em microsserviços, otimizar o Dockerfile ou inicialização do Tomcat, planejar filas assíncronas (Celery/Redis), resolver problemas de escalabilidade no Railway, ou qualquer decisão arquitetural sobre como o agente deve ser organizado. Também use quando precisar entender a estrutura atual do repositório, mapear dependências entre módulos, ou planejar uma refatoração segura sem quebrar funcionalidades existentes. Se a conversa mencionar "refatorar o agente", "limpar o código", "arquitetura do pjecalc-agente", "microsserviços", "desacoplar", "código morto", "rotas órfãs", ou "escalabilidade do Railway", esta é a skill certa.
License
MIT
Instructions
326 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • description: longer than 1024 characters
  • files: referenced but missing: scripts/find_dead_code.py, scripts/health_check.py, scripts/split_webapp.py

Files (5)

  • SKILL.md
  • find_dead_code.py
  • health_check.py
  • pjecalc-agent-architect.skill
  • split_webapp.py

SKILL.md (first lines)

# PJE-Calc Agent Architect

Skill de arquitetura e refatoração para o repositório `pjecalc-agente`. O objetivo é transformar
o agente atual — funcional mas fragmentado — em uma base de código limpa, testável e escalável.

## Contexto: por que esta skill existe

O pjecalc-agente cresceu organicamente enquanto resolvia problemas difíceis (GUI Java headless,
JSF dinâmico, extração NLP de sentenças). O resultado é um código que funciona em partes, mas
sofre de fragmentação arquitetural: três estratégias de automação concorrentes, código morto
acumulado, acoplamento forte entre orquestração e automação, e dificuldade de escalar.

Esta skill NÃO trata de como preencher o PJE-Calc (use `pjecalc-preenchimento`), nem de como
debugar o Tomcat (use `pjecalc-agent-debugger`), nem de como escrever seletores JSF (use
`playwright-jsf-automator`). Esta skill trata de **como o código do agente deve ser organizado**.

---

## Mapa do repositório atual

```
pjecalc-agente/
├── webapp.py                  (1199 linhas) — FastAPI: rotas, SSE, lógica de negócio
├── config.py                  (113 linhas)  — Configurações globais + auto-detecção CLOUD_MODE
├── database.py                (525 linhas)  — SQLAlchemy: Processo, Calculo, InteracaoHITL
├── main.py                    (?)           — CLI standalone (modo local)
├── iniciarPjeCalc.sh          (207 linhas)  — Startup: Xvfb + xdotool + Bootstrap/Lancador
├── docker-entrypoint.sh       (54 linhas)   — Container: PJE-Calc bg → uvicorn imediato
├── Dockerfile                 (124 linhas)  — Multi-stage: agent-builder + imagem final
├── modules/
│   ├── ingestion.py           (302 linhas)  — PDF/DOCX → texto (pdfplumber + OCR)
│   ├── extraction.py          (2022 linhas) — Texto → JSON via Claude/Gemini API
│   ├── classification.py      (497 linhas)  — Verbas → mapeamento PJE-Calc
│   ├── parametrizacao.py      (328 linhas)  — JSON → instruções módulo a módulo
│   ├── preview.py             (422 linhas)  — Prévia editável (web)
│   ├── playwright_pjecalc.py  (2605 linhas) — ⭐ Automação principal (Playwright + JSF)
│   ├── automation.py          (729 linhas)  — ⚠️ Automação legada (pyautogui/playwright dual)
│   ├── playwright_script_builder.py (891 linhas) — ⚠️ Gera script standalone para download
│   ├── pjc_generator.py       (1083 linhas) — Gerador nativo de .PJC (ZIP+XML)
│   ├── human_loop.py          (465 linhas)  — HITL: pausa para validação humana
│   ├── document_collector.py  (467 linhas)  — Coleta de documentos
│   └── export.py              (301 linhas)  — Exportação de resultados
├── extension/                 — ⚠️ Extensão Chrome (terceira via de automação)
├── templates/                 — Jinja2: previa.html, instrucoes.html, etc.
├── tests/                     — Testes (cobertura limitada)
├── pjecalc-dist/              — PJE-Calc Cidadão empacotado (91MB, sem JRE)
└── dialog-suppressor/         — Java Agent para silenciar JOptionPane
```

### Legenda de status
- ⭐ = código principal, manter e melhorar
- ⚠️ = código problemático, candidato a remoção ou consolidação

---

## Diagnóstico: os 5 problemas estruturais

### 1. Três estratégias de automação concorrentes

O repositório tem três implementações diferentes tentando fazer a mesma coisa — preencher o
PJE-Calc. Cada uma usa seletores diferentes, fluxos diferentes, e até caminhos de navegação
diferentes ("Novo" vs "Cálculo Externo"):

| Implementação | Arquivo | Navegação | Resiliência |
|---|---|---|---|
| Playwright SSE (principal) | `playwright_pjecalc.py` | "Novo" ✓ | Alta (AJAX monitor, retry, crash recovery) |
| Script standalone | `playwright_script_builder.py` | "Cálculo Externo" ✗ | Baixa (seletores fixos, pausas manuais) |
| Extensão Chrome | `extension/content.js` | "Cálculo Externo" ✗ | Baixa (eventos DOM manuais) |

Além disso, `automation.py` é uma abstração legada que tenta unificar pyautogui e playwright,
mas na prática não é usada pelo fluxo principal.

**Ação**: Consolidar tudo em `playwright_pjecalc.py`. Remover `automation.py`,
`playwright_script_builder.py` e `extension/`. Se o usuário precisa de um script local,
gerar a partir do mesmo código-fonte, não de um builder separado.

### 2. webapp.py monolítico (1199 linhas)

O `webapp.py` concentra:
- Rotas HTTP (API + páginas)
- Lógica de processamento (background tasks)
- SSE streaming da automação
- Logging em buffer in-memory
- Gerenciamento de sessões em processamento

**Ação**: Extrair em módulos:
```
webapp.py          → Apenas definição de rotas e middleware
routes/
├── pages.py       → Rotas de páginas HTML (GET)
├── api.py         → API REST (POST/PATCH/DELETE)
├── diagnostics.py → Endpoints de diagnóstico (/api/logs/*, /api/ps, etc.)
└── sse.py         → Server-Sent Events para automação
services/
├── processing.py  → Background tasks (extração + classificação)
└── automation.py  → Orquestração da automação Playwright
```

### 3. Acoplamento Flask ↔ Tomcat no mesmo container

O container Docker empacota tudo junto: Python Agent (FastAPI), PJE-Calc (Tomcat Java), Xvfb,
Playwright Chromium. Isso cria problemas:

- Impossível escalar extração NLP independentemente da automação
- O Tomcat demora 2-5 minutos para subir, bloqueando qualquer automação
- Falha no Tomcat = falha de todo o serviço
- Imagem Docker pesada (~2GB) com Java + Python + Chromium + Xvfb

**Ação (curto prazo)**: Manter o monólito, mas desacoplar internamente. O webapp deve
funcionar 100% sem o Tomcat (extração, prévia, edição). A automação é uma feature
opcional que só roda se Tomcat estiver disponível.

**Ação (médio prazo)**: Separar em dois serviços:
```
┌─────────────────────────┐     ┌──────────────────────────┐
│ Serviço de Orquestração │     │ Worker de Automação      │
│ (Flask + LLM + Prévia)  │────▶│ (Playwright + PJE-Calc)  │
│ Leve, escala horizontal │     │ Pesado, pool fixo        │
│ Sem Java, sem Xvfb      │     │ Java + Xvfb + Chromium   │

From bragabarreto/pjecalc-agente, MIT.

Signals

Stars
9
Forks
4
Open issues
0
Last commit (this folder)
Apr 2, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from bragabarreto

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get pjecalc-agent-architect running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying pjecalc-agent-architect?

CallGet help
Cite this page

pjecalc-agent-architect skill. Agent Mart. https://agentmart.dev/skills/bragabarreto-pjecalc-agent-architect (last updated 2026-10-24)