oxe-cc 1.4.1 → 1.5.1

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 (63) hide show
  1. package/.cursor/commands/oxe-dashboard.md +2 -2
  2. package/.cursor/commands/oxe-execute.md +2 -2
  3. package/.cursor/commands/oxe-plan.md +2 -2
  4. package/.cursor/commands/oxe-verify-audit.md +46 -0
  5. package/.cursor/commands/oxe-workflow-authoring.md +47 -0
  6. package/.github/prompts/oxe-compact.prompt.md +1 -1
  7. package/.github/prompts/oxe-dashboard.prompt.md +2 -2
  8. package/.github/prompts/oxe-execute.prompt.md +2 -2
  9. package/.github/prompts/oxe-plan-agent.prompt.md +1 -0
  10. package/.github/prompts/oxe-plan.prompt.md +2 -2
  11. package/.github/prompts/oxe-verify-audit.prompt.md +46 -0
  12. package/.github/prompts/oxe-workflow-authoring.prompt.md +47 -0
  13. package/.github/workflows/ci.yml +1 -0
  14. package/.github/workflows/release.yml +1 -0
  15. package/AGENTS.md +3 -1
  16. package/CHANGELOG.md +50 -0
  17. package/QUICKSTART.md +99 -0
  18. package/README.md +20 -11
  19. package/bin/lib/oxe-context-engine.cjs +9 -4
  20. package/bin/lib/oxe-dashboard.cjs +119 -53
  21. package/bin/lib/oxe-install-resolve.cjs +10 -0
  22. package/bin/lib/oxe-operational.cjs +34 -28
  23. package/bin/lib/oxe-project-health.cjs +407 -118
  24. package/bin/lib/oxe-rationality.cjs +385 -0
  25. package/bin/lib/oxe-release.cjs +423 -0
  26. package/bin/oxe-cc.js +446 -325
  27. package/commands/oxe/dashboard.md +2 -2
  28. package/commands/oxe/execute.md +2 -2
  29. package/commands/oxe/plan.md +2 -2
  30. package/commands/oxe/verify-audit.md +50 -0
  31. package/commands/oxe/workflow-authoring.md +50 -0
  32. package/docs/INCIDENT-PLAYBOOK.md +181 -0
  33. package/docs/RELEASE-READINESS.md +46 -0
  34. package/docs/ROLES.md +129 -0
  35. package/docs/RUNTIME-SMOKE-MATRIX.md +128 -0
  36. package/docs/TEAM-ADOPTION.md +153 -0
  37. package/docs/WALKTHROUGH.md +241 -0
  38. package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +28 -0
  39. package/lib/runtime/scheduler/multi-agent-coordinator.js +152 -26
  40. package/lib/sdk/README.md +2 -0
  41. package/lib/sdk/index.cjs +32 -14
  42. package/lib/sdk/index.d.ts +138 -40
  43. package/oxe/templates/CONFIG.md +1 -1
  44. package/oxe/templates/EXECUTION-RUNTIME.template.md +1 -1
  45. package/oxe/templates/FIXTURE-PACK.template.json +34 -0
  46. package/oxe/templates/FIXTURE-PACK.template.md +21 -0
  47. package/oxe/templates/IMPLEMENTATION-PACK.template.json +52 -0
  48. package/oxe/templates/IMPLEMENTATION-PACK.template.md +36 -0
  49. package/oxe/templates/PLAN.template.md +46 -37
  50. package/oxe/templates/REFERENCE-ANCHORS.template.md +24 -0
  51. package/oxe/templates/config.template.json +2 -1
  52. package/oxe/workflows/execute.md +36 -20
  53. package/oxe/workflows/next.md +1 -1
  54. package/oxe/workflows/plan.md +80 -22
  55. package/oxe/workflows/references/flow-robustness-contract.md +3 -3
  56. package/oxe/workflows/references/workflow-runtime-contracts.json +127 -95
  57. package/oxe/workflows/verify.md +4 -4
  58. package/package.json +28 -20
  59. package/packages/runtime/package.json +1 -1
  60. package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +357 -193
  61. package/vscode-extension/oxe-agents-1.5.0.vsix +0 -0
  62. package/vscode-extension/oxe-agents-1.5.1.vsix +0 -0
  63. package/vscode-extension/package.json +1 -1
