oxe-cc 0.6.5 → 0.6.6

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.
@@ -2,8 +2,9 @@
2
2
  "_comment": "OXE config — copie para .oxe/config.json no seu projeto. Remova esta linha.",
3
3
  "profile": "balanced",
4
4
  "discuss_before_plan": false,
5
- "verification_depth": "standard",
6
- "security_in_verify": false,
5
+ "verification_depth": "standard",
6
+ "plan_confidence_threshold": 70,
7
+ "security_in_verify": false,
7
8
  "after_verify_suggest_pr": true,
8
9
  "after_verify_draft_commit": true,
9
10
  "after_verify_suggest_uat": false,
@@ -0,0 +1,62 @@
1
+ # OXE — Workflow: ask
2
+
3
+ <objective>
4
+ Responder perguntas sobre a situação atual do trabalho OXE com máxima robustez, usando o contexto real do repositório, a sessão ativa quando existir, e os artefatos mais recentes da trilha.
5
+ </objective>
6
+
7
+ <context>
8
+ - Resolver `active_session` via `oxe/workflows/references/session-path-resolution.md`.
9
+ - Ler sempre `.oxe/STATE.md` global primeiro.
10
+ - Com sessão ativa, priorizar artefatos em `.oxe/<active_session>/...` antes do modo legado.
11
+ - Usar `.oxe/codebase/` como mapa do repositório, não como substituto dos artefatos da trilha.
12
+ - Se a pergunta estiver ambígua, responder em modo “situação atual + próximos riscos + melhor próxima ação”.
13
+ </context>
14
+
15
+ <process>
16
+ 1. Ler `.oxe/STATE.md` global e determinar se há `active_session`.
17
+ 2. Se houver sessão ativa, ler nesta ordem:
18
+ - `SESSION.md`
19
+ - `spec/SPEC.md`, `spec/ROADMAP.md`, `spec/DISCUSS.md`, `spec/UI-SPEC.md` se existirem
20
+ - `plan/PLAN.md`, `plan/QUICK.md`, `plan/plan-agents.json`, `plan/quick-agents.json` se existirem
21
+ - `execution/STATE.md`, `execution/OBSERVATIONS.md`, `execution/DEBUG.md`, `execution/FORENSICS.md`, `execution/SUMMARY.md` se existirem
22
+ - `verification/VERIFY.md`, `verification/VALIDATION-GAPS.md`, `verification/SECURITY.md`, `verification/UI-REVIEW.md` se existirem
23
+ 3. Sem sessão ativa, ler o equivalente legado na raiz `.oxe/`.
24
+ 4. Em ambos os casos, ler também:
25
+ - `.oxe/codebase/OVERVIEW.md`
26
+ - `.oxe/codebase/STACK.md`
27
+ - `.oxe/codebase/CONCERNS.md`
28
+ - `.oxe/global/LESSONS.md` se existir, com fallback para `.oxe/LESSONS.md`
29
+ - `.oxe/SESSIONS.md` se a pergunta mencionar sessões, histórico ou retomada
30
+ 5. Responder à pergunta do utilizador com base em evidência explícita dos artefatos lidos.
31
+ 6. Se faltar artefato crítico para responder com segurança, dizer exatamente o que falta e qual comando OXE fecha essa lacuna.
32
+
33
+ ## Modo diagnóstico padrão
34
+
35
+ Se o utilizador só disser algo genérico como “o que está acontecendo?”, “qual a situação?” ou “me contextualize”, responder com:
36
+
37
+ - **Situação atual**
38
+ - **Escopo ativo**
39
+ - **Artefatos relevantes**
40
+ - **Riscos ou lacunas**
41
+ - **Próximo passo recomendado**
42
+
43
+ ## Regras de robustez
44
+
45
+ - Não assumir que `doctor` ou `status` sejam session-aware; eles não substituem a leitura direta dos artefatos da sessão.
46
+ - Se houver conflito entre `.oxe/STATE.md` global e `execution/STATE.md` da sessão, explicitar o conflito.
47
+ - Se `VERIFY.md` existir e contradizer o estado declarado, priorizar a evidência do `VERIFY.md` e mencionar a incoerência.
48
+ - Se o mapa `.oxe/codebase/` estiver ausente ou incompleto, dizer isso explicitamente antes de extrapolar sobre o repositório.
49
+ </process>
50
+
51
+ <output>
52
+ - Resposta direta à pergunta do utilizador
53
+ - Referência curta aos artefatos usados
54
+ - Quando necessário, um único próximo passo OXE
55
+ </output>
56
+
57
+ <success_criteria>
58
+ - [ ] A resposta parte de `.oxe/STATE.md` global e resolve corretamente a sessão ativa quando existir.
59
+ - [ ] O contexto da sessão ativa tem precedência sobre artefatos legados.
60
+ - [ ] Conflitos ou lacunas entre artefatos são explicitados.
61
+ - [ ] A saída responde à pergunta sem inventar estado que não esteja nos arquivos.
62
+ </success_criteria>
@@ -89,7 +89,9 @@ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenci
89
89
  **Auto-loop no Modo B:** se `execute_mode: por_onda` e `loop_max` > 1 em STATE.md, o ciclo de retry roda automaticamente até `loop_max` tentativas antes de escalar para forensics.
90
90
  </failure_mode>
91
91
 
92
- <context>
92
+ <context>
93
+ **Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de executar, validar os artefatos obrigatórios e o gate do plano.
94
+
93
95
  **Observações pendentes:** verificar `OBSERVATIONS.md` do escopo resolvido no início de cada onda. Se houver entradas `pendente` com impacto `execute` ou `all`, incorporar no trabalho da onda atual e marcá-las `incorporada → execute (data)`.
