oxe-cc 0.3.8 → 0.5.0

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 (78) hide show
  1. package/.cursor/commands/oxe-checkpoint.md +2 -0
  2. package/.cursor/commands/oxe-compact.md +2 -0
  3. package/.cursor/commands/oxe-debug.md +2 -0
  4. package/.cursor/commands/oxe-discuss.md +2 -0
  5. package/.cursor/commands/oxe-execute.md +3 -1
  6. package/.cursor/commands/oxe-forensics.md +2 -0
  7. package/.cursor/commands/oxe-help.md +2 -0
  8. package/.cursor/commands/oxe-milestone.md +11 -0
  9. package/.cursor/commands/oxe-next.md +2 -0
  10. package/.cursor/commands/oxe-obs.md +11 -0
  11. package/.cursor/commands/oxe-plan-agent.md +2 -0
  12. package/.cursor/commands/oxe-plan.md +2 -0
  13. package/.cursor/commands/oxe-quick.md +3 -1
  14. package/.cursor/commands/oxe-research.md +2 -0
  15. package/.cursor/commands/oxe-review-pr.md +2 -0
  16. package/.cursor/commands/oxe-route.md +2 -0
  17. package/.cursor/commands/oxe-scan.md +2 -0
  18. package/.cursor/commands/oxe-spec.md +3 -1
  19. package/.cursor/commands/oxe-ui-review.md +2 -0
  20. package/.cursor/commands/oxe-ui-spec.md +2 -0
  21. package/.cursor/commands/oxe-update.md +2 -0
  22. package/.cursor/commands/oxe-validate-gaps.md +2 -0
  23. package/.cursor/commands/oxe-verify.md +2 -0
  24. package/.cursor/commands/oxe-workstream.md +11 -0
  25. package/.github/prompts/oxe-execute.prompt.md +12 -12
  26. package/.github/prompts/oxe-milestone.prompt.md +12 -0
  27. package/.github/prompts/oxe-obs.prompt.md +12 -0
  28. package/.github/prompts/oxe-quick.prompt.md +12 -12
  29. package/.github/prompts/oxe-spec.prompt.md +2 -2
  30. package/.github/prompts/oxe-workstream.prompt.md +12 -0
  31. package/README.md +205 -442
  32. package/bin/banner.txt +1 -1
  33. package/bin/lib/oxe-plugins.cjs +226 -0
  34. package/bin/lib/oxe-project-health.cjs +97 -1
  35. package/bin/lib/oxe-security.cjs +225 -0
  36. package/bin/oxe-cc.js +29 -0
  37. package/commands/oxe/execute.md +16 -16
  38. package/commands/oxe/milestone.md +16 -0
  39. package/commands/oxe/obs.md +16 -0
  40. package/commands/oxe/quick.md +16 -16
  41. package/commands/oxe/spec.md +2 -2
  42. package/commands/oxe/workstream.md +16 -0
  43. package/lib/sdk/index.cjs +284 -0
  44. package/lib/sdk/index.d.ts +148 -1
  45. package/oxe/personas/README.md +39 -0
  46. package/oxe/personas/architect.md +37 -0
  47. package/oxe/personas/db-specialist.md +36 -0
  48. package/oxe/personas/debugger.md +38 -0
  49. package/oxe/personas/executor.md +38 -0
  50. package/oxe/personas/planner.md +36 -0
  51. package/oxe/personas/researcher.md +35 -0
  52. package/oxe/personas/ui-specialist.md +36 -0
  53. package/oxe/personas/verifier.md +39 -0
  54. package/oxe/templates/CONFIG.md +58 -4
  55. package/oxe/templates/DISCUSS.template.md +44 -0
  56. package/oxe/templates/MEMORY.template.md +49 -0
  57. package/oxe/templates/MILESTONES.template.md +17 -0
  58. package/oxe/templates/OBSERVATIONS.template.md +18 -0
  59. package/oxe/templates/PLUGINS.md +101 -0
  60. package/oxe/templates/ROADMAP.template.md +44 -0
  61. package/oxe/templates/STATE.md +29 -2
  62. package/oxe/templates/config.template.json +5 -0
  63. package/oxe/templates/plan-agent-messages-README.template.md +1 -1
  64. package/oxe/templates/quick-agents.template.json +24 -0
  65. package/oxe/workflows/discuss.md +48 -5
  66. package/oxe/workflows/execute.md +111 -28
  67. package/oxe/workflows/help.md +80 -15
  68. package/oxe/workflows/milestone.md +96 -0
  69. package/oxe/workflows/obs.md +95 -0
  70. package/oxe/workflows/plan-agent.md +31 -1
  71. package/oxe/workflows/plan.md +5 -1
  72. package/oxe/workflows/quick.md +120 -10
  73. package/oxe/workflows/references/plan-agent-chat-protocol.md +14 -0
  74. package/oxe/workflows/scan.md +9 -1
  75. package/oxe/workflows/spec.md +172 -23
  76. package/oxe/workflows/verify.md +77 -17
  77. package/oxe/workflows/workstream.md +96 -0
  78. package/package.json +3 -2
@@ -12,7 +12,7 @@
12
12
  ## Último compact (codebase + RESUME) (opcional)
13
13
 
14
14
  - **Data:** (**YYYY-MM-DD** — preenchido por **`/oxe-compact`**: refresh incremental dos mapas em `.oxe/codebase/` + `CODEBASE-DELTA.md` + `RESUME.md`)
15
- - **Notas:** (opcional; ex.: só STRUCTURE e TESTING)
15
+ - **Notas:** (opcional; ex.: "só STRUCTURE e TESTING")
16
16
 
17
17
  ## Contexto do plano / quick (opcional)
18
18
 
@@ -37,9 +37,36 @@ _(O agente pode preencher após cada onda.)_
37
37
  - [ ] Onda N — implementação concluída
38
38
  - [ ] Onda N — **Verificar** executado ou agendado
39
39
 
40
+ ## Milestone ativo (opcional — `/oxe-milestone`)
41
+
42
+ - **ID:** (ex.: M-01 — ou — se não houver milestone ativo)
43
+ - **Nome:** (ex.: v1.0 — autenticação básica)
44
+ - **Iniciado:** (YYYY-MM-DD)
45
+ - **Progresso:** (N/M critérios verificados)
46
+
47
+ ## Último milestone encerrado (opcional)
48
+
49
+ - **ID:** —
50
+ - **Data de encerramento:** —
51
+ - **Artefatos:** `.oxe/milestones/M-NN/`
52
+
53
+ ## Workstreams ativos (opcional — `/oxe-workstream`)
54
+
55
+ - (nenhum ou lista de nomes: ex.: `feature-billing`, `bugfix-auth`)
56
+
57
+ ## Workstream ativo (contexto atual)
58
+
59
+ - (nome do workstream ativo — ou — para pipeline principal)
60
+
61
+ ## Memory (sidecars de sessão) (opcional — `/oxe-memory`)
62
+
63
+ Sidecars de memória persistente por agente/sessão. Armazenados em `.oxe/memory/`.
64
+
65
+ - (nenhum ou lista: ex.: `architect-2025-01-15.md`, `researcher-auth-2025-01-14.md`)
66
+
40
67
  ## Decisões persistentes
