oxe-cc 0.6.6 → 0.7.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 (47) hide show
  1. package/.cursor/commands/oxe-capabilities.md +11 -0
  2. package/.cursor/commands/oxe-dashboard.md +11 -0
  3. package/.github/prompts/oxe-capabilities.prompt.md +12 -0
  4. package/.github/prompts/oxe-dashboard.prompt.md +12 -0
  5. package/CHANGELOG.md +33 -0
  6. package/README.md +147 -11
  7. package/assets/oxe-framework-artifacts-paper.png +0 -0
  8. package/bin/banner.txt +1 -1
  9. package/bin/lib/oxe-azure.cjs +1445 -0
  10. package/bin/lib/oxe-dashboard.cjs +588 -0
  11. package/bin/lib/oxe-install-resolve.cjs +4 -1
  12. package/bin/lib/oxe-operational.cjs +670 -0
  13. package/bin/lib/oxe-project-health.cjs +372 -28
  14. package/bin/oxe-cc.js +1517 -312
  15. package/commands/oxe/capabilities.md +13 -0
  16. package/commands/oxe/dashboard.md +14 -0
  17. package/lib/sdk/README.md +9 -7
  18. package/lib/sdk/index.cjs +56 -0
  19. package/lib/sdk/index.d.ts +73 -0
  20. package/oxe/templates/ACTIVE-RUN.template.json +32 -0
  21. package/oxe/templates/CAPABILITIES.template.md +7 -0
  22. package/oxe/templates/CAPABILITY.template.md +45 -0
  23. package/oxe/templates/CHECKPOINTS.template.md +7 -0
  24. package/oxe/templates/EXECUTION-RUNTIME.template.md +68 -0
  25. package/oxe/templates/INVESTIGATION.template.md +38 -0
  26. package/oxe/templates/NOTES.template.md +16 -0
  27. package/oxe/templates/PLAN-REVIEW.template.md +31 -0
  28. package/oxe/templates/RESEARCH.template.md +11 -4
  29. package/oxe/templates/SPEC.template.md +6 -4
  30. package/oxe/templates/STATE.md +45 -7
  31. package/oxe/templates/config.template.json +11 -3
  32. package/oxe/workflows/ask.md +10 -1
  33. package/oxe/workflows/capabilities.md +23 -0
  34. package/oxe/workflows/dashboard.md +23 -0
  35. package/oxe/workflows/discuss.md +11 -9
  36. package/oxe/workflows/execute.md +57 -35
  37. package/oxe/workflows/help.md +256 -225
  38. package/oxe/workflows/obs.md +70 -20
  39. package/oxe/workflows/plan.md +83 -74
  40. package/oxe/workflows/quick.md +16 -11
  41. package/oxe/workflows/references/adaptive-discovery.md +27 -0
  42. package/oxe/workflows/research.md +12 -8
  43. package/oxe/workflows/retro.md +30 -5
  44. package/oxe/workflows/scan.md +1 -0
  45. package/oxe/workflows/spec.md +65 -48
  46. package/oxe/workflows/verify.md +52 -37
  47. package/package.json +2 -2
@@ -13,22 +13,27 @@ Para trabalho **muito pequeno** que não justifica spec completa: redirecionar p
13
13
  Se **`.oxe/config.json`** tiver `discuss_before_plan: true`: mencionar no final da Fase 5 que o próximo passo é **`oxe:discuss`** antes do plano.
14
14
  </objective>
15
15
 
