oxe-cc 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.cursor/commands/oxe-discuss.md +4 -2
  2. package/.cursor/commands/oxe-execute.md +6 -2
  3. package/.cursor/commands/oxe-help.md +10 -2
  4. package/.cursor/commands/oxe-next.md +10 -2
  5. package/.cursor/commands/oxe-plan.md +13 -2
  6. package/.cursor/commands/oxe-quick.md +6 -2
  7. package/.cursor/commands/oxe-review-pr.md +16 -0
  8. package/.cursor/commands/oxe-scan.md +13 -2
  9. package/.cursor/commands/oxe-spec.md +13 -2
  10. package/.cursor/commands/oxe-verify.md +13 -2
  11. package/.github/copilot-instructions.md +35 -14
  12. package/AGENTS.md +4 -2
  13. package/README.md +310 -244
  14. package/assets/readme-banner.svg +19 -18
  15. package/bin/lib/oxe-agent-install.cjs +460 -0
  16. package/bin/lib/oxe-install-resolve.cjs +93 -0
  17. package/bin/lib/oxe-manifest.cjs +117 -0
  18. package/bin/lib/oxe-project-health.cjs +464 -0
  19. package/bin/lib/oxe-workflows.cjs +145 -0
  20. package/bin/oxe-cc.js +1406 -123
  21. package/lib/sdk/README.md +54 -0
  22. package/lib/sdk/index.cjs +241 -0
  23. package/lib/sdk/index.d.ts +89 -0
  24. package/oxe/templates/CONFIG.md +32 -12
  25. package/oxe/templates/PLAN.template.md +1 -1
  26. package/oxe/templates/SPEC.template.md +9 -5
  27. package/oxe/templates/STATE.md +9 -1
  28. package/oxe/templates/WORKFLOW_AUTHORING.md +73 -0
  29. package/oxe/templates/config.template.json +18 -6
  30. package/oxe/workflows/discuss.md +31 -31
  31. package/oxe/workflows/execute.md +36 -28
  32. package/oxe/workflows/help.md +56 -22
  33. package/oxe/workflows/next.md +27 -13
  34. package/oxe/workflows/plan.md +14 -13
  35. package/oxe/workflows/quick.md +45 -32
  36. package/oxe/workflows/review-pr.md +13 -13
  37. package/oxe/workflows/scan.md +13 -11
  38. package/oxe/workflows/spec.md +15 -14
  39. package/oxe/workflows/verify.md +19 -16
  40. package/oxe/workflows/workflow-authoring.md +34 -0
  41. package/package.json +30 -3
  42. package/.cursor/rules/oxe-workflow.mdc +0 -15
@@ -1,28 +1,36 @@
1
- # OXE — Workflow: execute
2
-
3
- <objective>
4
- Guiar a **implementação por ondas** com base em **`.oxe/PLAN.md`**, atualizando **`.oxe/STATE.md`** com progresso (tarefas Tn). Não substitui o editor: estrutura o trabalho e confirma pré-requisitos antes de cada onda.
5
-
6
- Se existir apenas **`.oxe/QUICK.md`** (fluxo quick), tratar os **Passos** numerados como lista única “onda 1” em vez de tarefas T1…Tn.
7
- </objective>
8
-
9
- <context>
10
- - Se **PLAN.md** não existir mas **QUICK.md** existir, seguir **QUICK.md** neste workflow (passos = trabalho da sessão).
11
- - Se nem PLAN nem QUICK existir, recomendar `oxe:plan` ou `oxe:quick` primeiro.
12
- </context>
13
-
14
- <process>
15
- 1. Ler `.oxe/STATE.md`, `PLAN.md` (se existir) e `QUICK.md` (se PLAN não existir).
16
- 2. Identificar **onda atual** (ou próxima): no PLAN, todas as tarefas da mesma **Onda** sem dependências pendentes; no QUICK, os passos ainda não marcados como feitos (se STATE não indicar, assumir desde o início).
17
- 3. Listar no chat: tarefas/passos desta onda, ficheiros prováveis, comando **Verificar** associado (do PLAN ou do QUICK).
18
- 4. Após o utilizador confirmar que a onda foi implementada (ou após aplicares as mudanças tu mesmo), atualizar **`.oxe/STATE.md`**:
19
- - Secção ou bullets: **Última onda executada**, **Tarefas concluídas** (Tn ou números dos passos).
20
- - Próximo passo: continuar próxima onda, `oxe:verify`, ou `oxe:plan` se o plano ficou obsoleto.
21
- 5. Se o PLAN tiver várias ondas, repetir execute por onda sob pedido; não apagar tarefas do PLAN.
22
- </process>
23
-
24
- <success_criteria>
25
- - [ ] Onda ou bloco de passos está explícito antes de “implementar”.
26
- - [ ] `STATE.md` regista progresso (Tn ou passos) e próximo passo.
27
- - [ ] Verificação alinhada ao bloco **Verificar** do PLAN ou QUICK.
28
- </success_criteria>
1
+ # OXE — Workflow: execute
2
+
3
+ <objective>
4
+ Guiar a **implementação por ondas** com base em **`.oxe/PLAN.md`**, atualizando **`.oxe/STATE.md`** com progresso (tarefas Tn). Não substitui o editor: estrutura o trabalho e confirma pré-requisitos antes de cada onda.
5
+
6
+ Se existir apenas **`.oxe/QUICK.md`** (fluxo quick), tratar os **Passos** numerados como lista única “onda 1” em vez de tarefas T1…Tn.
7
+ </objective>
8
+
9
+ <context>
10
+ - Se **PLAN.md** não existir mas **QUICK.md** existir, seguir **QUICK.md** neste workflow (passos = trabalho da sessão).
11
+ - Se nem PLAN nem QUICK existir, recomendar `oxe:plan` ou `oxe:quick` primeiro.
12
+ </context>
13
+
14
+ <process>
15
+ 1. Ler `.oxe/STATE.md`, `PLAN.md` (se existir) e `QUICK.md` (se PLAN não existir).
16
+ 2. Identificar **onda atual** (ou próxima): no PLAN, todas as tarefas da mesma **Onda** sem dependências pendentes; no QUICK, os passos ainda não marcados como feitos (se STATE não indicar, assumir desde o início).
17
+ 3. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** associado (do PLAN ou do QUICK).
18
+ 4. Incluir no final da mensagem (ou pedir atualização no `STATE.md`) um bloco **Checklist da onda** em Markdown, para o usuário ou o agente marcar:
19
+ ```markdown
20
+ ## Checklist Onda N (OXE)
21
+ - [ ] Pré-requisitos da onda conferidos (dependências T* atendidas)
22
+ - [ ] Implementação da onda concluída
23
+ - [ ] Comando **Verificar** desta onda executado (ou agendado)
24
+ ```
25
+ 5. Após o usuário confirmar que a onda foi implementada (ou após você aplicar as mudanças), atualizar **`.oxe/STATE.md`**:
26
+ - Marcar no checklist acima (ou em bullets) **Última onda executada**, **Tarefas concluídas** (Tn ou números dos passos).
27
+ - Próximo passo: continuar próxima onda, `oxe:verify` (se todas as ondas terminadas), ou `oxe:plan` se o plano ficou obsoleto.
28
+ 6. Se o PLAN tiver várias ondas, repetir execute por onda sob pedido; não apagar tarefas do PLAN.
29
+ </process>
30
+
31
+ <success_criteria>
32
+ - [ ] Onda ou bloco de passos está explícito antes de “implementar”.
33
+ - [ ] Checklist da onda foi apresentado ou refletido no `STATE.md`.
34
+ - [ ] `STATE.md` registra progresso (Tn ou passos) e próximo passo.
35
+ - [ ] Verificação alinhada ao bloco **Verificar** do PLAN ou QUICK.
36
+ </success_criteria>
@@ -1,54 +1,88 @@
1
1
  # OXE — Workflow: help