41
68
 
42
- - (bullet: decisão → data)
69
+ - (bullet: D-NN: decisão → data)
43
70
 
44
71
  ## Próximo passo sugerido
45
72
 
@@ -1,10 +1,15 @@
1
1
  {
2
+ "_comment": "OXE config — copie para .oxe/config.json no seu projeto. Remova esta linha.",
3
+ "profile": "balanced",
2
4
  "discuss_before_plan": false,
5
+ "verification_depth": "standard",
3
6
  "after_verify_suggest_pr": true,
4
7
  "after_verify_draft_commit": true,
8
+ "after_verify_suggest_uat": false,
5
9
  "default_verify_command": "",
6
10
  "scan_max_age_days": 0,
7
11
  "compact_max_age_days": 0,
12
+ "scale_adaptive": true,
8
13
  "scan_focus_globs": [],
9
14
  "scan_ignore_globs": [],
10
15
  "spec_required_sections": [],
@@ -6,4 +6,4 @@ Esta pasta guarda handoffs entre agentes do blueprint **`.oxe/plan-agents.json`*
6
6
  - O campo **`runId`** no frontmatter deve coincidir com o de `plan-agents.json`
7
7
  - Não editar mensagens depois de criadas; invalidação do blueprint (`lifecycle.invalidated`) encerra novos envios
8
8
 
9
- Gerado por **`/oxe-plan-agent`**. Limpar ou arquivar manualmente ao iniciar um blueprint novo se desejar histórico isolado.
9
+ Gerado por **`/oxe-plan-agent`**. Após **`/oxe-verify`** com sucesso e blueprint **`closed`**, o fluxo OXE **recomenda** mover este conteúdo para **`.oxe/archive/plan-agent-runs/<runId>/messages/`** (ver **`oxe/workflows/references/plan-agent-chat-protocol.md`**). Antes de um **replan** com novo `runId`, arquivar o run anterior se quiser preservar handoffs.
@@ -0,0 +1,24 @@
1
+ {
2
+ "oxeQuickAgentsSchema": 1,
3
+ "quickId": "quick-YYYY-MM-DD-substituir-por-6hex",
4
+ "quickRef": ".oxe/QUICK.md",
5
+ "status": "active",
6
+ "since": "YYYY-MM-DDTHH:mm:ssZ",
7
+ "_comment": "Agentes derivados dos passos do QUICK.md. Plan-Driven Dynamic Agents (lean): criados para esta demanda, invalidados ao promover para spec/plan ou iniciar novo quick.",
8
+ "agents": [
9
+ {
10
+ "id": "agent-dominio-a",
11
+ "role": "Papel específico para ESTA demanda (não genérico)",
12
+ "persona": "executor",
13
+ "steps": [1, 2, 3],
14
+ "focus": "Uma frase sobre o foco deste agente nos steps atribuídos"
15
+ },
16
+ {
17
+ "id": "agent-dominio-b",
18
+ "role": "Papel específico para ESTA demanda (não genérico)",
19
+ "persona": "executor",
20
+ "steps": [4, 5],
21
+ "focus": "Uma frase sobre o foco deste agente nos steps atribuídos"
22
+ }
23
+ ]
24
+ }
@@ -8,10 +8,22 @@ Usar quando: SPEC existe mas há ambiguidade, risco técnico, ou `discuss_before
8
8
 
9
9
  <context>
10
10
  - Ler `.oxe/SPEC.md`, `.oxe/STATE.md` e trechos relevantes de `.oxe/codebase/OVERVIEW.md` / `STACK.md`.
11
+ - Se existir **`.oxe/OBSERVATIONS.md`** com entradas `pendente` de impacto `spec`, `plan` ou `all`, carregá-las como contexto adicional para as perguntas e decisões; marcá-las `incorporada → discuss (data)` após uso.
11
12
  - Se existir **`.oxe/NOTES.md`**, rever bullets em aberto: promover para perguntas/decisões em `DISCUSS.md` ou marcar como *descartado* / *adiado* com uma linha de justificativa.
12
13
  - Se `.oxe/config.json` existir e `discuss_before_plan` for `true`, tratar este passo como **recomendado** antes de `oxe:plan`.
13
14
  </context>
14
15
 
16
+ <decision_ids>
17
+ Toda decisão fechada em `DISCUSS.md` recebe um **ID estável** com prefixo `D-` e número sequencial: **D-01**, **D-02**, …
18
+
19
+ Regras:
20
+ 1. O ID é atribuído **quando a decisão é registrada** (não quando a pergunta é feita).
21
+ 2. IDs não são reutilizados — se uma decisão for revertida, registrar a reversão com novo ID (`D-05: Revertendo D-02 — novo comportamento X`) e marcar D-02 como `*(revertida por D-05)*`.
22
+ 3. `PLAN.md` deve referenciar os IDs nas tarefas (campo **Decisão vinculada:** `D-01, D-03`).
23
+ 4. `VERIFY.md` deve cruzar os IDs na seção **Fidelidade de decisões**.
24
+ 5. O ID é o vínculo de rastreabilidade discuss → plan → verify.
25
+ </decision_ids>
26
+
15
27
  <process>
16
28
  1. Se não existir `.oxe/SPEC.md`, pedir **spec** primeiro (ou **quick** se for trabalho trivial).
17
29
  2. Se existir **`.oxe/NOTES.md`**, rever bullets em aberto e decidir o que entra em **Perguntas** ou **Decisões** (ou marcar *descartado* / *adiado* com justificativa curta).
@@ -19,16 +31,47 @@ Usar quando: SPEC existe mas há ambiguidade, risco técnico, ou `discuss_before
19
31
  4. Criar ou atualizar **`.oxe/DISCUSS.md`** com estrutura fixa:
20
32
  - **Contexto** — 2–4 bullets do que já se sabe da SPEC.
21
33
  - **Perguntas** — numeradas; para cada uma: resposta (se o usuário já respondeu na mensagem) ou `_(pendente)_`.
22
- - **Decisões** — bullets com decisão + data (só as já fechadas).
23
- - **Implicações para o plano** — bullets (ex.: migrations necessárias”, feature flag).
34
+ - **Decisões** — tabela com colunas **ID** / **Decisão** / **Data** / **Impacto no plano** (só as já fechadas). Atribuir IDs **D-01**, **D-02**, … em sequência.
35
+ - **Implicações para o plano** — bullets (ex.: "migrations necessárias", "feature flag").
24
36
  5. Se ainda houver perguntas **pendentes** críticas, listá-las no chat (máx. 7) e parar até resposta; depois atualizar DISCUSS.md.
25
- 6. Atualizar **`.oxe/STATE.md`**: fase `discuss_complete`, próximo passo `oxe:plan`.
26
- 7. Resumo no chat em ≤8 linhas.
37
+ 6. Atualizar **`.oxe/STATE.md`**: fase `discuss_complete`, próximo passo `oxe:plan`. Registrar os IDs de decisão na seção **Decisões persistentes** do STATE (ex.: `D-01: escolheu JWT — 2025-01-15`).
38
+ 7. Resumo no chat em ≤8 linhas, listando decisões com seus IDs.
27
39
  </process>
28
40
 
41
+ <discuss_md_format>
42
+ ```markdown
43
+ ---
44
+ oxe_doc: discuss
45
+ status: (open | closed)
46
+ updated: YYYY-MM-DD
47
+ ---
48
+
49
+ # OXE — Discuss
50
+
51
+ ## Contexto
52
+ - …
53
+
54
+ ## Perguntas
55
+
56
+ 1. **[pergunta]**
57
+ - Resposta: … / _(pendente)_
58
+
59
+ ## Decisões
60
+
61
+ | ID | Decisão | Data | Impacto no plano |
62
+ |------|----------------------------------|------------|---------------------------------------|
63
+ | D-01 | (decisão clara e acionável) | YYYY-MM-DD | (como afeta tarefas / arquivos) |
64
+ | D-02 | … | … | … |
65
+
66
+ ## Implicações para o plano
67
+ - …
68
+ ```
69
+ </discuss_md_format>
70
+
29
71
  <success_criteria>
30
72
  - [ ] `.oxe/DISCUSS.md` existe com perguntas e decisões alinhadas à SPEC.
73
+ - [ ] Cada decisão fechada tem ID único **D-NN** na tabela de Decisões.
31
74
  - [ ] Se existir `.oxe/NOTES.md`, as entradas relevantes foram tratadas (promovidas, descartadas ou adiadas com nota).
32
75
  - [ ] Nenhuma ambiguidade crítica ficou sem registro (como pendente ou suposição explícita na SPEC).
33
- - [ ] `STATE.md` indica próximo passo **plan**.
76
+ - [ ] `STATE.md` indica próximo passo **plan** e lista IDs de decisão em **Decisões persistentes**.
34
77
  </success_criteria>
@@ -1,47 +1,130 @@
1
1
  # OXE — Workflow: execute
2
2
 
3
3
  <objective>
4
- Guiar a **implementação por ondas** com base em **`.oxe/PLAN.md`**, atualizando **`.oxe/STATE.md`** com progresso (tarefas Tn). Não substitui o editor: estrutura o trabalho e confirma pré-requisitos antes de cada onda.
4
+ Guiar a **implementação** de um plano OXE com dois modos possíveis:
5
5
 
6
- Se existir apenas **`.oxe/QUICK.md`** (fluxo quick), tratar os **Passos** numerados como lista única onda 1” em vez de tarefas T1…Tn.
6
+ **Modo Solo (padrão):** seguir `.oxe/PLAN.md` onda a onda sem `plan-agents.json`. O agente implementa diretamente cada tarefa Tn da onda atual, roda a verificação e avança. Não exige nenhum artefato além do PLAN.md.
7
+
8
+ **Modo com Agentes (extensão):** quando existe `.oxe/plan-agents.json` válido (schema 2, lifecycle ativo, runId alinhado ao STATE), adotar roles e personas por agente conforme o blueprint.
9
+
10
+ **Seleção de execução (redução de requisições):** quando o plano tem 2+ ondas, o usuário escolhe entre Completo (1 sessão), Por onda (N sessões) ou Por tarefa (N tarefas). A escolha é feita **uma vez** no início.
11
+
12
+ Se existir apenas **`.oxe/QUICK.md`**: tratar passos numerados como onda única (modo sempre Completo).
7
13
  </objective>
8
14
 
15
+ <modo_solo>
16
+ ## Modo Solo — Execução direta do PLAN.md
17
+
18
+ O modo padrão. Funciona sem `plan-agents.json`. O agente lê PLAN.md, segue as tarefas Tn na ordem das ondas, implementa e verifica.
19
+
20
+ **Checklist de onda (solo):**
21
+ ```markdown
22
+ ## Checklist — Onda N (OXE Solo)
23
+ - [ ] Dependências da onda conferidas (Tk de ondas anteriores concluídos)
24
+ - [ ] Tarefas da onda implementadas
25
+ - [ ] Comando **Verificar** de cada tarefa executado (ou agendado)
26
+ - [ ] STATE.md atualizado com progresso
27
+ ```
28
+
29
+ **Ao fechar todas as ondas:** sugerir `/oxe-verify` para validação completa contra SPEC.
30
+ </modo_solo>
31
+
32
+ <execution_mode_selection>
33
+ ## Seleção de Modo de Execução
34
+
35
+ **Quando aplicar:** ao início do execute, se PLAN.md tiver **2 ou mais ondas**. Apresentar UMA VEZ e armazenar a escolha em STATE.md para não perguntar novamente nas rodadas seguintes.
36
+
37
+ **Não aplicar** quando: QUICK.md (sempre Completo), PLAN.md com 1 onda (executar diretamente).
38
+
39
+ **Apresentar ao usuário:**
40
+
41
+ ```
42
+ Este plano tem [N] tarefas em [X] ondas. Como quer executar?
43
+
44
+ A) Completo → todas as [X] ondas nesta sessão
45
+ ✓ 1 requisição/sessão (ideal: Copilot, Claude, Gemini)
46
+ ✓ O agente vê todo o contexto e pode otimizar entre tarefas
47
+ ⚠ Verificação inline — sem pausa entre ondas
48
+
49
+ B) Por onda → onda 1/[X] agora, você verifica e chama de novo para continuar
50
+ ✓ Validação entre ondas reduz risco de retrabalho
51
+ ✗ [X] sessões (uma por onda)
52
+
53
+ C) Por tarefa → T1 agora, você confirma, depois T2...
54
+ ✓ Máximo controle
55
+ ✗ [N] sessões (uma por tarefa)
56
+ ```
57
+
58
+ **Modo A — Completo:**
59
+ - Executar onda 1 → verificar → onda 2 → verificar → … → última onda
60
+ - A cada onda: executar o comando `**Verificar:**` de cada tarefa inline
61
+ - Atualizar STATE.md progressivamente (não esperar o final)
62
+ - Ao terminar: suário recebe sumário completo + sugestão de `/oxe-verify`
63
+
64
+ **Modo B — Por onda (padrão quando sem escolha):**
65
+ - Executar onda atual → apresentar checklist → parar
66
+ - Informar: "Onda N/X concluída. Chame `/oxe-execute` novamente para a Onda N+1."
67
+
68
+ **Modo C — Por tarefa:**
69
+ - Executar próxima tarefa pendente → parar
70
+ - Informar: "T[n] concluída. Chame `/oxe-execute` novamente para T[n+1]."
71
+
72
+ **Persistir escolha:** registrar em STATE.md: `execute_mode: completo | por_onda | por_tarefa`. Se STATE já tiver o campo, não perguntar novamente — usar o modo armazenado.
73
+ </execution_mode_selection>
74
+
9
75
  <context>
10
- - **Blueprint plan-agent (schema 2):** adoptar **`role` / `scope`** de **`.oxe/plan-agents.json`** quando **todas** se verificam:
11
- 1. `lifecycle.status` ∈ `{ pending_execute, executing }` (não usar se `closed` ou `invalidated`).
12
- 2. **`runId`** no JSON coincide com **`run_id`** na secção **Blueprint de agentes (sessão)** do **`.oxe/STATE.md`** (se `STATE` não tiver secção, tratar como mismatch e **não** usar persona do blueprint até alinhar ou rerodar **`/oxe-plan-agent`**).
13
- 3. O pedido do utilizador mapeia para pelo menos uma tarefa **`Tn`** presente no **`.oxe/PLAN.md`** (ou explícita na onda em curso). Se o pedido for **fora** do conjunto de tarefas do plano: responder **sem** persona do blueprint; sugerir **`/oxe-plan`**, **`/oxe-plan-agent`** ou **`/oxe-quick`**; só actualizar `lifecycle` para `invalidated` com `invalidatedBy: out_of_scope` se o utilizador **confirmar** explicitamente.
14
- - **Transição `pending_execute` `executing`:** na **primeira** mensagem deste workflow que avança uma onda com blueprint válido, actualizar **`plan-agents.json`** `lifecycle: { "status": "executing", "since": "<ISO>" }` e espelhar em **`STATE.md`** (**lifecycle_status** / **run_id**).
15
- - **Protocolo agente → agente:** entre ondas ou agentes dependentes, escrever mensagens em **`.oxe/plan-agent-messages/`** conforme **`oxe/workflows/references/plan-agent-chat-protocol.md`** (ficheiros imutáveis com `runId` no frontmatter). Antes de um agente destinatário trabalhar, ler mensagens dirigidas a esse `id` (ou `broadcast`) com o mesmo `runId`.
16
- - Se existir **`.oxe/plan-agents.json`** e as condições acima se cumprirem, usar o blueprint como **roteiro de execução por agente**: para cada **onda** em `execution.waves`, listar os **agentes** (papel, `scope`, `inputs` sugeridos) e as **`taskIds`** correspondentes no **PLAN.md**; tarefas da mesma onda do PLAN que caem no mesmo agente podem ser feitas no mesmo contexto focado. O **comando Verificar** e as dependências **`Tk`** continuam a vir **só** do `PLAN.md` (fonte de verdade OXE).
17
- - **Schema 1 / legado** (sem `lifecycle`): pode usar o JSON apenas como **roteiro suave** (lista de agentes/ondas), **sem** garantir exclusividade nem protocolo estrito até **`/oxe-plan-agent`** regerar schema 2.
18
- - Se **PLAN.md** não existir mas **QUICK.md** existir, seguir **QUICK.md** neste workflow (passos = trabalho da sessão).
19
- - Se nem PLAN nem QUICK existir, recomendar `oxe:plan` ou `oxe:quick` primeiro.
20
- - **Legado / brownfield:** entregáveis podem ser só documentação (`.md`, diagramas). Exigir pré-requisitos de ambiente (mainframe, IDE VB6) quando a tarefa depender disso — ver **`oxe/workflows/references/legacy-brownfield.md`**.
21
- - **Rotina compact/checkpoint (opcional):** antes de uma onda **experimental** ou refactor que mude muito o layout, **`/oxe-checkpoint`** com slug (ex.: `antes-refactor-modulo-x`) ajuda a retomar. Depois de ondas que mudem **stack** ou **árvore** do projeto, lembrar **`/oxe-compact`** para não deixar `.oxe/codebase/` desatualizado face ao código — **não** substitui o checklist da onda nem o **Verificar** do PLAN.
76
+ **Observações pendentes:** verificar `.oxe/OBSERVATIONS.md` no início de cada onda. Se houver entradas `pendente` com impacto `execute` ou `all`, incorporar no trabalho da onda atual e marcá-las `incorporada → execute (data)`.
77
+
78
+ **Quick-agents (lean PDDA):** se existir **`.oxe/quick-agents.json`** com `status: active` e a execução for baseada em **`QUICK.md`** (não há PLAN.md), adotar o `role` e `persona` de cada agente para os `steps[]` atribuídos. Ao concluir todos os steps, marcar `quick-agents.json` → `status: done` e sugerir `/oxe-verify`.
79
+
80
+ **Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de **`.oxe/plan-agents.json`** SOMENTE quando:
81
+ 1. `lifecycle.status` `{ pending_execute, executing }` (não usar se `closed` ou `invalidated`).
82
+ 2. **`runId`** no JSON coincide com **`run_id`** no STATE.md (secção Blueprint de agentes).
83
+ 3. O pedido mapeia para pelo menos uma tarefa **`Tn`** no **`PLAN.md`**.
84
+
85
+ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent` para novo blueprint.
86
+
87
+ **Transição `pending_execute` `executing`:** na primeira onda com blueprint válido, atualizar `plan-agents.json` `lifecycle: { "status": "executing", "since": "<ISO>" }` e espelhar em STATE.md.
88
+
89
+ **Protocolo agente → agente (blueprint):** mensagens em `.oxe/plan-agent-messages/` conforme `oxe/workflows/references/plan-agent-chat-protocol.md`.
90
+
91
+ **Se PLAN.md não existir mas QUICK.md existir:** seguir QUICK.md — passos = onda única, sempre Modo Completo.
92
+
93
+ **Se nem PLAN nem QUICK existir:** recomendar `oxe:plan` ou `oxe:quick` primeiro.
94
+
95
+ **Legado / brownfield:** entregáveis podem ser só documentação. Ver **`oxe/workflows/references/legacy-brownfield.md`**.
96
+
97
+ **Rotina compact/checkpoint:** antes de onda experimental ou refactor grande, `/oxe-checkpoint` com slug ajuda a retomar. Após ondas que mudem stack ou árvore, lembrar `/oxe-compact`.
22
98
  </context>
23
99
 
24
100
  <process>
25
- 1. Ler `.oxe/STATE.md`, `PLAN.md` (se existir) e `QUICK.md` (se PLAN não existir).
26
- 2. Identificar **onda atual** (ou próxima): no PLAN, todas as tarefas da mesma **Onda** sem dependências pendentes; no QUICK, os passos ainda não marcados como feitos (se STATE não indicar, assumir desde o início).
27
- 3. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** associado (do PLAN ou do QUICK).
28
- 4. Incluir no final da mensagem (ou pedir atualização no `STATE.md`) um bloco **Checklist da onda** em Markdown, para o usuário ou o agente marcar:
101
+ 1. Ler **`.oxe/STATE.md`**, **`PLAN.md`** (se existir) e **`QUICK.md`** (se PLAN não existir).
102
+ 2. Verificar **`.oxe/OBSERVATIONS.md`** incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
103
+ 3. **Seleção de modo** (apenas se PLAN.md com 2+ ondas e `execute_mode` não definido em STATE): apresentar opções A/B/C e aguardar escolha; registrar em STATE.md.
104
+ 4. Identificar **onda ou bloco atual**: no PLAN, todas as tarefas da mesma onda sem dependências pendentes; no QUICK, passos ainda não marcados como feitos.
105
+ 5. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
106
+ 6. **Implementar** conforme o modo escolhido:
107
+ - **Modo Completo:** executar todas as ondas em sequência com verificação inline entre ondas; sumarizar ao final.
108
+ - **Modo Por onda:** executar onda atual, apresentar checklist, parar.
109
+ - **Modo Por tarefa:** executar próxima tarefa pendente, parar.
110
+ 7. Após cada onda concluída, incluir checklist:
29
111
  ```markdown
30
112
  ## Checklist — Onda N (OXE)
31
- - [ ] Pré-requisitos da onda conferidos (dependências T* atendidas)
113
+ - [ ] Pré-requisitos da onda conferidos (dependências Tk atendidas)
32
114
  - [ ] Implementação da onda concluída
33
- - [ ] Comando **Verificar** desta onda executado (ou agendado)
115
+ - [ ] Comando Verificar de cada tarefa executado (ou agendado)
34
116
  ```
35
- 5. Após o usuário confirmar que a onda foi implementada (ou após você aplicar as mudanças), atualizar **`.oxe/STATE.md`**:
36
- - Marcar no checklist acima (ou em bullets) **Última onda executada**, **Tarefas concluídas** (Tn ou números dos passos).
37
- - Próximo passo: continuar próxima onda, `oxe:verify` (se todas as ondas terminadas), ou `oxe:plan` se o plano ficou obsoleto.
38
- 6. Se o PLAN tiver várias ondas, repetir execute por onda sob pedido; não apagar tarefas do PLAN.
117
+ 8. Atualizar **`.oxe/STATE.md`**: última onda executada, tarefas concluídas (Tn), próximo passo.
118
+ 9. Marcar OBS incorporadas como `incorporada execute (data)` em `.oxe/OBSERVATIONS.md`.
39
119
  </process>
40
120
 
41
121
  <success_criteria>
42
- - [ ] Onda ou bloco de passos está explícito antes de implementar”.
43
- - [ ] Checklist da onda foi apresentado ou refletido no `STATE.md`.
44
- - [ ] `STATE.md` registra progresso (Tn ou passos) e próximo passo.
122
+ - [ ] Modo de execução foi selecionado (ou herdado do STATE) antes de implementar.
123
+ - [ ] Onda ou bloco de passos explicitado antes de "implementar".
124
+ - [ ] Checklist da onda apresentado ou refletido no STATE.md.
125
+ - [ ] STATE.md registra progresso (Tn ou passos) e próximo passo.
45
126
  - [ ] Verificação alinhada ao bloco **Verificar** do PLAN ou QUICK.
46
- - [ ] Com blueprint schema 2 válido: não adoptar persona do JSON para pedidos fora das `Tn`; `runId` alinhado entre JSON e STATE; handoffs escritos quando o protocolo exige (**`references/plan-agent-chat-protocol.md`**).
127
+ - [ ] OBS pendentes de impacto `execute` incorporadas no início da onda.
128
+ - [ ] Com quick-agents ativos: cada agente trabalha só em seus `steps[]`; ao concluir, `quick-agents.json` → `done`.
129
+ - [ ] Com blueprint schema 2 válido: não adotar persona para pedidos fora das `Tn`; `runId` alinhado entre JSON e STATE; handoffs escritos quando protocolo exige.
47
130
  </success_criteria>
@@ -15,7 +15,7 @@ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout
15
15
 
16
16
  ### Cursor
17
17
 
18
- Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-plan-agent`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/oxe-update`, `/oxe-help`, `/oxe-forensics`, `/oxe-debug`, `/oxe-route`, `/oxe-research`, `/oxe-validate-gaps`, `/oxe-compact`, `/oxe-checkpoint`, `/oxe-ui-spec`, `/oxe-ui-review` (instalados em `~/.cursor/commands/` pelo `oxe-cc` após `npm run sync:cursor` no pacote ou cópia equivalente). **Review de PR:** no Cursor não há slash dedicado — peça em linguagem natural seguindo `oxe/workflows/review-pr.md` (ou `.oxe/workflows/review-pr.md`) em contexto.
18
+ Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-plan-agent`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/oxe-obs`, `/oxe-update`, `/oxe-help`, `/oxe-forensics`, `/oxe-debug`, `/oxe-route`, `/oxe-research`, `/oxe-validate-gaps`, `/oxe-compact`, `/oxe-checkpoint`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-milestone`, `/oxe-workstream` (instalados em `~/.cursor/commands/` pelo `oxe-cc` após `npm run sync:cursor` no pacote ou cópia equivalente). **Review de PR:** no Cursor não há slash dedicado — peça em linguagem natural seguindo `oxe/workflows/review-pr.md` (ou `.oxe/workflows/review-pr.md`) em contexto.
19
19
 
20
20
  ### GitHub Copilot (VS Code)
21
21
 
@@ -49,17 +49,18 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
49
49
 
50
50
  ## Fluxo completo
51
51
 
52
+ 0. **obs** *(qualquer momento)* — `/oxe-obs` registra uma observação contextual em `.oxe/OBSERVATIONS.md`; incorporada automaticamente no próximo spec/plan/execute sem re-explicar (ver seção **Observações** abaixo).
52
53
  1. **scan** — após clonar ou quando o repositório mudar muito. Repositórios **legado** (COBOL, JCL, copybooks, VB6, SQL procedures): o passo **scan** aplica `oxe/workflows/references/legacy-brownfield.md` quando esses sinais existirem — preencha `TESTING.md` com honestidade (sem `npm test` fictício) e use `scan_focus_globs` em `.oxe/config.json` (ver `oxe/templates/CONFIG.md`).
53
- 2. **spec** — descrever o que se quer (critérios com IDs **A1**, **A2**…).
54
- 2b. **research** (opcional) — notas datadas em `.oxe/research/` + índice `.oxe/RESEARCH.md`; spikes, mapa de sistema, engenharia reversa, hipóteses de modernização, ou qualquer exploração antes do plano (ver `research.md`).
55
- 3. **discuss** (opcional) — decisões antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`.
56
- 4. **plan** — plano executável + **Verificar** por tarefa, ligado aos critérios da SPEC.
57
- 4b. **plan-agent** (opcional) — igual ao **plan** + **`.oxe/plan-agents.json`** (schema **2**: `runId`, `lifecycle`) e pasta **`.oxe/plan-agent-messages/`** para handoffs entre agentes do blueprint (**`oxe/workflows/references/plan-agent-chat-protocol.md`**). Os papéis (`role` / `scope`) são **exclusivos** da trilha **PLAN + `/oxe-execute`** com esse `runId`; **`/oxe-quick`** invalida o blueprint (`lifecycle.invalidated`).
58
- 5. **execute** (opcional) onda a onda com base no PLAN (ou passos do QUICK); com blueprint válido, seguir protocolo de mensagens entre ondas/agentes dependentes.
54
+ 2. **spec** — fluxo em **5 fases**: perguntas (máx 3 rodadas) pesquisa (opcional) → requisitos R-ID (v1/v2/fora) → roteiro (`.oxe/ROADMAP.md`) → aprovação → instrui plan ou plan-agent.
55
+ 2b. **research** (opcional, pode ser proposto pela Fase 2 do spec) — notas datadas em `.oxe/research/` + índice `.oxe/RESEARCH.md`; spikes, mapa de sistema, engenharia reversa, modernização.
56
+ 3. **discuss** (opcional) — decisões com IDs D-NN antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`. Incorpora OBS pendentes de impacto spec/plan.
57
+ 4. **plan** — plano executável + **Verificar** por tarefa, ligado aos critérios A* da SPEC. Incorpora OBS pendentes de impacto plan.
58
+ 4b. **plan-agent** (opcional) — igual ao **plan** + **`.oxe/plan-agents.json`** (schema **2**: `runId` **novo** por demanda, `lifecycle`). Agentes criados especificamente para ESTE plano sem reuso entre demandas. `/oxe-quick` invalida o blueprint.
59
+ 5. **execute** — seleção de modo ao iniciar: **A) Completo** (1 sessão/requisição), **B) Por onda** (N sessões), **C) Por tarefa** (controle máximo). Incorpora OBS pendentes de impacto execute.
59
60
  6. Implementar mudanças no agente/editor.