@@ -0,0 +1,52 @@
1
+ {
2
+ "schema_version": "1",
3
+ "generated_at": "YYYY-MM-DDTHH:MM:SSZ",
4
+ "ready": false,
5
+ "critical_gaps": [],
6
+ "tasks": [
7
+ {
8
+ "id": "T1",
9
+ "title": "substituir pelo título da tarefa",
10
+ "mode": "mutating",
11
+ "ready": false,
12
+ "exact_paths": [
13
+ "src/example.ts"
14
+ ],
15
+ "write_set": "closed",
16
+ "symbols": [
17
+ {
18
+ "kind": "function",
19
+ "name": "exampleHandler",
20
+ "path": "src/example.ts",
21
+ "signature": "(input: ExampleInput) => ExampleOutput"
22
+ }
23
+ ],
24
+ "contracts": [
25
+ {
26
+ "name": "example-contract",
27
+ "input_shape": "ExampleInput",
28
+ "output_shape": "ExampleOutput",
29
+ "invariants": [
30
+ "não perder campos obrigatórios"
31
+ ],
32
+ "not_allowed": [
33
+ "mutar schema fora do write set"
34
+ ]
35
+ }
36
+ ],
37
+ "snippets": [
38
+ {
39
+ "source_ref": "not_applicable",
40
+ "path": "not_applicable",
41
+ "summary": "not_applicable",
42
+ "status": "not_applicable"
43
+ }
44
+ ],
45
+ "expected_checks": [
46
+ "npm test -- example"
47
+ ],
48
+ "requires_fixture": false,
49
+ "critical_gaps": []
50
+ }
51
+ ]
52
+ }
@@ -0,0 +1,36 @@
1
+ # OXE — Implementation Pack
2
+
3
+ > Contrato racional de implementação por tarefa. Este arquivo complementa o `PLAN.md` e fecha write-set, symbols, contracts e checks esperados antes do `/oxe-execute`.
4
+
5
+ ## Status
6
+
7
+ - **Status:** ready | not_ready | not_applicable
8
+ - **Critical gaps abertos:** nenhum | listar
9
+ - **Fonte:** `PLAN.md` + código real + anchors locais
10
+
11
+ ## Tarefas
12
+
13
+ ### T1 — (título)
14
+
15
+ - **Mode:** mutating | docs_only | external | not_applicable
16
+ - **Ready:** true | false
17
+ - **Exact paths:** `src/...`, `config/...`
18
+ - **Write set:** closed | external | not_applicable
19
+ - **Symbols alvo:**
20
+ - `kind:name(path)` — assinatura ou shape esperado
21
+ - **Contracts:**
22
+ - **Nome:** (ex.: payload parser)
23
+ - **Entrada:** ...
24
+ - **Saída:** ...
25
+ - **Invariants:** ...
26
+ - **Not allowed:** ...
27
+ - **Expected checks:**
28
+ - `...`
29
+ - **Requires fixture:** true | false
30
+ - **Snippet/base local:** path ou `not_applicable`
31
+ - **Critical gaps:** nenhum | listar
32
+
33
+ ## Observações
34
+
35
+ - Use caminhos exatos; não usar `...`.
36
+ - Tarefa mutável sem `symbols`, `contracts`, `write_set: closed` e `expected_checks` não deve sustentar confiança `> 90%`.
@@ -14,35 +14,36 @@ inputs: []
14
14
 
15
15
  > Gerado a partir de `.oxe/SPEC.md`. Cada tarefa deve ter bloco **Verificar**.
16
16
 
17
- ## Resumo
18
-
19
- - **Spec vinculada:** (data ou versão informal)
20
- - **Ondas:** (número)
21
- - **Tarefas:** (número)
17
+ ## Resumo
18
+
19
+ - **Spec vinculada:** (data ou versão informal)
20
+ - **Ondas:** (número)
21
+ - **Tarefas:** (número)
22
+ - **Artefatos racionais:** `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS`, `FIXTURE-PACK`
22
23
 
23
24
  ## Autoavaliação do Plano
24
25
 
25
26
  - **Melhor plano atual:** sim
26
- - **Confiança:** 80%
27
+ - **Confiança:** 92%
27
28
  - **Base da confiança:**
28
- - Completude dos requisitos: 20/25
29
- - Dependências conhecidas: 12/15
30
- - Risco técnico: 15/20
31
- - Impacto no código existente: 12/15
32
- - Clareza da validação / testes: 13/15
33
- - Lacunas externas / decisões pendentes: 8/10
29
+ - Completude dos requisitos: 23/25
30
+ - Dependências conhecidas: 14/15
31
+ - Risco técnico: 18/20
32
+ - Impacto no código existente: 14/15
33
+ - Clareza da validação / testes: 14/15
34
+ - Lacunas externas / decisões pendentes: 9/10
34
35
  - **Principais incertezas:** (0–3 bullets)
35
36
  - **Alternativas descartadas:** (1–2 linhas)
36
37
  - **Condição para replanejar:** (critério objetivo)
37
38
 
38
39
  <confidence_vector cycle="C-NN" generated_at="YYYY-MM-DDTHH:MM:SSZ">
39
- <dim name="requirements" score="0.80" weight="25" note="completude dos requisitos" />
40
- <dim name="dependencies" score="0.80" weight="15" note="dependências conhecidas" />
41
- <dim name="technical_risk" score="0.75" weight="20" note="risco técnico — ajustar se H* pendentes" />
42
- <dim name="code_impact" score="0.80" weight="15" note="impacto no código existente" />
43
- <dim name="validation" score="0.87" weight="15" note="clareza da validação / testes" />
44
- <dim name="open_gaps" score="0.80" weight="10" note="lacunas externas / decisões pendentes" />
45
- <global score="0.80" gate="proceed_with_risk" />
40
+ <dim name="requirements" score="0.92" weight="25" note="completude dos requisitos" />
41
+ <dim name="dependencies" score="0.93" weight="15" note="dependências conhecidas" />
42
+ <dim name="technical_risk" score="0.90" weight="20" note="risco técnico — ajustar se H* pendentes" />
43
+ <dim name="code_impact" score="0.93" weight="15" note="impacto no código existente" />
44
+ <dim name="validation" score="0.93" weight="15" note="clareza da validação / testes" />
45
+ <dim name="open_gaps" score="0.90" weight="10" note="lacunas externas / decisões pendentes" />
46
+ <global score="0.92" gate="proceed" />
46
47
  </confidence_vector>
47
48
 
48
49
  <!--
@@ -66,11 +67,18 @@ inputs: []
66
67
  </hypothesis>
67
68
  -->
68
69
 
69
- ## Dependências globais
70
-
71
- - (ex.: branch base, feature flags, migrations)
72
-
73
- ## Replanejamento
70
+ ## Dependências globais
71
+
72
+ - (ex.: branch base, feature flags, migrations)
73
+
74
+ ## Artefatos racionais de execução
75
+
76
+ - **IMPLEMENTATION-PACK:** `ready | not_ready | not_applicable`
77
+ - **REFERENCE-ANCHORS:** `ready | not_ready | not_applicable`
78
+ - **FIXTURE-PACK:** `ready | not_ready | not_applicable`
79
+ - **Critical gaps abertos:** (nenhum | listar IDs/causas)
80
+
81
+ ## Replanejamento
74
82
 