94
96
 
95
97
  **Quick-agents (lean PDDA):** se existir **`quick-agents.json`** do escopo resolvido com `status: active` e a execução for baseada em **`QUICK.md`** (não há PLAN.md), adotar o `role` e `persona` de cada agente para os `steps[]` atribuídos. Ao concluir todos os steps, marcar `quick-agents.json` → `status: done` e sugerir `/oxe-verify`.
@@ -121,26 +123,31 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
121
123
  **Rotina compact/checkpoint:** antes de onda experimental ou refactor grande, `/oxe-checkpoint` com slug ajuda a retomar. Após ondas que mudem stack ou árvore, lembrar `/oxe-compact`.
122
124
  </context>
123
125
 
124
- <process>
126
+ <process>
125
127
  1. Ler **`.oxe/STATE.md`** global para resolver `active_session`, depois ler **`PLAN.md`** (se existir) e **`QUICK.md`** do escopo resolvido.
126
- 2. Verificar **`OBSERVATIONS.md`** do escopo resolvido incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
127
- 3. **Seleção de modo** (apenas se PLAN.md com 2+ ondas e `execute_mode` não definido em STATE): se o argumento já for `A`, `B` ou `C`, usá-lo diretamente; senão apresentar opções A/B/C e aguardar escolha; registrar em STATE.md.
128
- 4. Identificar **onda ou bloco atual**: no PLAN, todas as tarefas da mesma onda sem dependências pendentes; no QUICK, passos ainda não marcados como feitos.
129
- 5. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
130
- 6. **Implementar** conforme o modo escolhido:
131
- - **Modo Completo:** executar todas as ondas em sequência com verificação inline entre ondas; sumarizar ao final.
132
- - **Modo Por onda:** executar onda atual, apresentar checklist, parar.
133
- - **Modo Por tarefa:** executar próxima tarefa pendente, parar.
134
- 7. Após cada onda concluída, incluir checklist:
135
- ```markdown
136
- ## Checklist Onda N (OXE)
137
- - [ ] Pré-requisitos da onda conferidos (dependências Tk atendidas)
138
- - [ ] Implementação da onda concluída
139
- - [ ] Comando Verificar de cada tarefa executado (ou agendado)
140
- ```
141
- 8. Atualizar **`.oxe/STATE.md`** global com progresso resumido e, com sessão ativa, escrever o detalhe operacional em `execution/STATE.md`.
142
- 9. Marcar OBS incorporadas como `incorporada execute (data)` em `OBSERVATIONS.md` do escopo resolvido.
143
- </process>
128
+ 2. Se existir `PLAN.md`, validar a seção `## Autoavaliação do Plano` antes de qualquer implementação:
129
+ - `Melhor plano atual` deve ser `sim`;
130
+ - `Confiança` deve existir em `0–100%`;
131
+ - se `.oxe/config.json` definir `plan_confidence_threshold`, usar esse limiar; senão, usar `70%`;
132
+ - se a confiança estiver abaixo do limiar, **não executar**. Registrar o bloqueio e orientar redução de incerteza (`/oxe-discuss`, `/oxe-research` ou `/oxe-plan --replan`).
133
+ 3. Verificar **`OBSERVATIONS.md`** do escopo resolvido incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
134
+ 4. **Seleção de modo** (apenas se PLAN.md com 2+ ondas e `execute_mode` não definido em STATE): se o argumento já for `A`, `B` ou `C`, usá-lo diretamente; senão apresentar opções A/B/C e aguardar escolha; registrar em STATE.md.
135
+ 5. Identificar **onda ou bloco atual**: no PLAN, todas as tarefas da mesma onda sem dependências pendentes; no QUICK, passos ainda não marcados como feitos.
136
+ 6. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
137
+ 7. **Implementar** conforme o modo escolhido:
138
+ - **Modo Completo:** executar todas as ondas em sequência com verificação inline entre ondas; sumarizar ao final.
139
+ - **Modo Por onda:** executar onda atual, apresentar checklist, parar.
140
+ - **Modo Por tarefa:** executar próxima tarefa pendente, parar.
141
+ 8. Após cada onda concluída, incluir checklist:
142
+ ```markdown
143
+ ## Checklist Onda N (OXE)
144
+ - [ ] Pré-requisitos da onda conferidos (dependências Tk atendidas)
145
+ - [ ] Implementação da onda concluída
146
+ - [ ] Comando Verificar de cada tarefa executado (ou agendado)
147
+ ```
148
+ 9. Atualizar **`.oxe/STATE.md`** global com progresso resumido e, com sessão ativa, escrever o detalhe operacional em `execution/STATE.md`.
149
+ 10. Marcar OBS incorporadas como `incorporada → execute (data)` em `OBSERVATIONS.md` do escopo resolvido.
150
+ </process>
144
151
 
145
152
  <success_criteria>
146
153
  - [ ] Modo de execução foi selecionado (ou herdado do STATE) antes de implementar.
@@ -11,11 +11,12 @@ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout
11
11
  </context>
12
12
 
13
13
  <output>
14
- ## Os 8 comandos essenciais
14
+ ## Comandos principais
15
15
 