60
- 7. **verify** — validar tarefas **e** critérios SPEC antes de merge/PR.
61
- 7b. **validate-gaps** (opcional) — após verify, auditoria de cobertura em `.oxe/VALIDATION-GAPS.md` (gaps de teste/evidência; sugestões de tarefas em texto; ver `validate-gaps.md`).
62
- 8. **next** — retomar trabalho; no terminal: **`npx oxe-cc status`** sugere um único próximo passo (mais leve que **`doctor`**, que valida também workflows do pacote e regras estritas).
61
+ 7. **verify** — 4 camadas: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, UAT checklist.
62
+ 7b. **validate-gaps** (opcional) — após verify, auditoria de cobertura em `.oxe/VALIDATION-GAPS.md`.
63
+ 8. **next** — retomar trabalho; no terminal: **`npx oxe-cc status`** sugere um único próximo passo.
63
64
 
64
65
  **Recuperação e meta (mesma trilha, outra camada):**
65
66
 
@@ -77,9 +78,21 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
77
78
  - **`/oxe-ui-spec`** — após **spec**, contrato `.oxe/UI-SPEC.md` antes ou para alimentar o **plan** (ver `ui-spec.md`).
78
79
  - **`/oxe-ui-review`** — após implementação UI, auditoria `.oxe/UI-REVIEW.md` antes ou como entrada para **verify** (ver `ui-review.md`).