16
- <context>
17
- **Pré-requisito preferível:** scan executado. Se não existir, mencionar na spec que o mapa está pendente.
18
-
19
- **Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de escrever, resolver artefatos obrigatórios, validar pré-condições e só então produzir a spec. O output desta fase deve deixar evidência estruturada suficiente para o `plan` decidir se o plano é realmente o melhor disponível.
20
-
21
- **Resolução de sessão:** antes de ler ou escrever artefatos desta trilha, resolver `active_session` em `.oxe/STATE.md` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa:
22
- - `SPEC.md`, `ROADMAP.md` e `DISCUSS.md` vivem em `.oxe/<active_session>/spec/`
23
- - `OBSERVATIONS.md`, `RESEARCH.md` e `research/` seguem o escopo da sessão
24
- - `LESSONS.md` continua global em `.oxe/global/LESSONS.md`
25
- - sem sessão ativa, manter o modo legado na raiz `.oxe/`
26
-
27
- Ler no início:
28
- - `.oxe/STATE.md` — fase atual, decisões, workstream ativo
29
- - `.oxe/codebase/OVERVIEW.md` e `STACK.md` se existirem — não contradizer o repo
30
- - **OBS do escopo ativo** se houver entradas `pendente` com impacto `spec` ou `all`, incorporá-las na Fase 3 (Requisitos) e marcá-las `incorporada → spec (data)` após uso
31
- - **`.oxe/global/LESSONS.md`** — se existir, ler entradas com `Aplicar em: spec` e status `ativo`. Usar como restrições explícitas ou alertas durante a Fase 1 (perguntas) e Fase 3 (requisitos). Exemplo: se uma lição diz "perguntar explicitamente sobre integração com X", adicionar essa pergunta no Bloco B da Fase 1.
16
+ <context>
17
+ **Pré-requisito preferível:** scan executado. Se não existir, mencionar na spec que o mapa está pendente.
18
+
19
+ **Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de escrever, resolver artefatos obrigatórios, validar pré-condições e só então produzir a spec. O output desta fase deve deixar evidência estruturada suficiente para o `plan` decidir se o plano é realmente o melhor disponível.
20
+
21
+ **Discovery adaptativo:** antes da primeira pergunta, aplicar `oxe/workflows/references/adaptive-discovery.md`. Classificar a demanda, modular os blocos de perguntas conforme o domínio, limitar rodadas e consolidar incertezas estruturadas que depois alimentarão a confiança do plano.
22
+
23
+ **Resolução de sessão:** antes de ler ou escrever artefatos desta trilha, resolver `active_session` em `.oxe/STATE.md` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa:
24
+ - `SPEC.md`, `ROADMAP.md` e `DISCUSS.md` vivem em `.oxe/<active_session>/spec/`
25
+ - `OBSERVATIONS.md`, `RESEARCH.md` e `research/` seguem o escopo da sessão
26
+ - `LESSONS.md` continua global em `.oxe/global/LESSONS.md`
27
+ - sem sessão ativa, manter o modo legado na raiz `.oxe/`
28
+
29
+ Ler no início:
30
+ - `.oxe/STATE.md`fase atual, decisões, workstream ativo
31
+ - `EXECUTION-RUNTIME.md`, `CHECKPOINTS.md` e `memory/` do escopo ativo se existirem usar como contexto auxiliar, nunca como substituto da SPEC
32
+ - `.oxe/codebase/OVERVIEW.md` e `STACK.md` se existirem — não contradizer o repo
33
+ - **OBS do escopo ativo** — se houver entradas `pendente` com impacto `spec` ou `all`, incorporá-las na Fase 3 (Requisitos) e marcá-las `incorporada → spec (data)` após uso
34
+ - **`.oxe/global/LESSONS.md`** — se existir, ler entradas com `Aplicar em: spec` e status `ativo`. **Priorizar entradas com `Frequência >= 2` ou `Impacto: alto`** — aplicar como restrições explícitas. Entradas com `Frequência: 1` e `Impacto: baixo` são contexto secundário. Usar durante a Fase 1 (perguntas) e Fase 3 (requisitos). Exemplo: se uma lição diz "perguntar explicitamente sobre integração com X", adicionar essa pergunta no Bloco B da Fase 1.
35
+ - `.oxe/CAPABILITIES.md` e `.oxe/INVESTIGATIONS.md` — usar para sugerir capacidades e pesquisas já existentes antes de abrir novas lacunas
36
+ - Se o problema tocar Azure, ler `.oxe/cloud/azure/profile.json`, `auth-status.json` e `INVENTORY.md` antes de fechar requisitos; se o inventário estiver ausente ou stale, exigir discovery via `oxe-cc azure sync` antes de consolidar a spec
32
37
 
33
38
  **Brownfield (COBOL, JCL, copybooks, VB6, SP):** quando o objetivo for documentar ou planear migração, ver **`oxe/workflows/references/legacy-brownfield.md`** — épicos por trilha, critérios A* verificáveis por Grep/leitura/checklist.
34
39
 
@@ -40,6 +45,8 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
40
45
 
41
46
  **Objetivo:** entender completamente a ideia antes de qualquer escrita de artefato.
42
47
 
48
+ **Classificar a demanda no início:** antes do primeiro bloco, rotular a trilha com um tipo dominante (`feature`, `bugfix`, `refactor`, `investigação`, `migração`, `integração`, `infra`, `dados`, `ui`, `segurança`). Registar esse tipo na seção de contexto da SPEC.
49
+
43
50
  **Regra de ouro:** nunca uma pergunta por vez — sempre um **bloco coeso** de 3-5 perguntas por rodada. Máximo **3 rodadas**; sinalize quando achar que tem entendimento completo e peça confirmação antes de avançar.
44
51
 
45
52
  **Blocos de perguntas (adaptar ao contexto):**
@@ -66,6 +73,12 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
66
73
  - Após rodada 3: avançar para Fase 2 mesmo com suposições explícitas
67
74
 
68
75
  **Ao final:** "Acho que entendi completamente. Confirma antes de avançarmos para pesquisa/requisitos? [resumo em 3-5 bullets]"
76
+
77
+ **Registar incertezas estruturadas:** ao fim de cada rodada, consolidar:
78
+ - o que já está estável;
79
+ - o que segue ambíguo;
80
+ - quais evidências faltam;
81
+ - quais riscos podem reduzir a confiança do plano.
69
82
  </fase_1_perguntas>
70
83
 
71
84
  <fase_2_pesquisa>
@@ -73,12 +86,14 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
73
86
 