16
16
  ```
17
- /oxe → onde estou / o que faço / help (entrada universal)
18
- /oxe-obsregistrei algo importante incorporado automaticamente nos próximos passos
17
+ /oxe → onde estou / o que faço / help (entrada universal)
18
+ /oxe-askentender a situação atual com leitura robusta de STATE + sessão + artefatos
19
+ /oxe-obs → registrei algo importante — incorporado automaticamente nos próximos passos
19
20
  /oxe-quick → tarefa pequena, sem cerimônia (com agentes lean quando necessário)
20
21
  /oxe-session → criar, alternar, retomar, fechar ou migrar sessões OXE
21
22
  /oxe-scan → mapeia o projeto (ou atualiza o mapa se já existir)
@@ -34,7 +35,7 @@ Tudo o mais é ativado automaticamente por contexto, por config, ou existe como
34
35
  - `active_session` em `.oxe/STATE.md` define a sessão ativa com path relativo completo (`sessions/sNNN-slug`).
35
36
  - Com sessão ativa, workflows de spec/plan/execute/verify e suportes ligados à trilha escrevem em `.oxe/<active_session>/...`.
36
37
  - Permanecem globais: `.oxe/STATE.md`, `.oxe/config.json`, `.oxe/codebase/`, `.oxe/SESSIONS.md`, `.oxe/global/LESSONS.md`, `.oxe/global/MILESTONES.md`.
37
- - Nesta versão, o suporte é **workflows only**: `oxe-cc status` / `doctor` ainda não são session-aware.
38
+ - `oxe-cc status` / `doctor` devem refletir a sessão ativa, a autoavaliação do plano e a saúde lógica do fluxo.
38
39
 
39
40
  ### `/oxe-session`
40
41
 
@@ -89,8 +90,8 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
89
90
  1. **scan** — após clonar ou quando o codebase mudar. **Inteligente:** se `.oxe/codebase/` já existir, opera em modo refresh (incremental) automaticamente — sem precisar chamar `/oxe-compact` separadamente. Use `--full` para forçar scan completo. Repositórios **legado** (COBOL, JCL, VB6): aplica `legacy-brownfield.md` automaticamente.
90
91
  2. **spec** — fluxo em **5 fases**: perguntas (máx 3 rodadas) → pesquisa (proposta inline na Fase 2, sem sair do spec) → requisitos R-ID (v1/v2/fora) → roteiro (`.oxe/ROADMAP.md`) → aprovação. Se `discuss_before_plan: true` na config, o próximo passo após aprovação é `oxe:discuss` antes de plan.
91
92
  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`).
92
- 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.
93
- 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.
93
+ 4. **execute** — modo selecionado 1 vez: **A) Completo** (1 sessão), **B) Por onda**, **C) Por tarefa**. Antes de executar, validar a **Autoavaliação do Plano**: se `Melhor plano atual: não` ou a confiança estiver abaixo do limiar, o fluxo deve replanear em vez de implementar. 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.
94
+ 5. **verify** — até **6 camadas** por config: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, **calibração do plano**, UAT, **gaps de cobertura** (camada 5 — `verification_depth: "thorough"`), **segurança OWASP** (camada 6 — `security_in_verify: true`). Sem comandos extras.
94
95
  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.
95
96
  7. **→ próximo ciclo** — spec/plan do próximo ciclo lê LESSONS.md automaticamente. Os erros do ciclo anterior não se repetem.
96
97
 