79
80
 
80
- ## Modo rápido (quick)
81
+ ## Modo rápido (quick) com Plan-Driven Dynamic Agents lean
81
82
 
82
- - **`/oxe-quick`**: cria `.oxe/QUICK.md` (passos curtos + verificar) sem SPEC/PLAN longos. **Perfil fast:** objetivo numa frase, ≤10 passos ver secção **Perfil fast** em `quick.md`. **Promova** para spec/plan se o trabalho crescer (muitos arquivos, API pública, segurança) — mesmos gatilhos no workflow. Se existir **`.oxe/plan-agents.json`** (schema 2) ainda activo, o quick **invalida** o blueprint — não reutilizar esses agentes neste fluxo; para novo roteiro com agentes, **`/oxe-plan-agent`**.
83
+ - **`/oxe-quick`**: cria `.oxe/QUICK.md` (passos curtos + verificar) sem SPEC/PLAN longos, integrando o conceito de **Plan-Driven Dynamic Agents (lean)**:
84
+
85
+ | Princípio | Como se manifesta no Quick |
86
+ |-----------|---------------------------|
87
+ | **Spec-Driven Design** | `## Objetivo` é a minispec — restringe o escopo de todos os agentes e passos |
88
+ | **Spec-Driven Development** | `## Passos` é o mini-plano — os agentes são derivados dos passos, não os definem |
89
+ | **Plan-Driven Dynamic Agents** | Agentes criados **a partir dos passos**, para **esta demanda**, invalidados ao terminar |
90
+
91
+ **Quando ativar agentes:** tarefa com 2+ domínios distintos (ex.: backend + frontend), 5+ passos que agrupam naturalmente, ou flag `--agents`. Máx. 3 agentes — se precisar de mais, promover para `/oxe-plan-agent`.
92
+
93
+ **Artefatos com agentes:** além de `.oxe/QUICK.md` (com seção `## Agentes dinâmicos`), cria **`.oxe/quick-agents.json`** (schema lean; `status: active` → `done` após verify). Sem handoff de mensagens entre agentes (lean — sem `.oxe/plan-agent-messages/`).
94
+
95
+ **Perfil fast (sem agentes):** objetivo numa frase, ≤10 passos, verificação. **Promova** para spec/plan se o trabalho crescer (muitos arquivos, API pública, segurança, ou > 3 domínios). Se existir **`.oxe/plan-agents.json`** (schema 2) ainda activo, o quick **invalida** o blueprint — não reutilizar esses agentes neste fluxo; para novo roteiro com agentes, **`/oxe-plan-agent`**.
83
96
 
