oxe-cc 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.cursor/commands/oxe-checkpoint.md +9 -0
  2. package/.cursor/commands/oxe-compact.md +9 -0
  3. package/.cursor/commands/oxe-debug.md +9 -0
  4. package/.cursor/commands/oxe-forensics.md +9 -0
  5. package/.cursor/commands/oxe-plan-agent.md +9 -0
  6. package/.cursor/commands/oxe-research.md +9 -0
  7. package/.cursor/commands/oxe-route.md +9 -0
  8. package/.cursor/commands/oxe-ui-review.md +9 -0
  9. package/.cursor/commands/oxe-ui-spec.md +9 -0
  10. package/.cursor/commands/oxe-validate-gaps.md +9 -0
  11. package/.github/copilot-instructions.md +14 -4
  12. package/.github/prompts/oxe-checkpoint.prompt.md +12 -0
  13. package/.github/prompts/oxe-compact.prompt.md +11 -0
  14. package/.github/prompts/oxe-debug.prompt.md +12 -0
  15. package/.github/prompts/oxe-forensics.prompt.md +12 -0
  16. package/.github/prompts/oxe-plan-agent.prompt.md +10 -0
  17. package/.github/prompts/oxe-research.prompt.md +12 -0
  18. package/.github/prompts/oxe-route.prompt.md +12 -0
  19. package/.github/prompts/oxe-ui-review.prompt.md +12 -0
  20. package/.github/prompts/oxe-ui-spec.prompt.md +12 -0
  21. package/.github/prompts/oxe-validate-gaps.prompt.md +12 -0
  22. package/AGENTS.md +1 -1
  23. package/README.md +108 -9
  24. package/bin/lib/oxe-project-health.cjs +33 -0
  25. package/bin/oxe-cc.js +87 -15
  26. package/commands/oxe/checkpoint.md +16 -0
  27. package/commands/oxe/compact.md +10 -0
  28. package/commands/oxe/debug.md +16 -0
  29. package/commands/oxe/forensics.md +16 -0
  30. package/commands/oxe/plan-agent.md +15 -0
  31. package/commands/oxe/research.md +16 -0
  32. package/commands/oxe/route.md +11 -0
  33. package/commands/oxe/ui-review.md +16 -0
  34. package/commands/oxe/ui-spec.md +16 -0
  35. package/commands/oxe/validate-gaps.md +16 -0
  36. package/lib/sdk/README.md +12 -0
  37. package/lib/sdk/index.cjs +1 -0
  38. package/lib/sdk/index.d.ts +34 -1
  39. package/oxe/schemas/plan-agents.schema.json +111 -0
  40. package/oxe/templates/CHECKPOINT.template.md +37 -0
  41. package/oxe/templates/CODEBASE-DELTA.template.md +33 -0
  42. package/oxe/templates/CONFIG.md +1 -0
  43. package/oxe/templates/GIT_HOOKS_OXE.md +52 -0
  44. package/oxe/templates/PLAN.template.md +12 -0
  45. package/oxe/templates/RESEARCH.template.md +50 -0
  46. package/oxe/templates/RESUME.template.md +49 -0
  47. package/oxe/templates/SPEC.template.md +13 -0
  48. package/oxe/templates/STATE.md +14 -0
  49. package/oxe/templates/WORKFLOW_AUTHORING.md +3 -1
  50. package/oxe/templates/config.template.json +1 -0
  51. package/oxe/templates/plan-agent-messages-README.template.md +9 -0
  52. package/oxe/templates/plan-agents.template.json +28 -0
  53. package/oxe/workflows/checkpoint.md +32 -0
  54. package/oxe/workflows/compact.md +44 -0
  55. package/oxe/workflows/debug.md +31 -0
  56. package/oxe/workflows/discuss.md +8 -5
  57. package/oxe/workflows/execute.md +10 -0
  58. package/oxe/workflows/forensics.md +42 -0
  59. package/oxe/workflows/help.md +75 -9
  60. package/oxe/workflows/next.md +3 -2
  61. package/oxe/workflows/plan-agent.md +93 -0
  62. package/oxe/workflows/plan.md +27 -5
  63. package/oxe/workflows/quick.md +16 -2
  64. package/oxe/workflows/references/plan-agent-chat-protocol.md +85 -0
  65. package/oxe/workflows/research.md +35 -0
  66. package/oxe/workflows/route.md +27 -0
  67. package/oxe/workflows/scan.md +2 -0
  68. package/oxe/workflows/spec.md +3 -1
  69. package/oxe/workflows/ui-review.md +26 -0
  70. package/oxe/workflows/ui-spec.md +26 -0
  71. package/oxe/workflows/update.md +1 -1
  72. package/oxe/workflows/validate-gaps.md +34 -0
  73. package/oxe/workflows/verify.md +5 -0
  74. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Checkpoint nomeado (.oxe/checkpoints/ + índice)"
