oxe-cc 0.6.5 → 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.
- package/.cursor/commands/oxe-ask.md +11 -0
- package/.cursor/commands/oxe-capabilities.md +11 -0
- package/.cursor/commands/oxe-dashboard.md +11 -0
- package/.github/prompts/oxe-ask.prompt.md +12 -0
- package/.github/prompts/oxe-capabilities.prompt.md +12 -0
- package/.github/prompts/oxe-dashboard.prompt.md +12 -0
- package/CHANGELOG.md +33 -0
- package/README.md +189 -34
- package/assets/oxe-framework-artifacts-paper.png +0 -0
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-azure.cjs +1445 -0
- package/bin/lib/oxe-dashboard.cjs +588 -0
- package/bin/lib/oxe-install-resolve.cjs +4 -1
- package/bin/lib/oxe-operational.cjs +670 -0
- package/bin/lib/oxe-project-health.cjs +655 -118
- package/bin/oxe-cc.js +1404 -17
- package/commands/oxe/ask.md +14 -0
- package/commands/oxe/capabilities.md +13 -0
- package/commands/oxe/dashboard.md +14 -0
- package/lib/sdk/README.md +9 -7
- package/lib/sdk/index.cjs +56 -0
- package/lib/sdk/index.d.ts +73 -0
- package/oxe/templates/ACTIVE-RUN.template.json +32 -0
- package/oxe/templates/CAPABILITIES.template.md +7 -0
- package/oxe/templates/CAPABILITY.template.md +45 -0
- package/oxe/templates/CHECKPOINTS.template.md +7 -0
- package/oxe/templates/CONFIG.md +3 -2
- package/oxe/templates/EXECUTION-RUNTIME.template.md +68 -0
- package/oxe/templates/INVESTIGATION.template.md +38 -0
- package/oxe/templates/NOTES.template.md +16 -0
- package/oxe/templates/PLAN-REVIEW.template.md +31 -0
- package/oxe/templates/PLAN.template.md +22 -7
- package/oxe/templates/RESEARCH.template.md +11 -4
- package/oxe/templates/SPEC.template.md +6 -4
- package/oxe/templates/STATE.md +45 -7
- package/oxe/templates/config.template.json +14 -5
- package/oxe/workflows/ask.md +71 -0
- package/oxe/workflows/capabilities.md +23 -0
- package/oxe/workflows/dashboard.md +23 -0
- package/oxe/workflows/discuss.md +11 -9
- package/oxe/workflows/execute.md +46 -17
- package/oxe/workflows/help.md +273 -239
- package/oxe/workflows/next.md +10 -8
- package/oxe/workflows/obs.md +70 -20
- package/oxe/workflows/plan-agent.md +2 -1
- package/oxe/workflows/plan.md +70 -21
- package/oxe/workflows/quick.md +14 -6
- package/oxe/workflows/references/adaptive-discovery.md +27 -0
- package/oxe/workflows/references/flow-robustness-contract.md +80 -0
- package/oxe/workflows/research.md +12 -8
- package/oxe/workflows/retro.md +30 -5
- package/oxe/workflows/scan.md +1 -0
- package/oxe/workflows/spec.md +58 -33
- package/oxe/workflows/verify.md +40 -10
- package/package.json +2 -2
package/oxe/workflows/retro.md
CHANGED
|
@@ -34,6 +34,27 @@ Pode ser chamado:
|
|
|
34
34
|
**Formato de lição (prescritivo, não descritivo):**
|
|
35
35
|
- ❌ "A tarefa T4 demorou muito" (descritivo — não ajuda no próximo ciclo)
|
|
36
36
|
- ✅ "Tarefas com integração de terceiros devem ter Complexidade L mínimo + Verificar com mock fallback" (prescritivo — o próximo plan pode aplicar)
|
|
37
|
+
|
|
38
|
+
**Campos obrigatórios de cada lição:**
|
|
39
|
+
```
|
|
40
|
+
- **Lição C-NN-L1:** <instrução prescritiva — o que fazer diferente>
|
|
41
|
+
- **Raiz:** <por que aconteceu>
|
|
42
|
+
- **Tipo:** spec | plan | execute | verify | process | agents
|
|
43
|
+
- **Aplicar em:** /oxe-spec | /oxe-plan | /oxe-execute | etc.
|
|
44
|
+
- **Status:** ativo | resolvido
|
|
45
|
+
- **Frequência:** N ← quantos ciclos registraram ou confirmaram esta lição
|
|
46
|
+
- **Impacto:** alto | médio | baixo ← criticidade se repetida
|
|
47
|
+
- **Última aplicação:** YYYY-MM-DD
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Regras de scoring:**
|
|
51
|
+
- **Frequência:** começa em `1`. A cada novo ciclo em que a mesma lição se repete (mesma raiz + tipo), incrementar `Frequência: N+1` e atualizar `Última aplicação` **em vez de criar entrada duplicada**.
|
|
52
|
+
- **Impacto alto:** causou retrabalho de ciclo inteiro, falha no verify, ou seria crítico se repetido — tipo auth, schema, contrato público.
|
|
53
|
+
- **Impacto médio:** causou atraso ou retrabalho localizado (1–3 tarefas).
|
|
54
|
+
- **Impacto baixo:** menor, já tem mitigação óbvia, ou restrito a contexto muito específico.
|
|
55
|
+
|
|
56
|
+
**Como os consumidores usam o scoring (instrução para spec e plan):**
|
|
57
|
+
Ao ler `LESSONS.md`, priorizar entradas com **`Frequência >= 2`** ou **`Impacto: alto`** — aplicar como restrições explícitas. Lições com `Frequência: 1` e `Impacto: baixo` são contexto secundário.
|
|
37
58
|
</taxonomy>
|
|
38
59
|
|
|
39
60
|
<process>
|
|
@@ -43,12 +64,14 @@ Pode ser chamado:
|
|
|
43
64
|
4. Ler **`.oxe/STATE.md`**: capturar número de ondas, execute_mode usado, se houve loop, se houve escalação para forensics.
|
|
44
65
|
5. Sintetizar **3–5 lições prescritivas** (não mais — qualidade sobre quantidade):
|
|
45
66
|
- Cada lição responde: "O que o próximo ciclo deve fazer diferente?"
|
|
46
|
-
- Formato: **Lição**
|
|
67
|
+
- Formato: **Lição** + **Raiz** + **Tipo** + **Aplicar em** + **Frequência** + **Impacto** (ver taxonomia)
|
|
68
|
+
- Avaliar impacto: `alto` se causou retrabalho de ciclo/falha crítica; `médio` se localizado; `baixo` se menor
|
|
47
69
|
6. Determinar o próximo **ciclo ID** (C-NN) lendo `.oxe/LESSONS.md` existente ou começando em C-01.
|
|
48
70
|
7. Criar ou atualizar **`.oxe/LESSONS.md`** usando `oxe/templates/LESSONS.template.md`:
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
71
|
+
- **Antes de adicionar:** verificar se alguma lição de ciclo anterior tem a mesma raiz e tipo. Se sim, **incrementar `Frequência`** e atualizar `Última aplicação: YYYY-MM-DD` nessa entrada existente — **não duplicar**.
|
|
72
|
+
- Apenas entradas genuinamente novas recebem uma nova linha na tabela de índice (mais recente primeiro).
|
|
73
|
+
- Adicionar seção `### C-NN` com as lições novas do ciclo (ou referência às entradas incrementadas).
|
|
74
|
+
- **Nunca apagar** entradas anteriores — só mudar `Status: resolvido` se a lição foi definitivamente superada.
|
|
52
75
|
8. Atualizar **`.oxe/STATE.md`**: campo `last_retro: YYYY-MM-DD`.
|
|
53
76
|
9. Responder no chat: ID do ciclo (C-NN), número de lições registradas, lição mais crítica em 1 frase, sugestão do próximo ciclo (`/oxe-scan` ou `/oxe-spec`).
|
|
54
77
|
</process>
|
|
@@ -57,6 +80,8 @@ Pode ser chamado:
|
|
|
57
80
|
- [ ] `.oxe/LESSONS.md` existe com entrada C-NN na tabela e seção de detalhe.
|
|
58
81
|
- [ ] Cada lição é prescritiva (diz o que fazer) não descritiva (não é só o que aconteceu).
|
|
59
82
|
- [ ] 3–5 lições por ciclo — não um dump completo de eventos.
|
|
83
|
+
- [ ] Cada lição tem campos `Frequência`, `Impacto` e `Última aplicação` preenchidos.
|
|
84
|
+
- [ ] Lições com raiz e tipo iguais a entradas anteriores têm `Frequência` incrementada, não duplicadas.
|
|
60
85
|
- [ ] `STATE.md` tem `last_retro` atualizado.
|
|
61
|
-
- [ ] Entradas anteriores preservadas; apenas `Status` pode mudar
|
|
86
|
+
- [ ] Entradas anteriores preservadas; apenas `Status` pode mudar para `resolvido`.
|
|
62
87
|
</success_criteria>
|
package/oxe/workflows/scan.md
CHANGED
|
@@ -35,6 +35,7 @@ Flag `--refresh`: forçar modo refresh.
|
|
|
35
35
|
<process>
|
|
36
36
|
1. Garantir pastas `.oxe/` e `.oxe/codebase/`.
|
|
37
37
|
2. Inventariar o repo (Glob/Grep): linguagens, manifests (`package.json`, `pom.xml`, `go.mod`, etc.), pastas principais — aplicando foco/ignore da config se houver.
|
|
38
|
+
2d. **Detecção de Azure:** se o inventário revelar uso de Azure — pacotes `@azure/*` em `package.json`, `com.microsoft.azure.*` em `pom.xml`, `github.com/Azure/...` em `go.mod`, imports `azure.*` em `.py` / `.cs` / `.java`, ou variáveis de ambiente com prefixo `AZURE_` — registrar em **INTEGRATIONS.md** com: serviços detectados, versão do SDK quando disponível, variáveis de ambiente usadas (sem valores) e referência ao provider nativo `oxe-cc azure`. Se `.oxe/cloud/azure/INVENTORY.md` existir, mencionar o inventário materializado em INTEGRATIONS.md. **Esta detecção é apenas informativa** — registra a presença de SDKs Azure em INTEGRATIONS.md, mas não altera o fluxo canônico OXE nem aciona steps Azure em projetos que não dependem do provider. O provider `oxe-cc azure` é opt-in: só deve ser usado quando o usuário informar explicitamente na SPEC ou ativar via `oxe-cc azure auth login`.
|
|
38
39
|
2b. **Legado / brownfield:** se o inventário revelar sinais de mainframe ou desktop legado (ex.: `*.cbl`, `*.jcl`, pastas `jcl/`, `cpy/` ou `copy/`, `*.cpy`, `*.frm` / `*.vbp`, volume de `*.sql` com procedures), aplicar **`oxe/workflows/references/legacy-brownfield.md`** ao preencher STACK, STRUCTURE, INTEGRATIONS, TESTING e CONCERNS — **sem** assumir Node/Java nem omitir TESTING.md quando não houver CI.
|
|
39
40
|
2c. **`docs/` / `src/docs/` com documentação humana:** se existir pasta de documentação com índice (`docs/INDICE-GERAL.md`, `docs/README.md`, `**/00-*INDICE*.md`, ou enciclopédia por camadas), em **OVERVIEW** e **STRUCTURE** resumir o **papel das subpastas** (ex.: `tecnico/`, `negocio/`, `glossary/`, comparativos, baixa plataforma) e linkar o ficheiro índice em backticks. Em **INTEGRATIONS** (e se útil em OVERVIEW), quando o repo for híbrido host + distribuído + externos, incluir bullets **Alta plataforma**, **Baixa plataforma**, **Externo** conforme `legacy-brownfield.md`. Sugerir template opcional `oxe/templates/DOCS_BROWNFIELD_LAYOUT.md` ao utilizador se a árvore `docs/` estiver em crescimento.
|
|
40
41
|
3. Produzir **sete** arquivos em `.oxe/codebase/` (paralelize subagentes quando disponível):
|
package/oxe/workflows/spec.md
CHANGED
|
@@ -13,20 +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
|
-
**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
30
37
|
|
|
31
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.
|
|
32
39
|
|
|
@@ -38,6 +45,8 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
|
|
|
38
45
|
|
|
39
46
|
**Objetivo:** entender completamente a ideia antes de qualquer escrita de artefato.
|
|
40
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
|
+
|
|
41
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.
|
|
42
51
|
|
|
43
52
|
**Blocos de perguntas (adaptar ao contexto):**
|
|
@@ -64,6 +73,12 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
|
|
|
64
73
|
- Após rodada 3: avançar para Fase 2 mesmo com suposições explícitas
|
|
65
74
|
|
|
66
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.
|
|
67
82
|
</fase_1_perguntas>
|
|
68
83
|
|
|
69
84
|
<fase_2_pesquisa>
|
|
@@ -71,12 +86,14 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
|
|
|
71
86
|
|
|
72
87
|
**Objetivo:** investigar domínios incertos antes de escrever requisitos.
|
|
73
88
|
|
|
74
|
-
**Proposta ao usuário:** com base na Fase 1, listar 2-4 áreas de investigação sugeridas e perguntar quais investigar. Exemplos:
|
|
75
|
-
- "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?"
|
|
76
92
|
|
|
77
93
|
**Se aprovado:**
|
|
78
|
-
- Criar notas de pesquisa datadas em `research/YYYY-MM-DD-<slug>.md` no escopo ativo (usar fluxo de `research.md`)
|
|
79
|
-
- 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
|
|
80
97
|
- Consolidar descobertas relevantes antes de avançar para Fase 3
|
|
81
98
|
|
|
82
99
|
**Se pulado:** registrar em `SPEC.md` as áreas de incerteza como suposições explícitas.
|
|
@@ -111,7 +128,7 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
|
|
|
111
128
|
<fase_4_roteiro>
|
|
112
129
|
## Fase 4 — Roteiro
|
|
113
130
|
|
|
114
|
-
**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.
|
|
115
132
|
|
|
116
133
|
**Lógica de agrupamento:**
|
|
117
134
|
- Agrupar requisitos v1 em fases por **dependência técnica** e **valor entregável**
|
|
@@ -119,14 +136,14 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
|
|
|
119
136
|
- Fase 1 = o que `/oxe-plan` implementará no próximo ciclo
|
|
120
137
|
- Fases 2+ = ciclos futuros de spec→plan→execute→verify
|
|
121
138
|
|
|
122
|
-
**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:
|
|
123
140
|
|
|
124
141
|
```markdown
|
|
125
142
|
---
|
|
126
143
|
oxe_doc: roadmap
|
|
127
144
|
status: draft
|
|
128
145
|
updated: <data>
|
|
129
|
-
spec_ref: SPEC.md
|
|
146
|
+
spec_ref: SPEC.md
|
|
130
147
|
---
|
|
131
148
|
|
|
132
149
|
## Fase 1 — [Nome]
|
|
@@ -166,6 +183,12 @@ Percorrer esta lista de verificação:
|
|
|
166
183
|
- **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
|
|
167
184
|
|
|
168
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.
|
|
169
192
|
</auto_reflexao>
|
|
170
193
|
|
|
171
194
|
<fase_5_aprovacao>
|
|
@@ -198,24 +221,26 @@ O resultado desta reflexão é **invisível ao usuário** — é trabalho intern
|
|
|
198
221
|
</fase_5_aprovacao>
|
|
199
222
|
|
|
200
223
|
<process>
|
|
201
|
-
1. Ler `.oxe/STATE.md`, `OVERVIEW.md`, `STACK.md` e `OBSERVATIONS.md` do escopo ativo (verificar pendentes).
|
|
202
|
-
2.
|
|
203
|
-
3. **Fase
|
|
204
|
-
4. **Fase
|
|
205
|
-
5. **Fase
|
|
206
|
-
6.
|
|
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 há capabilities úteis e se investigações anteriores reduzem incerteza.
|
|
226
|
+
3. **Fase 1 — Perguntas:** enviar bloco coeso de 3-5 perguntas; máx 3 rodadas; confirmar entendimento.
|
|
227
|
+
4. **Fase 2 — Pesquisa:** propor áreas de investigação; aguardar aprovação; executar se aprovado.
|
|
228
|
+
5. **Fase 3 — Requisitos:** 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:
|
|
207
231
|
- Frontmatter YAML (`oxe_doc: spec`, `status`, `updated`, `inputs`)
|
|
208
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`
|
|
209
234
|
- Preservar chaves existentes se SPEC.md já existir; atualizar `updated:`
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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`.
|
|
214
239
|
</process>
|
|
215
240
|
|
|
216
241
|
<success_criteria>
|
|
217
|
-
- [ ] `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.
|
|
218
|
-
- [ ] `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).
|
|
219
244
|
- [ ] Tabela de requisitos R-ID foi apresentada e validada (v1/v2/fora) antes do roteiro.
|
|
220
245
|
- [ ] Usuário foi consultado no gate da Fase 5 e escolheu o próximo passo.
|
|
221
246
|
- [ ] OBS pendentes com impacto `spec` foram incorporadas e marcadas `incorporada`.
|
package/oxe/workflows/verify.md
CHANGED
|
@@ -13,15 +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
|
-
-
|
|
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.
|
|
19
23
|
- Não destruir `PLAN.md`; registrar achados em `VERIFY.md`.
|
|
20
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).
|
|
21
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).
|
|
22
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`**.
|
|
23
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.
|
|
24
|
-
- **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.
|
|
25
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.
|
|
26
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.
|
|
27
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.
|
|
@@ -33,8 +37,9 @@ Se o usuário indicar uma tarefa (ex.: `T2`), focar só nela nas camadas 1–2;
|
|
|
33
37
|
Verificar que o PLAN.md está apto para verificação:
|
|
34
38
|
1. Toda tarefa `### Tn` tem bloco **Verificar** com pelo menos Comando ou Manual.
|
|
35
39
|
2. Todo **Aceite vinculado** referencia IDs que existem na tabela de SPEC.md (`A1`, `A2`, …).
|
|
36
|
-
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).
|
|
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).
|
|
37
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.
|
|
38
43
|
|
|
39
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.
|
|
40
45
|
</camada_1_pre_exec_audit>
|
|
@@ -46,7 +51,7 @@ Para cada tarefa relevante, executar **Verificar: Comando** do PLAN (ou subconju
|
|
|
46
51
|
</camada_2_tarefas_e_criterios>
|
|
47
52
|
|
|
48
53
|
<camada_3_fidelidade_decisoes>
|
|
49
|
-
**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)
|
|
50
55
|
|
|
51
56
|
Para cada decisão na tabela de DISCUSS.md:
|
|
52
57
|
1. Localizar a(s) tarefa(s) que referenciam esse ID em **Decisão vinculada:**.
|
|
@@ -74,22 +79,47 @@ Para cada critério da SPEC que exige validação manual:
|
|
|
74
79
|
O preenchimento da checklist é responsabilidade do **usuário** (não do agente de IA).
|
|
75
80
|
</camada_4_uat>
|
|
76
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
|
+
|
|
77
103
|
<process>
|
|
78
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.
|
|
79
|
-
2. Ler `SPEC.md`, `PLAN.md` e `DISCUSS.md` do escopo resolvido, além de `.oxe/STATE.md` global.
|
|
105
|
+
2. Ler `SPEC.md`, `PLAN.md` e `DISCUSS.md` do escopo resolvido, além de `.oxe/STATE.md` global.
|
|
80
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.
|
|
81
107
|
4. **Camada 3:** Se existir `.oxe/DISCUSS.md` com IDs D-NN, executar **Fidelidade de decisões** conforme `<camada_3_fidelidade_decisoes>`.
|
|
82
|
-
5.
|
|
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:
|
|
83
111
|
- Data, ambiente (SO / versão do Node se relevante).
|
|
84
112
|
- **Seção — Auditoria de pré-execução:** resultado da Camada 1.
|
|
85
113
|
- **Tabela — Tarefas:** Tarefa (Tn) | Verificação (comando/checklist) | Passou? | Notas.
|
|
86
114
|
- **Tabela — Critérios SPEC:** ID (A1…) | Critério (resumo) | Evidência | Passou? | Notas.
|
|
87
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>`.
|
|
88
118
|
- **Checklist UAT** (Camada 4).
|
|
89
119
|
- **Gaps** — o que falhou e sugestão de correção; se não houver, escrever `Nenhum gap restante`.
|
|
90
|
-
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).
|
|
91
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.
|
|
92
|
-
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.
|
|
93
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.
|
|
94
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.
|
|
95
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.
|
|
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"
|