2
2
 
3
3
  <objective>
4
- Apresentar o fluxo OXE (scan → spec → plan → execução → verify), o modo **quick**, o passo **execute**, e como invocar no **Cursor** e no **GitHub Copilot**. Mencionar CLI `oxe-cc` (instalar, `doctor`, `init-oxe`).
4
+ Apresentar o fluxo OXE (scan → spec → plan → execução → verify), o modo **quick**, o passo **execute**, e como invocar no **Cursor** e no **GitHub Copilot**. Mencionar o CLI `oxe-cc` (instalar, `doctor`, `status`, `init-oxe`, `uninstall`, `update`) e, em linha, o **SDK** npm (`require('oxe-cc')`) para CI.
5
5
  </objective>
6
6
 
7
7
  <context>
8
- OXE é um fluxo **spec-driven** com artefatos em `.oxe/` no repositório alvo. Menos comandos que GSD; mesmo espírito de context engineering (ficheiros pequenos por etapa).
8
+ OXE é um fluxo **spec-driven** com artefatos em `.oxe/` no projeto alvo. **Poucos comandos slash** em relação a fluxos de planeamento mais pesados; *context engineering* com arquivos pequenos por etapa. Instruções do Copilot no VS Code ficam em **`~/.copilot/`** após `npx oxe-cc` (bloco mesclado em `copilot-instructions.md` + **prompt files** em `~/.copilot/prompts/`), não em `.github/` dentro do repo alvo.
9
+
10
+ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout mínimo) ou **`oxe/workflows/*.md`** (layout clássico com `--global`); no **pacote npm**, os modelos vivem em **`oxe/workflows/*.md`**.
9
11
  </context>
10
12
 
11
13
  <output>
12
14
  ## Cursor
13
15
 
14
- Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/oxe-help` (definidos em `.cursor/commands/`).
16
+ Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/oxe-help` (instalados em `~/.cursor/commands/` pelo `oxe-cc`). **Review de PR:** no Cursor não há slash dedicado — peça em linguagem natural seguindo `oxe/workflows/review-pr.md` (ou `.oxe/workflows/review-pr.md`) em contexto.
15
17
 
16
- ## GitHub Copilot (VS Code / IDE)
18
+ ## GitHub Copilot (VS Code)
17
19
 
18
- 1. **Instruções do repositório:** `.github/copilot-instructions.md` (ativas no chat quando o repositório está em contexto).
19
- 2. **Prompt files:** no chat, escrever `/` e escolher **`oxe-scan`**, **`oxe-spec`**, **`oxe-discuss`**, **`oxe-plan`**, **`oxe-verify`**, **`oxe-next`**, **`oxe-quick`**, **`oxe-execute`**, **`oxe-help`**, **`oxe-review-pr`** (revisão: URL `github.com/.../pull/N`, branches ou SHAs). Requer `chat.promptFiles`: true.
20
+ 1. **Instruções do usuário:** arquivo **`~/.copilot/copilot-instructions.md`** (conteúdo mesclado pelo instalador; contém o bloco OXE entre marcadores).
21
+ 2. **Prompt files:** em **`~/.copilot/prompts/`** (ex.: `oxe-scan.prompt.md`). No chat, `/` e escolha **`oxe-scan`**, **`oxe-spec`**, etc. Requer `"chat.promptFiles": true` (exemplo em `.vscode/settings.json` do repo com layout `--global`).
22
+ 3. **`/oxe-review-pr`** — revisão de PR/diff (prompt na pasta do usuário; fluxo em `review-pr.md`).
20
23
 
21
24
  ## Fluxo completo
22
25
 
23
- 1. **scan** — após clonar ou quando o repo mudar muito.
24
- 2. **spec** — descrever o que se quer.
25
- 3. **discuss** (opcional) — perguntas objetivas antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`.
26
- 4. **plan** — plano executável + verificação por tarefa.
26
+ 1. **scan** — após clonar ou quando o repositório mudar muito.
27
+ 2. **spec** — descrever o que se quer (critérios com IDs **A1**, **A2**…).
28
+ 3. **discuss** (opcional) — decisões antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`.
29
+ 4. **plan** — plano executável + **Verificar** por tarefa, ligado aos critérios da SPEC.
27
30
  5. **execute** (opcional) — onda a onda com base no PLAN (ou passos do QUICK).
28
31
  6. Implementar mudanças no agente/editor.
29
- 7. **verify** — validar antes de merge/PR (inclui rascunho de commit / checklist PR se configurado).
30
- 8. **next** — retomar trabalho.
32
+ 7. **verify** — validar tarefas **e** critérios SPEC antes de merge/PR.
33
+ 8. **next** — retomar trabalho; no terminal: **`npx oxe-cc status`** sugere um único próximo passo (mais leve que **`doctor`**, que valida também workflows do pacote e regras estritas).
31
34
 
32
35
  ## Modo rápido (quick)
33
36
 
34
- - **`/oxe-quick`**: cria `.oxe/QUICK.md` (passos curtos + verificar) sem SPEC/PLAN longos. Promover a spec/plan se o trabalho crescer (muitos ficheiros, API pública, segurança).
37
+ - **`/oxe-quick`**: cria `.oxe/QUICK.md` (passos curtos + verificar) sem SPEC/PLAN longos. **Promova** para spec/plan se o trabalho crescer (muitos arquivos, API pública, segurança) — ver workflow `quick.md`.
35
38
 
