oxe-cc 0.6.0 → 0.6.2

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.
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: "OXE — Retrospectiva de ciclo: 3–5 lições prescritivas em .oxe/LESSONS.md para ciclos futuros"
3
+ ---
4
+
5
+ OXE — Retrospectiva de ciclo: 3–5 lições prescritivas em .oxe/LESSONS.md para ciclos futuros
6
+
7
+ Executa o workflow **OXE retro** no repositório atual. Lê e aplica **integralmente**:
8
+
9
+ `oxe/workflows/retro.md`
10
+
11
+ Lê VERIFY.md, FORENSICS.md, SUMMARY.md. `$ARGUMENTS` = contexto extra opcional.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: oxe-retro
3
+ agent: agent
4
+ description: OXE — Retrospectiva de ciclo: 3–5 lições prescritivas em .oxe/LESSONS.md para ciclos futuros
5
+ argument-hint: "[opcional: contexto extra sobre o ciclo — o que foi mais difícil, o que surpreendeu]"
6
+ ---
7
+
8
+ Executa o workflow **OXE retro** no repositório atual. Lê e aplica **integralmente**:
9
+
10
+ `oxe/workflows/retro.md`
11
+
12
+ Lê VERIFY.md, FORENSICS.md, SUMMARY.md. `$ARGUMENTS` = contexto extra opcional.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![npm](https://img.shields.io/npm/v/oxe-cc.svg?style=flat-square)](https://www.npmjs.com/package/oxe-cc)
8
8
  [![license](https://img.shields.io/npm/l/oxe-cc.svg?style=flat-square)](LICENSE)
9
9
 
10
- **Versão:** `0.6.0` · [package.json](package.json)
10
+ **Versão:** `0.6.2` · [package.json](package.json)
11
11
 
12
12
  ```bash
13
13
  npx oxe-cc@latest
@@ -51,12 +51,14 @@ Tudo o mais é ativado automaticamente por contexto ou existe como escape hatch.
51
51
  ```
52
52
  /oxe-obs (qualquer momento)
53
53
 
54
- /oxe-scan → /oxe-spec → /oxe-plan ──────────→ /oxe-execute → /oxe-verify
55
-
56
- /oxe-quick (trabalho pequeno)
54
+ /oxe-scan → /oxe-spec → /oxe-plan ──────────→ /oxe-execute → /oxe-verify → /oxe-retro
55
+
56
+ /oxe-quick (trabalho pequeno) .oxe/LESSONS.md
57
+
58
+ (alimenta o próximo ciclo)
57
59
  ```
58
60
 
59
- Cada passo lê o anterior como contexto e escreve seu artefato em `.oxe/`. Nenhum passo depende de você re-explicar o que já foi decidido.
61
+ Cada passo lê o anterior como contexto e escreve seu artefato em `.oxe/`. Nenhum passo depende de você re-explicar o que já foi decidido. Os erros do ciclo anterior não se repetem.
60
62
 
61
63
  ---
62
64
 
@@ -66,9 +68,14 @@ Cada passo lê o anterior como contexto e escreve seu artefato em `.oxe/`. Nenhu
66
68
  |---------|----------------------|
67
69
  | `/oxe` | Sem input → próximo passo. Com texto → roteamento. Com "help" → 8 comandos. |
68
70
  | `/oxe-scan` | Se `.oxe/codebase/` já existe → modo refresh automático. `--full` força scan completo. |
69
- | `/oxe-plan` | 3+ domínios sugere `--agents`. Com `--agents` gera blueprint com `model_hint` por agente. |
70
- | `/oxe-execute` | Verificar falha diagnóstico inline (2-3 hipóteses + fix). Sem precisar chamar `/oxe-debug`. |
71
- | `/oxe-verify` | `verification_depth: "thorough"`gaps automático. `security_in_verify: true` OWASP automático. |
71
+ | `/oxe-spec` | **Auto-reflexão semântica** antes da aprovação: detecta contradições, critérios vagos, escopo creep e conflitos com stack — sem requisição extra. Lê `LESSONS.md` para não repetir erros do ciclo anterior. |
72
+ | `/oxe-plan` | **Test-first:** `Verificar` vem antes de `Implementar` em cada tarefa. `Complexidade: S/M/L/XL` tarefas XL bloqueiam o gate sem sub-tarefas. Com `--agents`: `model_hint` por agente orienta qual tier de modelo usar (schema v3). |
73
+ | `/oxe-execute` | Verificar falhadiagnóstico inline (2-3 hipóteses + fix). Sem precisar chamar `/oxe-debug`. Exibe `model_hint` ao iniciar cada agente do blueprint. |
74
+ | `/oxe-verify` | Até 6 camadas por config: audit + critérios + decisões + UAT + gaps (`verification_depth: thorough`) + OWASP (`security_in_verify: true`). Sugere `/oxe-retro` ao concluir. |
75
+ | `/oxe-retro` | Sintetiza 3–5 lições prescritivas em `LESSONS.md` — consumidas automaticamente pelo próximo spec/plan. |
76
+ | `/oxe-research` | **Thinking depth:** classifica `surface` / `standard` / `deep` e recomenda raciocínio estendido para reverse engineering e arquitetura complexa. |
77
+ | `/oxe-loop` | Retry iterativo de onda: executa → verifica → diagnostica (2-3 hipóteses) → corrige → repete até `max` tentativas; escala para `/oxe-forensics` se esgotar. |
78
+ | `/oxe-security` | Auditoria OWASP Top 10 filtrada pelo stack. Achados P0/P1/P2 vinculados a tarefas existentes. Integrado ao verify via `security_in_verify: true`. |
72
79
  | `/oxe-project` | `milestone` + `workstream` + `checkpoint` em um único comando. |
73
80
 
74
81
  ---
@@ -85,8 +92,9 @@ Cada passo lê o anterior como contexto e escreve seu artefato em `.oxe/`. Nenhu
85
92
  | `/oxe-plan` | Plano por ondas. `--agents` ativa blueprint com `model_hint` por agente | `.oxe/PLAN.md` [+ `plan-agents.json`] |
86
93
  | `/oxe-execute` | Execução A/B/C com debug inline automático em falhas | `.oxe/STATE.md` |
87
94
  | `/oxe-verify` | Até 6 camadas por config: audit + critérios + decisões + UAT + gaps + segurança | `.oxe/VERIFY.md` |
88
- | `/oxe-obs` | Registra observação → auto-incorporada nos próximos workflows | `.oxe/OBSERVATIONS.md` |
95
+ | `/oxe-obs` | Registra observação → propaga automaticamente para R-IDs e Tns afetados → auto-incorporada | `.oxe/OBSERVATIONS.md` |
89
96
  | `/oxe-quick` | Lean: objetivo → passos → agentes opcionais → verify | `.oxe/QUICK.md` |
97
+ | `/oxe-retro` | Retrospectiva: 3–5 lições prescritivas → alimenta spec/plan do próximo ciclo | `.oxe/LESSONS.md` |
90
98
  | `/oxe-project` | Unifica: `milestone`, `workstream`, `checkpoint` | vários |
91
99
 
92
100
  ### Escape hatches (não precisam ser decorados)
@@ -124,13 +132,16 @@ Cada passo lê o anterior como contexto e escreve seu artefato em `.oxe/`. Nenhu
124
132
  └── workstreams/ ← trilhas paralelas de desenvolvimento
125
133
  ```
126
134
 
127
- ### `/oxe-spec` — spec em 5 fases, máx 3 rodadas de perguntas
135
+ ### `/oxe-spec` — spec em 5 fases com auto-reflexão semântica
128
136
 
129
137
  1. **Perguntas** — blocos de 3-5 por rodada, máximo 3 rodadas
130
138
  2. **Pesquisa** — proposta inline na Fase 2 (sem sair do spec)
131
139
  3. **Requisitos** — tabela R-ID com v1/v2/fora e critérios A*
132
140
  4. **Roteiro** — fases de entrega → `.oxe/ROADMAP.md`
133
- 5. **Aprovação** instrui `/oxe-plan` ou `/oxe-plan --agents`
141
+ 5. **Auto-reflexão** *(automática, sem requisição extra)* detecta contradições, critérios vagos, escopo creep, conflitos com stack. Corrige antes de apresentar ao usuário.
142
+ 6. **Aprovação** → instrui `/oxe-plan` ou `/oxe-plan --agents`
143
+
144
+ A spec lê `.oxe/LESSONS.md` antes de iniciar — lições do ciclo anterior informam as perguntas e os critérios.
134
145
 
135
146
  ### `/oxe-execute` — economia de requisições com debug automático
136
147
 
@@ -150,6 +161,31 @@ Se uma tarefa falha: diagnóstico inline automático (2-3 hipóteses → fix →
150
161
 
151
162
  O próximo `/oxe-plan`, `/oxe-spec` ou `/oxe-execute` incorpora automaticamente — sem prompt extra.
152
163
 
164
+ ### `/oxe-plan` — test-first com complexidade explícita
165
+
166
+ Cada tarefa usa a ordem **Verificar → Implementar** (test-first):
167
+ ```
168
+ Verificar: como saberei que está pronto? ← definido PRIMEIRO
169
+ Implementar: o mínimo para passar o Verificar
170
+ Complexidade: S | M | L | XL
171
+ ```
172
+
173
+ Tarefas `XL` bloqueam o gate sem sub-tarefas ou justificativa. `/oxe-obs` propaga automaticamente constraints para os R-IDs e Tns afetados.
174
+
175
+ ### `/oxe-retro` — loop de aprendizado
176
+
177
+ ```
178
+ /oxe-verify completo
179
+
180
+ /oxe-retro → 3–5 lições prescritivas → .oxe/LESSONS.md
181
+
182
+ /oxe-spec (próximo ciclo lê LESSONS)
183
+ /oxe-plan (próximo ciclo lê LESSONS)
184
+ ```
185
+
186
+ Lições não são diário — são instruções para o próximo ciclo. Exemplo:
187
+ > "Tarefas com integração de terceiros: `Complexidade: L` mínimo + `Verificar` com mock fallback"
188
+
153
189
  ### Plan-Driven Dynamic Agents — agentes por demanda
154
190
 
155
191
  Com `/oxe-plan --agents` (ou sugerido quando 3+ domínios detectados):
package/bin/banner.txt CHANGED
@@ -15,4 +15,4 @@
15
15
 
16
16
  ══════════════════════════════════════════════════════
17
17
 
18
- v0.6.0
18
+ v0.6.2
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: oxe:retro
3
+ description: OXE — Retrospectiva de ciclo: sintetiza lições prescritivas em .oxe/LESSONS.md (alimenta ciclos futuros automaticamente)
4
+ argument-hint: "[opcional: contexto sobre o ciclo]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - Write
11
+ - Task
12
+ ---
13
+
14
+ **Workflow canônico:** `oxe/workflows/retro.md`
15
+
16
+ Execute integralmente esse ficheiro. Lê VERIFY.md, FORENSICS.md, SUMMARY.md para sintetizar 3–5 lições prescritivas. `$ARGUMENTS` = contexto extra opcional.
@@ -0,0 +1,43 @@
1
+ ---
2
+ oxe_doc: lessons
3
+ updated: YYYY-MM-DD
4
+ ---
5
+
6
+ # Lições Aprendidas OXE
7
+
8
+ <!-- Consumido automaticamente por /oxe-spec, /oxe-plan, /oxe-execute, /oxe-verify -->
9
+ <!-- Cada entrada é PRESCRITIVA: diz o que fazer diferente, não apenas o que aconteceu -->
10
+
11
+ | Ciclo | Data | Tipo | Lição (resumo) | Aplicar em | Status |
12
+ |-------|------|------|----------------|------------|--------|
13
+ | C-01 | YYYY-MM-DD | plan | Tarefas de integração requerem Complexidade L mínimo | /oxe-plan | ativo |
14
+
15
+ ---
16
+
17
+ ### C-01 — YYYY-MM-DD
18
+
19
+ **Fonte:** VERIFY.md (gaps) + FORENSICS.md (causa raiz)
20
+
21
+ ---
22
+
23
+ **L-01** · Tipo: `plan`
24
+ **Lição:** Tarefas que integram APIs de terceiros devem ter `Complexidade: L` mínimo e `Verificar` com mock como fallback quando API estiver indisponível.
25
+ **Raiz do problema:** T4 foi marcada `M` mas envolveu 3 serviços externos — estorou 2 ondas.
26
+ **Aplicar em:** `/oxe-plan` — ao planejar tarefas com `INTEGRATIONS.md` externos, elevar complexidade automaticamente.
27
+ **Status:** ativo
28
+
29
+ ---
30
+
31
+ **L-02** · Tipo: `spec`
32
+ **Lição:** Critérios A* que envolvem "performance" devem incluir métrica mensurável (ex.: "< 200ms p95 em carga de 100 req/s") desde a Fase 3.
33
+ **Raiz do problema:** A3 dizia "resposta rápida" — verify não conseguiu evidência objetiva.
34
+ **Aplicar em:** `/oxe-spec` Fase 3 — ao criar critérios de performance, pedir métrica específica antes de aprovar o requisito.
35
+ **Status:** ativo
36
+
37
+ ---
38
+
39
+ **L-03** · Tipo: `process`
40
+ **Lição:** Quando o plano tem 3+ domínios distintos, sempre usar `/oxe-plan --agents`. Solo em 3+ domínios gera tarefas com contexto insuficiente.
41
+ **Raiz do problema:** plano solo com auth + API + UI causou tarefas que misturavam contexto de 2 domínios.
42
+ **Aplicar em:** `/oxe-plan` — gate de sugestão de `--agents` já existe; reforçar como obrigatório para 3+.
43
+ **Status:** ativo
@@ -39,10 +39,11 @@ inputs: []
39
39
  - **Arquivos prováveis:** `…`
40
40
  - **Depende de:** —
41
41
  - **Onda:** 1
42
- - **Implementação:**
42
+ - **Complexidade:** S
43
43
  - **Verificar:**
44
44
  - Comando: `…`
45
45
  - Manual: (opcional) …
46
+ - **Implementar:** o mínimo para fazer a verificação acima passar.
46
47
  - **Aceite vinculado:** A1, A2 (IDs da tabela de critérios em SPEC.md)
47
48
 
48
49
  ---
@@ -74,7 +74,8 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
74
74
  3. **plan** — plano executável + **Verificar** por tarefa. Se 3+ domínios distintos, **sugere automaticamente** blueprint de agentes (`/oxe-plan --agents`). Sem `--agents`: solo. Com `--agents`: gera também `plan-agents.json` (schema 3 com `model_hint`).
75
75
  4. **execute** — modo selecionado 1 vez: **A) Completo** (1 sessão), **B) Por onda**, **C) Por tarefa**. Se Verificar falhar inline: diagnóstico automático (2-3 hipóteses + fix), sem precisar chamar `/oxe-debug` separadamente. Escalação para `/oxe-forensics` só se esgotar tentativas.
76
76
  5. **verify** — até **6 camadas** por config: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, UAT, **gaps de cobertura** (camada 5 — `verification_depth: "thorough"`), **segurança OWASP** (camada 6 — `security_in_verify: true`). Sem comandos extras.
77
- 6. **→ próximo passo** — `/oxe` sugere automaticamente o que fazer agora (nova feature, milestone, ou revisar gaps).
77
+ 6. **retro** *(opcional, recomendado após verify_complete)* — `/oxe-retro` sintetiza 3–5 lições prescritivas em `.oxe/LESSONS.md`. Cada lição diz **o que fazer diferente** no próximo ciclo consumida automaticamente pelo próximo spec/plan.
78
+ 7. **→ próximo ciclo** — spec/plan do próximo ciclo lê LESSONS.md automaticamente. Os erros do ciclo anterior não se repetem.
78
79
 
79
80
  **Escape hatches (não precisam ser decorados — aparecem quando necessários):**
80
81
 
@@ -31,6 +31,8 @@ Arquivo: **`.oxe/OBSERVATIONS.md`**
31
31
 
32
32
  ### OBS-001 — 2026-04-04 | execute/T3
33
33
  **Impacto:** spec, plan
34
+ **Afeta (spec):** R3, R5
35
+ **Afeta (plan):** T4, T7
34
36
  **Status:** pendente
35
37
 
36
38
  JWT expiration deve ser configurável via `JWT_EXPIRES_IN` env var, não hardcoded 7d.
@@ -59,6 +61,11 @@ API deve retornar mensagens de erro em português do Brasil.
59
61
  1. Ler **`.oxe/STATE.md`**: capturar `phase`, `last_task` ou tarefa ativa na onda, `active_workstream`.
60
62
  2. Determinar o **próximo ID** (OBS-NNN): contar entradas existentes em `.oxe/OBSERVATIONS.md` ou começar em OBS-001.
61
63
  3. Classificar o **impacto** automaticamente com base no texto; se ambíguo, usar `all`.
64
+ 3b. **Propagação automática de constraints:**
65
+ - Se existir **`.oxe/SPEC.md`**: ler a tabela de requisitos (R-ID) e critérios (A*) e identificar quais são diretamente afetados pelo texto da observação. Registrar em `**Afeta (spec):**`.
66
+ - Se existir **`.oxe/PLAN.md`**: ler as tarefas (Tn) e identificar quais podem precisar de ajuste no campo `Verificar` ou `Implementar`. Registrar em `**Afeta (plan):**`.
67
+ - Se nenhum R-ID ou Tn identificável: registrar `**Afeta:** (a cruzar na próxima incorporação)`.
68
+ - Esta propagação é automática e não requer input do usuário.
62
69
  4. Criar ou atualizar **`.oxe/OBSERVATIONS.md`**:
63
70
  - Adicionar linha na tabela de índice.
64
71
  - Adicionar seção `### OBS-NNN` com contexto, impacto, status e texto.
@@ -81,7 +81,7 @@ Apresentar de forma concisa:
81
81
  ```
82
82
  /oxe-obs (qualquer momento)
83
83
 
84
- /oxe-scan → /oxe-spec → /oxe-plan → /oxe-execute → /oxe-verify
84
+ /oxe-scan → /oxe-spec → /oxe-plan → /oxe-execute → /oxe-verify → /oxe-retro
85
85
 
86
86
  /oxe-quick (trabalho pequeno)
87
87
  ```
@@ -76,9 +76,9 @@ Raiz do ficheiro **`.oxe/plan-agents.json`**:
76
76
 
77
77
  | Campo | Obrigatório | Significado |
78
78
  |-------|-------------|-------------|
79
- | `oxePlanAgentsSchema` | sim | **2** nas gerações atuais ( **1** = legado sem `runId`/`lifecycle` obrigatórios). |
80
- | `runId` | sim (schema 2) | Identidade da sessão do blueprint; nova em cada plan-agent / replan. |
81
- | `lifecycle` | sim (schema 2) | `status`: `pending_execute` \| `executing` \| `closed` \| `invalidated`; `since` ISO; opcional `invalidatedReason`, `invalidatedBy` (`quick` \| `out_of_scope` \| `new_plan` \| `manual`). |
79
+ | `oxePlanAgentsSchema` | sim | **3** nas gerações atuais ( **2** = sem `model_hint`; **1** = legado sem `runId`/`lifecycle` obrigatórios). |
80
+ | `runId` | sim (schema 2) | Identidade da sessão do blueprint; nova em cada plan-agent / replan. |
81
+ | `lifecycle` | sim (schema 2) | `status`: `pending_execute` \| `executing` \| `closed` \| `invalidated`; `since` ISO; opcional `invalidatedReason`, `invalidatedBy` (`quick` \| `out_of_scope` \| `new_plan` \| `manual`). |
82
82
  | `goal` | sim | Frase curta alinhada ao objetivo da entrega (eco da SPEC). |
83
83
  | `specRef` | não | Referência livre (ex.: path `.oxe/SPEC.md` ou nota de versão). |
84
84
  | `agents` | sim | Lista de objetos agente (ver abaixo). |
@@ -133,7 +133,7 @@ Resumo obrigatório no chat: `Gate plan-agent: OK` ou `Gate plan-agent: corrigid
133
133
 
134
134
  <success_criteria>
135
135
  - [ ] `PLAN.md` existe e passa o gate de **`plan.md`**.
136
- - [ ] `plan-agents.json` existe com schema **2**, `runId`, `lifecycle`, e passa **`<plan_agent_quality_gate>`**.
136
+ - [ ] `plan-agents.json` existe com schema **3**, `runId`, `lifecycle`, `model_hint` por agente (ou omitido), e passa **`<plan_agent_quality_gate>`**.
137
137
  - [ ] Cada tarefa `Tn` aparece em **exatamente um** `taskIds`.
138
138
  - [ ] `execution.waves` reflete dependências entre agentes sem ciclos.
139
139
  - [ ] `.oxe/plan-agent-messages/README.md` presente.
@@ -13,6 +13,8 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
13
13
 
14
14
  <context>
15
15
  - Se existir **`.oxe/OBSERVATIONS.md`** com entradas `pendente` de impacto `plan` ou `all`, incorporar nas tarefas relevantes antes de finalizar o plano (ajustar implementação, verificação ou escopo de Tn) e marcar essas entradas como `incorporada → plan (data)`.
16
+ - Se existir **`.oxe/LESSONS.md`**, ler entradas com `Aplicar em: /oxe-plan` e `Status: ativo`. Aplicar como restrições explícitas no planejamento: ajuste de complexidade de tarefas, padrões de verificação, escolha de modo solo vs agentes. Registrar aplicações como comentário no PLAN.md: `<!-- lição C-NN aplicada: ... -->`.
17
+ - **LESSONS + OBS juntos:** se houver tanto LESSONS quanto OBS pendentes, LESSONS orientam o *como planejar* e OBS orientam o *o que incluir*. Não confundir os papéis.
16
18
  - Não inventar APIs inexistentes: cruzar com **STRUCTURE.md**, **INTEGRATIONS.md** e arquivos reais; respeitar **CONCERNS.md** (evitar agravar dívida conhecida sem tarefa explícita).
17
19
  - Se existir **`.oxe/NOTES.md`**, rever entradas em aberto: incorporar em tarefas (com **Aceite vinculado** quando aplicável) ou registar na secção **Replanejamento** / nota explícita *fora de âmbito desta trilha*.
18
20
  - Se existir **`.oxe/UI-SPEC.md`**, as tarefas de UI devem referenciar secções do UI-SPEC no texto de **Implementação** ou **Verificar**.
@@ -27,22 +29,33 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
27
29
  </context>
28
30
 
29
31
  <format_plan>
30
- Cada tarefa em PLAN.md deve seguir:
32
+ Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de Implementar** (test-first):
31
33
 
32
34
  ```markdown
33
35
  ### Tn — título curto
34
36
  - **Arquivos prováveis:** `...`
35
37
  - **Depende de:** Tk ou —
36
38
  - **Onda:** 1 | 2 | …
37
- - **Implementação:** 1–3 frases do que fazer.
39
+ - **Complexidade:** S | M | L | XL
38
40
  - **Verificar:**
39
41
  - Comando: `...` (ex.: npm test, pytest, mvn test)
40
42
  - Manual: (opcional) passos breves
43
+ - **Implementar:** o mínimo para fazer a verificação acima passar (1–3 frases).
41
44
  - **Aceite vinculado:** A1, A2 (IDs exatos da tabela de critérios da SPEC)
42
45
  - **Decisão vinculada:** D-01, D-02 (IDs de `.oxe/DISCUSS.md` — omitir se não houver DISCUSS)
43
- <!-- oxe-task: {"id":"Tn","wave":1,"type":"feature","files":[],"done":false} -->
46
+ <!-- oxe-task: {"id":"Tn","wave":1,"type":"feature","files":[],"done":false,"complexity":"S"} -->
44
47
  ```
45
48
 
49
+ **Escala de Complexidade:**
50
+ | Valor | Esforço estimado | Sinal de alerta |
51
+ |-------|-----------------|-----------------|
52
+ | `S` | < 30 min, 1–2 arquivos | — |
53
+ | `M` | < 2h, 2–5 arquivos | — |
54
+ | `L` | < 1 dia, múltiplos componentes | Verificar que Verificar é específico |
55
+ | `XL` | > 1 dia, impacto arquitetural | **Gate: deve ser quebrada em sub-tarefas ou ter justificativa** |
56
+
57
+ **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.
58
+
46
59
  **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.
47
60
 
48
61
  **Comparativo host ↔ cliente (migração / paridade):** pode-se dedicar tarefas a produzir ou atualizar uma **matriz Markdown** (classificações: equivalente / implementação diferente / só host / só cliente) com colunas de artefactos reais no repo — ver secção *Molde de comparativo* em **`oxe/workflows/references/legacy-brownfield.md`**. Cada **Tn** deve manter **Aceite vinculado** aos **A*** que essa matriz satisfaz.
@@ -56,8 +69,10 @@ Antes de finalizar a resposta ao utilizador, o agente **deve** percorrer este ga
56
69
  3. **Cobertura A*:** todos os IDs da tabela de critérios em `.oxe/SPEC.md` aparecem em **Aceite vinculado:** de alguma tarefa, ou há nota explícita de **gap** no PLAN (fora de âmbito / adiado) por ID.
57
70
  4. **Ondas:** cada número de **Onda:** usado tem pelo menos uma tarefa; sem ondas vazias.
58
71
  5. **`plan_max_tasks_per_wave`:** se `.oxe/config.json` tiver valor **> 0**, contar tarefas por **Onda**; nenhuma onda excede o limite.
59
- 6. **UI-SPEC:** se existir `.oxe/UI-SPEC.md`, toda tarefa cuja **Implementação** ou **Verificar** toque UI (paths como `*.tsx`, `components/`, ou palavras-chave front, ou pedido explícito do utilizador) deve citar **secção § do UI-SPEC** ou path explícito.
60
- 7. **Fidelidade de decisões:** se existir `.oxe/DISCUSS.md` com IDs **D-NN**, cada decisão com impacto técnico deve aparecer em **Decisão vinculada:** de alguma tarefa, ou ter nota explícita de gap (fora do escopo desta entrega). Sem cobertura para D-NN técnico = falha do gate.
72
+ 6. **UI-SPEC:** se existir `.oxe/UI-SPEC.md`, toda tarefa cuja **Implementar** ou **Verificar** toque UI deve citar **secção § do UI-SPEC** ou path explícito.
73
+ 7. **Fidelidade de decisões:** se existir `.oxe/DISCUSS.md` com IDs **D-NN**, 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.
74
+ 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.
75
+ 9. **Test-first:** em toda tarefa, `Verificar` deve preceder `Implementar` no texto. Se a ordem estiver invertida, corrigir antes de finalizar.
61
76
 
62
77
  Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
63
78
 
@@ -0,0 +1,62 @@
1
+ # OXE — Workflow: retro (retrospectiva de ciclo)
2
+
3
+ <objective>
4
+ Sintetizar os aprendizados de um ciclo completo (spec → verify) em **`.oxe/LESSONS.md`** — um arquivo prescritivo e cumulativo que alimenta automaticamente ciclos futuros.
5
+
6
+ **Princípio:** lições não são diário — são instruções para o próximo ciclo. Cada entrada diz COMO agir diferente, não apenas o que aconteceu.
7
+
8
+ Pode ser chamado:
9
+ - Após `/oxe-verify` (ciclo normal completo)
10
+ - Após `/oxe-verify` com falha e replanejamento (ciclo com retrabalho)
11
+ - A qualquer momento para capturar aprendizados antes que se percam
12
+ </objective>
13
+
14
+ <context>
15
+ - **Pré-requisito preferível:** `.oxe/VERIFY.md` existente. Sem ele, a retro é baseada em STATE.md e relato do usuário.
16
+ - **Artefato:** `.oxe/LESSONS.md` — append-only por padrão; nunca apagar entradas anteriores, apenas mudar `Status` para `resolvido`.
17
+ - **Consumidores:** `/oxe-spec` (lições tipo `spec`), `/oxe-plan` (lições tipo `plan`), `/oxe-scan` (lições tipo `process`), `/oxe-execute` (lições tipo `execute`).
18
+ - **Ciclo ID:** sequencial `C-01`, `C-02`, … (continuar do último em LESSONS.md).
19
+ - Template: `oxe/templates/LESSONS.template.md`.
20
+ </context>
21
+
22
+ <taxonomy>
23
+ ## Taxonomia de tipos de lição
24
+
25
+ | Tipo | Quando usar | Consumido por |
26
+ |------|-------------|---------------|
27
+ | `spec` | Problemas na definição de requisitos ou critérios A* | `/oxe-spec` Fase 1/3 |
28
+ | `plan` | Problemas de granularidade, ondas, verificações | `/oxe-plan` |
29
+ | `execute` | Padrões de falha na implementação, hipóteses erradas | `/oxe-execute` |
30
+ | `verify` | Critérios vagos, evidências insuficientes, camadas puladas | `/oxe-verify` |
31
+ | `process` | Escolha errada de workflow (quick vs spec, solo vs agents) | `/oxe-scan`, qualquer entry |
32
+ | `agents` | Problemas de orquestração, runId, dependências de agente | `/oxe-plan-agent`, `/oxe-execute` |
33
+
34
+ **Formato de lição (prescritivo, não descritivo):**
35
+ - ❌ "A tarefa T4 demorou muito" (descritivo — não ajuda no próximo ciclo)
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
+ </taxonomy>
38
+
39
+ <process>
40
+ 1. Ler **`.oxe/VERIFY.md`** se existir: identificar tarefas que falharam, critérios A* sem evidência, gaps documentados.
41
+ 2. Ler **`.oxe/FORENSICS.md`** se existir: capturar causa raiz de falhas de execução.
42
+ 3. Ler **`.oxe/SUMMARY.md`** se existir: capturar contexto de replans e decisões forçadas.
43
+ 4. Ler **`.oxe/STATE.md`**: capturar número de ondas, execute_mode usado, se houve loop, se houve escalação para forensics.
44
+ 5. Sintetizar **3–5 lições prescritivas** (não mais — qualidade sobre quantidade):
45
+ - Cada lição responde: "O que o próximo ciclo deve fazer diferente?"
46
+ - Formato: **Lição** (o que fazer) + **Raiz** (por que isso aconteceu) + **Tipo** + **Aplicar em**
47
+ 6. Determinar o próximo **ciclo ID** (C-NN) lendo `.oxe/LESSONS.md` existente ou começando em C-01.
48
+ 7. Criar ou atualizar **`.oxe/LESSONS.md`** usando `oxe/templates/LESSONS.template.md`:
49
+ - Adicionar linha na tabela de índice (mais recente primeiro).
50
+ - Adicionar seção `### C-NN` com as lições sintetizadas.
51
+ - **Nunca apagar** entradas anteriores — só mudar `Status: resolvido` se a lição foi superada.
52
+ 8. Atualizar **`.oxe/STATE.md`**: campo `last_retro: YYYY-MM-DD`.
53
+ 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
+ </process>
55
+
56
+ <success_criteria>
57
+ - [ ] `.oxe/LESSONS.md` existe com entrada C-NN na tabela e seção de detalhe.
58
+ - [ ] Cada lição é prescritiva (diz o que fazer) não descritiva (não é só o que aconteceu).
59
+ - [ ] 3–5 lições por ciclo — não um dump completo de eventos.
60
+ - [ ] `STATE.md` tem `last_retro` atualizado.
61
+ - [ ] Entradas anteriores preservadas; apenas `Status` pode mudar.
62
+ </success_criteria>
@@ -20,6 +20,7 @@ Ler no início:
20
20
  - `.oxe/STATE.md` — fase atual, decisões, workstream ativo
21
21
  - `.oxe/codebase/OVERVIEW.md` e `STACK.md` se existirem — não contradizer o repo
22
22
  - **`.oxe/OBSERVATIONS.md`** — se houver entradas `pendente` com impacto `spec` ou `all`, incorporá-las na Fase 3 (Requisitos) e marcá-las `incorporada → spec (data)` após uso
23
+ - **`.oxe/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.
23
24
 
24
25
  **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.
25
26
 
@@ -137,6 +138,30 @@ spec_ref: .oxe/SPEC.md
137
138
  ```
138
139
  </fase_4_roteiro>
139
140
 
141
+ <auto_reflexao>
142
+ ## Auto-reflexão semântica (executa automaticamente antes da Fase 5)
143
+
144
+ **Objetivo:** o agente critica a própria spec antes de apresentá-la ao usuário. Sem requisição extra — é um passe interno de qualidade semântica.
145
+
146
+ Percorrer esta lista de verificação:
147
+
148
+ | # | Verificação | Ação se falhar |
149
+ |---|-------------|----------------|
150
+ | 1 | **Contradições:** algum requisito v1 contradiz diretamente uma resposta da Fase 1? (ex.: usuário disse "sem auth" mas R4 implica sessões) | Voltar à Fase 3 e corrigir o requisito |
151
+ | 2 | **Verificabilidade:** todo critério A* tem "Como verificar" executável sem acesso ao ambiente de produção do usuário? | Refinar para verificação possível no CI/agente ou marcar "verificação manual necessária" |
152
+ | 3 | **Escopo creep:** algum requisito v1 foi adicionado que NÃO emergiu da Fase 1 nem da Fase 2? | Mover para v2 ou justificar inclusão em v1 |
153
+ | 4 | **Conflito com stack:** algum requisito v1 pressupõe tecnologia ou capacidade que `STACK.md` indica ausente? (ex.: requer WebSocket mas stack usa REST puro) | Marcar como suposição explícita ou remover |
154
+ | 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" |
155
+ | 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 |
156
+
157
+ **Resultado obrigatório antes de avançar:**
158
+ - **0 problemas** → avançar para Fase 5 normalmente.
159
+ - **1–2 problemas** → corrigir inline na spec, anotar o que foi ajustado em 1 linha.
160
+ - **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
161
+
162
+ O resultado desta reflexão é **invisível ao usuário** — é trabalho interno do agente. Somente os ajustes feitos aparecem na spec final.
163
+ </auto_reflexao>
164
+
140
165
  <fase_5_aprovacao>
141
166
  ## Fase 5 — Aprovação e próximo passo
142
167
 
@@ -176,6 +201,7 @@ spec_ref: .oxe/SPEC.md
176
201
  - Frontmatter YAML (`oxe_doc: spec`, `status`, `updated`, `inputs`)
177
202
  - Objetivo, Escopo (dentro/fora), Critérios de aceite (tabela A*), Suposições e riscos, Referências
178
203
  - Preservar chaves existentes se SPEC.md já existir; atualizar `updated:`
204
+ 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.
179
205
  7. **Fase 5 — Aprovação:** apresentar resumo, aguardar aprovação do roteiro, redirecionar.
180
206
  8. Atualizar **`.oxe/STATE.md`**: `phase: spec_ready`, próximo passo.
181
207
  9. Marcar OBS incorporadas em `.oxe/OBSERVATIONS.md` se houver pendentes de impacto `spec`.
@@ -87,8 +87,9 @@ O preenchimento da checklist é responsabilidade do **usuário** (não do agente
87
87
  - **Checklist UAT** (Camada 4).
88
88
  - **Gaps** — o que falhou e sugestão de correção; se não houver, escrever `Nenhum gap restante`.
89
89
  6. Atualizar **`.oxe/STATE.md`**: `verify_complete` ou `verify_failed` + próximo passo (replan, corrigir ou publicar).
90
- 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.
90
+ 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.
91
91
  7. Acrescentar entrada em **`.oxe/SUMMARY.md`** (sessão): 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.
92
+ 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.
92
93
  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.
93
94
  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.
94
95
  8. **Só se todas as verificações relevantes passarem:** se `after_verify_draft_commit` não for `false`: acrescentar em **VERIFY.md** a seção **Rascunho de commit** — mensagem convencional (ex.: `feat:` / `fix:`) + bullets alinhados aos critérios **A*** e decisões **D-NN**; **não** incluir segredos.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oxe-cc",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
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": "",