Skip to content
Agentmart
Submit a tool

pjecalc-agent-debugger

Skill by bragabarreto

IndexedMIT★ 9
Write a review

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-debugger

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

The publisher has not written a description yet.

Use cases: agent-building

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

Permissions: not checked yet.

What's inside

Skill name
pjecalc-agent-debugger
Description
None
License
MIT
Instructions
421 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Agent Skills spec issues

  • missing YAML frontmatter
  • name: missing
  • description: missing
  • files: referenced but missing: references/tomcat-bootstrap.md, references/joptionpane-patch.md

Files (2)

  • SKILL.md
  • pjecalc-agent-debugger.skill

SKILL.md (first lines)

# PJE-Calc Agent Debugger

**Premissa**: Xvfb+xdotool, Bootstrap direto, Java agent e patch de bytecode **já foram tentados**.
Esta skill investiga por que falharam e aponta o próximo passo real.

O log para em `[TRT8] Configurando variaveis basicas.` — isso significa que o bloqueio ocorre
*dentro* do Lancador, antes de qualquer inicialização do Tomcat.

---

## Arquitetura do agente (contexto para diagnóstico)

```
PDF/DOCX → ingestion.py → extraction.py (Claude API) → classification.py
→ prévia web (FastAPI + SQLite/PostgreSQL)
→ Playwright headless → PJE-Calc Cidadão (Tomcat :9257, JSF/RichFaces)
→ .PJC exportado
```

**Fases da automação** (`modules/playwright_pjecalc.py`):
1. `fase_dados_processo` — preenche Parâmetros do Cálculo + aba Parâmetros
2. `fase_parametros_gerais` — Data Inicial/Final de apuração, carga horária
3. `fase_historico_salarial` — períodos salariais (btnNovoHistorico, btnGerarOcorrencias)
4. `fase_verbas` — modo Expresso (checkboxes predefinidas) + Manual (personalizadas)
5. `fase_fgts` — alíquota, multa, saldos depositados
6. `fase_contribuicao_social` — INSS empregado/empregador
7. `fase_irpf` — tributação, deduções
8. `fase_honorarios` — advocatícios + periciais
9. `_clicar_liquidar` → gera .PJC

---

## Endpoints de diagnóstico (Railway)

| Endpoint | O que mostra |
|---|---|
| `GET /api/logs/python` | Últimos 300 logs do processo uvicorn |
| `GET /api/logs/java` | stdout+stderr do processo Java (Lancador + Tomcat) |
| `GET /api/logs/tomcat` | catalina.out do Tomcat embarcado |
| `GET /api/screenshot` | Screenshot do display Xvfb :99 |
| `GET /api/ps` | Processos em execução no container |
| `GET /api/verificar_pjecalc` | Testa se localhost:9257 responde |
| `GET /api/executar/{sessao_id}` | SSE stream com log linha a linha |

---

## Passo 1 — Coletar evidências antes de qualquer ação

Sem evidências, qualquer mudança é chute. Sempre começar aqui:

```bash
curl https://<app>.railway.app/api/logs/java     # stdout+stderr do Java
curl https://<app>.railway.app/api/logs/tomcat   # catalina.out
curl https://<app>.railway.app/api/ps            # processos em execução
curl https://<app>.railway.app/api/screenshot    # PNG do Xvfb :99 agora
curl https://<app>.railway.app/api/verificar_pjecalc  # :9257 responde?
```

**O que procurar no `/api/logs/java`:**

| Sintoma no log | O que está acontecendo | Seção |
|---|---|---|
| Para em `Configurando variaveis basicas.` sem mais nada | Thread bloqueado — não é só JOptionPane | §2 |
| `java.awt.HeadlessException` aparece | `-Djava.awt.headless=true` não chegou ao processo | §3 |
| `ClassNotFoundException: org.apache.catalina...` | Bootstrap falhou — classpath incompleto | §4 |
| OOM ou stack overflow | Memória insuficiente no Railway | §5 |
| Log totalmente vazio | O processo Java nem iniciou | §6 |
| Para em linha diferente (avançou!) | Nova barreira descoberta | §7 |

---

## §2 — JOptionPane silenciado mas o log ainda trava no mesmo lugar

Se o agent ou patch está ativo mas o log continua parando em `Configurando variaveis basicas.`,
o bloqueio **não é o JOptionPane**. Há outra causa.

### 2.1 Forçar um thread dump para ver o bloqueio real

```bash
# Enviar SIGQUIT ao processo Java — força dump de todas as threads para stdout
railway run bash -c "
  PID=\$(pgrep -f pjecalc.jar | head -1)
  echo \"PID do Java: \$PID\"
  kill -3 \$PID
  sleep 3
"
# Depois acessar /api/logs/java para ler o thread dump
```

O thread dump mostra o stack trace exato de onde o main thread está bloqueado:

```
# Exemplo — bloqueio em dialog diferente de JOptionPane:
"main" #1 prio=5 os_prio=0 tid=... in Object.wait()
   at javax.swing.JDialog.show(JDialog.java:...)
   at com.trt8.pjecalc.Lancador.mostrarSplash(Lancador.java:203)  ← bloqueio real

# Exemplo — bloqueio em leitura de arquivo:
"main" #1 prio=5 os_prio=0 tid=... runnable
   at java.io.FileInputStream.readBytes(Native Method)
   at com.trt8.pjecalc.Lancador.lerConfiguracao(Lancador.java:89)  ← arquivo inexistente

# Exemplo — bloqueio em conexão de rede:
"main" #1 prio=5 os_prio=0 tid=... in Object.wait()
   at java.net.Socket.connect(Socket.java:...)
   at com.trt8.pjecalc.Lancador.validarLicenca(Lancador.java:156)  ← servidor de licença
```

### 2.2 Outros componentes Swing que bloqueiam além de JOptionPane

```java
// Qualquer um desses cria uma janela e bloqueia sem Xvfb adequado:
new JFrame(...)          // janela principal
new JDialog(...)         // dialog genérico
new JWindow(...)         // janela sem borda
splash.setVisible(true)  // splash screen
```

Se o thread dump mostrar qualquer um desses, o Java agent precisa interceptá-los também:

From bragabarreto/pjecalc-agente, MIT.

Signals

Stars
9
Forks
4
Open issues
0
Last commit (this folder)
May 8, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

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

More from bragabarreto

Cite this page

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