36
39
  ## CLI (terminal)
37
40
 
38
- - **`npx oxe-cc`** instala `oxe/`, Cursor, Copilot, etc.; por omissão cria **`.oxe/`** mínimo (`STATE.md` a partir do template) se ainda não existir.
39
- - **`oxe-cc doctor`** verifica Node, workflows, JSON válido em `.oxe/config.json`, mapa codebase após scan (lista o que falta).
40
- - **`oxe-cc init-oxe`** — inicializa `.oxe/` (STATE + `config.json` + pasta `codebase/`), sem reinstalar o resto.
41
- - **`oxe-cc --no-init-oxe`** — instala workflows sem criar `.oxe/`.
41
+ - **`npx oxe-cc`** ou **`npx oxe-cc install`** mesma instalação (alias explícito).
42
+ - 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`**).
43
+ - **`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`), seções SPEC, ondas do PLAN, **avisos** não bloqueantes sobre estrutura dos `.md` de workflow (ex.: `<objective>`, critérios de sucesso).
44
+ - **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`).
45
+ - **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
46
+ - **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
47
+ - **`oxe-cc update` / `npx oxe-cc@latest --force`** — atualizar ficheiros OXE no projeto.
48
+
49
+ **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`.
50
+
51
+ **Flags úteis (resumo):** `--force` / `-f`, `--dry-run`, `--all` / `-a` (Cursor+Copilot), `--oxe-only`, `--no-init-oxe`, `--global` / `--local`, `--copilot-cli`, `--all-agents`, `--vscode` (com `--global`), `--no-global-cli` / `-l`, `--config-dir` / `-c` (uma IDE de cada vez), `--dir <pasta>`. Ajuda completa: `oxe-cc --help`.
52
+
53
+ **WSL:** usar Node instalado **no** WSL; o instalador recusa Node do Windows dentro do WSL.
54
+
55
+ ## SDK (API programática)
56
+
57
+ Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pacote): por exemplo **`runDoctorChecks({ projectRoot })`** para passo de gate em CI; também `health`, `workflows`, `install.resolveOptionsFromConfig`, `manifest`, `agents`. Ver **`lib/sdk/README.md`** e **`lib/sdk/index.d.ts`**.
58
+
59
+ ## Variáveis de ambiente (referência)
60
+
61
+ | Variável | Uso |
62
+ |----------|-----|
63
+ | `OXE_NO_PROMPT` | `1` / `true`: sem menus interativos |
64
+ | `OXE_NO_BANNER` | `1` / `true`: sem banner no CLI |
65
+ | `CURSOR_CONFIG_DIR` | Base Cursor (default `~/.cursor`) |
66
+ | `COPILOT_CONFIG_DIR` / `COPILOT_HOME` | Base Copilot |
67
+ | `CLAUDE_CONFIG_DIR` | Base `~/.claude` |
68
+ | `XDG_CONFIG_HOME` | OpenCode e outros (multi-agente) |
69
+ | `CODEX_HOME` | Prompts Codex em instalação multi-agente |
42
70
 
43
71
  ## Artefatos
44
72
 
45
- - `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md`
73
+ - `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional)
74
+ - Templates: `oxe/templates/` (ou `.oxe/templates/` em layout aninhado, conforme instalação)
75
+
76
+ ## Para autores (mantenedores)
77
+
78
+ - Guia de autoria dos workflows: **`oxe/templates/WORKFLOW_AUTHORING.md`** (no pacote) ou **`.oxe/templates/WORKFLOW_AUTHORING.md`** após instalação em layout aninhado.
79
+ - Revisão guiada de um ficheiro de workflow contra esse guia: workflow **`workflow-authoring.md`** (mesma pasta que os outros passos).
46
80
 
47
- ## Gatilhos naturais (Copilot / chat)
81
+ ## Gatilhos em linguagem natural
48
82
 
49
- Quando o utilizador disser “oxe scan”, “oxe quick”, “executar onda OXE”, “revisar PR”, “diff entre branches”, etc., seguir o workflow correspondente em `oxe/workflows/*.md`.
83
+ Quando o usuário disser “oxe scan”, “oxe quick”, “executar onda OXE”, “revisar PR”, “rever um workflow OXE” / “alinhar ao guia de autoria”, etc., siga o workflow correspondente em `oxe/workflows/*.md` ou `.oxe/workflows/*.md` (autoria: `workflow-authoring.md`).
50
84
 
51
- **Nota:** **`oxe-review-pr`** não tem homólogo em `.cursor/commands/`; no Cursor podes pedir em linguagem natural seguindo `oxe/workflows/review-pr.md` ou abrir o mesmo ficheiro como contexto.
85
+ **GitHub Copilot CLI:** com `oxe-cc --copilot-cli`, use **agent skills** em **`~/.copilot/skills/`** invoque **`/oxe`** (entrada, mesmo conteúdo que help) ou **`/oxe-scan`**, **`/oxe-plan`**, etc. Após instalar ou atualizar: **`/skills reload`** (ou reinicie o `copilot`). A pasta **`~/.copilot/commands/`** é só cópia legado; o CLI oficial não a usa como slash commands.
52
86
 
53
- **Copilot CLI (experimental):** `oxe-cc --copilot-cli` copia os mesmos Markdown de `.cursor/commands/` para **`.claude/commands/`**para testar **`/oxe-scan`**, etc., conforme a versão do GitHub Copilot CLI.
87
+ **Multi-agente:** `npx oxe-cc --all-agents` (ou opção **6** no instalador) replica os mesmos fluxos para **OpenCode** (`~/.config/opencode/commands` + `~/.opencode/commands`), **Gemini CLI** (`~/.gemini/commands` `/oxe`, `/oxe:scan`, …; use **`/commands reload`**), **Codex** (`~/.agents/skills` + `~/.codex/prompts` com `/prompts:oxe-*`), **Windsurf** (`~/.codeium/windsurf/global_workflows` — `/oxe-scan`), **Google Antigravity** (`~/.gemini/antigravity/skills`), além de **Claude** (`~/.claude/commands`) e o já descrito Copilot.
54
88
  </output>
@@ -1,22 +1,36 @@
1
1
  # OXE — Workflow: next
2
2
 
3
3
  <objective>