84
97
  ## CLI (terminal)
85
98
 
@@ -114,18 +127,69 @@ Um pedido → **um** destino (sem gerar contrato). O agente aplica `route.md` ou
114
127
  | O que é OXE / lista de passos | `/oxe-help` |
115
128
  | Dúvida entre dois comandos sem contexto claro | `/oxe-route` |
116
129
  | Pesquisa técnica, spike, mapa de sistema grande, engenharia reversa, modernização antes do plano | `/oxe-research` |
130
+ | Quero registrar uma observação (restrição, descoberta, preferência) durante ou fora de execução | `/oxe-obs [texto]` |
131
+ | Quero executar todo o plano de uma vez (1 sessão) | `/oxe-execute` → escolher opção A (Completo) |
132
+ | Quero executar onda por onda com verificação entre ondas | `/oxe-execute` → escolher opção B (Por onda) |
117
133
  | Gaps de cobertura de verificação / Nyquist-lite após verify | `/oxe-validate-gaps` |
118
134
  | Mapa OXE desatualizado / quero sincronizar codebase com o código sem scan completo | `/oxe-compact` |
119
135
  | Quero gravar um marco nomeado da sessão (antes de experimento grande) | `/oxe-checkpoint` + slug |
120
136
  | Plano com **blueprint de agentes** (JSON + mesmo PLAN.md) / subagentes por onda | `/oxe-plan-agent` |