74
87
  **Objetivo:** investigar domínios incertos antes de escrever requisitos.
75
88
 
76
- **Proposta ao usuário:** com base na Fase 1, listar 2-4 áreas de investigação sugeridas e perguntar quais investigar. Exemplos:
77
- - "Há 3 áreas com incerteza técnica: autenticação JWT, integração com Stripe, e deploy em edge. Quer investigar alguma antes de avançar para requisitos?"
89
+ **Proposta ao usuário:** com base na Fase 1, listar 2-4 áreas de investigação sugeridas e perguntar quais investigar. Exemplos:
90
+ - "Há 3 áreas com incerteza técnica: autenticação JWT, integração com Stripe, e deploy em edge. Quer investigar alguma antes de avançar para requisitos?"
91
+ - "A trilha depende de Azure e o inventário está incompleto. Quer sincronizar recursos reais antes de congelar os requisitos?"
78
92
 
79
93
  **Se aprovado:**
80
- - Criar notas de pesquisa datadas em `research/YYYY-MM-DD-<slug>.md` no escopo ativo (usar fluxo de `research.md`)
81
- - Atualizar `RESEARCH.md` no mesmo escopo
94
+ - Criar notas de pesquisa datadas em `research/YYYY-MM-DD-<slug>.md` no escopo ativo (usar fluxo de `research.md`)
95
+ - Atualizar `RESEARCH.md` no mesmo escopo
96
+ - Atualizar `INVESTIGATIONS.md` com objetivo, fontes, profundidade, resultado e impacto na trilha
82
97
  - Consolidar descobertas relevantes antes de avançar para Fase 3
83
98
 
84
99
  **Se pulado:** registrar em `SPEC.md` as áreas de incerteza como suposições explícitas.
@@ -113,7 +128,7 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
113
128
  <fase_4_roteiro>
114
129
  ## Fase 4 — Roteiro
115
130
 
116
- **Objetivo:** criar fases de entrega mapeadas aos requisitos v1 e escrever `ROADMAP.md` no escopo ativo da sessão.
131
+ **Objetivo:** criar fases de entrega mapeadas aos requisitos v1 e escrever `ROADMAP.md` no escopo ativo da sessão.
117
132
 
118
133
  **Lógica de agrupamento:**
119
134
  - Agrupar requisitos v1 em fases por **dependência técnica** e **valor entregável**
@@ -121,14 +136,14 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
121
136
  - Fase 1 = o que `/oxe-plan` implementará no próximo ciclo
122
137
  - Fases 2+ = ciclos futuros de spec→plan→execute→verify
123
138
 
124
- **Escrever `ROADMAP.md`** usando `oxe/templates/ROADMAP.template.md` no escopo ativo:
139
+ **Escrever `ROADMAP.md`** usando `oxe/templates/ROADMAP.template.md` no escopo ativo:
125
140
 