3
+ ---
4
+
5
+ Executa o workflow **OXE checkpoint** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/checkpoint.md`
8
+
9
+ O **primeiro** argumento deve ser o **slug** (ex. `pre-migracao-api`); o resto é nota livre.
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — refresh .oxe/codebase vs repo + CODEBASE-DELTA + RESUME"
3
+ ---
4
+
5
+ Executa o workflow **OXE compact** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/compact.md`
8
+
9
+ Atualiza os **sete** mapas em **`.oxe/codebase/`** (incremental ou bootstrap como scan), gera **`.oxe/CODEBASE-DELTA.md`** e **`.oxe/RESUME.md`**. Texto extra do utilizador: foco ou decisões/bloqueios a incluir no RESUME.
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Debug técnico durante execute (DEBUG.md, hipótese/evidência)"
3
+ ---
4
+
5
+ Executa o workflow **OXE debug** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/debug.md`
8
+
9
+ Usa o texto adicional desta mensagem como sintoma, **Tn** do PLAN se souber, ou saída de erro.
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Diagnóstico pós-falha (FORENSICS.md + reingresso scan/plan/execute)"
3
+ ---
4
+
5
+ Executa o workflow **OXE forensics** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/forensics.md`
8
+
9
+ Usa o texto adicional desta mensagem como contexto do sintoma (falha de verify, doctor, estado incoerente).
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — PLAN.md + plan-agents.json (plano orientado a agentes / ondas)"
3
+ ---
4
+
5
+ Executa o workflow **OXE plan-agent**. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/plan-agent.md` (na raiz do repositório em contexto)
8
+
9
+ Se o utilizador pedir replanejamento, trata como **`--replan`** conforme o workflow.
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Pesquisa exploratória (.oxe/research/ + índice RESEARCH.md)"
3
+ ---
4
+
5
+ Executa o workflow **OXE research** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/research.md`
8
+
9
+ Usa o texto adicional desta mensagem como âmbito (paths, perguntas, spike, mapa de sistema, engenharia reversa ou modernização).
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Router: um pedido em linguagem natural → um comando/workflow"
3
+ ---
4
+
5
+ Executa o workflow **OXE route** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/route.md`
8
+
9
+ Usa o texto adicional desta mensagem como intenção a classificar (tabela Router em `help.md`).
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Auditoria UI (UI-REVIEW.md) face ao UI-SPEC"
3
+ ---
4
+
5
+ Executa o workflow **OXE ui-review** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/ui-review.md`
8
+
9
+ Usa o texto adicional desta mensagem como ficheiros ou tarefas a rever.
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Contrato UI (UI-SPEC.md) a partir da SPEC"
3
+ ---
4
+
5
+ Executa o workflow **OXE ui-spec** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/ui-spec.md`
8
+
9
+ Usa o texto adicional desta mensagem como foco de ecrãs ou componentes, se houver.
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OXE — Gaps de cobertura pós-verify (VALIDATION-GAPS.md)"
3
+ ---
4
+
5
+ Executa o workflow **OXE validate-gaps** no repositório atual. Lê e aplica **integralmente**:
6
+
7
+ `oxe/workflows/validate-gaps.md`
8
+
9
+ Requer `VERIFY.md` e `PLAN.md` já existentes. Texto adicional: foco opcional em tarefa **Tn** ou critério **A***.
@@ -14,18 +14,28 @@ Se o usuário mencionar **OXE**, **oxe**, **/oxe-**, ou pedidos como “mapear o
14
14
  | Spec | `oxe/workflows/spec.md` | “oxe spec”, “escrever SPEC.md”, “requisitos OXE” |
15
15
  | Discuss | `oxe/workflows/discuss.md` | “oxe discuss”, “perguntas antes do plano”, “DISCUSS.md” |
16
16
  | Plan | `oxe/workflows/plan.md` | “oxe plan”, “PLAN.md”, “plano com testes por tarefa”, “replan” |
17
+ | Plan (agentes) | `oxe/workflows/plan-agent.md` | “plan agent”, “plan-agents.json”, “subagentes”, “ondas por agente”, blueprint de execução *(prompt: `/oxe-plan-agent`)* |
17
18
  | Quick | `oxe/workflows/quick.md` | “oxe quick”, “fix rápido OXE”, “QUICK.md” |
18
19
  | Execute | `oxe/workflows/execute.md` | “oxe execute”, “executar onda”, “onda 2 OXE” |
19
20
  | Verify | `oxe/workflows/verify.md` | “oxe verify”, “validar plano OXE”, “VERIFY.md” |
21
+ | Validate gaps | `oxe/workflows/validate-gaps.md` | “validate gaps”, “Nyquist-lite”, “cobertura de critérios” após verify *(prompt: `/oxe-validate-gaps`)* |
20
22
  | Next | `oxe/workflows/next.md` | “oxe next”, “próximo passo OXE” |
21
23
  | Review PR | `oxe/workflows/review-pr.md` | “revisar PR”, link `…/pull/10`, “diff entre branches” *(prompt Copilot: `/oxe-review-pr`)* |
22
24
  | Help | `oxe/workflows/help.md` | “oxe help”, “como usar OXE” |
23
25
  | Update | `oxe/workflows/update.md` | “oxe update”, “atualizar oxe-cc”, “há versão nova no npm” *(prompt: `/oxe-update`)* |
26
+ | Forensics | `oxe/workflows/forensics.md` | “oxe forensics”, “preso após verify”, “doctor falhou”, incoerência STATE/VERIFY *(prompt: `/oxe-forensics`)* |
27
+ | Debug | `oxe/workflows/debug.md` | “oxe debug”, teste vermelho, stack trace durante implementação *(prompt: `/oxe-debug`)* |
28
+ | Route | `oxe/workflows/route.md` | “que comando OXE uso”, desambiguar intenção *(prompt: `/oxe-route`)* |
29
+ | Research | `oxe/workflows/research.md` | “oxe research”, mapa de sistema, spike, engenharia reversa, modernização *(prompt: `/oxe-research`)* |
30
+ | Compact | `oxe/workflows/compact.md` | “oxe compact”, refresh `.oxe/codebase/` vs repo + `CODEBASE-DELTA.md` + `RESUME.md` *(prompt: `/oxe-compact`)* |
31
+ | Checkpoint | `oxe/workflows/checkpoint.md` | “oxe checkpoint”, snapshot de sessão `.oxe/checkpoints/` *(prompt: `/oxe-checkpoint`)* |
32
+ | UI spec | `oxe/workflows/ui-spec.md` | “UI-SPEC”, contrato de interface após spec *(prompt: `/oxe-ui-spec`)* |
33
+ | UI review | `oxe/workflows/ui-review.md` | “auditoria UI”, UI-REVIEW *(prompt: `/oxe-ui-review`)* |
24
34
  | Autoria de workflow | `oxe/workflows/workflow-authoring.md` | “rever workflow OXE”, “revisar `oxe/workflows/foo.md` contra o guia”, alinhar passo ao `WORKFLOW_AUTHORING.md` |
25
35
 
26
36
  **Regra:** leia o Markdown indicado e execute **todos** os passos e critérios de sucesso descritos nesse arquivo. Não atalhe: crie ou atualize os arquivos em `.oxe/` conforme o workflow.
27
37
 
28
- **Cursor:** há slash `/oxe-*` para scan…help e **`/oxe-update`** em `~/.cursor/commands/`; **não** há comando slash dedicado a review-pr no Cursor — use linguagem natural + `oxe/workflows/review-pr.md` em contexto.
38
+ **Cursor:** há slash `/oxe-*` para scan…help, **`/oxe-update`**, **`/oxe-forensics`**, **`/oxe-debug`**, **`/oxe-route`**, **`/oxe-research`**, **`/oxe-validate-gaps`**, **`/oxe-compact`**, **`/oxe-checkpoint`**, **`/oxe-ui-spec`**, **`/oxe-ui-review`** em `~/.cursor/commands/` (gerados a partir de `.github/prompts/` com `npm run sync:cursor` no pacote); **não** há comando slash dedicado a review-pr no Cursor — use linguagem natural + `oxe/workflows/review-pr.md` em contexto.
29
39
 
30
40
  ## Onde ficam as integrações (após `npx oxe-cc`)
31
41
 
@@ -36,20 +46,20 @@ Se o usuário mencionar **OXE**, **oxe**, **/oxe-**, ou pedidos como “mapear o
36
46
 
37
47
  ## Configuração do projeto
38
48
 
39
- - **`.oxe/config.json`**: fluxo (`discuss_before_plan`, `scan_max_age_days`, `spec_required_sections`, …) e opcionalmente **`install`** (perfil e layout quando o utilizador corre o instalador **sem** flags IDE explícitas). Referência: `oxe/templates/CONFIG.md`. Para ignorar o bloco `install` numa corrida: **`--no-install-config`**.
49
+ - **`.oxe/config.json`**: fluxo (`discuss_before_plan`, `scan_max_age_days`, `compact_max_age_days`, `spec_required_sections`, …) e opcionalmente **`install`** (perfil e layout quando o utilizador corre o instalador **sem** flags IDE explícitas). Referência: `oxe/templates/CONFIG.md`. Para ignorar o bloco `install` numa corrida: **`--no-install-config`**.
40
50
  - **Legado / brownfield** (COBOL, JCL, copybooks, VB6, SQL procedures): seguir também `oxe/workflows/references/legacy-brownfield.md` quando o repo ou o pedido indicar mainframe ou desktop legado — scan preenche os sete ficheiros sem assumir Node; plan/verify aceitam evidência por Grep/leitura/checklist.
41
51
  - Sem TTY (CI): **`OXE_NO_PROMPT=1`** — padrões de layout/integração; o ficheiro `install` em `config.json` aplica-se se existir e as flags não sobrepuserem.
42
52
 
43
53
  ## Artefatos
44
54
 
45
- - `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*.md`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional)
55
+ - `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*.md`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional), `.oxe/PLAN.md`, `.oxe/plan-agents.json` (opcional, blueprint plan-agent; schema 2 com `runId` + `lifecycle`; **`/oxe-quick`** invalida), `.oxe/plan-agent-messages/` (opcional, handoffs agente→agente; ver `oxe/workflows/references/plan-agent-chat-protocol.md`), `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional), `.oxe/NOTES.md`, `.oxe/RESUME.md`, `.oxe/CODEBASE-DELTA.md`, `.oxe/CHECKPOINTS.md`, `.oxe/checkpoints/*.md`, `.oxe/RESEARCH.md`, `.oxe/research/*.md`, `.oxe/VALIDATION-GAPS.md`, `.oxe/FORENSICS.md`, `.oxe/DEBUG.md`, `.oxe/UI-SPEC.md`, `.oxe/UI-REVIEW.md` (opcionais conforme trilha)
46
56
  - Templates: `oxe/templates/` (ou `.oxe/templates/` em layout aninhado)