137
+ | Criar marco de entrega / versão / milestone | `/oxe-milestone new [nome]` |
138
+ | Verificar se o milestone está pronto para fechar | `/oxe-milestone audit` |
139
+ | Trabalho paralelo em trilhas separadas / feature branch OXE | `/oxe-workstream new <nome>` |
140
+ | Alternar entre trilhas de desenvolvimento | `/oxe-workstream switch <nome>` |
141
+
142
+ ## Observações Contextuais (`/oxe-obs`)
143
+
144
+ **Princípio:** *observation-without-re-explaining* — registre uma observação em 1 request; ela é incorporada automaticamente nos workflows seguintes sem precisar re-explicar.
145
+
146
+ ```
147
+ /oxe-obs JWT expiration deve ser via env var JWT_EXPIRES_IN, não hardcoded
148
+ ```
149
+
150
+ - **Quando usar:** durante execute (descoberta técnica), após scan (restrição identificada), após spec (ajuste de escopo), a qualquer momento
151
+ - **Impacto:** classificado automaticamente em `spec` | `plan` | `execute` | `all`
152
+ - **Auto-incorporação:** o próximo `/oxe-spec` (Fase 3), `/oxe-plan`, `/oxe-discuss` ou `/oxe-execute` lê `.oxe/OBSERVATIONS.md` e aplica observações pendentes sem prompt extra
153
+ - **Urgência execute:** se chamado durante `executing` com impacto execute, oferece pausar onda atual ou continuar
121
154
 