4
- Inspecionar `.oxe/STATE.md` e a existência de `SPEC.md`, `PLAN.md`, `QUICK.md`, `VERIFY.md` e `.oxe/codebase/` para recomendar **um** próximo passo OXE e uma frase de justificativa.
4
+ Inspecionar `.oxe/STATE.md` 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>
8
+ - O usuário pode rodar **`npx oxe-cc status`** no terminal para a mesma lógica resumida.
9
+ - 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.
10
+ </context>
11
+
7
12
  <process>
8
- 1. Se `.oxe/` ou `STATE.md` não existir → recomendar **scan** ou `oxe-cc init-oxe` / primeiro **scan** e oferecer criar `.oxe` a partir de `oxe/templates/STATE.md`.
9
- 2. Se não houver `.oxe/codebase/*.md` (e o trabalho não for só um quick isolado) → **scan**.
10
- 3. Se `STATE.md` indicar fase `quick_active` ou existir `QUICK.md` sem PLAN → recomendar **execute** (se ainda há passos) ou **verify** depois de implementar; se o trabalho cresceu → **spec**.
11
- 4. Se não houver `SPEC.md` e não estiveres em modo quick intencional → **spec** (ou **quick** se o utilizador quiser só um fix pequeno).
12
- 5. Se houver SPEC mas não PLAN → se `.oxe/config.json` tiver `discuss_before_plan: true` e faltar **`.oxe/DISCUSS.md`** (ou estiver incompleto) → **discuss**; senão → **plan**.
13
- 6. Se PLAN (ou QUICK) existe, implementação pendente e ainda não verificaste → **execute** opcionalmente, depois **verify**.
14
- 7. Se VERIFY ausente ou desatualizado após mudanças → **verify**.
15
- 8. Se VERIFY passou sugerir PR/commit ou novo **spec** / **quick** para próxima tarefa.
13
+ 1. Se `.oxe/` ou `STATE.md` não existir → **único** passo: **scan** (ou `oxe-cc init-oxe` seguido de scan).
14
+ 2. Se não houver `.oxe/codebase/*.md` completos (sete mapas) e o trabalho **não** for só um quick isolado → **scan**.
15
+ 3. Se fase `quick_active` ou existir `QUICK.md` **sem** `PLAN.md` → **execute** (se há passos pendentes); se o trabalho cresceu (muitos arquivos, contrato público, segurança) → **spec** como passo único de promoção.
16
+ 4. Se não houver `SPEC.md` e não for quick intencional declarado → **spec** (passo único).
17
+ 5. Se houver SPEC mas não PLAN → se `.oxe/config.json` tiver `discuss_before_plan: true` e faltar **`.oxe/DISCUSS.md`** com decisões → **discuss**; senão → **plan**.
18
+ 6. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual → **execute** (onda atual).
19
+ 7. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
20
+ 8. Se VERIFY indica falha ou gaps não resolvidos **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
21
+ 9. Se VERIFY OK e estado coerente → **spec** ou **quick** para **próxima** entrega, ou mensagem “fluxo da feature atual concluído”.
16
22
 
17
- Responder em formato fixo:
23
+ **Saída obrigatória (só isto, nesta ordem):**
18
24
 
19
- - **Próximo passo:** `scan` | `spec` | `discuss` | `plan` | `quick` | `execute` | `verify` (Cursor: `/oxe-discuss`, …; `oxe:discuss`, …)
20
- - **Por quê:**
21
- - **Artefatos em jogo:** (lista curta)
25
+ - **Próximo passo:** um único entre `scan` | `spec` | `discuss` | `plan` | `quick` | `execute` | `verify`
26
+ - **Comando:** o slash correspondente (ex.: `/oxe-scan`) **ou** `npx oxe-cc status` para conferir de novo
27
+ - **Por quê:** uma frase
28
+ - **Artefatos em jogo:** lista curta (máx. 4 itens)
22
29
  </process>
30
+
31
+ <success_criteria>
32
+ - [ ] Foi indicado **exatamente um** próximo passo entre os valores canónicos (`scan`, `spec`, `discuss`, `plan`, `quick`, `execute`, `verify`) ou mensagem explícita de fluxo concluído.
33
+ - [ ] A justificativa é **uma** frase; não há lista equiparável de alternativas como “próximo passo”.
34
+ - [ ] O comando sugerido corresponde ao passo (slash `/oxe-*` ou `npx oxe-cc status` quando aplicável).
35
+ - [ ] **Artefatos em jogo** tem no máximo quatro itens e são caminhos ou nomes reais em `.oxe/`.
36
+ </success_criteria>
@@ -3,20 +3,21 @@
3
3
  <objective>
4
4
  Produzir **`.oxe/PLAN.md`**: tarefas **pequenas**, **ondas** (paralelizáveis vs sequenciais), e **cada tarefa com bloco de verificação** (comando de teste e/ou checklist manual).
5
5
 
6
- Base: `.oxe/SPEC.md` + `.oxe/codebase/*` + código quando necessário (Grep/Read pontual).
6
+ Base: `.oxe/SPEC.md` (critérios com IDs **A1**, **A2**, …) + `.oxe/codebase/*` + código quando necessário (Grep/Read pontual).
7
7
 
8
- Se o utilizador pedir **--replan** (ou replanejamento implícito após `verify_failed`):
8
+ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_failed`):
9
9
  - Ler **`.oxe/VERIFY.md`** (gaps e falhas), **`.oxe/SUMMARY.md`** se existir, e o **PLAN.md** atual.
10
- - Preservar tarefas já concluídas ou renumerar com nota no **Replanejamento**; não apagar histórico útil do ficheiro — deslocar para a secção **Replanejamento** e reescrever a secção **Tarefas** conforme necessário.
11
- - Se **SUMMARY.md** não existir, criar a partir de `oxe/templates/SUMMARY.template.md` para registar o contexto do replan (ou append se já existir).
10
+ - Preservar tarefas já concluídas ou renumerar com nota em **Replanejamento**; não apagar histórico útil — deslocar para a seção **Replanejamento** e reescrever **Tarefas** conforme necessário.
11
+ - Se **SUMMARY.md** não existir, criar a partir de `oxe/templates/SUMMARY.template.md` para registrar o contexto do replan (ou dar append se já existir).
12
12
  </objective>
13
13
 
14
14
  <context>
15
- - Não inventar APIs inexistentes: cruzar com **STRUCTURE.md**, **INTEGRATIONS.md** e ficheiros reais; respeitar **CONCERNS.md** (evitar agravar dívida conhecida sem tarefa explícita).
16
- - Se existir **`.oxe/DISCUSS.md`**, alinhar tarefas às decisões registadas.
15
+ - 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).
16
+ - Se existir **`.oxe/DISCUSS.md`**, alinhar tarefas às decisões registradas.
17
17
  - Se existir **`.oxe/config.json`** com `default_verify_command` não vazio, usar como fallback quando a SPEC não indicar comando.
18
+ - Se existir **`plan_max_tasks_per_wave` > 0** na config, **não** colocar mais tarefas do que esse número na mesma **Onda**; dividir em mais ondas.
18
19
  - Tamanho alvo: cada tarefa cabe em **um** contexto de agente focado.
19
- - Id das tarefas: `T1`, `T2`, … estáveis para referência em verify.
20
+ - IDs das tarefas: `T1`, `T2`, … estáveis para referência no verify.
20
21
  </context>
21
22
 
22
23
  <format_plan>
@@ -31,22 +32,22 @@ Cada tarefa em PLAN.md deve seguir:
31
32
  - **Verificar:**
32
33
  - Comando: `...` (ex.: npm test, pytest, mvn test)
33
34
  - Manual: (opcional) passos breves
34
- - **Aceite vinculado:** (números dos critérios na SPEC)
35
+ - **Aceite vinculado:** A1, A2 (IDs exatos da tabela de critérios da SPEC)
35
36
  ```