75
83
  > Preencher apenas em **--replan** ou após verify falhado. Manter histórico legível.
76
84
 
@@ -80,18 +88,19 @@ inputs: []
80
88
 
81
89
  ## Tarefas
82
90
 
83
- ### T1 — (título)
84
-
85
- - **Arquivos prováveis:** `…`
86
- - **Depende de:** —
87
- - **Onda:** 1
88
- - **Complexidade:** S
89
- - **Verificar:**
90
- - Comando: `…`
91
- - Manual: (opcional) …
92
- - **Implementar:** o mínimo para fazer a verificação acima passar.
93
- - **Aceite vinculado:** A1, A2 (IDs da tabela de critérios em SPEC.md)
94
-
95
- ---
91
+ ### T1 — (título)
92
+
93
+ - **Arquivos prováveis:** `…`
94
+ - **Depende de:** —
95
+ - **Onda:** 1
96
+ - **Complexidade:** S
97
+ - **Verificar:**
98
+ - Comando: `…`
99
+ - Manual: (opcional) …
100
+ - **Implementar:** o mínimo para fazer a verificação acima passar.
101
+ - **Aceite vinculado:** A1, A2 (IDs da tabela de critérios em SPEC.md)
102
+ - **Contrato racional:** ver `IMPLEMENTATION-PACK.json` (task `T1`)
103
+
104
+ ---
96
105
 
97
106
  _(Adicione T2, T3, … conforme o comando oxe:plan.)_
@@ -0,0 +1,24 @@
1
+ # OXE — Reference Anchors
2
+
3
+ > Materialização de referências críticas usadas pelo plano. Toda referência externa, predecessor, layout ou contrato que sustente uma tarefa deve virar âncora reproduzível aqui.
4
+
5
+ <reference_anchors version="1" ready="false" status="not_ready">
6
+ <anchor
7
+ id="RA-01"
8
+ task="T1"
9
+ critical="true"
10
+ status="resolved"
11
+ source_type="local"
12
+ path=".oxe/investigations/externals/exemplo.txt"
13
+ source_ref="external-ref: exemplo">
14
+ <relevance>Por que esta referência sustenta a tarefa.</relevance>
15
+ <action>copy | adapt | consult</action>
16
+ <summary>Resumo semântico curto do trecho relevante ou do contrato.</summary>
17
+ </anchor>
18
+ </reference_anchors>
19
+
20
+ ## Regras
21
+
22
+ - Se não houver referência aplicável, usar `<reference_anchors ... status="not_applicable" ready="true">`.
23
+ - `critical="true"` exige `status="resolved"` antes do execute.
24
+ - `path` deve ser reproduzível no workspace ou materializado em `.oxe/investigations/externals/`.
@@ -3,7 +3,7 @@
3
3
  "profile": "balanced",
4
4
  "discuss_before_plan": false,
5
5
  "verification_depth": "standard",
6
- "plan_confidence_threshold": 70,
6
+ "plan_confidence_threshold": 90,
7
7
  "security_in_verify": false,
8
8
  "adversarial_verify": false,
9
9
  "after_verify_suggest_pr": true,