122
155
  ## Notas pré-trilha (opcional)
123
156
 
124
157
  - Ficheiro **`.oxe/NOTES.md`**: bullets `YYYY-MM-DD — …` como fila leve (**não** substitui SPEC). Em **`/oxe-discuss`**, **`/oxe-plan`** e **`/oxe-plan-agent`**, consumir ou marcar descartado/adiado.
125
158
 
159
+ ## Milestones e Workstreams
160
+
161
+ - **`/oxe-milestone new [nome]`** — iniciar marco de entrega (M-01, M-02, …); registrado em `.oxe/MILESTONES.md`.
162
+ - **`/oxe-milestone complete`** — fechar milestone ativo, arquivar artefatos em `.oxe/milestones/M-NN/`.
163
+ - **`/oxe-milestone status`** / **`/oxe-milestone audit`** — progresso e Definition of Done.
164
+ - **`/oxe-workstream new <nome>`** — trilha paralela em `.oxe/workstreams/<nome>/`.
165
+ - **`/oxe-workstream switch <nome>`** — definir workstream ativo; workflows operam nos artefatos dessa trilha.
166
+ - **`/oxe-workstream list`** / **`/oxe-workstream close <nome>`** — gerenciar trilhas.
167
+
168
+ ## Personas de agentes
169
+
170
+ Arquivos em `oxe/personas/` (ou `.oxe/personas/` após instalação) definem comportamentos de agentes para uso com `/oxe-plan-agent`. Personas builtin: `executor`, `planner`, `verifier`, `researcher`, `debugger`, `architect`, `ui-specialist`, `db-specialist`. Personas customizadas do projeto ficam em `.oxe/personas/`.
171
+
172
+ ## Profiles de execução
173
+
174
+ O campo `profile` em `.oxe/config.json` expande automaticamente múltiplas keys:
175
+ - **`balanced`** (padrão): cerimônia moderada, verificação standard.
176
+ - **`strict`**: discuss obrigatório, verificação 4 camadas, UAT, aviso de scan antigo.
177
+ - **`fast`**: sem discuss, verificação quick, sem UAT.
178
+ - **`legacy`**: discuss obrigatório, verificação thorough, sem comando de test assumido.
179
+
126
180
  ## SDK (API programática)
127
181
 
128
- Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pacote): por exemplo **`runDoctorChecks({ projectRoot })`** para passo de gate em CI; também `health`, `workflows`, `install.resolveOptionsFromConfig`, `manifest`, `agents`. Ver **`lib/sdk/README.md`** e **`lib/sdk/index.d.ts`**.
182
+ Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pacote):
183
+ - **`runDoctorChecks({ projectRoot })`** — gate em CI.
184
+ - **`parsePlan(planMd)`** — extrai tarefas, ondas, decisões e metadata de PLAN.md.
185
+ - **`parseSpec(specMd)`** — extrai critérios A* e seções obrigatórias.
186
+ - **`parseState(stateMd)`** — extrai fase, scan date, workstreams, milestone ativo.
187
+ - **`validateDecisionFidelity(discussMd, planMd)`** — verifica cobertura de decisões D-NN.
188
+ - **`security.checkPathSafety(path, root)`** — valida caminhos contra path traversal e segredos.
189
+ - **`plugins.loadPlugins(projectRoot)`** / **`plugins.runHook(plugins, hook, ctx)`** — plugin lifecycle.
190
+ - **`health.expandExecutionProfile(profile)`** — expande profile em keys individuais.
191
+
192
+ Ver **`lib/sdk/README.md`** e **`lib/sdk/index.d.ts`**.
129
193
 
130
194
  ## Variáveis de ambiente (referência)
131
195
 
@@ -142,8 +206,9 @@ Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pa
142
206
 
143
207
  ## Artefatos
144
208
 