36
37
  </format_plan>
37
38
 
38
39
  <process>
39
40
  1. Ler `.oxe/SPEC.md` (obrigatório). Se faltar, pedir **spec** primeiro.
40
- 2. Se `.oxe/config.json` tiver `discuss_before_plan: true` e **não** existir `.oxe/DISCUSS.md` com decisões fechadas, pedir **discuss** antes de planear.
41
+ 2. Se `.oxe/config.json` tiver `discuss_before_plan: true` e **não** existir `.oxe/DISCUSS.md` com decisões fechadas, pedir **discuss** antes de planejar.
41
42
  3. Ler `.oxe/codebase/*.md` (incl. CONVENTIONS / CONCERNS) e inspecionar pontos de entrada se a spec exigir.
42
- 4. Escrever ou atualizar `.oxe/PLAN.md` usando `oxe/templates/PLAN.template.md` como cabeçalho; em **--replan**, preencher a secção **Replanejamento** (data, motivo, lições de VERIFY/SUMMARY, tarefas removidas/alteradas).
43
- 5. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes.
44
- 6. Atualizar `.oxe/STATE.md`: fase `plan_ready`, próximo passo executar PLAN depois **verify** (ou **execute**).
43
+ 4. Escrever ou atualizar `.oxe/PLAN.md` usando `oxe/templates/PLAN.template.md` como cabeçalho; em **--replan**, preencher a seção **Replanejamento** (data, motivo, lições de VERIFY/SUMMARY, tarefas removidas/alteradas).
44
+ 5. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
45
+ 6. Atualizar `.oxe/STATE.md`: fase `plan_ready`, próximo passo `oxe:execute` (implementar ondas) e depois `oxe:verify`.
45
46
  7. Listar no chat: ondas, contagem de tarefas, comando de teste guarda-chuva se houver.
46
47
  </process>
47
48
 
48
49
  <success_criteria>
49
50
  - [ ] Cada tarefa tem seção **Verificar** com comando ou checklist explícito.
50
51
  - [ ] Dependências entre tarefas estão explícitas.
51
- - [ ] Critérios da SPEC mapeados para tarefas ou marcados como gap.
52
+ - [ ] Cada critério da SPEC (IDs **A***) está mapeado em **Aceite vinculado** de alguma tarefa ou explicitamente marcado como gap no plano.
52
53
  </success_criteria>
@@ -1,32 +1,45 @@
1
- # OXE — Workflow: quick
2
-
3
- <objective>
4
- Registar trabalho **rápido a médio** sem SPEC/PLAN completos: objetivo claro, passos curtos e uma verificação. Saída principal: **`.oxe/QUICK.md`** + atualização de **`.oxe/STATE.md`**.
5
-
6
- Usar quando: correção pontual, refactor local, uma feature pequena, ou protótipo que **não** justifica critérios de aceite longos.
7
-
8
- **Promover para fluxo completo** (spec → plan) se: tocar em **mais de ~8 ficheiros**, alterar **contrato público** (API, schema, eventos), ou houver **risco de segurança/dados**.
9
- </objective>
10
-
11
- <context>
12
- - Ler `.oxe/STATE.md` e, se existirem, `OVERVIEW.md` e `STACK.md` em `.oxe/codebase/` para não contradizer o repo.
13
- - Não apagar `SPEC.md` / `PLAN.md` se existirem; este fluxo é paralelo ou temporário.
14
- </context>
15
-
16
- <process>
17
- 1. Garantir `.oxe/` (usar `oxe/templates/STATE.md` só se `STATE.md` não existir).
18
- 2. Criar ou substituir **`.oxe/QUICK.md`** com:
19
- - **Objetivo** uma frase.
20
- - **Contexto** 2–5 bullets (ficheiros/pastas já vistos).
21
- - **Passos** lista numerada, **máximo 10** passos acionáveis.
22
- - **Verificar** — pelo menos um: comando de terminal (ex. `npm test`) **ou** checklist manual explícito.
23
- - **Promover para spec/plan?** sim/não + critério (uma linha).
24
- 3. Atualizar **`.oxe/STATE.md`**: fase `quick_active`, próximo passo `oxe:execute` ou implementação manual + `oxe:verify` (se usares plano completo depois, volta a `oxe:spec`).
25
- 4. Responder no chat com resumo em ≤8 linhas e o comando de verificação escolhido.
26
- </process>
27
-
28
- <success_criteria>
29
- - [ ] `.oxe/QUICK.md` existe com passos e bloco **Verificar**.
30
- - [ ] `STATE.md` reflete fase `quick_active` e próximo passo coerente.
31
- - [ ] Fica explícito quando **não** usar quick (promoção a spec/plan).
32
- </success_criteria>
1
+ # OXE — Workflow: quick
2
+
3
+ <objective>
4
+ Registrar trabalho **rápido a médio** sem SPEC/PLAN completos: objetivo claro, passos curtos e uma verificação. Saída principal: **`.oxe/QUICK.md`** + atualização de **`.oxe/STATE.md`**.
5
+
6
+ Usar quando: correção pontual, refactor local, uma feature pequena, ou protótipo que **não** justifica critérios de aceite longos.
7
+ </objective>
8
+
9
+ <context>
10
+ - Ler `.oxe/STATE.md` e, se existirem, `OVERVIEW.md` e `STACK.md` em `.oxe/codebase/` para não contradizer o repo.
11
+ - Não apagar `SPEC.md` / `PLAN.md` se existirem; este fluxo é paralelo ou temporário.
12
+ </context>
13
+
14
+ ## Quando promover para spec + plan (obrigatório declarar no QUICK.md)
15
+
16
+ Promova **nesta sessão ou na próxima** se **qualquer** condição for verdadeira:
17
+
18
+ - Mais de **~8 arquivos** tocados ou previstos.
19
+ - Mudança de **contrato público** (API HTTP, schema de dados exposto, eventos, SDK).
20
+ - **Segurança**, **dados pessoais**, **auth** ou **conformidade** envolvidos.
21
+ - O próprio quick ficar com **mais de 10 passos** — dividir ou passar a SPEC.
22
+
23
+ No final de **`.oxe/QUICK.md`**, mantenha a linha:
24
+
25
+ - **Promover para spec/plan?** `sim` | `não` + **uma linha** com o critério que aplicou.
26
+
27
+ Se **sim**, o próximo passo recomendado no chat é **`/oxe-spec`** (depois discuss/plan conforme config).
28
+
29
+ <process>
30
+ 1. Garantir `.oxe/` (usar template de STATE se `STATE.md` não existir).
31
+ 2. Criar ou substituir **`.oxe/QUICK.md`** com:
32
+ - **Objetivo** — uma frase.
33
+ - **Contexto** — 2–5 bullets (arquivos/pastas já vistos).
34
+ - **Passos** — lista numerada, **máximo 10** passos acionáveis.
35
+ - **Verificar** — pelo menos um: comando de terminal (ex.: `npm test`) **ou** checklist manual explícito.
36
+ - **Promover para spec/plan?** — conforme seção acima.
37
+ 3. Atualizar **`.oxe/STATE.md`**: fase `quick_active`, próximo passo `oxe:execute` ou implementação manual + `oxe:verify`.
38
+ 4. Responder no chat com resumo em ≤8 linhas e o comando de verificação escolhido; se promover = sim, destacar **`/oxe-spec`** como próximo passo lógico.
39
+ </process>
40
+
41
+ <success_criteria>
42
+ - [ ] `.oxe/QUICK.md` existe com passos e bloco **Verificar**.
43
+ - [ ] `STATE.md` reflete fase `quick_active` e próximo passo coerente.
44
+ - [ ] Fica explícito quando **promover** para spec/plan (regra acima + campo no arquivo).
45
+ </success_criteria>
@@ -6,40 +6,40 @@ Rever alterações como num pull request: **URL do GitHub** (`…/pull/<n>`), **
6
6
 