@@ -30,6 +30,7 @@
30
30
  "install": {
31
31
  "profile": "recommended",
32
32
  "repo_layout": "nested",
33
+ "ide_scope": "global",
33
34
  "vscode": false,
34
35
  "include_commands_dir": true,
35
36
  "include_agents_md": true
@@ -120,9 +120,16 @@ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenci
120
120
  <context>
121
121
  **Contrato de raciocínio:** aplicar `oxe/workflows/references/reasoning-execution.md`. Antes de mutar, fazer reconhecimento curto; durante a execução, operar no menor write set viável e validar após cada fatia relevante.
122
122
 
123
- **Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de executar, validar os artefatos obrigatórios e o gate do plano.
124
-
125
- **Context pack prioritário:** antes de abrir o conjunto amplo de artefatos, resolver `.oxe/context/packs/execute.md` e `.oxe/context/packs/execute.json` como entrada principal do passo. Se o pack estiver fresco/coerente, usar `read_order` e `selected_artifacts` para limitar o reconhecimento inicial à onda/tarefa atual. Se estiver stale, ausente ou com lacunas críticas, fazer fallback explícito para leitura direta e registrar isso no runtime ou no resumo da execução.
123
+ **Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de executar, validar os artefatos obrigatórios e o gate do plano.
124
+
125
+ **Context pack prioritário:** antes de abrir o conjunto amplo de artefatos, resolver `.oxe/context/packs/execute.md` e `.oxe/context/packs/execute.json` como entrada principal do passo. Se o pack estiver fresco/coerente, usar `read_order` e `selected_artifacts` para limitar o reconhecimento inicial à onda/tarefa atual. Se estiver stale, ausente ou com lacunas críticas, fazer fallback explícito para leitura direta e registrar isso no runtime ou no resumo da execução.
126
+
127
+ **Artefatos racionais obrigatórios:** quando a execução vier de `PLAN.md`, ler antes da primeira mutação:
128
+ - `IMPLEMENTATION-PACK.md` / `IMPLEMENTATION-PACK.json`
129
+ - `REFERENCE-ANCHORS.md`
130
+ - `FIXTURE-PACK.md` / `FIXTURE-PACK.json`
131
+
132
+ O `execute` é **pack-first**, não apenas `plan-first`. Esses artefatos existem para impedir improviso de paths, interfaces, referências externas e fixtures. Se estiverem ausentes, inconsistentes ou com `critical_gap`, a execução deve bloquear e devolver para replanejamento.
126
133
 
127
134
  **Runtime operacional:** usar `EXECUTION-RUNTIME.md` do escopo resolvido como artefato tático da execução. Ele deve refletir agentes ativos, onda atual, handoffs, evidências, retries, checkpoints pendentes e tarefas bloqueadas. O `PLAN.md` continua estratégico; o runtime regista a operação do ciclo.
128
135
 
@@ -182,14 +189,20 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
182
189
  - se estiver stale, incompleto ou ausente, declarar `fallback para leitura direta` antes de seguir.
183
190
  1b. **Verificação de hipóteses críticas:** se o context pack contiver o campo `hypotheses` com entradas `status: pending` cujo `checkpoint` coincide com a onda atual — validar cada uma antes de iniciar qualquer mutação. Se a hipótese for refutada, registrar bloqueio explícito em `EXECUTION-RUNTIME.md` e não editar código antes de resolver. Se for validada, atualizar `status: validated` no `PLAN.md`.
184
191
  1c. Fazer reconhecimento curto dos artefatos e arquivos prováveis da onda atual antes da primeira mudança. Com pack válido, limitar essa leitura aos artefatos de `read_order` e aos arquivos prováveis da onda; sem pack válido, expandir só o necessário.
185
- 2. Se existir `PLAN.md`, validar a seção `## Autoavaliação do Plano` antes de qualquer implementação:
186
- - `Melhor plano atual` deve ser `sim`;
187
- - `Confiança` deve existir em `0–100%`;
188
- - se `.oxe/config.json` definir `plan_confidence_threshold`, usar esse limiar; senão, usar `70%`;
189
- - se a confiança estiver abaixo do limiar, **não executar**. Registrar o bloqueio e orientar redução de incerteza (`/oxe-discuss`, `/oxe-research` ou `/oxe-plan --replan`).
190
- 3. Antes da primeira mudança, verificar `CHECKPOINTS.md` e `EXECUTION-RUNTIME.md` do escopo resolvido:
191
- - se houver checkpoint `pending_approval` que se aplique à onda atual, **não avançar**;
192
- - inicializar ou atualizar o runtime com onda atual, status, agentes ativos, handoffs e evidências esperadas.
192
+ 2. Se existir `PLAN.md`, validar a seção `## Autoavaliação do Plano` antes de qualquer implementação:
193
+ - `Melhor plano atual` deve ser `sim`;
194
+ - `Confiança` deve existir em `0–100%`;
195
+ - o bloco `<confidence_vector>` deve existir e ser coerente com a confiança declarada;
196
+ - se `.oxe/config.json` definir `plan_confidence_threshold`, usar esse limiar respeitando o piso canónico de `90%`; senão, usar `90%`;
197
+ - se a confiança não superar o limiar (`<=`) ou se a autoavaliação estiver incompleta, **não executar**. Registrar o bloqueio e orientar redução de incerteza (`/oxe-discuss`, `/oxe-research` ou `/oxe-plan --replan`).
198
+ 2a. Antes da primeira mutação, validar os artefatos racionais do plano:
199
+ - `IMPLEMENTATION-PACK.json` deve existir, estar `ready`, cobrir cada `Tn` mutável e usar `exact_paths` sem `...`, `symbols`, `contracts`, `write_set: "closed"` e `expected_checks`;
200
+ - `REFERENCE-ANCHORS.md` deve existir e manter todas as âncoras críticas em `status: resolved`;
201
+ - `FIXTURE-PACK.json` deve existir, estar `ready` e cobrir tarefas de parser/layout/integração/transformação/fila/migração/builder;
202
+ - se algum pack tiver `critical_gap`, **não executar**. Registrar o bloqueio explicitamente em `EXECUTION-RUNTIME.md` / `STATE.md` e recomendar um único próximo passo: normalmente `/oxe-plan --replan`.
203
+ 3. Antes da primeira mudança, verificar `CHECKPOINTS.md` e `EXECUTION-RUNTIME.md` do escopo resolvido:
204
+ - se houver checkpoint `pending_approval` que se aplique à onda atual, **não avançar**;
205
+ - inicializar ou atualizar o runtime com onda atual, status, agentes ativos, handoffs e evidências esperadas.
193
206
  3a. **Caminho padrão do runtime enterprise:** se `oxe-cc runtime` estiver disponível:
194
207
  - executar ou solicitar `oxe-cc runtime compile --dir <projeto>` antes da primeira mutação;
195
208
  - se compilar com sucesso, tratar `ACTIVE-RUN.json`, `.oxe/runs/<run_id>.json`, `compiled_graph` e `canonical_state` como estado operacional primário da execução;
@@ -209,11 +222,12 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
209
222
  - O mesmo gate aplica-se em Azure `apply` quando `scope: apply` ou `all`
210
223
  6. **Seleção de modo** (apenas se PLAN.md com 2+ ondas e `execute_mode` não definido em STATE): se o argumento já for `A`, `B` ou `C`, usá-lo diretamente; senão apresentar opções A/B/C e aguardar escolha; registrar em STATE.md.
211
224
  7. 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.
212
- 8. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
213
- 8a. Antes de implementar, explicitar no chat:
214
- - **Contexto lido** (incluindo se veio de pack fresco ou de fallback)
215
- - **Alvo da mudança**
216
- - **Validação prevista**
225
+ 8. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
226
+ 8a. Antes de implementar, explicitar no chat:
227
+ - **Contexto lido** (incluindo se veio de pack fresco ou de fallback)
228
+ - **Artefatos racionais lidos** (implementation/anchors/fixtures e eventuais gaps)
229
+ - **Alvo da mudança**
230
+ - **Validação prevista**
217
231
  9. **Implementar** conforme o modo escolhido:
218
232
  - **Modo Completo:** executar todas as ondas em sequência com verificação inline entre ondas; sumarizar ao final.
219
233
  - **Modo Por onda:** executar onda atual, apresentar checklist, parar.
@@ -239,9 +253,11 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
239
253
  - [ ] Onda ou bloco de passos explicitado antes de "implementar".
240
254
  - [ ] Checklist da onda apresentado ou refletido no STATE.md.
241
255
  - [ ] STATE.md registra progresso (Tn ou passos) e próximo passo.
242
- - [ ] Verificação alinhada ao bloco **Verificar** do PLAN ou QUICK.
243
- - [ ] OBS pendentes verificadas antes de cada onda: `blocking` resolvidos antes de avançar, `adjustment` incorporados como restrições, `info`/legado incorporados normalmente.
244
- - [ ] Com quick-agents ativos: cada agente trabalha em seus `steps[]`; ao concluir, `quick-agents.json` → `done`.
245
- - [ ] 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.
256
+ - [ ] Verificação alinhada ao bloco **Verificar** do PLAN ou QUICK.
257
+ - [ ] Com `PLAN.md`, `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` foram lidos e validados antes da primeira mutação.
258
+ - [ ] Se qualquer artefato racional estiver ausente ou inconsistente, a execução bloqueia explicitamente e recomenda `/oxe-plan --replan`.
259
+ - [ ] OBS pendentes verificadas antes de cada onda: `blocking` resolvidos antes de avançar, `adjustment` incorporados como restrições, `info`/legado incorporados normalmente.
260
+ - [ ] Com quick-agents ativos: cada agente trabalha só em seus `steps[]`; ao concluir, `quick-agents.json` → `done`.
261
+ - [ ] 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.
246
262
  - [ ] Quando `oxe-cc runtime` estiver disponível, `runtime compile` foi tentado antes da primeira mutação e `runtime project` foi usado para reprojetar artefatos após a onda/bloco.
247
263
  </success_criteria>
@@ -22,7 +22,7 @@ Inspecionar `.oxe/STATE.md` global, a sessão ativa quando existir, e a existên
22
22
  - Senão → **execute** (há passos curtos a implementar).
23
23
  4. Se não houver `SPEC.md` no escopo resolvido e não for quick intencional declarado → **spec** (passo único).
24
24
  5. Se houver SPEC no escopo resolvido mas não PLAN → se `.oxe/config.json` tiver `discuss_before_plan: true` e faltar **`DISCUSS.md`** com decisões → **discuss**; senão → **plan**.
25
- 6. Se PLAN existe mas a seção **Autoavaliação do Plano** disser `Melhor plano atual: não`, ou a `Confiança` estiver abaixo do limiar configurado (padrão 70%), o próximo passo deve ser **plan** (replanejar) ou **discuss/research** se a própria autoavaliação indicar isso.
25
+ 6. Se PLAN existe mas a seção **Autoavaliação do Plano** estiver incompleta, disser `Melhor plano atual: não`, ou a `Confiança` não superar o limiar configurado (padrão canónico `>90%`), o próximo passo deve ser **plan** (replanejar) ou **discuss/research** se a própria autoavaliação indicar isso.
26
26
  7. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual → **execute** (onda atual).
27
27
  8. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
28
28
  9. Se VERIFY indica falha ou gaps não resolvidos → **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
@@ -1,9 +1,18 @@
1
1
  # OXE — Workflow: plan
2
2
 
3
- <objective>
4
- Produzir **`.oxe/PLAN.md`**: tarefas **pequenas**, **ondas** (paralelizáveis vs sequenciais), e **cada tarefa com bloco de verificação** (comando de teste e/ou checklist manual).
5
-
6
- Base: `SPEC.md` do escopo resolvido da sessão (critérios com IDs **A1**, **A2**, …) + `.oxe/codebase/*` + código quando necessário (Grep/Read pontual).
3
+ <objective>
4
+ Produzir **`.oxe/PLAN.md`**: tarefas **pequenas**, **ondas** (paralelizáveis vs sequenciais), e **cada tarefa com bloco de verificação** (comando de teste e/ou checklist manual).
5
+
6
+ Além do `PLAN.md`, este passo deve gerar no mesmo escopo resolvido da sessão os artefatos racionais de execução:
7
+ - `.oxe/IMPLEMENTATION-PACK.md`
8
+ - `.oxe/IMPLEMENTATION-PACK.json`
9
+ - `.oxe/REFERENCE-ANCHORS.md`
10
+ - `.oxe/FIXTURE-PACK.md`
11
+ - `.oxe/FIXTURE-PACK.json`
12
+
13
+ Esses artefatos são obrigatórios para considerar o plano executável. Quando algo não se aplicar, marcar explicitamente `not_applicable`; nunca omitir o arquivo.
14
+
15
+ Base: `SPEC.md` do escopo resolvido da sessão (critérios com IDs **A1**, **A2**, …) + `.oxe/codebase/*` + código quando necessário (Grep/Read pontual).
7
16
 
8
17
  Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_failed`):
9
18
  - Ler `VERIFY.md` e `SUMMARY.md` do escopo resolvido, e o `PLAN.md` atual.
@@ -11,6 +20,37 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
11
20
  - Se **SUMMARY.md** não existir, criar a partir de `oxe/templates/SUMMARY.template.md` para registrar o contexto do replan (ou dar append se já existir).
12
21
  </objective>
13
22
 
23
+ <execution_rational_artifacts>
24
+ ## Artefatos racionais obrigatórios
25
+
26
+ ### IMPLEMENTATION-PACK
27
+ Contrato de implementação por tarefa `Tn`, com:
28
+ - caminhos exatos dos arquivos alvo, sem `...` e sem "arquivos prováveis" vagos;
29
+ - symbols alvo (classe, função, método, listener, builder, config, migration);
30
+ - assinatura/shape de entrada e saída;
31
+ - dependências, invariantes, `not_allowed`, `write_set`, `expected_checks` e `requires_fixture`;
32
+ - snippets somente quando ancorados em evidência local ou materializada.
33
+
34
+ ### REFERENCE-ANCHORS
35
+ Materializa referências críticas que hoje ficam frouxas no plano:
36
+ - predecessor, layout, contrato externo ou `external-ref`;
37
+ - origem local ou materializada em `.oxe/investigations/externals/`;
38
+ - `source_ref`, `path`, `relevance`, `action`, `summary`, `status`;
39
+ - estados válidos: `resolved`, `missing`, `stale`, `conflicting`, `not_applicable`.
40
+
41
+ ### FIXTURE-PACK
42
+ Fixtures mínimos por fluxo/tarefa de risco:
43
+ - payloads, arquivos exemplo, trechos significativos, offsets/campos críticos;
44
+ - expected outputs ou checks parciais/completos;
45
+ - queries/checks de validação e smoke commands.
46
+
47
+ Regra de readiness:
48
+ - `IMPLEMENTATION-PACK` precisa estar `ready`;
49
+ - `REFERENCE-ANCHORS` não pode ter âncora crítica em `missing|stale|conflicting`;
50
+ - `FIXTURE-PACK` é obrigatório para tarefas mutáveis com parser/layout/integração/transformação/fila/migração/builder;
51
+ - qualquer `critical_gap` aberto derruba a prontidão executável do plano.
52
+ </execution_rational_artifacts>
53
+
14
54
  <plan_iteration_contract>
15
55
  ## Contrato de iteração do plano
16
56
 
@@ -112,11 +152,11 @@ Depois do resumo e antes das tarefas, o `PLAN.md` deve conter também:
112
152
  | Clareza da validação / testes | 15 |
113
153
  | Lacunas externas / decisões pendentes | 10 |
114
154
 
115
- **Faixas semânticas obrigatórias:**
116
- - `85–100%` → pronto para executar
117
- - `7084%` → executável com risco controlado
118
- - `50–69%` → precisa refino antes de execução
119
- - `<50%` → não executar
155
+ **Faixas semânticas obrigatórias:**
156
+ - `91–100%` → pronto para executar
157
+ - `8090%` → plano racional, mas ainda não executável
158
+ - `50–79%` → precisa refino antes de execução
159
+ - `<50%` → não executar
120
160
 
121
161
  **Entradas obrigatórias da confiança:**
122
162
  - usar as incertezas estruturadas da SPEC e as investigações concluídas como base direta da rubrica;
@@ -131,7 +171,9 @@ Depois do resumo e antes das tarefas, o `PLAN.md` deve conter também:
131
171
  | `L` | < 1 dia, múltiplos componentes | Verificar que Verificar é específico |
132
172
  | `XL` | > 1 dia, impacto arquitetural | **Gate: deve ser quebrada em sub-tarefas ou ter justificativa** |
133
173
 
134
- **Princípio test-first:** escreva o `Verificar` antes de escrever o `Implementar`. A pergunta é: "Como saberei que está pronto?" — a resposta define o target; `Implementar` é o caminho mínimo até esse target.
174
+ **Princípio test-first:** escreva o `Verificar` antes de escrever o `Implementar`. A pergunta é: "Como saberei que está pronto?" — a resposta define o target; `Implementar` é o caminho mínimo até esse target.
175
+
176
+ **Contrato racional por tarefa:** se a tarefa for mutável ou tecnicamente relevante, o `PLAN.md` sozinho não basta. O `IMPLEMENTATION-PACK` deve fechar o write-set, os symbols e os checks; o `REFERENCE-ANCHORS` deve materializar evidência externa; o `FIXTURE-PACK` deve reduzir improviso em parsing/integração/transformação.
135
177
 
136
178
  **Projetos sem suíte de testes única (legado):** o bloco **Verificar** pode usar `Comando: —` e **Manual** com Grep, leitura de paths ou checklist — ver exemplos em **`oxe/workflows/references/legacy-brownfield.md`**. Todo critério **A*** da SPEC deve aparecer em **Aceite vinculado** de alguma tarefa ou como gap explícito.
137
179
 
@@ -150,14 +192,18 @@ Antes de finalizar a resposta ao utilizador, o agente **deve** percorrer este ga
150
192
  7. **Fidelidade de decisões:** se existir `DISCUSS.md` com IDs **D-NN** no escopo resolvido, cada decisão com impacto técnico deve aparecer em **Decisão vinculada:** de alguma tarefa, ou ter nota explícita de gap. Sem cobertura para D-NN técnico = falha do gate.
151
193
  8. **Complexidade XL:** toda tarefa com `Complexidade: XL` deve ter sub-tarefas explícitas (ex.: T3.1, T3.2 — como bullets dentro da tarefa) **ou** justificativa na tarefa explicando por que não pode ser quebrada. Tarefa XL sem sub-tarefas e sem justificativa = falha do gate.
152
194
  9. **Test-first:** em toda tarefa, `Verificar` deve preceder `Implementar` no texto. Se a ordem estiver invertida, corrigir antes de finalizar.
153
- 10. **Autoavaliação presente:** o `PLAN.md` contém `## Autoavaliação do Plano`, `Melhor plano atual`, `Confiança`, rubrica completa e `Condição para replanejar`.
154
- 11. **Calibração de execução:** se `Melhor plano atual: não` ou `Confiança < limiar configurado`, o plano não pode recomendar execução direta; deve recomendar refino, discuss ou research.
195
+ 10. **Autoavaliação presente:** o `PLAN.md` contém `## Autoavaliação do Plano`, `Melhor plano atual`, `Confiança`, rubrica completa, bloco `<confidence_vector>` coerente e `Condição para replanejar`.
196
+ 11. **Calibração de execução:** se `Melhor plano atual: não`, se a autoavaliação estiver estruturalmente incompleta, ou se `Confiança <= limiar configurado`, o plano não pode recomendar execução direta; deve recomendar refino, discuss ou research.
155
197
  12. **Rastreabilidade de evidência:** cada tarefa deve ter entrada observável de origem na SPEC, no codebase, em DISCUSS, OBS, RESEARCH ou LESSONS; tarefa sem evidência de entrada explícita = falha do gate.
156
- 13. **Mudanças de risco:** tarefas com risco relevante (migração, auth, schema, contrato público, segurança) devem incluir contenção, rollback, fallback ou verificação reforçada.
157
- 14. **Cobertura R-ID:** se `SPEC.md` contiver tabela de requisitos com IDs `R-NN` e status `v1`/`v2`, cada R-ID em escopo deve ter ao menos um critério A* mapeado em **Aceite vinculado:** de alguma tarefa — rastrear `R-NN → A* → Tn`. R-IDs com `v1`/`v2` sem nenhuma tarefa associada = falha do gate; documentar como gap explícito quando intencional (ex.: `<!-- R-03: adiado para próximo ciclo -->`).
158
- 15. **Contexto estruturado:** se houver pack do workflow `plan`, as lacunas e conflitos críticos do pack aparecem na autoavaliação do plano ou são explicitamente dados como resolvidos durante a leitura direta.
159
-
160
- Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
198
+ 13. **Mudanças de risco:** tarefas com risco relevante (migração, auth, schema, contrato público, segurança) devem incluir contenção, rollback, fallback ou verificação reforçada.
199
+ 14. **Cobertura R-ID:** se `SPEC.md` contiver tabela de requisitos com IDs `R-NN` e status `v1`/`v2`, cada R-ID em escopo deve ter ao menos um critério A* mapeado em **Aceite vinculado:** de alguma tarefa — rastrear `R-NN → A* → Tn`. R-IDs com `v1`/`v2` sem nenhuma tarefa associada = falha do gate; documentar como gap explícito quando intencional (ex.: `<!-- R-03: adiado para próximo ciclo -->`).
200
+ 15. **Contexto estruturado:** se houver pack do workflow `plan`, as lacunas e conflitos críticos do pack aparecem na autoavaliação do plano ou são explicitamente dados como resolvidos durante a leitura direta.
201
+ 16. **Implementation contract:** toda tarefa mutável deve aparecer em `IMPLEMENTATION-PACK.json` com `exact_paths`, `symbols`, `contracts`, `write_set: "closed"`, `expected_checks` e `ready: true`. Path com `...`, símbolo indefinido ou contrato ausente = falha do gate.
202
+ 17. **Reference anchors:** toda referência `external-ref`, "copiar do predecessor", "usar layout X" ou equivalente deve aparecer em `REFERENCE-ANCHORS.md` com `status: resolved`. Âncora crítica em `missing|stale|conflicting` = falha do gate.
203
+ 18. **Fixture coverage:** toda tarefa de parser/layout/integração/transformação/fila/migração/builder deve ter fixture `ready` em `FIXTURE-PACK.json`, salvo `not_applicable` explicitamente justificado. Ausência de fixture em tarefa de risco = falha do gate.
204
+ 19. **Confiança > 90 de verdade:** `Confiança > 90%` só é válida se `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` estiverem íntegros e sem `critical_gap` aberto. Caso contrário, reduzir a confiança para `<= 90%` e recomendar refino.
205
+
206
+ Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
161
207
 
162
208
  Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N problemas)`.
163
209
  </plan_quality_gate>
@@ -178,12 +224,22 @@ Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N
178
224
  3. Se existir **`.oxe/NOTES.md`**, consumir ou explicitamente adiar cada bullet relevante (ver **context**).
179
225
  4. Ler `.oxe/codebase/*.md` (incl. CONVENTIONS / CONCERNS) e inspecionar pontos de entrada se a spec exigir. Se o pack não bastar, expandir a leitura apenas para os artefatos adicionais necessários e registar essa expansão.
180
226
  5. Escrever ou atualizar `PLAN.md` no escopo resolvido usando `oxe/templates/PLAN.template.md` como cabeçalho; **preservar** YAML inicial (`oxe_doc: plan`, `status`, `inputs`) se já existir e **atualizar** `updated:` (ISO); em **--replan** ou **replan implícito**, preencher a seção **Replanejamento** (data, motivo, lições de VERIFY/SUMMARY, tarefas removidas/alteradas).
227
+ 5a. Gerar junto os artefatos racionais:
228
+ - `IMPLEMENTATION-PACK.md` e `IMPLEMENTATION-PACK.json` a partir de `oxe/templates/IMPLEMENTATION-PACK.template.*`
229
+ - `REFERENCE-ANCHORS.md` a partir de `oxe/templates/REFERENCE-ANCHORS.template.md`
230
+ - `FIXTURE-PACK.md` e `FIXTURE-PACK.json` a partir de `oxe/templates/FIXTURE-PACK.template.*`
231
+ Todos no mesmo escopo resolvido da sessão do `PLAN.md`.
181
232
  6. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
182
233
  6a. **Calibração histórica:** se `.oxe/calibration.json` existir e tiver ≥ 2 registros, ler as últimas 3 entradas antes de preencher a autoavaliação. Para cada dimensão com `calibration_error > 0.25` em 2+ ciclos consecutivos, adicionar `[⚠ historicamente subestimado]` na nota da dimensão e reduzir o score em 0.10 ou justificar explicitamente por que o ciclo atual é diferente.
183
- 7. Preencher `## Autoavaliação do Plano` com a rubrica fixa. A confiança é a soma ponderada das seis dimensões; não inventar percentagem sem justificar os pontos. As lacunas, conflitos e freshness do pack devem aparecer nessa autoavaliação quando forem relevantes. **Incluir o bloco `<confidence_vector>`** com as 6 dimensões usando o template em `oxe/templates/PLAN.template.md`.
234
+ 7. Preencher `## Autoavaliação do Plano` com a rubrica fixa. A confiança é a soma ponderada das seis dimensões; não inventar percentagem sem justificar os pontos. As lacunas, conflitos e freshness do pack devem aparecer nessa autoavaliação quando forem relevantes. **Incluir o bloco `<confidence_vector>`** com as 6 dimensões usando o template em `oxe/templates/PLAN.template.md`.
235
+ 7b. Antes de declarar `Confiança > 90%`, validar os artefatos racionais:
236
+ - `IMPLEMENTATION-PACK` sem write-set aberto e sem paths `...`;
237
+ - `REFERENCE-ANCHORS` com âncoras críticas resolvidas;
238
+ - `FIXTURE-PACK` cobrindo tarefas de risco.
239
+ Se algo falhar, a confiança deve cair para `<= 90%` e o próximo passo não pode ser `execute`.
184
240
  7a. **Hipóteses Críticas:** ao criar tarefas `L` ou `XL` ou qualquer tarefa que dependa de lib externa, API de terceiros ou serviço de infra não testado ainda — adicionar seção `## Hipóteses Críticas` com pelo menos uma `<hypothesis>` por dependência crítica. Usar `oxe/templates/HYPOTHESES.template.md` como referência. Omitir a seção se todas as tarefas forem `S`/`M` e sem dependências externas não verificadas.
185
241
  8. Aplicar integralmente o bloco **`<plan_quality_gate>`** acima ao `PLAN.md` em disco; corrigir o ficheiro até passar ou documentar gaps explícitos.
186
- 9. Atualizar `.oxe/STATE.md` global: fase `plan_ready`, próximo passo `oxe:execute` apenas se `Melhor plano atual: sim` e a confiança estiver no limiar executável; caso contrário, próximo passo deve reduzir incerteza (`oxe:discuss`, `oxe:research` ou replanejamento).
242
+ 9. Atualizar `.oxe/STATE.md` global: fase `plan_ready`, próximo passo `oxe:execute` apenas se `Melhor plano atual: sim`, a autoavaliação estiver estruturalmente íntegra e a confiança superar o limiar executável; caso contrário, próximo passo deve reduzir incerteza (`oxe:discuss`, `oxe:research` ou replanejamento).
187
243
  10. **Sugestão de agentes (inteligente):** após o gate passar, verificar se o plano tem 3+ domínios distintos (ex.: backend + frontend + DB, ou auth + notificações + UI). Se sim, sugerir proativamente: "Este plano tem N domínios distintos. Quer gerar um blueprint de agentes com `/oxe-plan --agents`?" — não executar automaticamente, apenas oferecer. Se o usuário incluiu `--agents` no input original, executar imediatamente a lógica de `oxe/workflows/plan-agent.md`.
188
244
  11. Listar no chat: resultado do gate (OK ou corrigido), ondas, contagem de tarefas, comando de teste guarda-chuva se houver, melhor-plano-atual e confiança.
189
245
  12. No resumo em chat, deixar explícitos:
@@ -198,6 +254,8 @@ Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N
198
254
  <success_criteria>
199
255
  - [ ] Cada tarefa tem seção **Verificar** com comando ou checklist explícito.
200
256
  - [ ] Dependências entre tarefas estão explícitas.
201
- - [ ] Cada critério da SPEC (IDs **A***) está mapeado em **Aceite vinculado** de alguma tarefa ou explicitamente marcado como gap no plano.
202
- - [ ] Cada R-ID `v1`/`v2` do SPEC tem ao menos um A* coberto por alguma tarefa, ou gap documentado (gate 14).
203
- </success_criteria>
257
+ - [ ] Cada critério da SPEC (IDs **A***) está mapeado em **Aceite vinculado** de alguma tarefa ou explicitamente marcado como gap no plano.
258
+ - [ ] Cada R-ID `v1`/`v2` do SPEC tem ao menos um A* coberto por alguma tarefa, ou gap documentado (gate 14).
259
+ - [ ] `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` existem no escopo resolvido e não ficaram em branco.
260
+ - [ ] Não há `critical_gap` aberto nos artefatos racionais quando a confiança declarada é `> 90%`.
261
+ </success_criteria>
@@ -57,9 +57,9 @@ Todo `PLAN.md` deve conter uma seção visível `## Autoavaliação do Plano` co
57
57
 
58
58
  ### Faixas semânticas
59
59
 
60
- - `85–100%` → pronto para executar
61
- - `7084%` → executável com risco controlado
62
- - `50–69%` → precisa refino antes de execução
60
+ - `91–100%` → pronto para executar
61
+ - `8090%` → plano racional, mas ainda não executável
62
+ - `50–79%` → precisa refino antes de execução
63
63
  - `<50%` → não executar
64
64
 
65
65
  ## Calibração pós-execução