145
- - `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional), `.oxe/NOTES.md` (opcional, fila), `.oxe/RESUME.md` (opcional, trilha + ponte para delta), `.oxe/CODEBASE-DELTA.md` (opcional, último refresh documentado do codebase), `.oxe/CHECKPOINTS.md` (opcional, índice), `.oxe/checkpoints/*.md` (opcional, marcos de sessão), `.oxe/RESEARCH.md` (opcional, índice de pesquisa), `.oxe/research/*.md` (opcional, notas datadas), `.oxe/VALIDATION-GAPS.md` (opcional, pós-verify), `.oxe/FORENSICS.md` (opcional, recuperação), `.oxe/DEBUG.md` (opcional, sessões de debug), `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md` (opcional, front-end)
146
- - Templates: `oxe/templates/` (ou `.oxe/templates/` em layout aninhado, conforme instalação). Hooks Git **opt-in** (lembretes não bloqueantes): `oxe/templates/GIT_HOOKS_OXE.md`.
209
+ - `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional, com IDs D-NN), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional), `.oxe/NOTES.md` (opcional, fila), `.oxe/RESUME.md` (opcional, trilha + ponte para delta), `.oxe/CODEBASE-DELTA.md` (opcional, último refresh documentado do codebase), `.oxe/CHECKPOINTS.md` (opcional, índice), `.oxe/checkpoints/*.md` (opcional, marcos de sessão), `.oxe/RESEARCH.md` (opcional, índice de pesquisa), `.oxe/research/*.md` (opcional, notas datadas), `.oxe/VALIDATION-GAPS.md` (opcional, pós-verify), `.oxe/FORENSICS.md` (opcional, recuperação), `.oxe/DEBUG.md` (opcional, sessões de debug), `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md` (opcional, front-end)
210
+ - **Novos artefatos:** `.oxe/MILESTONES.md` (marcos de entrega), `.oxe/milestones/M-NN/` (artefatos arquivados), `.oxe/workstreams/<nome>/` (trilhas paralelas), `.oxe/personas/*.md` (personas de agentes customizadas), `.oxe/plugins/*.cjs` (plugins de lifecycle), `.oxe/memory/*.md` (sidecars de memória por sessão).
211
+ - Templates: `oxe/templates/` (ou `.oxe/templates/` em layout aninhado, conforme instalação). Hooks Git **opt-in** (lembretes não bloqueantes): `oxe/templates/GIT_HOOKS_OXE.md`. Plugin system: `oxe/templates/PLUGINS.md`.
147
212
 
148
213
  ## Para autores (mantenedores)
149
214
 
@@ -0,0 +1,96 @@
1
+ # OXE — Workflow: milestone
2
+
3
+ <objective>
4
+ Gerenciar **marcos de entrega** do projeto: registrar versões entregues, arquivar fases concluídas e preparar o contexto para a próxima iteração.
5
+
6
+ Subcomandos:
7
+ - `/oxe-milestone new [nome]` — iniciar novo milestone.
8
+ - `/oxe-milestone complete` — fechar milestone ativo, arquivar artefatos, preparar próxima iteração.
9
+ - `/oxe-milestone status` — exibir progresso do milestone ativo.
10
+ - `/oxe-milestone audit` — verificar se o milestone atingiu sua definição de pronto.
11
+ </objective>
12
+
13
+ <context>
14
+ - Milestone ≠ Checkpoint. **Checkpoint** (`/oxe-checkpoint`) é um snapshot de sessão — restaurável a qualquer momento. **Milestone** é uma entrega — marcador de versão com artefatos arquivados e critérios de pronto validados.
15
+ - Milestones são rastreados em **`.oxe/MILESTONES.md`** (índice) e cada entrega tem uma entrada com status, data e links aos artefatos.
16
+ - O milestone ativo é registrado no **STATE.md** na seção **Milestone ativo**.
17
+ - Um milestone é considerado **pronto** quando:
18
+ 1. Todos os critérios A* da SPEC estão com `verify_complete` no STATE.
19
+ 2. VERIFY.md não tem gaps abertos.
20
+ 3. Checklist UAT foi preenchido pelo usuário (se aplicável).
21
+ 4. Rascunho de commit ou PR foi gerado.
22
+ </context>
23
+
24
+ <process_new>
25
+ **`/oxe-milestone new [nome]`**
26
+
27
+ 1. Verificar se há milestone ativo em STATE.md. Se houver, alertar e pedir confirmação antes de criar novo.
28
+ 2. Gerar ID sequencial: **M-01**, **M-02**, …
29
+ 3. Criar entrada em **`.oxe/MILESTONES.md`**:
30
+ ```markdown
31
+ ## M-01 — [nome] (ativo)
32
+ - **Status:** ativo
33
+ - **Iniciado:** YYYY-MM-DD
34
+ - **SPEC:** `.oxe/SPEC.md` (versão atual)
35
+ - **Critérios:** A1, A2, … (lista dos IDs da SPEC)
36
+ - **Entregável:** (descrever o que será entregue)
37
+ ```
38
+ 4. Atualizar **STATE.md**: seção **Milestone ativo** com ID e nome.
39
+ 5. Confirmar no chat: `Milestone M-01 iniciado — próximo passo: /oxe-spec (ou /oxe-plan se SPEC já existir)`.
40
+ </process_new>
41
+
42
+ <process_complete>
43
+ **`/oxe-milestone complete`**
44
+
45
+ Pré-requisitos (verificar antes de executar):
46
+ - [ ] STATE.md indica `verify_complete`.
47
+ - [ ] VERIFY.md não tem gaps abertos.
48
+ - [ ] Checklist UAT preenchido (se aplicável).
49
+
50
+ Se pré-requisitos não forem satisfeitos: listar os que faltam e pausar. Com `--force`: documentar pré-requisitos não satisfeitos e continuar com aviso.
51
+
52
+ Passos:
53
+ 1. Arquivar artefatos do milestone:
54
+ - Copiar `.oxe/SPEC.md` → `.oxe/milestones/M-NN/SPEC.md`
55
+ - Copiar `.oxe/PLAN.md` → `.oxe/milestones/M-NN/PLAN.md`
56
+ - Copiar `.oxe/VERIFY.md` → `.oxe/milestones/M-NN/VERIFY.md`
57
+ - Copiar `.oxe/DISCUSS.md` → `.oxe/milestones/M-NN/DISCUSS.md` (se existir)
58
+ - Criar `.oxe/milestones/M-NN/MILESTONE.md` com resumo da entrega.
59
+ 2. Atualizar **`.oxe/MILESTONES.md`**: marcar milestone como `entregue`, adicionar data de encerramento e links aos artefatos arquivados.
60
+ 3. Atualizar **STATE.md**: limpar seção **Milestone ativo**, registrar **Último milestone** com ID e data.
61
+ 4. Sugerir próximo milestone ou nova spec: `Milestone M-NN concluído. Próximos passos: /oxe-milestone new v2 | /oxe-spec | /oxe-checkpoint`.
62
+ </process_complete>
63
+
64
+ <process_status>
65
+ **`/oxe-milestone status`**
66
+
67
+ 1. Ler STATE.md para identificar milestone ativo (ID e nome).
68
+ 2. Ler MILESTONES.md para detalhes.
69
+ 3. Ler SPEC.md para listar critérios A* e seu status (verificado / pendente).
70
+ 4. Ler VERIFY.md (se existir) para gaps abertos.
71
+ 5. Exibir no chat:
72
+ - Milestone ativo: ID, nome, data de início.
73
+ - Progresso: N/M critérios verificados.
74
+ - Gaps abertos: lista ou "nenhum".
75
+ - Próximo passo sugerido.
76
+ </process_status>
77
+
78
+ <process_audit>
79
+ **`/oxe-milestone audit`**
80
+
81
+ Verificar definição de pronto (Definition of Done):
82
+ 1. [ ] `verify_complete` no STATE.
83
+ 2. [ ] VERIFY.md sem gaps.
84
+ 3. [ ] Checklist UAT preenchido (ou ausente se inaplicável).
85
+ 4. [ ] Rascunho de commit ou PR gerado.
86
+ 5. [ ] Artefatos do milestone existem (SPEC, PLAN, VERIFY).
87
+
88
+ Resultado: `Milestone M-NN: PRONTO` ou lista de itens pendentes.
89
+ </process_audit>
90
+
91
+ <success_criteria>
92
+ - [ ] `.oxe/MILESTONES.md` existe e tem entrada para o milestone ativo.
93
+ - [ ] STATE.md indica milestone ativo (ID e nome).
94
+ - [ ] Ao completar: artefatos arquivados em `.oxe/milestones/M-NN/`.
95
+ - [ ] Ao completar: MILESTONES.md atualizado com status `entregue` e data.
96
+ </success_criteria>