7
7
  <context>
8
8
  - **Base** e **head** são nomes de branch, tags ou SHAs (ex.: `main` e `feature/foo`).
9
- - **URL de PR no GitHub** — O utilizador pode colar o link da PR (ex.: `https://github.com/org/repo/pull/10` ou atalho `org/repo#10`). O número da PR é o segmento depois de `/pull/`.
9
+ - **URL de PR no GitHub** — O usuário pode colar o link (ex.: `https://github.com/org/repo/pull/10` ou atalho `org/repo#10`). O número da PR é o segmento depois de `/pull/`.
10
10
  - Em Git, o diff “estilo PR” (só o que a branch introduz) usa o **merge base**: `git diff base...head` (três pontos).
11
- - Diff literal entre pontas: `git diff base..head` (dois pontos) — útil quando o utilizador pede explicitamente.
12
- - Este passo é **opcional** no fluxo OXE; não atualiza `STATE.md` com fases canónicas, salvo o utilizador pedir registo do resultado em disco.
11
+ - Diff literal entre pontas: `git diff base..head` (dois pontos) — útil quando o usuário pede explicitamente.
12
+ - Este passo é **opcional** no fluxo OXE; não atualiza `STATE.md` com fases canônicas, salvo se o usuário pedir registro do resultado em disco.
13
13
  </context>
14
14
 
15
15
  <process>
16
16
  1. **Resolver entrada**
17
- - **URL ou `#` de PR** — Se a mensagem contiver um URL `github.com/.../pull/<n>` (com ou sem `https://`, com sufixo `/files` ou `/commits`) ou texto `owner/repo#n`, extrair `<n>` (e opcionalmente `owner/repo` para confirmar que o clone local é o mesmo repositório).
17
+ - **URL ou `#` de PR** — Se a mensagem contiver URL `github.com/.../pull/<n>` (com ou sem `https://`, com sufixo `/files` ou `/commits`) ou texto `owner/repo#n`, extrair `<n>` (e opcionalmente `owner/repo` para confirmar que o clone local é o mesmo repositório).
18
18
  - **Refs explícitas** — Caso contrário, tratar como base/head: se faltar um dos dois, inferir base = `main` ou `master` (o que existir) e head = branch atual (`git rev-parse --abbrev-ref HEAD`), ou pedir clarificação.
19
19
  2. **Obter diff (com URL / número de PR)** — Ordem de preferência quando o cwd é o repositório certo:
20
20
  - **GitHub CLI:** `gh pr diff <n>` (ou `gh pr diff <n> --patch`). Se `gh` não estiver disponível ou falhar auth, tentar Git puro.
21
21
  - **Git fetch ref da PR:** `git fetch origin pull/<n>/head:oxe-pr-<n>` (ajustar `origin` se o remoto tiver outro nome). Descobrir branch base com `gh pr view <n> --json baseRefName -q .baseRefName` ou assumir `main`/`master`; depois `git diff origin/<base>...oxe-pr-<n>` ou `git diff <base>...oxe-pr-<n>` após `fetch` da base.
22
- - **Sem terminal / outro repo:** Pedir ao utilizador que cole o diff da aba “Files changed” no GitHub ou o output de `gh pr diff <n>` corrido localmente no repo certo.
22
+ - **Sem terminal / outro repo:** Pedir ao usuário que cole o diff da aba “Files changed” no GitHub ou o output de `gh pr diff <n>` rodado localmente no repo certo.
23
23
  3. **Obter diff (só branches / SHAs)** — Preferir terminal quando disponível:
24
24
  - `git fetch` (se fizer sentido e o ambiente permitir rede).
25
25
  - `git merge-base base head` (opcional, para confirmar ancestral comum).
26
26
  - `git diff base...head` (revisão tipo PR).
27
27
  - `git log base..head --oneline -n 30` (contexto de commits).
28
- Se o sandbox bloquear Git, pedir ao utilizador que cole o output de `git diff base...head` ou use o diff da UI do GitHub/GitLab.
28
+ Se o sandbox bloquear Git, pedir ao usuário que cole o output de `git diff base...head` ou use o diff da UI do GitHub/GitLab.
29
29
  Se o diff já foi obtido no passo 2 (URL da PR), **não** repetir este passo.