47
57
 
48
58
  ## CLI e SDK
49
59
 
50
60
  - **`npx oxe-cc`** ou **`npx oxe-cc install`** — instalação (equivalentes).
51
61
  - **`npx oxe-cc doctor`** — validação completa (Node, workflows do pacote vs projeto, JSON, coerência STATE, regras SPEC/PLAN, **avisos** não bloqueantes sobre estrutura dos `.md` de workflow quando aplicável).
52
- - **`npx oxe-cc status`** — mais leve: coerência `.oxe/` + **um** próximo passo (não exige o mesmo rigor de workflows que o `doctor`). **`status --json`**: saída máquina-legível para CI (`nextStep`, `diagnostics`, …).
62
+ - **`npx oxe-cc status`** — mais leve: coerência `.oxe/` + **um** próximo passo (não exige o mesmo rigor de workflows que o `doctor`). **`status --json`**: saída máquina-legível para CI (`nextStep`, `diagnostics`, `staleScan`, `staleCompact`, …). **`status --hints`**: lembretes de rotina (scan/compact antigos quando configurado); com **`--json --hints`** inclui o array **`hints`**.
53
63
  - **`npx oxe-cc init-oxe`**, **`uninstall`**, **`update`** — ver `oxe-cc --help` ou README do pacote.
54
64
  - **SDK (Node):** `require('oxe-cc')` expõe `runDoctorChecks`, `health`, `workflows`, `install`, `manifest`, `agents` — útil para CI (`lib/sdk/README.md`, `lib/sdk/index.d.ts`).
55
65
 
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-checkpoint
3
+ agent: agent
4
+ description: OXE — Checkpoint nomeado (.oxe/checkpoints/ + índice)
5
+ argument-hint: "<slug> [nota breve]"
6
+ ---
7
+
8
+ Executa o workflow **OXE checkpoint** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/checkpoint.md`
11
+
12
+ O **primeiro** argumento deve ser o **slug** (ex. `pre-migracao-api`); o resto é nota livre.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: oxe-compact
3
+ mode: agent
4
+ description: OXE — refresh .oxe/codebase vs repo + CODEBASE-DELTA + RESUME
5
+ ---
6
+
7
+ Executa o workflow **OXE compact** no repositório atual. Lê e aplica **integralmente**:
8
+
9
+ `oxe/workflows/compact.md`
10
+
11
+ Atualiza os **sete** mapas em **`.oxe/codebase/`** (incremental ou bootstrap como scan), gera **`.oxe/CODEBASE-DELTA.md`** e **`.oxe/RESUME.md`**. Texto extra do utilizador: foco ou decisões/bloqueios a incluir no RESUME.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-debug
3
+ agent: agent
4
+ description: OXE — Debug técnico durante execute (DEBUG.md, hipótese/evidência)
5
+ argument-hint: "[Tn opcional, stack ou comando que falhou]"
6
+ ---
7
+
8
+ Executa o workflow **OXE debug** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/debug.md`
11
+
12
+ Usa o texto adicional desta mensagem como sintoma, **Tn** do PLAN se souber, ou saída de erro.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-forensics
3
+ agent: agent
4
+ description: OXE — Diagnóstico pós-falha (FORENSICS.md + reingresso scan/plan/execute)
5
+ argument-hint: "[contexto opcional do sintoma]"
6
+ ---
7
+
8
+ Executa o workflow **OXE forensics** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/forensics.md`
11
+
12
+ Usa o texto adicional desta mensagem como contexto do sintoma (falha de verify, doctor, estado incoerente).
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: oxe-plan-agent
3
+ description: "OXE — PLAN.md + plan-agents.json (plano orientado a agentes / ondas)"
4
+ ---
5
+
6
+ Executa o workflow **OXE plan-agent**. Lê e aplica **integralmente**:
7
+
8
+ `oxe/workflows/plan-agent.md` (na raiz do repositório em contexto)
9
+
10
+ Se o utilizador pedir replanejamento, trata como **`--replan`** conforme o workflow.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-research
3
+ agent: agent
4
+ description: OXE — Pesquisa exploratória (.oxe/research/ + índice RESEARCH.md)
5
+ argument-hint: "[âmbito, ex. módulo auth, mapa sistema, reversa]"
6
+ ---
7
+
8
+ Executa o workflow **OXE research** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/research.md`
11
+
12
+ Usa o texto adicional desta mensagem como âmbito (paths, perguntas, spike, mapa de sistema, engenharia reversa ou modernização).
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-route
3
+ agent: agent
4
+ description: OXE — Router: um pedido em linguagem natural → um comando/workflow
5
+ argument-hint: "[frase do utilizador]"
6
+ ---
7
+
8
+ Executa o workflow **OXE route** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/route.md`
11
+
12
+ Usa o texto adicional desta mensagem como intenção a classificar (tabela Router em `help.md`).
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-ui-review
3
+ agent: agent
4
+ description: OXE — Auditoria UI (UI-REVIEW.md) face ao UI-SPEC
5
+ argument-hint: "[paths ou Tn opcional]"
6
+ ---
7
+
8
+ Executa o workflow **OXE ui-review** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/ui-review.md`
11
+
12
+ Usa o texto adicional desta mensagem como ficheiros ou tarefas a rever.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-ui-spec
3
+ agent: agent
4
+ description: OXE — Contrato UI (UI-SPEC.md) a partir da SPEC
5
+ argument-hint: "[âmbito UI opcional]"
6
+ ---
7
+
8
+ Executa o workflow **OXE ui-spec** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/ui-spec.md`
11
+
12
+ Usa o texto adicional desta mensagem como foco de ecrãs ou componentes, se houver.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-validate-gaps
3
+ agent: agent
4
+ description: OXE — Gaps de cobertura pós-verify (VALIDATION-GAPS.md)
5
+ argument-hint: "[opcional: foco Tn ou A*]"
6
+ ---
7
+
8
+ Executa o workflow **OXE validate-gaps** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/validate-gaps.md`
11
+
12
+ Requer `VERIFY.md` e `PLAN.md` já existentes. Texto adicional: foco opcional em tarefa **Tn** ou critério **A***.
package/AGENTS.md CHANGED
@@ -7,7 +7,7 @@ Este repositório empacota o fluxo **OXE** (spec-driven, artefatos em `.oxe/`).
7
7
  - **Instruções do repositório:** [.github/copilot-instructions.md](.github/copilot-instructions.md) — aplicadas automaticamente no **GitHub Copilot Chat** quando o repo está em contexto (outras ferramentas usam os seus próprios homes após `oxe-cc install`).