@@ -132,14 +133,15 @@ Um único comando para: `milestone new|complete|status|audit`, `workstream new|s
132
133
 
133
134
  - **`npx oxe-cc`** ou **`npx oxe-cc install`** — mesma instalação (alias explícito).
134
135
  - Instala workflows em `.oxe/` (layout mínimo) ou `oxe/` + `.oxe/` com **`--global`**; integrações em `~/.cursor`, `~/.copilot`, `~/.claude` (e mais destinos com **`--copilot-cli`** / **`--all-agents`**).
135
- - **`oxe-cc doctor`** — Node, workflows do pacote vs projeto, `config.json`, mapas do codebase, **coerência STATE vs arquivos**, scan antigo (`scan_max_age_days`), compact antigo (`compact_max_age_days`), seções SPEC, ondas do PLAN, **avisos** não bloqueantes sobre estrutura dos `.md` de workflow (ex.: `<objective>`, critérios de sucesso).
136
- - **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`). Com **`--json`**, uma linha JSON com **`oxeStatusSchema: 2`**, `nextStep`, `cursorCmd`, `reason`, `artifacts`, `phase`, `scanDate`, `staleScan`, `compactDate`, `staleCompact`, `diagnostics` (e com **`--json --hints`** também o array **`hints`**). Com **`--hints`** em modo texto, bloco **Lembretes (rotina OXE)** (scan/compact antigos quando `scan_max_age_days` / `compact_max_age_days` estão ativos em `config.json`).
137
- - **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
138
- - **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
139
- - **`/oxe-update`** (Cursor; noutras ferramentas use o terminal no projeto) workflow de atualização: verificar npm, correr `oxe-cc update`, `doctor`.
140
- - **`oxe-cc update --check`** comparar versão em execução com a `latest` no npm (sem instalar).
141
- - **`oxe-cc update --if-newer`** — só executa o `npx oxe-cc@latest` se houver versão mais nova no npm.
142
- - **`oxe-cc update` / `npx oxe-cc@latest --force`** atualizar ficheiros OXE no projeto.
136
+ - **`oxe-cc doctor`** — Node, workflows do pacote vs projeto, `config.json`, bootstrap mínimo de `.oxe/`, mapas do codebase, **coerência STATE vs arquivos**, sessão ativa, autoavaliação do plano, scan antigo (`scan_max_age_days`), compact antigo (`compact_max_age_days`), seções SPEC, ondas do PLAN e **saúde lógica** (`healthy` | `warning` | `broken`).
137
+ - **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`). Com **`--json`**, uma linha JSON com `healthStatus`, `activeSession`, `planSelfEvaluation` e `diagnostics` completos além do próximo passo. Com **`--hints`** em modo texto, bloco **Lembretes (rotina OXE)** (scan/compact antigos quando `scan_max_age_days` / `compact_max_age_days` estão ativos em `config.json`).
138
+ - **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
139
+ - **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
140
+ - **`oxe-cc uninstall --global-cli`** além da limpeza dos artefatos OXE, executa `npm uninstall -g oxe-cc` para remover o binário global do PATH.
141
+ - **`/oxe-update`** (Cursor; noutras ferramentas use o terminal no projeto) workflow de atualização: verificar npm, correr `oxe-cc update`, `doctor`.
142
+ - **`oxe-cc update --check`** — só comparar versão em execução com a `latest` no npm (sem instalar).
143
+ - **`oxe-cc update --if-newer`** — só executa o `npx oxe-cc@latest` se houver versão mais nova no npm.
144
+ - **`oxe-cc update` / `npx oxe-cc@latest --force`** — atualizar ficheiros OXE no projeto. Aceita flags extras como `--ide-local`, `--cursor`, `--copilot-cli`, `--global`, `--global-cli`.
143
145
 
144
146
  **CI / sem perguntas:** `OXE_NO_PROMPT=1` — layout mínimo e integrações padrão no HOME, salvo flags (`--global`, `--cursor`, …). Se existir **`.oxe/config.json`** com bloco **`install`** (perfil, `repo_layout`), aplica-se quando **não** há flags IDE explícitas; para ignorar: **`--no-install-config`**. Detalhes: `oxe/templates/CONFIG.md`.
145
147
 
@@ -153,8 +155,9 @@ Um pedido → **um** destino (sem gerar contrato). O agente aplica `route.md` ou
153
155
 
154
156
  | Se o utilizador disser (exemplos) | Comando / ação |
155
157
  |-----------------------------------|----------------|
156
- | Não sei que passo OXE sou / “o que faço agora?” | `/oxe-next` ou `npx oxe-cc status` |
157
- | Acabei de clonar / falta OXE no projeto | `npx oxe-cc@latest` (ou `oxe-cc`) na raiz do repo |
158
+ | Não sei que passo OXE sou / “o que faço agora?” | `/oxe-next` ou `npx oxe-cc status` |
159
+ | Quero entender rapidamente a situação real da trilha atual | `/oxe-ask [pergunta]` |
160
+ | Acabei de clonar / falta OXE no projeto | `npx oxe-cc@latest` (ou `oxe-cc`) na raiz do repo |
158
161
  | Verify falhou várias vezes / doctor estranho / artefatos incoerentes | `/oxe-forensics` |
159
162
  | Teste ou erro técnico durante o trabalho (stack, flake) | `/oxe-debug` (com **Tn** se houver) |
160
163
  | Revisar diff / PR antes do merge | `oxe/workflows/review-pr.md` em contexto *(Copilot: `/oxe-review-pr`)* |
@@ -4,12 +4,13 @@
4
4
  Inspecionar `.oxe/STATE.md` global, a sessão ativa quando existir, e a existência de `SPEC.md`, `PLAN.md`, `QUICK.md`, `VERIFY.md` e `.oxe/codebase/` para recomendar **exatamente um** próximo passo OXE e **uma** frase de justificativa — sem lista de alternativas equiparáveis.
5
5
  </objective>
6
6
 
7
- <context>
7
+ <context>
8
8
  - O usuário pode rodar **`npx oxe-cc status`** no terminal para a mesma lógica resumida. **`npx oxe-cc status --hints`** (ou **`--json --hints`**) acrescenta lembretes **paralelos** (idade do scan/compact por config) — **não** altera o único passo canónico que este workflow deve devolver.
9
9
  - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, preferir os artefatos da sessão antes de olhar a raiz legada.
10
- - Se houver empate aparente (ex.: poderia ser spec ou quick), preferir **spec** quando já existir mapa de codebase; preferir **quick** só se o usuário deixar explícito que é correção mínima.
11
- - **Blueprint plan-agent:** se **`.oxe/plan-agents.json`** tiver `lifecycle.status === "invalidated"`, o próximo passo **não** assume papéis desse JSON; continuar a raciocinar só com **PLAN.md** / **QUICK.md** / **VERIFY.md** e **STATE.md**. Se o utilizador quiser de novo agentes + mensagens, indicar **`/oxe-plan-agent`**.
12
- </context>
10
+ - Se houver empate aparente (ex.: poderia ser spec ou quick), preferir **spec** quando já existir mapa de codebase; preferir **quick** só se o usuário deixar explícito que é correção mínima.
11
+ - **Blueprint plan-agent:** se **`.oxe/plan-agents.json`** tiver `lifecycle.status === "invalidated"`, o próximo passo **não** assume papéis desse JSON; continuar a raciocinar só com **PLAN.md** / **QUICK.md** / **VERIFY.md** e **STATE.md**. Se o utilizador quiser de novo agentes + mensagens, indicar **`/oxe-plan-agent`**.
12
+ - Priorizar sempre o passo que **reduz incerteza primeiro**. Se o plano existente não for o melhor plano atual ou estiver abaixo do limiar de confiança, o próximo passo não pode ser `execute`.
13
+ </context>
13
14
 
14
15
  <process>
15
16
  1. Se `.oxe/` ou `STATE.md` não existir → **único** passo: **scan** (ou `oxe-cc init-oxe` seguido de scan).
@@ -20,10 +21,11 @@ Inspecionar `.oxe/STATE.md` global, a sessão ativa quando existir, e a existên
20
21
  - Senão → **execute** (há passos curtos a implementar).
21
22
  4. Se não houver `SPEC.md` no escopo resolvido e não for quick intencional declarado → **spec** (passo único).
22
23
  5. Se houver SPEC no escopo resolvido mas não PLAN → se `.oxe/config.json` tiver `discuss_before_plan: true` e faltar **`DISCUSS.md`** com decisões → **discuss**; senão → **plan**.
23
- 6. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual **execute** (onda atual).
24
- 7. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
25
- 8. Se VERIFY indica falha ou gaps não resolvidos → **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
26
- 9. Se VERIFY OK e estado coerente → **spec** ou **quick** para **próxima** entrega, ou mensagem “fluxo da feature atual concluído”.
24
+ 6. Se PLAN existe mas a seção **Autoavaliação do Plano** disser `Melhor plano atual: não`, ou a `Confiança` estiver abaixo do limiar configurado (padrão 70%), o próximo passo deve ser **plan** (replanejar) ou **discuss/research** se a própria autoavaliação indicar isso.
25
+ 7. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual → **execute** (onda atual).
26
+ 8. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
27
+ 9. Se VERIFY indica falha ou gaps não resolvidos → **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
28
+ 10. Se VERIFY OK e estado coerente → **spec** ou **quick** para **próxima** entrega, ou mensagem “fluxo da feature atual concluído”.
27
29
 
28
30
  **Saída obrigatória (só isto, nesta ordem):**
29
31
 
@@ -3,7 +3,7 @@
3
3
  <objective>
4
4
  Produzir **dois artefactos alinhados**:
5
5
 
6
- 1. **`.oxe/PLAN.md`** — mesmo contrato que o workflow **`plan.md`** (tarefas `Tn`, **Onda**, **Depende de**, **Verificar**, **Aceite vinculado**), para **`/oxe-execute`**, **`/oxe-verify`** e gates OXE existentes.
6
+ 1. **`.oxe/PLAN.md`** — mesmo contrato que o workflow **`plan.md`** (tarefas `Tn`, **Onda**, **Depende de**, **Verificar**, **Aceite vinculado**, **Autoavaliação do Plano** com rubrica e confiança determinística), para **`/oxe-execute`**, **`/oxe-verify`** e gates OXE existentes.
7
7
  2. **`.oxe/plan-agents.json`** — **blueprint de execução**: objetivo, **agentes** (papéis, âmbito, entradas/saídas esperadas, dependências entre agentes), **estratégia em ondas** (`execution.waves`), **`runId`** e **`lifecycle`** (schema **2**).
8
8
 
9
9
  O plano **não** é só uma lista de tarefas: cada agente é um **pacote de contexto** (o que ler, o que produzir, que `Tn` cobre). A execução real continua a ser feita pelo utilizador ou por subagentes da IDE, guiados por este blueprint e pelo `PLAN.md`.
@@ -15,6 +15,7 @@ Se o utilizador pedir **`--replan`**: aplicar a mesma lógica de replanejamento
15
15
 
16
16
  <context>
17
17
  - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `PLAN.md`, `plan-agents.json` e `plan-agent-messages/` vivem em `.oxe/<active_session>/plan/`; sem sessão ativa, manter `.oxe/`.
18
+ - O `plan-agent` herda integralmente o contrato `oxe/workflows/references/flow-robustness-contract.md`. Não pode emitir percentuais concorrentes por agente; a confiança final do plano é única e visível no `PLAN.md`.
18
19
  - **Pré-requisitos** iguais a **`plan.md`**: `.oxe/SPEC.md` obrigatória; `discuss_before_plan` + `DISCUSS.md` quando configurado; consumir **NOTES**, **UI-SPEC**, **DISCUSS**, **RESEARCH**, **CODEBASE-DELTA** / **RESUME**, **config.json** (`plan_max_tasks_per_wave`, `default_verify_command`) como em **`plan.md`**.
19
20
  - **Fonte de verdade das tarefas:** `PLAN.md`. O JSON referencia tarefas via **`taskIds`** em cada agente — **não** duplicar o texto de **Verificar** no JSON; copiar só paths/resumo curto em **`outputs`** quando útil para routing.
20
21
  - **Agentes ≠ ferramentas externas fixas:** `role` e `scope` descrevem o **comportamento esperado** de um contexto focado (ex.: “Backend Auth Specialist”), não um binário. Quem executa pode ser um único modelo com instruções diferentes por onda.
@@ -12,6 +12,7 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
12
12
  </objective>
13
13
 
14
14
  <context>
15
+ - Seguir `oxe/workflows/references/flow-robustness-contract.md` como contrato canónico de robustez. A ordem obrigatória é: ler artefatos, resolver sessão/paths, validar pré-condições, escrever o plano, autoavaliar o plano, registrar próximo passo único.
15
16
  - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, o plano vive em `.oxe/<active_session>/plan/` e lê a spec em `.oxe/<active_session>/spec/`.
16
17
  - Se existir `OBSERVATIONS.md` do escopo resolvido 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)`.