30
30
  4. **Ler contexto do projeto** — Se existirem, usar trechos relevantes de `.oxe/codebase/CONVENTIONS.md`, `STACK.md`, `OVERVIEW.md` e, se aplicável, `.oxe/SPEC.md` / `.oxe/PLAN.md` para alinhar expectativas (sem assumir que o PR cobre só OXE).
31
31
  5. **Analisar** — Estruturar a resposta com:
32
32
  - **Resumo** — O que muda em 3–6 frases.
33
- - **Ficheiros / áreas** — Agrupar por domínio (API, UI, config, etc.).
34
- - **Riscos** — Regressões, breaking changes, segurança (inputs, segredos, auth), performance óbvia, migrações.
35
- - **Testes** — O que deveria ser coberto ou correr localmente (comandos sugeridos se conhecidos do repo).
33
+ - **Arquivos / áreas** — Agrupar por domínio (API, UI, config, etc.).
34
+ - **Riscos** — Regressões, breaking changes, segurança (inputs, segredos, auth), desempenho óbvio, migrações.
35
+ - **Testes** — O que deveria ser coberto ou rodar localmente (comandos sugeridos se conhecidos do repo).
36
36
  - **Checklist PR** — Título sugerido, descrição curta, breaking changes, rollback.
37
- 6. **Opcional em disco** — Se o utilizador pedir registo: criar ou atualizar **`.oxe/PR-REVIEW.md`** com data, URL ou refs (base/head), resumo, achados e próximos passos (formato Markdown legível).
37
+ 6. **Opcional em disco** — Se o usuário pedir registro: criar ou atualizar **`.oxe/PR-REVIEW.md`** com data, URL ou refs (base/head), resumo, achados e próximos passos (Markdown legível).
38
38
  </process>
39
39
 
40
- <success>
40
+ <success_criteria>
41
41
  - [ ] URL da PR ou par base/head está explícito na resposta (ou foi pedida clarificação).
42
42
  - [ ] A análise baseia-se no diff (terminal ou colado), não só em suposições.
43
- - [ ] Há secção de riscos e de testes/verificação sugerida.
43
+ - [ ] Há seção de riscos e de testes/verificação sugerida.
44
44
  - [ ] Nenhum segredo ou credencial é repetido na análise; redigir se aparecerem no diff.
45
- </success>
45
+ </success_criteria>
@@ -1,36 +1,38 @@
1
1
  # OXE — Workflow: scan
2
2
 
3
3
  <objective>
4
- Analisar o codebase e produzir documentação **estruturada e enxuta** em `.oxe/codebase/`, atualizando `.oxe/STATE.md`. Cada documento deve ser navegável por humanos e por agentes sem carregar o repo inteiro no contexto.
4
+ Analisar o codebase e produzir documentação **estruturada e enxuta** em `.oxe/codebase/`, atualizando `.oxe/STATE.md`. Cada documento deve ser navegável por humanos e por agentes sem carregar o repositório inteiro no contexto.
5
5
 
6
- **Foco opcional:** se o utilizador indicar uma área (ex. `api`, `auth`), priorizar essa pasta ou módulo nos mapeamentos.
6
+ **Foco opcional:** se o usuário indicar uma área (ex.: `api`, `auth`), priorizar essa pasta ou módulo nos mapeamentos.
7
+
8
+ Se **`.oxe/config.json`** tiver `scan_focus_globs` ou `scan_ignore_globs`, **priorizar** os caminhos do foco e **reduzir detalhe** nas áreas ignoradas (ainda assim mencionar que existem).
7
9
  </objective>
8
10
 
9
11
  <context>
10
12
  - Diretório de saída: **`.oxe/`** na raiz do projeto (não `.planning/`).
11
13
  - Se `.oxe/` não existir, criar.
12
- - Carregar `oxe/templates/STATE.md` como base se `STATE.md` ainda não existir; caso exista, preservar histórico útil e atualizar seção **Último scan** e **Fase**.
13
- - Se existir **`.oxe/config.json`**, respeitar preferências (ex. comandos por defeito documentados em `oxe/templates/CONFIG.md`); não sobrescrever o ficheiro no scan.
14
- - Não apagar `SPEC.md` / `PLAN.md` se já existirem — apenas atualizar codebase.
14
+ - Carregar `oxe/templates/STATE.md` (ou `.oxe` relativo aos workflows instalados) como base se `STATE.md` ainda não existir; se existir, preservar histórico útil e atualizar **Último scan** (campo **Data:** em formato ISO **YYYY-MM-DD** quando possível, para o `oxe-cc doctor` calcular scan antigo) e **Fase**.
15
+ - Se existir **`.oxe/config.json`**, respeitar preferências documentadas em `oxe/templates/CONFIG.md`; **não** sobrescrever o arquivo no scan.
16
+ - Não apagar `SPEC.md` / `PLAN.md` se já existirem — apenas atualizar o codebase.
15
17
  </context>
16
18
 
17
19
  <process>
18
20
  1. Garantir pastas `.oxe/` e `.oxe/codebase/`.
19
- 2. Inventariar o repo (Glob/Grep): linguagens, manifests (`package.json`, `pom.xml`, `go.mod`, etc.), pastas principais.
21
+ 2. Inventariar o repo (Glob/Grep): linguagens, manifests (`package.json`, `pom.xml`, `go.mod`, etc.), pastas principais — aplicando foco/ignore da config se houver.
20
22
  3. Produzir **sete** arquivos em `.oxe/codebase/` (paralelize subagentes quando disponível):
21
23
  - **OVERVIEW.md** — propósito aparente do projeto, módulos de alto nível, fluxo principal (5–15 tópicos).
22
24
  - **STACK.md** — runtime, frameworks, build, versões relevantes, dependências críticas.
23
25
  - **STRUCTURE.md** — árvore lógica (não listar mil arquivos): entrypoints, `src/` por domínio, onde ficam testes e configs.
24
26
  - **TESTING.md** — como rodar testes/lint/format (comandos exatos), frameworks de teste, pastas `*test*`, CI se houver.
25
- - **INTEGRATIONS.md** — APIs externas, bases de dados, auth, filas, segredos (nomes de env **sem valores**), webhooks. Se não houver integrações, escrever explicitamente *Não detetado* com uma linha de contexto.
27
+ - **INTEGRATIONS.md** — APIs externas, bancos, auth, filas, segredos (nomes de env **sem valores**), webhooks. Se não houver integrações, escrever explicitamente *Não detectado* com uma linha de contexto.
26
28
  - **CONVENTIONS.md** — estilo de código (naming, formatação, imports), padrões de erros/logging, organização de módulos; **prescreve** o que seguir em novas alterações (com paths em backticks).