126
141
  ```markdown
127
142
  ---
128
143
  oxe_doc: roadmap
129
144
  status: draft
130
145
  updated: <data>
131
- spec_ref: SPEC.md
146
+ spec_ref: SPEC.md
132
147
  ---
133
148
 
134
149
  ## Fase 1 — [Nome]
@@ -162,19 +177,19 @@ Percorrer esta lista de verificação:
162
177
  | 5 | **Critérios vagos:** algum A* usa linguagem não-mensurável ("deve ser rápido", "interface amigável") sem métrica? | Refinar: "resposta < 200ms p95", "WCAG 2.1 AA" |
163
178
  | 6 | **Dependências implícitas:** algum requisito v1 pressupõe que outro requisito (v2 ou fora) já esteja implementado? | Tornar dependência explícita ou reordenar versioning |
164
179
 
165
- **Resultado obrigatório antes de avançar:**
166
- - **0 problemas** → avançar para Fase 5 normalmente.
167
- - **1–2 problemas** → corrigir inline na spec, anotar o que foi ajustado em 1 linha.
168
- - **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
169
-
170
- O resultado desta reflexão é **invisível ao usuário** — é trabalho interno do agente. Somente os ajustes feitos aparecem na spec final.
171
-
172
- **Saída estruturada obrigatória para o plan:** após esta reflexão, a SPEC final deve deixar explícitos:
173
- - requisitos estáveis;
174
- - ambiguidades restantes;
175
- - conflitos resolvidos ou ainda abertos;
176
- - evidências faltantes que podem reduzir a confiança do plano.
177
- </auto_reflexao>
180
+ **Resultado obrigatório antes de avançar:**
181
+ - **0 problemas** → avançar para Fase 5 normalmente.
182
+ - **1–2 problemas** → corrigir inline na spec, anotar o que foi ajustado em 1 linha.
183
+ - **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
184
+
185
+ O resultado desta reflexão é **invisível ao usuário** — é trabalho interno do agente. Somente os ajustes feitos aparecem na spec final.
186
+
187
+ **Saída estruturada obrigatória para o plan:** após esta reflexão, a SPEC final deve deixar explícitos:
188
+ - requisitos estáveis;
189
+ - ambiguidades restantes;
190
+ - conflitos resolvidos ou ainda abertos;
191
+ - evidências faltantes que podem reduzir a confiança do plano.
192
+ </auto_reflexao>
178
193
 
179
194
  <fase_5_aprovacao>
180
195
  ## Fase 5 — Aprovação e próximo passo
@@ -206,24 +221,26 @@ O resultado desta reflexão é **invisível ao usuário** — é trabalho intern
206
221
  </fase_5_aprovacao>
207
222
 
208
223
  <process>
209
- 1. Ler `.oxe/STATE.md`, `OVERVIEW.md`, `STACK.md` e `OBSERVATIONS.md` do escopo ativo (verificar pendentes).
210
- 2. **Fase 1 Perguntas:** enviar bloco coeso de 3-5 perguntas; máx 3 rodadas; confirmar entendimento.
211
- 3. **Fase 2Pesquisa:** propor áreas de investigação; aguardar aprovação; executar se aprovado.
212
- 4. **Fase 3Requisitos:** extrair tabela R-ID com v1/v2/fora e critérios A*; incorporar OBS pendentes; apresentar para validação.
213
- 5. **Fase 4Roteiro:** agrupar requisitos v1 em fases; escrever `ROADMAP.md` no escopo ativo.
214
- 6. Escrever **`SPEC.md`** usando `oxe/templates/SPEC.template.md` no escopo ativo:
224
+ 1. Ler `.oxe/STATE.md`, `OVERVIEW.md`, `STACK.md` e `OBSERVATIONS.md` do escopo ativo (verificar pendentes).
225
+ 2. Aplicar `adaptive-discovery.md`: classificar a demanda, verificar se capabilities úteis e se investigações anteriores reduzem incerteza.
226
+ 3. **Fase 1Perguntas:** enviar bloco coeso de 3-5 perguntas; máx 3 rodadas; confirmar entendimento.
227
+ 4. **Fase 2Pesquisa:** propor áreas de investigação; aguardar aprovação; executar se aprovado.
228
+ 5. **Fase 3Requisitos:** extrair tabela R-ID com v1/v2/fora e critérios A*; incorporar OBS pendentes; apresentar para validação.
229
+ 6. **Fase 4 Roteiro:** agrupar requisitos v1 em fases; escrever `ROADMAP.md` no escopo ativo.
230
+ 7. Escrever **`SPEC.md`** usando `oxe/templates/SPEC.template.md` no escopo ativo:
215
231
  - Frontmatter YAML (`oxe_doc: spec`, `status`, `updated`, `inputs`)
216
232
  - Objetivo, Escopo (dentro/fora), Critérios de aceite (tabela A*), Suposições e riscos, Referências
233
+ - Preencher explicitamente `Tipo de demanda` e `Incertezas estruturadas`
217
234
  - Preservar chaves existentes se SPEC.md já existir; atualizar `updated:`
218
- 6b. **Auto-reflexão:** executar integralmente o bloco `<auto_reflexao>` antes de avançar. Corrigir a spec conforme necessário. Não apresentar a lista de verificação ao usuário — apenas a spec corrigida.
219
- 7. **Fase 5 — Aprovação:** apresentar resumo, aguardar aprovação do roteiro, redirecionar.
220
- 8. Atualizar **`.oxe/STATE.md`** global: `phase: spec_ready`, próximo passo e referência curta à sessão ativa quando existir.
221
- 9. Marcar OBS incorporadas em `OBSERVATIONS.md` do escopo ativo se houver pendentes de impacto `spec`.
235
+ 7b. **Auto-reflexão:** executar integralmente o bloco `<auto_reflexao>` antes de avançar. Corrigir a spec conforme necessário. Não apresentar a lista de verificação ao usuário — apenas a spec corrigida.
236
+ 8. **Fase 5 — Aprovação:** apresentar resumo, aguardar aprovação do roteiro, redirecionar.
237
+ 9. Atualizar **`.oxe/STATE.md`** global: `phase: spec_ready`, próximo passo e referência curta à sessão ativa quando existir.
238
+ 10. Marcar OBS incorporadas em `OBSERVATIONS.md` do escopo ativo se houver pendentes de impacto `spec`.
222
239
  </process>
223
240
 
224
241
  <success_criteria>
225
- - [ ] `SPEC.md` existe no escopo correto (`spec/` da sessão ou `.oxe/` legado) com critérios A* e coluna Como verificar; `STATE.md` global atualizado.
226
- - [ ] `ROADMAP.md` existe no mesmo escopo com fases mapeadas a R-IDs e A*, status `approved` (ou `draft` se usuário não confirmou).
242
+ - [ ] `SPEC.md` existe no escopo correto (`spec/` da sessão ou `.oxe/` legado) com critérios A* e coluna Como verificar; `STATE.md` global atualizado.
243
+ - [ ] `ROADMAP.md` existe no mesmo escopo com fases mapeadas a R-IDs e A*, status `approved` (ou `draft` se usuário não confirmou).
227
244
  - [ ] Tabela de requisitos R-ID foi apresentada e validada (v1/v2/fora) antes do roteiro.
228
245
  - [ ] Usuário foi consultado no gate da Fase 5 e escolheu o próximo passo.
229
246
  - [ ] OBS pendentes com impacto `spec` foram incorporadas e marcadas `incorporada`.
@@ -13,16 +13,19 @@ Resultado registrado em **`.oxe/VERIFY.md`** com atualização de **STATE**.
13
13
  Se o usuário indicar uma tarefa (ex.: `T2`), focar só nela nas camadas 1–2; as camadas 3–4 são sempre de escopo completo.
14
14
  </objective>
15
15
 
16
- <context>
17
- - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `VERIFY.md`, `VALIDATION-GAPS.md`, `SECURITY.md`, `UI-REVIEW.md` e `SUMMARY.md` vivem no escopo da sessão; `.oxe/STATE.md` continua global.
18
- - Seguir `oxe/workflows/references/flow-robustness-contract.md`. O verify não valida só se passou; valida também se o plano estava bem calibrado para começar.
19
- - Preferir rodar comandos reais no terminal quando o ambiente permitir; se o sandbox bloquear, marcar como "não executado aqui" e deixar o comando para o usuário.
16
+ <context>
17
+ - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `VERIFY.md`, `VALIDATION-GAPS.md`, `SECURITY.md`, `UI-REVIEW.md` e `SUMMARY.md` vivem no escopo da sessão; `.oxe/STATE.md` continua global.
18
+ - Seguir `oxe/workflows/references/flow-robustness-contract.md`. O verify não valida só se passou; valida também se o plano estava bem calibrado para começar.
19
+ - Ler `EXECUTION-RUNTIME.md` e `CHECKPOINTS.md` do escopo resolvido quando existirem. Eles são evidência tática para saber o que realmente foi executado, bloqueado, aprovado ou desviado.
20
+ - Se a trilha tocar Azure, ler `.oxe/cloud/azure/INVENTORY.md`, `SERVICEBUS.md`, `EVENTGRID.md`, `SQL.md` e `operations/*.md|json` para confirmar recursos reais, checkpoints e mutações aplicadas.
21
+ - **Observações CI como evidência:** se `OBSERVATIONS.md` do escopo resolvido tiver obs do tipo `ci_failure` com `CI-evidência` preenchida, usar como evidência adicional para critérios A* de qualidade (ex.: cobertura, build verde). Se obs tiver `ci_run_url`, referenciar na coluna **Evidência** da tabela de critérios. Se obs estiver `pendente` e critério A* de qualidade existir, marcar o critério como `evidence_pending_ci` — não como passou — até o CI ser resolvido.
22
+ - Preferir rodar comandos reais no terminal quando o ambiente permitir; se o sandbox bloquear, marcar como "não executado aqui" e deixar o comando para o usuário.
20
23
  - Não destruir `PLAN.md`; registrar achados em `VERIFY.md`.
21
24
  - Ler **`.oxe/config.json`** se existir: `after_verify_draft_commit`, `after_verify_suggest_pr`, e `verification_depth` (`"standard"` por padrão; `"thorough"` ativa camadas 3–4 completas; `"quick"` pula camadas 3–4 e UAT).
22
25
  - Os critérios na SPEC devem estar na tabela **Critérios de aceite** com colunas **ID** / **Critério** / **Como verificar**; o verify deve **cruzar cada ID** com evidência (arquivo, comando, trecho).
23
26
  - **Legado:** quando **Comando** for `—` ou inexistente, evidência válida inclui **Read/Grep**, existência de ficheiros referenciados e checklist manual — não marcar critério como passou sem evidência; se o ambiente host/desktop não estiver disponível, registar **não executado aqui** e próximo passo. Ver **`oxe/workflows/references/legacy-brownfield.md`**.
24
27
  - **Debug:** investigação técnica de falhas **durante** a implementação segue **`oxe/workflows/debug.md`** (`/oxe-debug`). Resolver um bug com debug **não** dispensa este passo — após correções, **ainda** é necessário **`verify`** para fechar a trilha face à SPEC/PLAN.
25
- - **UI:** se existirem `UI-SPEC.md` / `UI-REVIEW.md` no escopo resolvido, incorporar na evidência quando os critérios **A*** ou tarefas **Tn** tocarem interface.
28
+ - **UI:** se existirem `UI-SPEC.md` / `UI-REVIEW.md` no escopo resolvido, incorporar na evidência quando os critérios **A*** ou tarefas **Tn** tocarem interface.
26
29
  - **Camada 5 — Validate-gaps (automático quando `verification_depth: "thorough"`):** após as 4 camadas, se `verification_depth: "thorough"` em `.oxe/config.json`, executar automaticamente a lógica de `oxe/workflows/validate-gaps.md` e produzir `.oxe/VALIDATION-GAPS.md` como parte deste verify. Não requer comando separado.
27
30
  - **Camada 6 — Security (automático quando `security_in_verify: true`):** se `security_in_verify: true` em `.oxe/config.json`, executar automaticamente a lógica de `oxe/workflows/security.md` e produzir `.oxe/SECURITY.md` como parte deste verify. Não requer comando separado.
28
31
  - **Rotina compact/checkpoint (opcional):** se esta entrega alterou **estrutura**, **stack** ou **pastas** de forma relevante, `/oxe-scan` em modo refresh alinha `.oxe/codebase/` ao repo. Após **verify** com sucesso, `/oxe-project checkpoint` com slug curto pode marcar estado estável.
@@ -34,12 +37,12 @@ Se o usuário indicar uma tarefa (ex.: `T2`), focar só nela nas camadas 1–2;
34
37
  Verificar que o PLAN.md está apto para verificação:
35
38
  1. Toda tarefa `### Tn` tem bloco **Verificar** com pelo menos Comando ou Manual.
36
39
  2. Todo **Aceite vinculado** referencia IDs que existem na tabela de SPEC.md (`A1`, `A2`, …).
37
- 3. Se houver `DISCUSS.md` no escopo resolvido, toda decisão técnica com ID **D-NN** aparece em **Decisão vinculada:** de alguma tarefa (ou nota explícita de gap no PLAN).
38
- 4. Não há dependências `Tk` inválidas (ID inexistente no PLAN).
39
- 5. `PLAN.md` contém a seção **Autoavaliação do Plano** com `Melhor plano atual`, `Confiança` e rubrica preenchida.
40
-
41
- Se auditoria falhar: registrar na seção **Auditoria de pré-execução** do VERIFY.md os itens com problema e **pausar** — pedir correção do PLAN antes de continuar. Se o usuário forçar continuar com `--skip-audit`, documentar e prosseguir com aviso.
42
- </camada_1_pre_exec_audit>
40
+ 3. Se houver `DISCUSS.md` no escopo resolvido, toda decisão técnica com ID **D-NN** aparece em **Decisão vinculada:** de alguma tarefa (ou nota explícita de gap no PLAN).
41
+ 4. Não há dependências `Tk` inválidas (ID inexistente no PLAN).
42
+ 5. `PLAN.md` contém a seção **Autoavaliação do Plano** com `Melhor plano atual`, `Confiança` e rubrica preenchida.
43
+
44
+ Se auditoria falhar: registrar na seção **Auditoria de pré-execução** do VERIFY.md os itens com problema e **pausar** — pedir correção do PLAN antes de continuar. Se o usuário forçar continuar com `--skip-audit`, documentar e prosseguir com aviso.
45
+ </camada_1_pre_exec_audit>
43
46
 
44
47
  <camada_2_tarefas_e_criterios>
45
48
  **Camada 2 — Verificação de tarefas e critérios SPEC**
@@ -48,7 +51,7 @@ Para cada tarefa relevante, executar **Verificar: Comando** do PLAN (ou subconju
48
51
  </camada_2_tarefas_e_criterios>
49
52
 
50
53
  <camada_3_fidelidade_decisoes>
51
- **Camada 3 — Fidelidade de decisões** (ativa se existir `DISCUSS.md` no escopo resolvido com IDs D-NN)
54
+ **Camada 3 — Fidelidade de decisões** (ativa se existir `DISCUSS.md` no escopo resolvido com IDs D-NN)
52
55
 
53
56
  Para cada decisão na tabela de DISCUSS.md:
54
57
  1. Localizar a(s) tarefa(s) que referenciam esse ID em **Decisão vinculada:**.
@@ -58,7 +61,7 @@ Para cada decisão na tabela de DISCUSS.md:
58
61
  Se uma decisão D-NN não tem tarefa vinculada **e** não há nota de gap no PLAN: marcar como `divergência` e adicionar ao bloco **Gaps**.
59
62
  </camada_3_fidelidade_decisoes>
60
63
 
61
- <camada_4_uat>
64
+ <camada_4_uat>
62
65
  **Camada 4 — UAT (User Acceptance Testing)** (ativa se `after_verify_suggest_uat` não for `false` na config)
63
66
 
64
67
  Gerar uma **Checklist UAT** no VERIFY.md com passos manuais derivados dos critérios de aceite. Formato:
@@ -74,37 +77,49 @@ Para cada critério da SPEC que exige validação manual:
74
77
  ```
75
78
 
76
79
  O preenchimento da checklist é responsabilidade do **usuário** (não do agente de IA).
77
- </camada_4_uat>
78
-
79
- <calibracao_do_plano>
80
- **Calibração do plano** (obrigatória quando existir `PLAN.md`)
81
-
82
- Ler a `## Autoavaliação do Plano` e comparar com o resultado real:
83
- 1. Se `Confiança >= 85%` e houver falha precoce em critérios centrais ou tarefas iniciais, marcar **erro de calibração do plano**.
84
- 2. Se `Confiança < 70%` e as falhas ocorrerem nas incertezas previstas, marcar **autoavaliação aderente**.
85
- 3. Se `Confiança >= 70%` e os critérios/tarefas passarem de forma consistente, marcar **plano calibrado**.
86
- 4. Se `Confiança < 70%` e o ciclo passar amplamente, marcar **plano conservador demais**.
87
-
88
- Registrar em `VERIFY.md`: `Resultado de calibração | Confiança declarada | Resultado observado | Notas`.
89
- </calibracao_do_plano>
90
-
91
- <process>
92
- 1. **Camada 1 Auditoria de pré-execução:** checar integridade do PLAN.md e DISCUSS.md conforme `<camada_1_pre_exec_audit>`. Documentar resultado.
93
- 2. Ler `SPEC.md`, `PLAN.md` e `DISCUSS.md` do escopo resolvido, além de `.oxe/STATE.md` global.
80
+ </camada_4_uat>
81
+
82
+ <calibracao_do_plano>
83
+ **Calibração do plano** (obrigatória quando existir `PLAN.md`)
84
+
85
+ Ler a `## Autoavaliação do Plano` e comparar com o resultado real:
86
+ 1. Se `Confiança >= 85%` e houver falha precoce em critérios centrais ou tarefas iniciais, marcar **erro de calibração do plano**.
87
+ 2. Se `Confiança < 70%` e as falhas ocorrerem nas incertezas previstas, marcar **autoavaliação aderente**.
88
+ 3. Se `Confiança >= 70%` e os critérios/tarefas passarem de forma consistente, marcar **plano calibrado**.
89
+ 4. Se `Confiança < 70%` e o ciclo passar amplamente, marcar **plano conservador demais**.
90
+
91
+ Registrar em `VERIFY.md`: `Resultado de calibração | Confiança declarada | Resultado observado | Notas`.
92
+ </calibracao_do_plano>
93
+
94
+ <runtime_e_checkpoints>
95
+ **Coerência do runtime e checkpoints** (obrigatória quando `EXECUTION-RUNTIME.md` ou `CHECKPOINTS.md` existirem)
96
+
97
+ 1. Verificar se a onda/tarefa que o runtime marca como concluída bate com a evidência real nos arquivos e nos comandos executados.
98
+ 2. Verificar se checkpoints `pending_approval` foram respeitados, e se `approved`, `rejected` ou `overridden` têm evidência e nota curta.
99
+ 3. Se runtime ou checkpoints contradisserem `STATE.md`, `PLAN.md` ou `VERIFY.md`, registrar a incoerência explicitamente.
100
+ 4. Usar esses artefatos como apoio para a seção de gaps e para a calibração do plano.
101
+ </runtime_e_checkpoints>
102
+
103
+ <process>
104
+ 1. **Camada 1 — Auditoria de pré-execução:** checar integridade do PLAN.md e DISCUSS.md conforme `<camada_1_pre_exec_audit>`. Documentar resultado.
105
+ 2. Ler `SPEC.md`, `PLAN.md` e `DISCUSS.md` do escopo resolvido, além de `.oxe/STATE.md` global.
94
106
  3. **Camada 2:** Para cada tarefa relevante, executar **Verificar: Comando** do PLAN (ou subconjunto se foco Tn). Para **cada ID de critério** da SPEC (A1, A2, …), registrar se passou com evidência.
95
107
  4. **Camada 3:** Se existir `.oxe/DISCUSS.md` com IDs D-NN, executar **Fidelidade de decisões** conforme `<camada_3_fidelidade_decisoes>`.
96
- 5. Escrever **`VERIFY.md`** no escopo resolvido com:
108
+ 5. Executar a verificação de coerência do runtime e checkpoints conforme `<runtime_e_checkpoints>`.
109
+ 5a. Para operações Azure, confirmar o estado final com inventário/saída real do provider Azure; não considerar mutação aprovada sem evidência em `.oxe/cloud/azure/operations/`.
110
+ 6. Escrever **`VERIFY.md`** no escopo resolvido com:
97
111
  - Data, ambiente (SO / versão do Node se relevante).
98
112
  - **Seção — Auditoria de pré-execução:** resultado da Camada 1.
99
113
  - **Tabela — Tarefas:** Tarefa (Tn) | Verificação (comando/checklist) | Passou? | Notas.
100
- - **Tabela — Critérios SPEC:** ID (A1…) | Critério (resumo) | Evidência | Passou? | Notas.
101
- - **Tabela — Fidelidade de decisões** (se DISCUSS.md existir): ID | Decisão | Tarefa(s) | Implementado? | Evidência.
102
- - **Seção — Calibração do plano:** resultado conforme `<calibracao_do_plano>`.
103
- - **Checklist UAT** (Camada 4).
114
+ - **Tabela — Critérios SPEC:** ID (A1…) | Critério (resumo) | Evidência | Passou? | Notas.
115
+ - **Tabela — Fidelidade de decisões** (se DISCUSS.md existir): ID | Decisão | Tarefa(s) | Implementado? | Evidência.
116
+ - **Seção — Coerência operacional:** runtime, checkpoints, bloqueios, handoffs e divergências.
117
+ - **Seção Calibração do plano:** resultado conforme `<calibracao_do_plano>`.
118
+ - **Checklist UAT** (Camada 4).
104
119
  - **Gaps** — o que falhou e sugestão de correção; se não houver, escrever `Nenhum gap restante`.
105
- 6. Atualizar **`.oxe/STATE.md`** global: `verify_complete` ou `verify_failed` + próximo passo (replan, corrigir ou publicar).
120
+ 6. Atualizar **`.oxe/STATE.md`** global: `verify_complete` ou `verify_failed` + próximo passo (replan, corrigir ou publicar).
106
121
  6b. **Blueprint plan-agent:** se **todas** as verificações relevantes **passaram**, existir **`.oxe/plan-agents.json`** com `oxePlanAgentsSchema >= 2` e `lifecycle.status === "executing"` (ou `pending_execute`), actualizar o JSON: `lifecycle: { "status": "closed", "since": "<ISO>" }` e espelhar em **`STATE.md`** (**lifecycle_status** → `closed`). Não fechar como `closed` se `verify_failed` ou gaps por resolver.
107
- 7. Acrescentar entrada em **`SUMMARY.md`** do escopo resolvido: se não existir, criar a partir de **`oxe/templates/SUMMARY.template.md`**. **Obrigatório** quando `verify_failed` ou quando a seção **Gaps** tiver itens.
122
+ 7. Acrescentar entrada em **`SUMMARY.md`** do escopo resolvido: se não existir, criar a partir de **`oxe/templates/SUMMARY.template.md`**. **Obrigatório** quando `verify_failed` ou quando a seção **Gaps** tiver itens.
108
123
  7b. **Retrospectiva (pós-verify):** se `verify_complete`, sugerir **`/oxe-retro`** para capturar aprendizados do ciclo em `.oxe/LESSONS.md`. Especialmente importante quando: houve replanejamento (`--replan`), houve falhas em execute que precisaram de debug, critérios A* foram ajustados durante o ciclo, ou o ciclo durou mais de 2 ondas. Retro antes do próximo spec garante que lições orientem o próximo ciclo.
109
124
  7b. **Camada 5 — Validate-gaps automático:** se `verification_depth: "thorough"` em `.oxe/config.json`, executar a lógica de `oxe/workflows/validate-gaps.md` e adicionar seção **Gaps de Cobertura** ao VERIFY.md (mesmo conteúdo de VALIDATION-GAPS.md). Também escrever `.oxe/VALIDATION-GAPS.md` separado.
110
125
  7c. **Camada 6 — Security automático:** se `security_in_verify: true` em `.oxe/config.json`, executar a lógica de `oxe/workflows/security.md` e adicionar seção **Auditoria de Segurança** ao VERIFY.md. Também escrever `.oxe/SECURITY.md` separado. Achados P0 bloqueiam o `verify_complete` — registrar `verify_failed` até P0s serem resolvidos.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oxe-cc",
3
- "version": "0.6.6",
3
+ "version": "0.7.0",
4
4
  "description": "OXE — spec-driven workflows in .oxe/; integrates with Cursor, GitHub Copilot, Claude, OpenCode, Gemini, Codex, Windsurf, Antigravity (npx)",
5
5
  "license": "GPL-3.0",
6
6
  "author": "",
@@ -54,7 +54,7 @@
54
54
  ],
55
55
  "scripts": {
56
56
  "sync:cursor": "node scripts/sync-cursor-from-prompts.cjs",
57
- "test": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-sdk.test.cjs tests/oxe-manifest.test.cjs tests/oxe-agent-install.test.cjs tests/oxe-install-resolve-full.test.cjs tests/oxe-health-extended.test.cjs tests/oxe-workflows-edge.test.cjs tests/oxe-sdk-edge.test.cjs tests/oxe-cli-edge.test.cjs tests/oxe-npm-version.test.cjs tests/oxe-scripts.test.cjs tests/oxe-retro-health.test.cjs",
57
+ "test": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-dashboard.test.cjs tests/oxe-operational.test.cjs tests/oxe-azure.test.cjs tests/oxe-sdk.test.cjs tests/oxe-manifest.test.cjs tests/oxe-agent-install.test.cjs tests/oxe-install-resolve-full.test.cjs tests/oxe-health-extended.test.cjs tests/oxe-workflows-edge.test.cjs tests/oxe-sdk-edge.test.cjs tests/oxe-cli-edge.test.cjs tests/oxe-npm-version.test.cjs tests/oxe-scripts.test.cjs tests/oxe-retro-health.test.cjs",
58
58
  "test:coverage": "c8 --check-coverage --lines 82 --functions 85 --branches 58 --statements 82 npm test",
59
59
  "scan:assets": "node scripts/oxe-assets-scan.cjs",
60
60
  "prepublishOnly": "node scripts/sync-cursor-from-prompts.cjs && npm test && npm run scan:assets && node bin/oxe-cc.js --version"