17
18
  - Se existir **`.oxe/global/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: ... -->`.
@@ -30,7 +31,7 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
30
31
  </context>
31
32
 
32
33
  <format_plan>
33
- Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de Implementar** (test-first):
34
+ Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de Implementar** (test-first):
34
35
 
35
36
  ```markdown
36
37
  ### Tn — título curto
@@ -45,10 +46,44 @@ Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de I
45
46
  - **Aceite vinculado:** A1, A2 (IDs exatos da tabela de critérios da SPEC)
46
47
  - **Decisão vinculada:** D-01, D-02 (IDs de `.oxe/DISCUSS.md` — omitir se não houver DISCUSS)
47
48
  <!-- oxe-task: {"id":"Tn","wave":1,"type":"feature","files":[],"done":false,"complexity":"S"} -->
48
- ```
49
-
50
- **Escala de Complexidade:**
51
- | Valor | Esforço estimado | Sinal de alerta |
49
+ ```
50
+
51
+ Depois do resumo e antes das tarefas, o `PLAN.md` deve conter também:
52
+
53
+ ```markdown
54
+ ## Autoavaliação do Plano
55
+ - **Melhor plano atual:** sim | não
56
+ - **Confiança:** 0–100%
57
+ - **Base da confiança:**
58
+ - Completude dos requisitos: NN/25
59
+ - Dependências conhecidas: NN/15
60
+ - Risco técnico: NN/20
61
+ - Impacto no código existente: NN/15
62
+ - Clareza da validação / testes: NN/15
63
+ - Lacunas externas / decisões pendentes: NN/10
64
+ - **Principais incertezas:** ...
65
+ - **Alternativas descartadas:** ...
66
+ - **Condição para replanejar:** ...
67
+ ```
68
+
69
+ **Rubrica fixa de confiança (determinística):**
70
+ | Dimensão | Peso |
71
+ |----------|------|
72
+ | Completude dos requisitos | 25 |
73
+ | Dependências conhecidas | 15 |
74
+ | Risco técnico | 20 |
75
+ | Impacto no código existente | 15 |
76
+ | Clareza da validação / testes | 15 |
77
+ | Lacunas externas / decisões pendentes | 10 |
78
+
79
+ **Faixas semânticas obrigatórias:**
80
+ - `85–100%` → pronto para executar
81
+ - `70–84%` → executável com risco controlado
82
+ - `50–69%` → precisa refino antes de execução
83
+ - `<50%` → não executar
84
+
85
+ **Escala de Complexidade:**
86
+ | Valor | Esforço estimado | Sinal de alerta |
52
87
  |-------|-----------------|-----------------|
53
88
  | `S` | < 30 min, 1–2 arquivos | — |
54
89
  | `M` | < 2h, 2–5 arquivos | — |
@@ -72,12 +107,16 @@ Antes de finalizar a resposta ao utilizador, o agente **deve** percorrer este ga
72
107
  5. **`plan_max_tasks_per_wave`:** se `.oxe/config.json` tiver valor **> 0**, contar tarefas por **Onda**; nenhuma onda excede o limite.
73
108
  6. **UI-SPEC:** se existir `UI-SPEC.md` no escopo resolvido, toda tarefa cuja **Implementar** ou **Verificar** toque UI deve citar **secção § do UI-SPEC** ou path explícito.
74
109
  7. **Fidelidade de decisões:** se existir `DISCUSS.md` com IDs **D-NN** no escopo resolvido, cada decisão com impacto técnico deve aparecer em **Decisão vinculada:** de alguma tarefa, ou ter nota explícita de gap. Sem cobertura para D-NN técnico = falha do gate.
75
- 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.
76
- 9. **Test-first:** em toda tarefa, `Verificar` deve preceder `Implementar` no texto. Se a ordem estiver invertida, corrigir antes de finalizar.
77
-
78
- Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
79
-
80
- Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N problemas)`.
110
+ 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.
111
+ 9. **Test-first:** em toda tarefa, `Verificar` deve preceder `Implementar` no texto. Se a ordem estiver invertida, corrigir antes de finalizar.
112
+ 10. **Autoavaliação presente:** o `PLAN.md` contém `## Autoavaliação do Plano`, `Melhor plano atual`, `Confiança`, rubrica completa e `Condição para replanejar`.
113
+ 11. **Calibração de execução:** se `Melhor plano atual: não` ou `Confiança < limiar configurado`, o plano não pode recomendar execução direta; deve recomendar refino, discuss ou research.
114
+ 12. **Rastreabilidade de evidência:** cada tarefa deve ter entrada observável de origem na SPEC, no codebase, em DISCUSS, OBS, RESEARCH ou LESSONS; tarefa sem evidência de entrada explícita = falha do gate.
115
+ 13. **Mudanças de risco:** tarefas com risco relevante (migração, auth, schema, contrato público, segurança) devem incluir contenção, rollback, fallback ou verificação reforçada.
116
+
117
+ Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
118
+
119
+ Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N problemas)`.
81
120
  </plan_quality_gate>
82
121
 
83
122
  <process>
@@ -86,12 +125,13 @@ Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N
86
125
  3. Se existir **`.oxe/NOTES.md`**, consumir ou explicitamente adiar cada bullet relevante (ver **context**).
87
126
  4. Ler `.oxe/codebase/*.md` (incl. CONVENTIONS / CONCERNS) e inspecionar pontos de entrada se a spec exigir.
88
127
  5. Escrever ou atualizar `PLAN.md` no escopo resolvido usando `oxe/templates/PLAN.template.md` como cabeçalho; **preservar** YAML inicial (`oxe_doc: plan`, `status`, `inputs`) se já existir e **atualizar** `updated:` (ISO); em **--replan**, preencher a seção **Replanejamento** (data, motivo, lições de VERIFY/SUMMARY, tarefas removidas/alteradas).
89
- 6. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
90
- 7. Aplicar integralmente o bloco **`<plan_quality_gate>`** acima ao `PLAN.md` em disco; corrigir o ficheiro até passar ou documentar gaps explícitos.
91
- 8. Atualizar `.oxe/STATE.md` global: fase `plan_ready`, próximo passo `oxe:execute` (implementar ondas) e depois `oxe:verify`.
92
- 9. **Sugestão de agentes (inteligente):** após o gate passar, verificar se o plano tem 3+ domínios distintos (ex.: backend + frontend + DB, ou auth + notificações + UI). Se sim, sugerir proativamente: "Este plano tem N domínios distintos. Quer gerar um blueprint de agentes com `/oxe-plan --agents`?" — não executar automaticamente, apenas oferecer. Se o usuário incluiu `--agents` no input original, executar imediatamente a lógica de `oxe/workflows/plan-agent.md`.
93
- 10. Listar no chat: resultado do gate (OK ou corrigido), ondas, contagem de tarefas, comando de teste guarda-chuva se houver.
94
- </process>
128
+ 6. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
129
+ 7. Preencher `## Autoavaliação do Plano` com a rubrica fixa. A confiança é a soma ponderada das seis dimensões; não inventar percentagem sem justificar os pontos.
130
+ 8. Aplicar integralmente o bloco **`<plan_quality_gate>`** acima ao `PLAN.md` em disco; corrigir o ficheiro até passar ou documentar gaps explícitos.
131
+ 9. Atualizar `.oxe/STATE.md` global: fase `plan_ready`, próximo passo `oxe:execute` apenas se `Melhor plano atual: sim` e a confiança estiver no limiar executável; caso contrário, próximo passo deve reduzir incerteza (`oxe:discuss`, `oxe:research` ou replanejamento).
132
+ 10. **Sugestão de agentes (inteligente):** após o gate passar, verificar se o plano tem 3+ domínios distintos (ex.: backend + frontend + DB, ou auth + notificações + UI). Se sim, sugerir proativamente: "Este plano tem N domínios distintos. Quer gerar um blueprint de agentes com `/oxe-plan --agents`?" — não executar automaticamente, apenas oferecer. Se o usuário incluiu `--agents` no input original, executar imediatamente a lógica de `oxe/workflows/plan-agent.md`.
133
+ 11. Listar no chat: resultado do gate (OK ou corrigido), ondas, contagem de tarefas, comando de teste guarda-chuva se houver, melhor-plano-atual e confiança.
134
+ </process>
95
135
 
96
136
  <success_criteria>
97
137
  - [ ] Cada tarefa tem seção **Verificar** com comando ou checklist explícito.
@@ -9,6 +9,7 @@ Usar quando: correção pontual, refactor local, feature pequena ou protótipo q
9
9
  </objective>
10
10
 
11
11
  <context>
12
+ - Seguir `oxe/workflows/references/flow-robustness-contract.md`. Quick continua leve, mas não pode fingir que existe plano formal quando ele não existe.
12
13
  - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `QUICK.md` e `quick-agents.json` vivem em `.oxe/<active_session>/plan/`; sem sessão ativa, manter `.oxe/`.
13
14
  - Ler `.oxe/STATE.md` e, se existirem, `OVERVIEW.md` e `STACK.md` em `.oxe/codebase/` para não contradizer o repo.
14
15
  - Não apagar `SPEC.md` / `PLAN.md` se existirem; este fluxo é paralelo ou temporário.
@@ -120,7 +121,8 @@ Uso **sem** novo slash: é o mesmo `/oxe-quick` com redação mínima.
120
121
  - **Passos** — lista numerada, **máximo 10**; cada passo acionável numa linha.
121
122
  - **Verificar** — um comando de terminal **ou** checklist manual explícito.
122
123
  - **Agentes dinâmicos** — seção opcional quando PDDA estiver ativo (ver acima).
123
- - **Promover para spec/plan?** — preencher sempre; se qualquer gatilho abaixo for verdadeiro, resposta **sim** e parar de acumular trabalho no QUICK — passar a **`/oxe-spec`** (e depois discuss/plan conforme config).
124
+ - **Promover para spec/plan?** — preencher sempre; se qualquer gatilho abaixo for verdadeiro, resposta **sim** e parar de acumular trabalho no QUICK — passar a **`/oxe-spec`** (e depois discuss/plan conforme config).
125
+ - **Confiança formal do plano:** se ainda não houver `PLAN.md`, declarar explicitamente no QUICK que **não houve plano formal**; não inventar percentagem de confiança aqui.
124
126
 
125
127
  O perfil fast **não** é uma segunda trilha: continua sujeito à mesma promoção obrigatória quando o trabalho deixa de ser trivial.
126
128
 
@@ -149,7 +151,8 @@ Se **sim**, o próximo passo recomendado no chat é **`/oxe-spec`** (depois disc
149
151
  - **Passos** — lista numerada, **máximo 10** passos acionáveis; se PDDA ativo, anotar `<!-- agente: id -->` em cada passo.
150
152
  - **Agentes dinâmicos** *(somente se PDDA ativo)* — tabela com ID, papel, steps, persona.
151
153
  - **Verificar** — pelo menos um: comando de terminal (ex.: `npm test`) **ou** checklist manual explícito. *(Este é o critério de aceite da minispec.)*
152
- - **Promover para spec/plan?** — conforme seção acima.
154
+ - **Promover para spec/plan?** — conforme seção acima.
155
+ - **Plano formal existente?** — `não`; usar `sim` apenas se este quick estiver ancorado a um `PLAN.md` já aprovado no mesmo escopo.
153
156
  4. Se PDDA ativo, criar **`quick-agents.json`** no escopo resolvido usando `oxe/templates/quick-agents.template.json`:
154
157
  - Gerar `quickId` novo (`quick-<YYYY-MM-DD>-<6hex>`).
155
158
  - `status: "active"`, `since: "<ISO agora>"`.
@@ -0,0 +1,80 @@
1
+ # OXE — Contrato de Robustez do Fluxo
2
+
3
+ <objective>
4
+ Definir um contrato canónico para reduzir alucinação estrutural no OXE. Este ficheiro é consumido por `spec`, `plan`, `quick`, `execute`, `verify`, `next`, `status` e `doctor`.
5
+ </objective>
6
+
7
+ ## Ordem determinística do fluxo
8
+
9
+ Todo passo OXE deve seguir esta ordem, sem saltar etapas:
10
+
11
+ 1. Ler os artefatos obrigatórios do estado atual.
12
+ 2. Resolver `active_session` e os paths do escopo.
13
+ 3. Validar pré-condições mínimas antes de prosseguir.
14
+ 4. Produzir a saída principal do passo.
15
+ 5. Executar autoavaliação ou gate de qualidade do próprio passo.
16
+ 6. Registrar um próximo passo único.
17
+
18
+ ## Invariantes mínimos
19
+
20
+ Todo workflow deve declarar com clareza:
21
+
22
+ - quais artefatos lê;
23
+ - quais artefatos escreve;
24
+ - quais invariantes valida antes de operar;
25
+ - qual fallback legado é permitido quando não há sessão ativa.
26
+
27
+ ## Proibição de saltos sem evidência
28
+
29
+ - `plan` não deve avançar sem `SPEC.md` válido.
30
+ - `execute` não deve avançar sem `PLAN.md` ou `QUICK.md` válido no escopo resolvido.
31
+ - `verify` não deve avançar sem evidência mínima de execução ou de artefatos resultantes.
32
+ - `next` não deve sugerir um passo que viole os gates acima.
33
+
34
+ ## Contrato de autoavaliação do plano
35
+
36
+ Todo `PLAN.md` deve conter uma seção visível `## Autoavaliação do Plano` com:
37
+
38
+ - `Melhor plano atual:` `sim` ou `não`
39
+ - `Confiança:` `0–100%`
40
+ - `Base da confiança:` rubrica fixa, não narrativa livre
41
+ - `Principais incertezas:` lista curta
42
+ - `Alternativas descartadas:` resumo curto
43
+ - `Condição para replanejar:` critério objetivo
44
+
45
+ ### Rubrica obrigatória
46
+
47
+ | Dimensão | Peso |
48
+ |----------|------|
49
+ | Completude dos requisitos | 25 |
50
+ | Dependências conhecidas | 15 |
51
+ | Risco técnico | 20 |
52
+ | Impacto no código existente | 15 |
53
+ | Clareza da validação / testes | 15 |
54
+ | Lacunas externas / decisões pendentes | 10 |
55
+
56
+ **Total:** 100 pontos
57
+
58
+ ### Faixas semânticas
59
+
60
+ - `85–100%` → pronto para executar
61
+ - `70–84%` → executável com risco controlado
62
+ - `50–69%` → precisa refino antes de execução
63
+ - `<50%` → não executar
64
+
65
+ ## Calibração pós-execução
66
+
67
+ `verify` deve comparar o resultado real com a autoavaliação do plano:
68
+
69
+ - confiança alta + falha precoce = erro de calibração do plano;
70
+ - confiança baixa + falha em risco previsto = autoavaliação aderente;
71
+ - confiança alta + sucesso consistente = plano calibrado;
72
+ - confiança baixa + sucesso amplo = plano conservador demais.
73
+
74
+ ## Uso por `status` e `doctor`
75
+
76
+ `status` e `doctor` devem refletir a saúde lógica do fluxo com categorias determinísticas:
77
+
78
+ - `healthy` — sem bloqueio lógico conhecido;
79
+ - `warning` — fluxo operável, mas com gaps ou drift relevante;
80
+ - `broken` — artefato crítico ausente, incoerência severa ou gate indispensável falhado.
@@ -16,6 +16,8 @@ Se **`.oxe/config.json`** tiver `discuss_before_plan: true`: mencionar no final
16
16
  <context>
17
17
  **Pré-requisito preferível:** scan executado. Se não existir, mencionar na spec que o mapa está pendente.
18
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
+
19
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:
20
22
  - `SPEC.md`, `ROADMAP.md` e `DISCUSS.md` vivem em `.oxe/<active_session>/spec/`
21
23
  - `OBSERVATIONS.md`, `RESEARCH.md` e `research/` seguem o escopo da sessão
@@ -160,13 +162,19 @@ Percorrer esta lista de verificação:
160
162
  | 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" |
161
163
  | 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 |
162
164
 
163
- **Resultado obrigatório antes de avançar:**
164
- - **0 problemas** → avançar para Fase 5 normalmente.
165
- - **1–2 problemas** → corrigir inline na spec, anotar o que foi ajustado em 1 linha.
166
- - **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
167
-
168
- O resultado desta reflexão é **invisível ao usuário** — é trabalho interno do agente. Somente os ajustes feitos aparecem na spec final.
169
- </auto_reflexao>
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>
170
178
 
171
179
  <fase_5_aprovacao>
172
180
  ## Fase 5 — Aprovação e próximo passo