27
- - **CONCERNS.md** — dívida técnica, áreas frágeis, riscos de segurança/performance, dependências sensíveis; cada item com impacto breve e **ficheiros** referenciados.
28
- 4. Atualizar **`.oxe/STATE.md`**: data do scan, fase sugerida `scan_complete`, próximo passo recomendado `oxe:spec` ou `oxe:plan` se já houver SPEC.
29
+ - **CONCERNS.md** — dívida técnica, áreas frágeis, riscos de segurança/desempenho, dependências sensíveis; cada item com impacto breve e **arquivos** referenciados.
30
+ 4. Atualizar **`.oxe/STATE.md`**: **Data** do scan (ISO), fase sugerida `scan_complete`, próximo passo `oxe:spec` ou `oxe:plan` se já houver SPEC.
29
31
  5. Resumir em 5–10 linhas no chat: o que foi escrito e o próximo passo sugerido.
30
32
  </process>
31
33
 
32
34
  <success_criteria>
33
- - [ ] `.oxe/codebase/OVERVIEW.md`, `STACK.md`, `STRUCTURE.md`, `TESTING.md`, `INTEGRATIONS.md`, `CONVENTIONS.md`, `CONCERNS.md` existem e têm conteúdo útil.
34
- - [ ] `.oxe/STATE.md` reflete último scan e próximo passo.
35
+ - [ ] Os sete arquivos em `.oxe/codebase/` existem e têm conteúdo útil.
36
+ - [ ] `.oxe/STATE.md` reflete último scan (com **Data** preenchida quando possível) e próximo passo.
35
37
  - [ ] Comandos de teste em TESTING.md foram validados ou marcados como “não verificado” se o ambiente não permitir rodar.
36
38
  </success_criteria>
@@ -1,11 +1,11 @@
1
1
  # OXE — Workflow: spec
2
2
 
3
3
  <objective>
4
- Registrar a intenção do utilizador em **`.oxe/SPEC.md`**: escopo, critérios de aceite mensuráveis, não-objetivos e suposições. A spec deve ser o contrato antes do plano.
4
+ Registrar a intenção do usuário em **`.oxe/SPEC.md`**: escopo, **critérios de aceite com IDs estáveis (A1, A2, …)** e coluna **Como verificar**, não objetivos e suposições. A spec é o contrato antes do plano.
5
5
 
6
- Para trabalho **muito pequeno**, o utilizador pode preferir **`oxe:quick`** (`.oxe/QUICK.md`) em vez deste fluxo — não bloqueies: se pedirem explicitamente quick, redireciona.
6
+ Para trabalho **muito pequeno**, o usuário pode preferir **`oxe:quick`** (`.oxe/QUICK.md`) em vez deste fluxo — não bloqueie: se pedirem explicitamente quick, redirecione.
7
7
 
8
- Se **`.oxe/config.json`** tiver `discuss_before_plan: true`, mencionar no fim da resposta que o próximo passo recomendado é **`oxe:discuss`** antes do plano.
8
+ Se **`.oxe/config.json`** tiver `discuss_before_plan: true`, mencionar no fim que o próximo passo recomendado é **`oxe:discuss`** antes do plano.
9
9
 
10
10
  Entrada: texto livre na mensagem ou caminho `@arquivo.md` / anexo para incorporar PRD/notas.
11
11
  </objective>
@@ -14,24 +14,25 @@ Entrada: texto livre na mensagem ou caminho `@arquivo.md` / anexo para incorpora
14
14
  **Pré-requisito:** preferencialmente **scan** já executado. Se não existir scan, mencionar na spec que o mapa está pendente.
15
15
 
16
16
  Leia `.oxe/STATE.md` e, se existirem, trechos relevantes de `.oxe/codebase/OVERVIEW.md` e `STACK.md` para não contradizer o projeto real.
17
+
18
+ Use o template **`oxe/templates/SPEC.template.md`**: tabela **Critérios de aceite** com colunas **ID | Critério | Como verificar**.
17
19
  </context>
18
20
 
19
21
  <process>
20
- 1. Resolver entrada: se começar com `@`, ler ficheiro; senão usar o texto da conversa.
21
- 2. Criar ou atualizar **`.oxe/SPEC.md`** usando `oxe/templates/SPEC.template.md` como esqueleto (substituir placeholders).
22
- 3. Incluir seções obrigatórias:
22
+ 1. Resolver entrada: se começar com `@`, ler arquivo; senão usar o texto da conversa.
23
+ 2. Criar ou atualizar **`.oxe/SPEC.md`** usando `oxe/templates/SPEC.template.md` como esqueleto.
24
+ 3. Garantir seções:
23
25
  - **Objetivo** — uma frase clara.
24
- - **Escopo** — bullet in / out.
25
- - **Critérios de aceite** — verificáveis (Given/When/Then ou checklist numerado).
26
- - **Não-objetivos** o que não será feito.
27
- - **Suposições e riscos** — dependências técnicas ou de produto.
28
- - **Referências** — paths/arquivos tocados se conhecidos.
29
- 4. Atualizar **`.oxe/STATE.md`**: fase `spec_ready`, próximo passo `oxe:plan`.
26
+ - **Escopo** — bullets dentro / fora.
27
+ - **Critérios de aceite** — tabela com IDs **A1**, **A2**, … (testáveis).
28
+ - **Suposições e riscos**.
29
+ - **Referências** — paths se conhecidos.
30
+ 4. Atualizar **`.oxe/STATE.md`**: fase `spec_ready`, próximo passo `oxe:discuss` ou `oxe:plan` conforme `discuss_before_plan`.
30
31
  5. Responder com resumo da spec e no máximo 3 perguntas objetivas se algo crítico estiver ambíguo.
31
32
  </process>
32
33
 
33
34
  <success_criteria>
34
- - [ ] `.oxe/SPEC.md` existe e critérios de aceite são testáveis ou observáveis.
35
+ - [ ] `.oxe/SPEC.md` existe e cada critério tem ID **A*** e forma de verificar.
35
36
  - [ ] `STATE.md` atualizado.
36
- - [ ] Ambiguidades críticas foram perguntadas ou registradas como suposição explícita.
37
+ - [ ] Ambiguidades críticas foram perguntas ou registradas como suposição explícita.
37
38
  </success_criteria>