8
8
  - **CLI:** `oxe-cc` instala assets e bootstrap (`.oxe/STATE.md`, `config.json`, `codebase/`); `oxe-cc doctor` valida workflows, JSON de config, coerência STATE vs artefatos e regras opcionais de SPEC/PLAN; `oxe-cc status` mostra coerência `.oxe/` e **um** próximo passo; `oxe-cc init-oxe` só inicializa `.oxe/`.
9
9
  - **SDK:** `require('oxe-cc')` expõe `runDoctorChecks`, `health`, `workflows`, `install`, `manifest`, `agents` — ver [lib/sdk/README.md](lib/sdk/README.md).
10
- - **Prompt files (Copilot / VS Code):** [.github/prompts/*.prompt.md](.github/prompts/) — invocar com `/` no chat (ex. `/oxe-scan`, `/oxe-update`, `/oxe-review-pr` para diff tipo PR) após `chat.promptFiles` estar ativo.
10
+ - **Prompt files (Copilot / VS Code):** [.github/prompts/*.prompt.md](.github/prompts/) — invocar com `/` no chat (ex. `/oxe-scan`, `/oxe-plan-agent`, `/oxe-forensics`, `/oxe-debug`, `/oxe-route`, `/oxe-research`, `/oxe-validate-gaps`, `/oxe-compact`, `/oxe-checkpoint`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-update`, `/oxe-review-pr` para diff tipo PR) após `chat.promptFiles` estar ativo. Cursor: `npm run sync:cursor` gera `.cursor/commands/` a partir destes prompts.
11
11
  - **Copilot CLI:** `oxe-cc --copilot-cli` → skills em **`~/.copilot/skills/`** (`/oxe`, `/oxe-scan`, …); após instalar use **`/skills reload`**. Cópia extra em `~/.claude/commands/` para compatibilidade.
12
12
  - **Multi-agente:** `oxe-cc --all-agents` replica comandos/skills nos homes de **OpenCode**, **Gemini**, **Codex**, **Windsurf**, **Antigravity** (além de Cursor, Copilot, Claude); ver `README.md` e `bin/lib/oxe-agent-install.cjs`.
13
13
 
package/README.md CHANGED
@@ -55,7 +55,7 @@ No fim, em modo interativo, pergunta se você quer instalar o **`oxe-cc` globalm
55
55
 
56
56
  **GitHub Copilot CLI:** o CLI **não** trata `~/.copilot/commands/` como slash commands (isso é legado estilo Claude/Cursor). Com **`--copilot-cli`**, o OXE instala **agent skills** em **`~/.copilot/skills/`** (ex.: `oxe-scan/SKILL.md`, `oxe/SKILL.md`), invocáveis como **`/oxe-scan`**, **`/oxe`** (entrada = mesmo fluxo que `/oxe-help`), etc. Depois de instalar ou atualizar, use **`/skills reload`** ou reinicie o `copilot`. Mantém-se também cópia para **`~/.claude/commands/`** e **`~/.copilot/commands/`** para ferramentas que ainda leiam essa pasta. Se usar **`COPILOT_HOME`**, o `oxe-cc` grava skills nesse diretório (alinhado ao CLI oficial).
57
57
 
58
- **Multi-agente (`--all-agents`):** instalação **paralela** nos homes canónicos de cada ferramenta — **Cursor** e **Copilot** (como no padrão), **Claude Code** (`~/.claude/commands`), **OpenCode** (`$XDG_CONFIG_HOME/opencode/commands` e `~/.opencode/commands`), **Gemini CLI** (`~/.gemini/commands`: `/oxe`, `/oxe:scan` — depois **`/commands reload`**), **Codex** (`~/.agents/skills` + prompts em **`~/.codex/prompts`** como `/prompts:oxe-*`), **Windsurf** (`~/.codeium/windsurf/global_workflows`, workflows `/oxe-scan`), **Antigravity** (`~/.gemini/antigravity/skills`). No menu interativo, opção **6**. O núcleo do fluxo continua em **`.oxe/`** (SPEC/PLAN/VERIFY); não `PROJECT.md` nem `research/` impostos pelo OXE.
58
+ **Multi-agente (`--all-agents`):** instalação **paralela** nos homes canónicos de cada ferramenta — **Cursor** e **Copilot** (como no padrão), **Claude Code** (`~/.claude/commands`), **OpenCode** (`$XDG_CONFIG_HOME/opencode/commands` e `~/.opencode/commands`), **Gemini CLI** (`~/.gemini/commands`: `/oxe`, `/oxe:scan` — depois **`/commands reload`**), **Codex** (`~/.agents/skills` + prompts em **`~/.codex/prompts`** como `/prompts:oxe-*`), **Windsurf** (`~/.codeium/windsurf/global_workflows`, workflows `/oxe-scan`), **Antigravity** (`~/.gemini/antigravity/skills`). No menu interativo, opção **6**. O núcleo do fluxo continua em **`.oxe/`** (SPEC/PLAN/VERIFY e artefactos opcionais). O passo **research** (`research.md`, `.oxe/research/`, `RESEARCH.md`) é **opcional** e não faz parte da trilha mínima scan → spec → plan → execute → verify.
59
59
 
60
60
  **Confirmar instalação no agente**
61
61
 
@@ -102,8 +102,8 @@ No fim, em modo interativo, pergunta se você quer instalar o **`oxe-cc` globalm
102
102
  | Comando | Função |
103
103
  |---------|--------|
104
104
  | `oxe-cc` ou `oxe-cc install` | Instalação predefinida (mesmo comportamento; `install` é alias explícito) |
105
- | `oxe-cc doctor` | Valida Node, workflows do pacote, `.oxe/`, coerência STATE vs arquivos, scan antigo (`scan_max_age_days`), seções da SPEC, ondas do PLAN |
106
- | `oxe-cc status` | Leve: coerência `.oxe/` + **um** próximo passo sugerido (espelha o workflow `next`; não exige o conjunto completo de workflows como o `doctor`). **`--json`**: uma linha JSON com `nextStep`, `diagnostics`, etc., para CI ou scripts |
105
+ | `oxe-cc doctor` | Valida Node, workflows do pacote, `.oxe/`, coerência STATE vs arquivos, scan/compact antigos (`scan_max_age_days`, `compact_max_age_days`), seções da SPEC, ondas do PLAN |
106
+ | `oxe-cc status` | Leve: coerência `.oxe/` + **um** próximo passo sugerido (espelha o workflow `next`; não exige o conjunto completo de workflows como o `doctor`). **`--json`**: uma linha JSON com `nextStep`, `diagnostics`, `staleCompact`, etc. **`--hints`**: lembretes de rotina (scan/compact por idade). |
107
107
  | `oxe-cc init-oxe` | Só o bootstrap `.oxe/` (STATE, config, codebase) |
108
108
  | `oxe-cc uninstall` | Remove integrações OXE em `~/.cursor`, `~/.copilot`, `~/.claude` e pastas de workflows no repo (`--ide-only` só no HOME) |
109
109
  | `oxe-cc update` | Executa `npx oxe-cc@latest --force` na pasta do projeto; **`--check`** só consulta o npm; **`--if-newer`** evita o npx quando já está na última |
@@ -165,6 +165,8 @@ Gera **`.oxe/PLAN.md`**: tarefas **atômicas**, **ondas** (paralelo vs sequencia
165
165
 
166
166
  Ondas em resumo: tarefas **independentes** na mesma onda podem **rodar** em paralelo; **dependentes** vão para ondas posteriores (organização por ondas, com pouca cerimônia).
167
167
 
168
+ **Variante plan-agent:** **`/oxe-plan-agent`** gera o mesmo **`.oxe/PLAN.md`** (com **Verificar** e **Aceite** por tarefa) **e** **`.oxe/plan-agents.json`** (schema **2**: `runId`, `lifecycle`): papéis (`role`), âmbito (`scope`), `inputs`/`outputs` sugeridos, dependências entre **agentes** e **`execution.waves`**. Handoffs entre agentes seguem **`oxe/workflows/references/plan-agent-chat-protocol.md`** (ficheiros em **`.oxe/plan-agent-messages/`**). Os papéis do blueprint são **exclusivos** da trilha **execute** desse plano (alinhados ao `runId` no **STATE**); **`/oxe-quick`** **invalida** o blueprint; trabalho fora das tarefas do **PLAN** não deve reutilizar essas personas.
169
+
168
170
  ### 5. Executar — implementação + `/oxe-execute` *(opcional)*
169
171
 
170
172
  Implemente no editor ou deixe o agente seguir **`/oxe-execute`** sobre o plano (ou QUICK). O OXE não impõe subagentes nem commits atômicos por tarefa; isso fica a cargo do **seu** fluxo com Git.
@@ -183,9 +185,9 @@ Para a **próxima** feature ou fase: de novo **spec → plan → …** ou **`/ox
183
185
 
184
186
  Para trabalho **ad hoc** sem roadmap completo:
185
187
 
186
- **`/oxe-quick`** gera **`.oxe/QUICK.md`** com passos curtos e verificação. Depois você pode usar **`/oxe-execute`** em cima disso ou implementar direto e fechar com **`/oxe-verify`**.
188
+ **`/oxe-quick`** gera **`.oxe/QUICK.md`** com passos curtos e verificação. **Perfil fast:** objetivo numa frase, no máximo **10** passos — ver `oxe/workflows/quick.md`. Depois você pode usar **`/oxe-execute`** em cima disso ou implementar direto e fechar com **`/oxe-verify`**. Se existir um blueprint **`plan-agents.json`** (schema 2) ainda activo, o quick **invalida** esse blueprint (não reutiliza os agentes definidos para o plano).
187
189
 
188
- Se o trabalho crescer, **promova** para spec + plan completos.
190
+ Se o trabalho crescer, **promova** para spec + plan completos (mesmos gatilhos: muitos ficheiros, API pública, segurança, etc.).
189
191
 
190
192
  ---
191
193
 
@@ -200,7 +202,11 @@ Se o trabalho crescer, **promova** para spec + plan completos.
200
202
  | `.oxe/SPEC.md` | O que entregar e como saber que está certo |
201
203
  | `.oxe/DISCUSS.md` | Preferências antes do plano *(opcional)* |
202
204
  | `.oxe/PLAN.md` | Tarefas atômicas + **Verificar** por item |
205
+ | `.oxe/plan-agents.json` | Blueprint opcional (agentes + ondas) após **`/oxe-plan-agent`** |
203
206
  | `.oxe/QUICK.md` | Modo rápido |
207
+ | `.oxe/NOTES.md` | Fila leve antes de discuss/plan *(opcional)* |
208
+ | `.oxe/FORENSICS.md` / `.oxe/DEBUG.md` | Recuperação e debug *(opcional)* |
209
+ | `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md` | Contrato e revisão UI *(opcional)* |
204
210
  | `.oxe/VERIFY.md` | Resultado das verificações |
205
211
  | `.oxe/SUMMARY.md` | Resumo para replanejamento *(opcional)* |
206
212
  | `oxe/workflows/*.md` ou `.oxe/workflows/*.md` | **Fonte única** dos passos no **projeto** após instalar (no **pacote** npm, os modelos vivem em `oxe/workflows/`) |
@@ -221,12 +227,22 @@ Slash commands (Cursor: `~/.cursor/commands/` após instalar) e prompt files (Co
221
227
  | `/oxe-spec` | [`spec.md`](oxe/workflows/spec.md) |
222
228
  | `/oxe-discuss` | [`discuss.md`](oxe/workflows/discuss.md) |
223
229
  | `/oxe-plan` | [`plan.md`](oxe/workflows/plan.md) |
230
+ | `/oxe-plan-agent` | [`plan-agent.md`](oxe/workflows/plan-agent.md) |
224
231
  | `/oxe-quick` | [`quick.md`](oxe/workflows/quick.md) |
225
232
  | `/oxe-execute` | [`execute.md`](oxe/workflows/execute.md) |
226
233
  | `/oxe-verify` | [`verify.md`](oxe/workflows/verify.md) |
227
234
  | `/oxe-next` | [`next.md`](oxe/workflows/next.md) |
228
235
  | `/oxe-help` | [`help.md`](oxe/workflows/help.md) |
229
236
  | `/oxe-update` | [`update.md`](oxe/workflows/update.md) |
237
+ | `/oxe-forensics` | [`forensics.md`](oxe/workflows/forensics.md) |
238
+ | `/oxe-debug` | [`debug.md`](oxe/workflows/debug.md) |
239
+ | `/oxe-route` | [`route.md`](oxe/workflows/route.md) |
240
+ | `/oxe-research` | [`research.md`](oxe/workflows/research.md) |
241
+ | `/oxe-validate-gaps` | [`validate-gaps.md`](oxe/workflows/validate-gaps.md) |
242
+ | `/oxe-compact` | [`compact.md`](oxe/workflows/compact.md) |
243
+ | `/oxe-checkpoint` | [`checkpoint.md`](oxe/workflows/checkpoint.md) |
244
+ | `/oxe-ui-spec` | [`ui-spec.md`](oxe/workflows/ui-spec.md) |
245
+ | `/oxe-ui-review` | [`ui-review.md`](oxe/workflows/ui-review.md) |
230
246
  | `/oxe-review-pr` *(prompt Copilot; ver nota abaixo)* | [`review-pr.md`](oxe/workflows/review-pr.md) |
231
247
  | *(mantenedores)* `workflow-authoring` em linguagem natural | [`workflow-authoring.md`](oxe/workflows/workflow-authoring.md) |
232
248
 
@@ -248,6 +264,14 @@ Slash commands (Cursor: `~/.cursor/commands/` após instalar) e prompt files (Co
248
264
  - **Limite:** Não implementa código; o plano e o verify é que amarram tarefas aos **A*** .
249
265
  - **Workflow:** [`oxe/workflows/spec.md`](oxe/workflows/spec.md)
250
266
 
267
+ #### `/oxe-research`
268
+
269
+ - **O que faz:** Cria uma **nota datada** em `.oxe/research/YYYY-MM-DD-<slug>.md` e atualiza **`.oxe/RESEARCH.md`** (índice/histórico); spikes, mapa de sistema, engenharia reversa, hipóteses de modernização ou qualquer exploração com evidência antes do plano.
270
+ - **Artefatos:** `.oxe/research/*.md`, `.oxe/RESEARCH.md`, `.oxe/STATE.md` se útil.
271
+ - **Quando usar:** Incerteza técnica ou de âmbito; sistemas grandes por progressive disclosure (várias sessões); opcional após **spec** e antes de **plan**.
272
+ - **Limite:** Não substitui SPEC/PLAN; não sobrescreve notas antigas sem pedido explícito.
273
+ - **Workflow:** [`oxe/workflows/research.md`](oxe/workflows/research.md)
274
+
251
275
  #### `/oxe-discuss`
252
276
 
253
277
  - **O que faz:** Regista perguntas, respostas e decisões em `.oxe/DISCUSS.md` (máx. 7 perguntas enxutas) antes do plano, alinhado à SPEC.
@@ -264,6 +288,22 @@ Slash commands (Cursor: `~/.cursor/commands/` após instalar) e prompt files (Co
264
288
  - **Limite:** Não executa as tarefas — isso é **execute** + o teu Git.
265
289
  - **Workflow:** [`oxe/workflows/plan.md`](oxe/workflows/plan.md)
266
290
 
291
+ #### `/oxe-plan-agent`
292
+
293
+ - **O que faz:** Igual ao plano OXE em **tarefas verificáveis** (`PLAN.md`), mais **`.oxe/plan-agents.json`** (schema **2**: `runId`, `lifecycle`): define **agentes** (papel, âmbito, `taskIds`, dependências, entradas/saídas sugeridas) e **`execution.waves`**. Cria **`.oxe/plan-agent-messages/`** (README + mensagens conforme [`references/plan-agent-chat-protocol.md`](oxe/workflows/references/plan-agent-chat-protocol.md)). Inclui gate de coerência entre JSON e `Tn`.
294
+ - **Artefatos:** `.oxe/PLAN.md`, `.oxe/plan-agents.json`, `.oxe/plan-agent-messages/`, `.oxe/STATE.md` (`plan_ready` + secção blueprint).
295
+ - **Quando usar:** Equipas que querem **roteiro explícito por “subagente”**, handoffs escritos entre ondas, ou ondas paralelas por domínio sem perder **Verificar** por tarefa.
296
+ - **Limite:** Papéis do blueprint são **só** para **`/oxe-execute`** alinhado ao `PLAN.md` e `runId`; **`/oxe-quick`** invalida o blueprint; pedidos fora do plano não devem reutilizar essas personas.
297
+ - **Workflow:** [`oxe/workflows/plan-agent.md`](oxe/workflows/plan-agent.md) · modelo JSON: [`oxe/templates/plan-agents.template.json`](oxe/templates/plan-agents.template.json) · schema: [`oxe/schemas/plan-agents.schema.json`](oxe/schemas/plan-agents.schema.json)
298
+
299
+ #### `/oxe-ui-spec`
300
+
301
+ - **O que faz:** Gera ou atualiza **`.oxe/UI-SPEC.md`**: contrato de UI/UX derivado da **SPEC** (âmbito, estados, acessibilidade, breakpoints, tokens quando aplicável).
302
+ - **Artefatos:** `.oxe/UI-SPEC.md`, `.oxe/STATE.md` (nota de fase / próximo passo conforme o workflow).
303
+ - **Quando usar:** Depois de **spec** e **antes** (ou em paralelo cognitivo) do **plan**, para entregas com interface; o **plan** pode referenciar secções do UI-SPEC nas tarefas de front.
304
+ - **Limite:** Só faz sentido se houver UI; projetos só API/backend podem ignorar este passo. Não substitui a SPEC.
305
+ - **Workflow:** [`oxe/workflows/ui-spec.md`](oxe/workflows/ui-spec.md)
306
+
267
307
  #### `/oxe-quick`
268
308
 
269
309
  - **O que faz:** Fluxo curto com `.oxe/QUICK.md` (passos numerados + verificar) para trabalho pontual sem SPEC/PLAN longos.
@@ -274,12 +314,20 @@ Slash commands (Cursor: `~/.cursor/commands/` após instalar) e prompt files (Co
274
314
 
275
315
  #### `/oxe-execute`
276
316
 
277
- - **O que faz:** Guia a implementação **onda a onda** com base em `PLAN.md` (ou passos de `QUICK.md`), com checklist explícito e atualização de `.oxe/STATE.md` (progresso Tn / ondas).
317
+ - **O que faz:** Guia a implementação **onda a onda** com base em `PLAN.md` (ou passos de `QUICK.md`), com checklist explícito e atualização de `.oxe/STATE.md` (progresso Tn / ondas). Com blueprint **válido** (`lifecycle` + `runId` alinhado ao STATE), aplica papéis do JSON só às tarefas do plano e regista handoffs em **`.oxe/plan-agent-messages/`** quando agentes dependem uns dos outros.
278
318
  - **Artefatos:** Código/docs que implementas; `.oxe/STATE.md` (checklist de onda).
279
319
  - **Quando usar:** Durante a execução do plano ou do QUICK, para não saltar pré-requisitos nem verificações da onda.
280
320
  - **Limite:** Não faz commits nem impõe subagentes — fica a teu critério de equipa.
281
321
  - **Workflow:** [`oxe/workflows/execute.md`](oxe/workflows/execute.md)
282
322
 
323
+ #### `/oxe-ui-review`
324
+
325
+ - **O que faz:** Produz **`.oxe/UI-REVIEW.md`**: auditoria da implementação face ao **UI-SPEC** (checklist, bloqueios P0/P1, sugestões), tipicamente após trabalho de front e **antes** ou como entrada para o **verify** global.
326
+ - **Artefatos:** `.oxe/UI-REVIEW.md`, `.oxe/STATE.md` se útil.
327
+ - **Quando usar:** Depois de implementar ecrãs/componentes cobertos pelo UI-SPEC; se não existir `UI-SPEC.md`, o workflow pede **ui-spec** primeiro ou regista revisão *ad hoc* (menos ideal).
328
+ - **Limite:** Não substitui **`/oxe-verify`** — o verify continua a cruzar SPEC, PLAN, evidência técnica e, quando existir, UI-REVIEW.
329
+ - **Workflow:** [`oxe/workflows/ui-review.md`](oxe/workflows/ui-review.md)
330
+
283
331
  #### `/oxe-verify`
284
332
 
285
333
  - **O que faz:** Corre ou orienta verificação: comandos do PLAN, confronto de **cada** critério **A*** da SPEC com evidência, registo em `.oxe/VERIFY.md`; opcionalmente rascunho de commit e checklist de PR conforme `.oxe/config.json`.
@@ -288,6 +336,56 @@ Slash commands (Cursor: `~/.cursor/commands/` após instalar) e prompt files (Co
288
336
  - **Limite:** Sandbox pode impedir comandos — regista “não executado aqui” e deixa o comando para correres localmente.
289
337
  - **Workflow:** [`oxe/workflows/verify.md`](oxe/workflows/verify.md)
290
338
 
339
+ #### `/oxe-validate-gaps`
340
+
341
+ - **O que faz:** Auditoria **complementar** pós-verify: cruza PLAN + VERIFY (+ SPEC), lista gaps de cobertura/evidência em **`.oxe/VALIDATION-GAPS.md`** e sugere tarefas em texto (Nyquist-lite).
342
+ - **Artefatos:** `.oxe/VALIDATION-GAPS.md`, opcionalmente `STATE.md`.
343
+ - **Quando usar:** Depois de **`/oxe-verify`** (passou ou falhou), para fechar dívida de testes ou evidência fraca.
344
+ - **Limite:** Não altera `PLAN.md` por defeito nem substitui um novo verify após correções.
345
+ - **Workflow:** [`oxe/workflows/validate-gaps.md`](oxe/workflows/validate-gaps.md)
346
+
347
+ #### `/oxe-compact`
348
+
349
+ - **O que faz:** **Rotina de projeto inteiro:** compara **`.oxe/codebase/*.md`** ao repositório **atual**, **atualiza** os sete mapas (incrementalmente se já existirem; geração completa alinhada a **`scan.md`** se faltar base), escreve **`.oxe/CODEBASE-DELTA.md`** (o que mudou na documentação face à versão anterior) e **`.oxe/RESUME.md`** (trilha OXE + ligação ao delta). **Independente** de limites de chat ou de qualquer comando de “compact” de IDE.
350
+ - **Artefatos:** `.oxe/codebase/*.md`, `.oxe/CODEBASE-DELTA.md`, `.oxe/RESUME.md`; bloco opcional **Último compact** em `STATE.md`.
351
+ - **Quando usar:** Fim de sprint, após refactors grandes, quando o mapa OXE “cheira” a desatualizado, ou em cadência que a equipa definir — **sem** substituir um **`/oxe-scan`** completo logo após clonar ou quando tudo mudou de raiz.
352
+ - **Limite:** Não substitui SPEC/PLAN/VERIFY. Para **marco de sessão** nomeado, usar **`/oxe-checkpoint`**.
353
+ - **Workflow:** [`oxe/workflows/compact.md`](oxe/workflows/compact.md)
354
+
355
+ #### `/oxe-checkpoint`
356
+
357
+ - **O que faz:** **Snapshot de sessão / trilha:** cria **`.oxe/checkpoints/YYYY-MM-DD-HHmm-<slug>.md`** com frontmatter (`linked` para artefactos) e atualiza **`.oxe/CHECKPOINTS.md`** (índice, mais recente primeiro).
358
+ - **Artefatos:** `.oxe/checkpoints/*.md`, `.oxe/CHECKPOINTS.md`.
359
+ - **Quando usar:** Antes de mudanças arriscadas, troca de ramo mental, ou fim de dia — marco **nomeado** sem apagar contratos. Contrasta com **`/oxe-compact`**, que atualiza o **mapa do projeto inteiro** (`codebase/` + delta + RESUME).
360
+ - **Limite:** Não é `git commit`; não altera SPEC/PLAN por defeito; **não** substitui o refresh de `codebase/` do compact.
361
+ - **Workflow:** [`oxe/workflows/checkpoint.md`](oxe/workflows/checkpoint.md)
362
+
363
+ **Momentos chave (rotina):** antes de spike ou branch longa → checkpoint; após migração de stack ou fim de feature/PR → compact; fim de dia a meio trabalho → checkpoint. Tabela completa e `compact_max_age_days` em [`oxe/workflows/help.md`](oxe/workflows/help.md) (secção *Momentos chave*).
364
+
365
+ #### `/oxe-forensics`
366
+
367
+ - **O que faz:** Diagnóstico **pós-falha** ou incoerência (verify falhou, `doctor` em erro, STATE vs artefatos); escreve **`.oxe/FORENSICS.md`** com linha do tempo, hipótese de causa e **um** próximo passo canónico: **scan**, **plan** ou **execute** (nunca “fim” sem reentrada na trilha).
368
+ - **Artefatos:** `.oxe/FORENSICS.md`, opcionalmente linha em `STATE.md`.
369
+ - **Quando usar:** Preso após várias tentativas, drift de workflows, PLAN vs VERIFY inconsistente.
370
+ - **Limite:** Recomenda; não apaga SPEC/PLAN sem decisão explícita tua.
371
+ - **Workflow:** [`oxe/workflows/forensics.md`](oxe/workflows/forensics.md)
372
+
373
+ #### `/oxe-debug`
374
+
375
+ - **O que faz:** Ciclo **hipótese → experiência → evidência** durante o **execute** (teste vermelho, stack, regressão); regista sessões em **`.oxe/DEBUG.md`**, ligadas a **Tn** quando existir.
376
+ - **Artefatos:** `.oxe/DEBUG.md` (append por sessão datada).
377
+ - **Quando usar:** Dificuldade **técnica** no meio do plano; se o problema for requisito ambíguo, preferir **`/oxe-discuss`** e depois **plan**.
378
+ - **Limite:** Corrigir com debug **não** dispensa **`/oxe-verify`** para fechar a trilha.
379
+ - **Workflow:** [`oxe/workflows/debug.md`](oxe/workflows/debug.md)
380
+
381
+ #### `/oxe-route`
382
+
383
+ - **O que faz:** Meta-only: mapeia linguagem natural → **exatamente um** comando/workflow (tabela em **help**); não gera SPEC nem PLAN.
384
+ - **Artefatos:** Nenhum obrigatório.
385
+ - **Quando usar:** “Que comando OXE uso para…?” sem quereres escolher à mão.
386
+ - **Limite:** Só orientação; a execução é o passo apontado (`/oxe-scan`, `/oxe-forensics`, etc.).
387
+ - **Workflow:** [`oxe/workflows/route.md`](oxe/workflows/route.md)
388
+
291
389
  #### `/oxe-next`
292
390
 
293
391
  - **O que faz:** Sugere o **único** próximo passo lógico com base nos artefactos `.oxe/` (equivalente conceptual ao que o terminal faz com `npx oxe-cc status`, sem validar o pacote de workflows completo).
@@ -342,9 +440,10 @@ Comandos no terminal na **raiz do projeto** (ou `--dir`). Útil em CI, scripts e
342
440
  | Subcomando | Poder principal |
343
441
  |------------|-----------------|
344
442
  | `oxe-cc` / `oxe-cc install` | Copia **workflows** e **templates** para `.oxe/` (layout mínimo) ou `oxe/` + `.oxe/` (`--global`), e instala integrações IDE/CLI conforme flags (`--cursor`, `--copilot`, `--all-agents`, …). |
345
- | `oxe-cc doctor` | Validação **completa**: versão Node, diff workflows **pacote npm ↔ projeto**, parse de `.oxe/config.json`, coerência de **STATE** com arquivos esperados, scan antigo (`scan_max_age_days`), seções obrigatórias da SPEC, ondas do PLAN, avisos de estrutura dos `.md` de workflow, e **planWarn** (inclui tarefas **Tn** sem `**Aceite vinculado:**`). |
443
+ | `oxe-cc doctor` | Validação **completa**: versão Node, diff workflows **pacote npm ↔ projeto**, parse de `.oxe/config.json`, coerência de **STATE** com arquivos esperados, scan/compact antigos (`scan_max_age_days`, `compact_max_age_days`), seções obrigatórias da SPEC, ondas do PLAN, avisos de estrutura dos `.md` de workflow, e **planWarn** (inclui tarefas **Tn** sem `**Aceite vinculado:**`). |
346
444
  | `oxe-cc status` | Diagnóstico **mais leve**: mesma leitura de saúde `.oxe/` + config + **um único** próximo passo sugerido (`suggestNextStep`) — não exige o mesmo conjunto de checks pesados do `doctor` sobre o pacote. |
347
- | `oxe-cc status --json` | Igual ao `status`, mas imprime **uma linha JSON** (`oxeStatusSchema`, `nextStep`, `cursorCmd`, `reason`, `artifacts`, `phase`, `diagnostics.*`) para pipelines e agentes automáticos. Sem banner quando `--json`. |
445
+ | `oxe-cc status --json` | Igual ao `status`, mas imprime **uma linha JSON** (`oxeStatusSchema: 2`, `nextStep`, `cursorCmd`, `reason`, `artifacts`, `phase`, `scanDate`, `staleScan`, `compactDate`, `staleCompact`, `diagnostics.*`) para pipelines e agentes automáticos. Sem banner quando `--json`. |
446
+ | `oxe-cc status --hints` | Agrega lembretes de rotina (idade do scan e do compact quando configurados). Com **`--json --hints`**, inclui o array **`hints`**. |
348
447
  | `oxe-cc init-oxe` | Apenas **bootstrap** de `.oxe/STATE.md`, `.oxe/config.json` e pasta `.oxe/codebase/` — sem reinstalar integrações nas tuas pastas home. |
349
448
  | `oxe-cc update` | Corre `npx oxe-cc@latest --force` no projeto (ou equivalente) para alinhar workflows/templates; **`--check`** só compara versão no npm; **`--if-newer`** evita o npx se já estiveres na última. |
350
449
  | `oxe-cc uninstall` | Por omissão remove integrações em `~/.cursor`, `~/.copilot`, … **e** pastas de workflows no projeto (`.oxe/workflows`, `oxe/`, `commands/oxe`, …). **`--ide-only`** não remove workflows no repo (só integrações no HOME). **`--ide-local`** também remove integrações OXE **dentro** do repositório (`.cursor`, `.github`, `.claude`, `.copilot`, …). |
@@ -355,7 +454,7 @@ Comandos no terminal na **raiz do projeto** (ou `--dir`). Útil em CI, scripts e
355
454
 
356
455
  ## Configuração
357
456
 
358
- Preferências do projeto em **`.oxe/config.json`** (criado no bootstrap a partir de `oxe/templates/config.template.json`). Inclui opções de fluxo (`discuss_before_plan`, `scan_max_age_days`, `spec_required_sections`, …) e, opcionalmente, o bloco **`install`** (perfil de integração e layout do repo quando corres o instalador sem flags IDE). Referência completa: [`oxe/templates/CONFIG.md`](oxe/templates/CONFIG.md).
457
+ Preferências do projeto em **`.oxe/config.json`** (criado no bootstrap a partir de `oxe/templates/config.template.json`). Inclui opções de fluxo (`discuss_before_plan`, `scan_max_age_days`, `compact_max_age_days`, `spec_required_sections`, …) e, opcionalmente, o bloco **`install`** (perfil de integração e layout do repo quando corres o instalador sem flags IDE). Referência completa: [`oxe/templates/CONFIG.md`](oxe/templates/CONFIG.md). Hooks Git opt-in: [`oxe/templates/GIT_HOOKS_OXE.md`](oxe/templates/GIT_HOOKS_OXE.md).
359
458
 
360
459
  Repositórios **legado** (COBOL, JCL, copybooks, VB6, stored procedures): os workflows **scan**, **spec**, **plan**, **execute** e **verify** delegam padrões de análise e verificação em [`.oxe/workflows/references/legacy-brownfield.md`](oxe/workflows/references/legacy-brownfield.md) após `npx oxe-cc` (no pacote fonte: [`oxe/workflows/references/legacy-brownfield.md`](oxe/workflows/references/legacy-brownfield.md)).
361
460
 
@@ -10,6 +10,7 @@ const ALLOWED_CONFIG_KEYS = [
10
10
  'after_verify_draft_commit',
11
11
  'default_verify_command',
12
12
  'scan_max_age_days',
13
+ 'compact_max_age_days',
13
14
  'scan_focus_globs',
14
15
  'scan_ignore_globs',
15
16
  'spec_required_sections',
@@ -46,6 +47,7 @@ function loadOxeConfigMerged(targetProject) {
46
47
  after_verify_draft_commit: true,
47
48
  default_verify_command: '',
48
49
  scan_max_age_days: 0,
50
+ compact_max_age_days: 0,
49
51
  scan_focus_globs: [],
50
52
  scan_ignore_globs: [],
51
53
  spec_required_sections: [],
@@ -112,6 +114,9 @@ function validateConfigShape(cfg) {
112
114
  if (cfg.scan_max_age_days != null && typeof cfg.scan_max_age_days !== 'number') {
113
115
  typeErrors.push('scan_max_age_days deve ser número (use 0 para desligar aviso de scan antigo)');
114
116
  }
117
+ if (cfg.compact_max_age_days != null && typeof cfg.compact_max_age_days !== 'number') {
118
+ typeErrors.push('compact_max_age_days deve ser número (use 0 para desligar aviso de compact antigo)');
119
+ }
115
120
  if (cfg.plan_max_tasks_per_wave != null && typeof cfg.plan_max_tasks_per_wave !== 'number') {
116
121
  typeErrors.push('plan_max_tasks_per_wave deve ser número (use 0 para desligar)');
117
122
  }
@@ -158,6 +163,29 @@ function parseLastScanDate(stateText) {
158
163
  return null;
159
164
  }
160
165
 
166
+ /**
167
+ * Data do último `/oxe-compact` em STATE.md (secção **Último compact**).
168
+ * @param {string} stateText
169
+ * @returns {Date | null}
170
+ */
171
+ function parseLastCompactDate(stateText) {
172
+ const sec = stateText.match(/##\s*Último compact[^\n]*\s*([\s\S]*?)(?=\n## |\n#[^\#]|$)/im);
173
+ if (!sec) return null;
174
+ const dm = sec[1].match(/\*\*Data:\*\*\s*(.+)/i);
175
+ if (!dm) return null;
176
+ let raw = dm[1].trim();
177
+ if (/^\([^)]*\)$/.test(raw) || /placeholder|legível|YYYY-MM-DD/i.test(raw)) return null;
178
+ if (raw.startsWith('(')) return null;
179
+ const iso = Date.parse(raw);
180
+ if (!Number.isNaN(iso)) return new Date(iso);
181
+ const br = raw.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})/);
182
+ if (br) {
183
+ const d = new Date(parseInt(br[3], 10), parseInt(br[2], 10) - 1, parseInt(br[1], 10));
184
+ return Number.isNaN(d.getTime()) ? null : d;
185
+ }
186
+ return null;
187
+ }
188
+
161
189
  /**
162
190
  * @param {Date | null} scanDate
163
191
  * @param {number} maxAgeDays 0 = desligado
@@ -442,6 +470,8 @@ function buildHealthReport(target) {
442
470
  const phase = parseStatePhase(stateText);
443
471
  const scanDate = parseLastScanDate(stateText);
444
472
  const stale = isStaleScan(scanDate, Number(config.scan_max_age_days) || 0);
473
+ const compactDate = parseLastCompactDate(stateText);
474
+ const staleCompact = isStaleScan(compactDate, Number(config.compact_max_age_days) || 0);
445
475
  const phaseWarn = phase ? phaseCoherenceWarnings(phase, p) : [];
446
476
  const sumWarn = verifyGapsWithoutSummaryWarning(p.verify, p.summary);
447
477
  const specReq = Array.isArray(config.spec_required_sections) ? config.spec_required_sections : [];
@@ -460,6 +490,8 @@ function buildHealthReport(target) {
460
490
  phase,
461
491
  scanDate,
462
492
  stale,
493
+ compactDate,
494
+ staleCompact,
463
495
  phaseWarn,
464
496
  summaryGapWarn: sumWarn,
465
497
  specWarn,
@@ -480,6 +512,7 @@ module.exports = {
480
512
  validateConfigShape,
481
513
  parseStatePhase,
482
514
  parseLastScanDate,
515
+ parseLastCompactDate,
483
516
  isStaleScan,
484
517
  phaseCoherenceWarnings,
485
518
  verifyGapsWithoutSummaryWarning,