oxe-cc 0.3.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.cursor/commands/oxe-execute.md +2 -2
  2. package/.cursor/commands/oxe-loop.md +11 -0
  3. package/.cursor/commands/oxe-milestone.md +11 -0
  4. package/.cursor/commands/oxe-obs.md +11 -0
  5. package/.cursor/commands/oxe-project.md +11 -0
  6. package/.cursor/commands/oxe-quick.md +2 -2
  7. package/.cursor/commands/oxe-security.md +11 -0
  8. package/.cursor/commands/oxe-spec.md +2 -2
  9. package/.cursor/commands/oxe-workstream.md +11 -0
  10. package/.cursor/commands/oxe.md +9 -0
  11. package/.github/prompts/oxe-execute.prompt.md +12 -12
  12. package/.github/prompts/oxe-loop.prompt.md +12 -0
  13. package/.github/prompts/oxe-milestone.prompt.md +12 -0
  14. package/.github/prompts/oxe-obs.prompt.md +12 -0
  15. package/.github/prompts/oxe-project.prompt.md +12 -0
  16. package/.github/prompts/oxe-quick.prompt.md +12 -12
  17. package/.github/prompts/oxe-security.prompt.md +12 -0
  18. package/.github/prompts/oxe-spec.prompt.md +2 -2
  19. package/.github/prompts/oxe-workstream.prompt.md +12 -0
  20. package/.github/prompts/oxe.prompt.md +12 -0
  21. package/README.md +287 -544
  22. package/bin/banner.txt +1 -1
  23. package/bin/lib/oxe-plugins.cjs +226 -0
  24. package/bin/lib/oxe-project-health.cjs +97 -1
  25. package/bin/lib/oxe-security.cjs +225 -0
  26. package/bin/oxe-cc.js +30 -1
  27. package/commands/oxe/execute.md +16 -16
  28. package/commands/oxe/loop.md +17 -0
  29. package/commands/oxe/milestone.md +16 -0
  30. package/commands/oxe/obs.md +16 -0
  31. package/commands/oxe/oxe.md +16 -0
  32. package/commands/oxe/project.md +16 -0
  33. package/commands/oxe/quick.md +16 -16
  34. package/commands/oxe/security.md +16 -0
  35. package/commands/oxe/spec.md +2 -2
  36. package/commands/oxe/workstream.md +16 -0
  37. package/lib/sdk/index.cjs +284 -0
  38. package/lib/sdk/index.d.ts +148 -1
  39. package/oxe/personas/README.md +39 -0
  40. package/oxe/personas/architect.md +37 -0
  41. package/oxe/personas/db-specialist.md +36 -0
  42. package/oxe/personas/debugger.md +38 -0
  43. package/oxe/personas/executor.md +38 -0
  44. package/oxe/personas/planner.md +36 -0
  45. package/oxe/personas/researcher.md +35 -0
  46. package/oxe/personas/ui-specialist.md +36 -0
  47. package/oxe/personas/verifier.md +39 -0
  48. package/oxe/templates/CONFIG.md +54 -4
  49. package/oxe/templates/DISCUSS.template.md +44 -0
  50. package/oxe/templates/MEMORY.template.md +49 -0
  51. package/oxe/templates/MILESTONES.template.md +17 -0
  52. package/oxe/templates/OBSERVATIONS.template.md +18 -0
  53. package/oxe/templates/PLUGINS.md +101 -0
  54. package/oxe/templates/ROADMAP.template.md +44 -0
  55. package/oxe/templates/SECURITY.template.md +72 -0
  56. package/oxe/templates/STATE.md +29 -2
  57. package/oxe/templates/config.template.json +5 -0
  58. package/oxe/templates/plan-agents.template.json +3 -2
  59. package/oxe/templates/quick-agents.template.json +24 -0
  60. package/oxe/workflows/discuss.md +48 -5
  61. package/oxe/workflows/execute.md +133 -28
  62. package/oxe/workflows/help.md +105 -24
  63. package/oxe/workflows/loop.md +57 -0
  64. package/oxe/workflows/milestone.md +96 -0
  65. package/oxe/workflows/obs.md +95 -0
  66. package/oxe/workflows/oxe.md +115 -0
  67. package/oxe/workflows/plan-agent.md +50 -3
  68. package/oxe/workflows/plan.md +7 -2
  69. package/oxe/workflows/project.md +50 -0
  70. package/oxe/workflows/quick.md +120 -10
  71. package/oxe/workflows/research.md +16 -0
  72. package/oxe/workflows/scan.md +23 -1
  73. package/oxe/workflows/security.md +61 -0
  74. package/oxe/workflows/spec.md +172 -23
  75. package/oxe/workflows/verify.md +80 -18
  76. package/oxe/workflows/workstream.md +96 -0
  77. package/package.json +3 -2
package/README.md CHANGED
@@ -1,544 +1,287 @@
1
- <div align="center">
2
-
3
- <p align="center">
4
- <img src="assets/readme-banner.svg" alt="OXE" width="920" />
5
- </p>
6
-
7
- **Fluxo spec-driven e context engineering centrado em `.oxe/`** — o núcleo é o mesmo em qualquer ferramenta. O instalador integra com **[Cursor](https://cursor.com)** e **[GitHub Copilot](https://github.com/features/copilot)** por padrão e, com **`--all-agents`** ou escolhas no menu, também com **Claude Code, OpenCode, Gemini CLI, Codex, Windsurf** e **Antigravity**. **Poucos comandos** por runtime, workflows em **`.oxe/workflows/`** (ou **`oxe/workflows/`** com `--global`). Textos do CLI e resumos pós-comando em **português (Brasil)**.
8
-
9
- [![npm](https://img.shields.io/npm/v/oxe-cc.svg?style=flat-square)](https://www.npmjs.com/package/oxe-cc)
10
- [![license](https://img.shields.io/npm/l/oxe-cc.svg?style=flat-square)](LICENSE)
11
-
12
- **Versão deste repositório / próximo publish npm:** `0.3.6` (fonte: [`package.json`](package.json)). No registo use `npx oxe-cc@latest` ou, para pinar, `npx oxe-cc@0.3.6`.
13
-
14
- ```bash
15
- npx oxe-cc@latest
16
- # equivalente explícito:
17
- # npx oxe-cc@latest install
18
- ```
19
-
20
- **Manter atualizado:** no **Cursor** use **`/oxe-update`**; noutras CLIs siga o mesmo fluxo com o terminal no projeto (`npx oxe-cc update --check`, `npx oxe-cc update` ou `npx oxe-cc@latest --force`). Com **`--force`**, alterações locais em arquivos rastreados geram backup em **`~/.oxe-cc/oxe-local-patches/`**.
21
-
22
- [Para quem é](#para-quem-é) · [Começar](#começar) · [Como funciona](#como-funciona) · [Modo rápido](#modo-rápido) · [Porque funciona](#porque-funciona) · [Comandos](#comandos) · [CLI (`oxe-cc`)](#cli-do-pacote-oxe-cc) · [Configuração](#configuração) · [SDK](#sdk-api-programática) · [Problemas](#resolução-de-problemas)
23
-
24
- </div>
25
-
26
- ---
27
-
28
- ## Para quem é
29
-
30
- Para quem quer **descrever o que quer e ver isso construído de forma consistente** — **sem** simular uma organização enorme de processos em cima do repositório.
31
-
32
- OXE é **enxuto**: não há dezenas de comandos por ferramenta. Há **um CLI** que deixa o repositório **só com `.oxe/`** (layout **padrão**) ou **`oxe/` + `.oxe/`** com **`--global`**, e copia integrações para os homes que escolheres — tipicamente **`~/.cursor`**, **`~/.copilot`** e **`~/.claude`**, ou **OpenCode, Gemini, Codex, Windsurf, Antigravity** quando ativas — sempre com **workflows em Markdown** e **estado em disco** para a sessão não ficar **sobrecarregada** com tudo o que já foi decidido.
33
-
34
- ---
35
-
36
- ## Começar
37
-
38
- **Requisito:** [Node.js 18+](https://nodejs.org/).
39
-
40
- Na **raiz do repositório** do seu projeto:
41
-
42
- ```bash
43
- npx oxe-cc@latest
44
- ```
45
-
46
- Em **terminal interativo**, o instalador pergunta em **vários passos**: (1) **para quais ambientes** (Cursor, Copilot, OpenCode, Gemini, … ou todos); (2) **global vs local** no disco; (3) **layout no repositório** — **clássico** (`oxe/` na raiz + `.oxe/`) ou **mínimo** (**só `.oxe/`**). Em modo **global IDE**, as integrações vão para pastas do **usuário** (`~/.cursor`, `~/.copilot`, …); com **`--ide-local`**, podem ficar no repo (`.cursor`, `.github`, …). Por omissão antiga, **não** se criam pastas IDE dentro do repo. Com layout clássico e **`--vscode`**, **`.vscode/`** fica no projeto.
47
-
48
- Ao terminar, o CLI mostra um **resumo do que foi criado ou atualizado** e **próximos passos sugeridos** (por exemplo `npx oxe-cc doctor`, `/oxe-scan`).
49
-
50
- Sem TTY (CI), o **layout mínimo** (só `.oxe/`) e integrações no **HOME** são o padrão (Cursor + Copilot; sem **`--all-agents`** a menos que configures). Use **`--global`** para também ter **`oxe/`** na raiz. Flags: **`--cursor`**, **`--copilot`**, **`--all-agents`**, **`--all`**, **`--oxe-only`**, **`OXE_NO_PROMPT=1`**, etc.
51
-
52
- Se já existir **`.oxe/config.json`** com o bloco **`install`** (perfil, `repo_layout`, …), o `oxe-cc` aplica isso **quando não passas** flags explícitas de integração — útil em CI. Para ignorar o ficheiro nessa corrida: **`--no-install-config`**. Detalhes: [`oxe/templates/CONFIG.md`](oxe/templates/CONFIG.md).
53
-
54
- No fim, em modo interativo, pergunta se você quer instalar o **`oxe-cc` globalmente** (`npm install -g`) ou continuar só com **`npx`**. Em CI ou scripts use **`--no-global-cli`** / **`-l`**, ou defina **`OXE_NO_PROMPT=1`**. Para instalar o CLI sem pergunta: **`--global-cli`** / **`-g`**.
55
-
56
- **GitHub Copilot CLI:** o CLI **não** trata `~/.copilot/commands/` como slash commands (isso é legado estilo Claude/Cursor). Com **`--copilot-cli`**, o OXE instala **agent skills** em **`~/.copilot/skills/`** (ex.: `oxe-scan/SKILL.md`, `oxe/SKILL.md`), invocáveis como **`/oxe-scan`**, **`/oxe`** (entrada = mesmo fluxo que `/oxe-help`), etc. Depois de instalar ou atualizar, use **`/skills reload`** ou reinicie o `copilot`. Mantém-se também cópia para **`~/.claude/commands/`** e **`~/.copilot/commands/`** para ferramentas que ainda leiam essa pasta. Se usar **`COPILOT_HOME`**, o `oxe-cc` grava skills nesse diretório (alinhado ao CLI oficial).
57
-
58
- **Multi-agente (`--all-agents`):** instalação **paralela** nos homes canónicos de cada ferramenta — **Cursor** e **Copilot** (como no padrão), **Claude Code** (`~/.claude/commands`), **OpenCode** (`$XDG_CONFIG_HOME/opencode/commands` e `~/.opencode/commands`), **Gemini CLI** (`~/.gemini/commands`: `/oxe`, `/oxe:scan` — depois **`/commands reload`**), **Codex** (`~/.agents/skills` + prompts em **`~/.codex/prompts`** como `/prompts:oxe-*`), **Windsurf** (`~/.codeium/windsurf/global_workflows`, workflows `/oxe-scan`), **Antigravity** (`~/.gemini/antigravity/skills`). No menu interativo, opção **6**. O núcleo do fluxo continua em **`.oxe/`** (SPEC/PLAN/VERIFY e artefactos opcionais). O passo **research** (`research.md`, `.oxe/research/`, `RESEARCH.md`) é **opcional** e não faz parte da trilha mínima scan → spec → plan → execute → verify.
59
-
60
- **Confirmar instalação no agente**
61
-
62
- | Onde | O que executar |
63
- |------|----------------|
64
- | **Cursor** | `/oxe-help` ou outro `/oxe-*` |
65
- | **Copilot** (VS Code) | `/oxe-help` no chat, se [prompt files](https://code.visualstudio.com/docs/copilot/customization/prompt-files) estiverem ativos (`"chat.promptFiles": true` — exemplo em [`.vscode/settings.json`](.vscode/settings.json)) |
66
- | **Copilot CLI** | `/oxe` ou `/oxe-scan` após **`/skills reload`** |
67
- | **Gemini CLI** | `/oxe` ou `/oxe:scan` após **`/commands reload`** (se instalou essa stack) |
68
- | **OpenCode / Codex / Windsurf / Antigravity** | Ver caminhos no resumo pós-instalação e o README na secção **Multi-agente** |
69
-
70
- > **Nota:** Instruções e prompt files do Copilot (VS Code) ficam em **`~/.copilot/`** por padrão, não em `.github/` no repo alvo. **`oxe-cc doctor`** aceita workflows em **`.oxe/workflows/`** ou **`oxe/workflows/`**. Em qualquer IDE, você ainda pode pedir em linguagem natural com o repositório e o workflow em contexto.
71
-
72
- **Sem pacote no npm** (`npm view oxe-cc version` 404): clone este repo, `npm link` na pasta **oxe-build**, `npm link oxe-cc` no seu projeto e execute `oxe-cc`. Alternativa: `node /caminho/oxe-build/bin/oxe-cc.js`.
73
-
74
- <details>
75
- <summary><strong>Instalação: flags úteis (CI, ou só parte do pacote)</strong></summary>
76
-
77
- | Flag | Efeito |
78
- |------|--------|
79
- | `--force` / `-f` | Sobrescreve arquivos já existentes (**obrigatório** para atualizar cópias antigas) |
80
- | `--dry-run` | Lista ações sem escrever |
81
- | `--cursor` / `--copilot` | Instala só uma das stacks |
82
- | `--oxe-only` | workflows + templates dentro de **`.oxe/`** (sem integrações IDE) |
83
- | `--no-init-oxe` | Não executa o bootstrap de `STATE.md` / `config.json` / `codebase/` (mantém `.oxe/workflows` se copiados) |
84
- | `--global` | Layout **clássico**: **`oxe/`** na raiz do repo + **`.oxe/`**; IDE em `~/.cursor`, `~/.copilot`, `~/.claude` |
85
- | `--local` | Layout **mínimo** (padrão): **só `.oxe/`** com **`.oxe/workflows/`**; IDE nas mesmas pastas do usuário |
86
- | `--global-cli` / `-g` | Após copiar: `npm install -g oxe-cc@versão` (sem pergunta) |
87
- | `--no-global-cli` / `-l` | Não pergunta nem instala o CLI global (útil em CI) |
88
- | `--copilot-cli` | **Skills** em **`~/.copilot/skills/`** (`/oxe`, `/oxe-scan`, …) + cópia legado em **`~/.claude/commands/`** e **`~/.copilot/commands/`** |
89
- | `--all-agents` | Tudo de `--copilot-cli` **mais** OpenCode, Gemini (TOML), Codex, Windsurf, Antigravity (ver texto acima) |
90
- | `--all` / `-a` | Cursor + Copilot (padrão quando não indicas `--cursor` nem `--copilot`) |
91
- | `--vscode` | Copia `.vscode/settings.json` (só com layout **`--global`**) |
92
- | `--no-commands` | Omite `commands/oxe/` |
93
- | `--no-agents` | Omite `AGENTS.md` |
94
- | `--no-install-config` | Ignora o bloco `install` em `.oxe/config.json` nesta instalação |
95
- | `--config-dir` / `-c` | Pasta base para **uma** integração (`--cursor`, `--copilot` ou `--copilot-cli`); não combina com `--all-agents` |
96
- | `--dir <pasta>` ou argumento posicional | Destino em vez do diretório atual |
97
-
98
- **Global:** `npm install -g oxe-cc`.
99
-
100
- **Subcomandos**
101
-
102
- | Comando | Função |
103
- |---------|--------|
104
- | `oxe-cc` ou `oxe-cc install` | Instalação predefinida (mesmo comportamento; `install` é alias explícito) |
105
- | `oxe-cc doctor` | Valida Node, workflows do pacote, `.oxe/`, coerência STATE vs arquivos, scan/compact antigos (`scan_max_age_days`, `compact_max_age_days`), seções da SPEC, ondas do PLAN |
106
- | `oxe-cc status` | Leve: coerência `.oxe/` + **um** próximo passo sugerido (espelha o workflow `next`; não exige o conjunto completo de workflows como o `doctor`). **`--json`**: uma linha JSON com `nextStep`, `diagnostics`, `staleCompact`, etc. **`--hints`**: lembretes de rotina (scan/compact por idade). |
107
- | `oxe-cc init-oxe` | Só o bootstrap `.oxe/` (STATE, config, codebase) |
108
- | `oxe-cc uninstall` | Remove integrações OXE em `~/.cursor`, `~/.copilot`, `~/.claude` e pastas de workflows no repo (`--ide-only` só no HOME) |
109
- | `oxe-cc update` | Executa `npx oxe-cc@latest --force` na pasta do projeto; **`--check`** só consulta o npm; **`--if-newer`** evita o npx quando já está na última |
110
-
111
- </details>
112
-
113
- <details>
114
- <summary><strong>Desenvolvimento (clonar o oxe-build)</strong></summary>
115
-
116
- ```bash
117
- git clone https://github.com/propagno/oxe-build.git
118
- cd oxe-build
119
- npm test
120
- node bin/oxe-cc.js --help
121
- ```
122
-
123
- Para testar no seu app: `npm link` aqui, depois `npm link oxe-cc` no projeto alvo.
124
-
125
- </details>
126
-
127
- ---
128
-
129
- ## Como funciona
130
-
131
- ### Ciclo por trilha
132
-
133
- Fluxo sugerido (cada iteração de trabalho segue a trilha e volta ao **scan** quando for hora de realinhar com o repo):
134
-
135
- ```mermaid
136
- flowchart LR
137
- scan --> spec
138
- spec --> plan
139
- plan --> execute
140
- execute --> verify
141
- verify -->|próxima trilha| scan
142
- ```
143
-
144
- **verify (T):** as tarefas **T** do plano trazem o bloco **Verificar** (comando ou checklist) por item; o passo **`/oxe-verify`** cruza SPEC + PLAN com o código e grava **`.oxe/VERIFY.md`**.
145
-
146
- <p align="center"><img src="assets/oxe-ciclo-por-trilha.png" alt="Diagrama: scan → spec → plan → execute → verify (T), seta de volta a scan" width="720" /></p>
147
-
148
- **Já tem código no repositório?** Comece por **`/oxe-scan`**. Isso gera mapas em **`.oxe/codebase/`** (stack, estrutura, testes, convenções, etc.). Assim o **spec** e o **plan** alinham com o repo real antes de planear em grande escala.
149
-
150
- ### 1. Mapear — `/oxe-scan`
151
-
152
- Inventaria o projeto e preenche **`.oxe/codebase/*.md`**, atualiza **`.oxe/STATE.md`**. Você pode indicar foco opcional (ex.: “só API”).
153
-
154
- ### 2. Especificar — `/oxe-spec`
155
-
156
- Produz ou atualiza **`.oxe/SPEC.md`**: objetivo, escopo, critérios de aceite, riscos. Isso é o contrato antes do plano.
157
-
158
- ### 3. Discutir *(opcional)* `/oxe-discuss`
159
-
160
- Captura decisões de implementação (UI, API, tom, edge cases) em **`.oxe/DISCUSS.md`**, para o plano não “adivinhar” o que você prefere. Útil quando `discuss_before_plan` está ativo em `.oxe/config.json`. **Pular** este passo = defaults razoáveis; **usar** = mais próximo da sua visão.
161
-
162
- ### 4. Planear — `/oxe-plan`
163
-
164
- Gera **`.oxe/PLAN.md`**: tarefas **atômicas**, **ondas** (paralelo vs sequencial), e bloco **Verificar** (comando de teste ou checklist) **por tarefa**. Ideia: cada tarefa cabe num contexto de agente focado, com verificação explícita — em Markdown, sem XML obrigatório.
165
-
166
- Ondas em resumo: tarefas **independentes** na mesma onda podem **rodar** em paralelo; **dependentes** vão para ondas posteriores (organização por ondas, com pouca cerimônia).
167
-
168
- **Variante plan-agent:** **`/oxe-plan-agent`** gera o mesmo **`.oxe/PLAN.md`** (com **Verificar** e **Aceite** por tarefa) **e** **`.oxe/plan-agents.json`** (schema **2**: `runId`, `lifecycle`): papéis (`role`), âmbito (`scope`), `inputs`/`outputs` sugeridos, dependências entre **agentes** e **`execution.waves`**. Handoffs entre agentes seguem **`oxe/workflows/references/plan-agent-chat-protocol.md`** (ficheiros em **`.oxe/plan-agent-messages/`**). Os papéis do blueprint são **exclusivos** da trilha **execute** desse plano (alinhados ao `runId` no **STATE**); **`/oxe-quick`** **invalida** o blueprint; trabalho fora das tarefas do **PLAN** não deve reutilizar essas personas.
169
-
170
- ### 5. Executar — implementação + `/oxe-execute` *(opcional)*
171
-
172
- Implemente no editor ou deixe o agente seguir **`/oxe-execute`** sobre o plano (ou QUICK). O OXE não impõe subagentes nem commits atômicos por tarefa; isso fica a cargo do **seu** fluxo com Git.
173
-
174
- ### 6. Verificar — `/oxe-verify`
175
-
176
- Cruza **SPEC** + **PLAN** com o código; escreve **`.oxe/VERIFY.md`**. Se algo falhar, corrija ou replaneje (`/oxe-plan` com lógica de replanejamento descrita no workflow).
177
-
178
- ### 7. Seguir em frente `/oxe-next` e ciclo
179
-
180
- Para a **próxima** feature ou fase: de novo **spec → plan → …** ou **`/oxe-next`** para sugerir o passo lógico a partir de **STATE.md**.
181
-
182
- ---
183
-
184
- ## Modo rápido
185
-
186
- Para trabalho **ad hoc** sem roadmap completo:
187
-
188
- **`/oxe-quick`** gera **`.oxe/QUICK.md`** com passos curtos e verificação. **Perfil fast:** objetivo numa frase, no máximo **10** passos — ver `oxe/workflows/quick.md`. Depois você pode usar **`/oxe-execute`** em cima disso ou implementar direto e fechar com **`/oxe-verify`**. Se existir um blueprint **`plan-agents.json`** (schema 2) ainda activo, o quick **invalida** esse blueprint (não reutiliza os agentes definidos para o plano).
189
-
190
- Se o trabalho crescer, **promova** para spec + plan completos (mesmos gatilhos: muitos ficheiros, API pública, segurança, etc.).
191
-
192
- ---
193
-
194
- ## Porque funciona
195
-
196
- **Context engineering:** o agente não precisa de “lembrar” tudo na janela principal — o que importa está em arquivos **pequenos e por etapa**.
197
-
198
- | Artefato | Função |
199
- |----------|--------|
200
- | `.oxe/STATE.md` | Fase, decisões, próximo passo — memória entre sessões |
201
- | `.oxe/codebase/*.md` | Mapa do repo após scan |
202
- | `.oxe/SPEC.md` | O que entregar e como saber que está certo |
203
- | `.oxe/DISCUSS.md` | Preferências antes do plano *(opcional)* |
204
- | `.oxe/PLAN.md` | Tarefas atômicas + **Verificar** por item |
205
- | `.oxe/plan-agents.json` | Blueprint opcional (agentes + ondas) após **`/oxe-plan-agent`** |
206
- | `.oxe/QUICK.md` | Modo rápido |
207
- | `.oxe/NOTES.md` | Fila leve antes de discuss/plan *(opcional)* |
208
- | `.oxe/FORENSICS.md` / `.oxe/DEBUG.md` | Recuperação e debug *(opcional)* |
209
- | `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md` | Contrato e revisão UI *(opcional)* |
210
- | `.oxe/VERIFY.md` | Resultado das verificações |
211
- | `.oxe/SUMMARY.md` | Resumo para replanejamento *(opcional)* |
212
- | `oxe/workflows/*.md` ou `.oxe/workflows/*.md` | **Fonte única** dos passos no **projeto** após instalar (no **pacote** npm, os modelos vivem em `oxe/workflows/`) |
213
-
214
- **Formato:** planos em Markdown com seções fixas (incl. verificação), legíveis por humanos e por modelos — sem XML obrigatório, mas com a mesma ideia de *precise instructions + verify*.
215
-
216
- ---
217
-
218
- ## Comandos
219
-
220
- Slash commands (Cursor: `~/.cursor/commands/` após instalar) e prompt files (Copilot: `~/.copilot/prompts/` com `chat.promptFiles`). A **fonte única** dos passos está em [`oxe/workflows/*.md`](oxe/workflows/) no pacote ou em [`.oxe/workflows/`](.oxe/workflows/) no projeto após `npx oxe-cc`.
221
-
222
- ### Resumo rápido
223
-
224
- | Comando / prompt | Workflow (fonte dos passos) |
225
- |------------------|-------------------|
226
- | `/oxe-scan` | [`scan.md`](oxe/workflows/scan.md) |
227
- | `/oxe-spec` | [`spec.md`](oxe/workflows/spec.md) |
228
- | `/oxe-discuss` | [`discuss.md`](oxe/workflows/discuss.md) |
229
- | `/oxe-plan` | [`plan.md`](oxe/workflows/plan.md) |
230
- | `/oxe-plan-agent` | [`plan-agent.md`](oxe/workflows/plan-agent.md) |
231
- | `/oxe-quick` | [`quick.md`](oxe/workflows/quick.md) |
232
- | `/oxe-execute` | [`execute.md`](oxe/workflows/execute.md) |
233
- | `/oxe-verify` | [`verify.md`](oxe/workflows/verify.md) |
234
- | `/oxe-next` | [`next.md`](oxe/workflows/next.md) |
235
- | `/oxe-help` | [`help.md`](oxe/workflows/help.md) |
236
- | `/oxe-update` | [`update.md`](oxe/workflows/update.md) |
237
- | `/oxe-forensics` | [`forensics.md`](oxe/workflows/forensics.md) |
238
- | `/oxe-debug` | [`debug.md`](oxe/workflows/debug.md) |
239
- | `/oxe-route` | [`route.md`](oxe/workflows/route.md) |
240
- | `/oxe-research` | [`research.md`](oxe/workflows/research.md) |
241
- | `/oxe-validate-gaps` | [`validate-gaps.md`](oxe/workflows/validate-gaps.md) |
242
- | `/oxe-compact` | [`compact.md`](oxe/workflows/compact.md) |
243
- | `/oxe-checkpoint` | [`checkpoint.md`](oxe/workflows/checkpoint.md) |
244
- | `/oxe-ui-spec` | [`ui-spec.md`](oxe/workflows/ui-spec.md) |
245
- | `/oxe-ui-review` | [`ui-review.md`](oxe/workflows/ui-review.md) |
246
- | `/oxe-review-pr` *(prompt Copilot; ver nota abaixo)* | [`review-pr.md`](oxe/workflows/review-pr.md) |
247
- | *(mantenedores)* `workflow-authoring` em linguagem natural | [`workflow-authoring.md`](oxe/workflows/workflow-authoring.md) |
248
-
249
- ### Referência completa por passo
250
-
251
- #### `/oxe-scan`
252
-
253
- - **O que faz:** Analisa o repositório e produz **sete** mapas estruturados em `.oxe/codebase/` (overview, stack, estrutura, testes, integrações, convenções, preocupações) e atualiza `.oxe/STATE.md` com data de scan e fase sugerida.
254
- - **Artefatos:** `.oxe/codebase/*.md`, `.oxe/STATE.md` (não apaga `SPEC.md` / `PLAN.md`).
255
- - **Quando usar:** Após clonar, quando o repo mudou muito, ou quando quiser foco opcional (pasta/módulo) ou `scan_focus_globs` em `.oxe/config.json`.
256
- - **Limite:** Não executa testes por si; não substitui leitura do código — condensa para contexto de agente. Repositórios legado: segue também [`references/legacy-brownfield.md`](oxe/workflows/references/legacy-brownfield.md).
257
- - **Workflow:** [`oxe/workflows/scan.md`](oxe/workflows/scan.md)
258
-
259
- #### `/oxe-spec`
260
-
261
- - **O que faz:** Regista o contrato do trabalho em `.oxe/SPEC.md`: objetivo, escopo, **critérios de aceite com IDs estáveis (A1, A2, …)** e coluna *Como verificar*, suposições e riscos.
262
- - **Artefatos:** `.oxe/SPEC.md`, `.oxe/STATE.md` (fase `spec_ready`).
263
- - **Quando usar:** Antes de planear qualquer entrega média ou grande; entrada pode ser texto livre ou `@ficheiro.md`.
264
- - **Limite:** Não implementa código; o plano e o verify é que amarram tarefas aos **A*** .
265
- - **Workflow:** [`oxe/workflows/spec.md`](oxe/workflows/spec.md)
266
-
267
- #### `/oxe-research`
268
-
269
- - **O que faz:** Cria uma **nota datada** em `.oxe/research/YYYY-MM-DD-<slug>.md` e atualiza **`.oxe/RESEARCH.md`** (índice/histórico); spikes, mapa de sistema, engenharia reversa, hipóteses de modernização ou qualquer exploração com evidência antes do plano.
270
- - **Artefatos:** `.oxe/research/*.md`, `.oxe/RESEARCH.md`, `.oxe/STATE.md` se útil.
271
- - **Quando usar:** Incerteza técnica ou de âmbito; sistemas grandes por progressive disclosure (várias sessões); opcional após **spec** e antes de **plan**.
272
- - **Limite:** Não substitui SPEC/PLAN; não sobrescreve notas antigas sem pedido explícito.
273
- - **Workflow:** [`oxe/workflows/research.md`](oxe/workflows/research.md)
274
-
275
- #### `/oxe-discuss`
276
-
277
- - **O que faz:** Regista perguntas, respostas e decisões em `.oxe/DISCUSS.md` (máx. 7 perguntas enxutas) antes do plano, alinhado à SPEC.
278
- - **Artefatos:** `.oxe/DISCUSS.md`, `.oxe/STATE.md` (`discuss_complete`).
279
- - **Quando usar:** Ambiguidade na SPEC, risco técnico, ou `discuss_before_plan: true` em `.oxe/config.json`.
280
- - **Limite:** Opcional; não substitui a SPEC nem o PLAN.
281
- - **Workflow:** [`oxe/workflows/discuss.md`](oxe/workflows/discuss.md)
282
-
283
- #### `/oxe-plan`
284
-
285
- - **O que faz:** Gera ou atualiza `.oxe/PLAN.md` com tarefas **Tn**, **ondas**, dependências, bloco **Verificar** por tarefa e **Aceite vinculado** aos critérios **A*** da SPEC; suporta `--replan` após `verify_failed` usando `VERIFY.md` / `SUMMARY.md`.
286
- - **Artefatos:** `.oxe/PLAN.md`, `.oxe/STATE.md` (`plan_ready`).
287
- - **Quando usar:** SPEC pronta (e discuss, se a config obrigar); base em `.oxe/codebase/*` e código real.
288
- - **Limite:** Não executa as tarefas — isso é **execute** + o teu Git.
289
- - **Workflow:** [`oxe/workflows/plan.md`](oxe/workflows/plan.md)
290
-
291
- #### `/oxe-plan-agent`
292
-
293
- - **O que faz:** Igual ao plano OXE em **tarefas verificáveis** (`PLAN.md`), mais **`.oxe/plan-agents.json`** (schema **2**: `runId`, `lifecycle`): define **agentes** (papel, âmbito, `taskIds`, dependências, entradas/saídas sugeridas) e **`execution.waves`**. Cria **`.oxe/plan-agent-messages/`** (README + mensagens conforme [`references/plan-agent-chat-protocol.md`](oxe/workflows/references/plan-agent-chat-protocol.md)). Inclui gate de coerência entre JSON e `Tn`.
294
- - **Artefatos:** `.oxe/PLAN.md`, `.oxe/plan-agents.json`, `.oxe/plan-agent-messages/`, `.oxe/STATE.md` (`plan_ready` + secção blueprint).
295
- - **Quando usar:** Equipas que querem **roteiro explícito por “subagente”**, handoffs escritos entre ondas, ou ondas paralelas por domínio sem perder **Verificar** por tarefa.
296
- - **Limite:** Papéis do blueprint são **só** para **`/oxe-execute`** alinhado ao `PLAN.md` e `runId`; **`/oxe-quick`** invalida o blueprint; pedidos fora do plano não devem reutilizar essas personas.
297
- - **Workflow:** [`oxe/workflows/plan-agent.md`](oxe/workflows/plan-agent.md) · modelo JSON: [`oxe/templates/plan-agents.template.json`](oxe/templates/plan-agents.template.json) · schema: [`oxe/schemas/plan-agents.schema.json`](oxe/schemas/plan-agents.schema.json)
298
-
299
- #### `/oxe-ui-spec`
300
-
301
- - **O que faz:** Gera ou atualiza **`.oxe/UI-SPEC.md`**: contrato de UI/UX derivado da **SPEC** (âmbito, estados, acessibilidade, breakpoints, tokens quando aplicável).
302
- - **Artefatos:** `.oxe/UI-SPEC.md`, `.oxe/STATE.md` (nota de fase / próximo passo conforme o workflow).
303
- - **Quando usar:** Depois de **spec** e **antes** (ou em paralelo cognitivo) do **plan**, para entregas com interface; o **plan** pode referenciar secções do UI-SPEC nas tarefas de front.
304
- - **Limite:** Só faz sentido se houver UI; projetos só API/backend podem ignorar este passo. Não substitui a SPEC.
305
- - **Workflow:** [`oxe/workflows/ui-spec.md`](oxe/workflows/ui-spec.md)
306
-
307
- #### `/oxe-quick`
308
-
309
- - **O que faz:** Fluxo curto com `.oxe/QUICK.md` (passos numerados + verificar) para trabalho pontual sem SPEC/PLAN longos.
310
- - **Artefatos:** `.oxe/QUICK.md`, `.oxe/STATE.md` conforme fluxo.
311
- - **Quando usar:** Fix ou spike muito pequeno; promover a spec/plan se o trabalho crescer.
312
- - **Limite:** Menos trilha de auditoria que SPEC+PLAN completos.
313
- - **Workflow:** [`oxe/workflows/quick.md`](oxe/workflows/quick.md)
314
-
315
- #### `/oxe-execute`
316
-
317
- - **O que faz:** Guia a implementação **onda a onda** com base em `PLAN.md` (ou passos de `QUICK.md`), com checklist explícito e atualização de `.oxe/STATE.md` (progresso Tn / ondas). Com blueprint **válido** (`lifecycle` + `runId` alinhado ao STATE), aplica papéis do JSON só às tarefas do plano e regista handoffs em **`.oxe/plan-agent-messages/`** quando agentes dependem uns dos outros.
318
- - **Artefatos:** Código/docs que implementas; `.oxe/STATE.md` (checklist de onda).
319
- - **Quando usar:** Durante a execução do plano ou do QUICK, para não saltar pré-requisitos nem verificações da onda.
320
- - **Limite:** Não faz commits nem impõe subagentes — fica a teu critério de equipa.
321
- - **Workflow:** [`oxe/workflows/execute.md`](oxe/workflows/execute.md)
322
-
323
- #### `/oxe-ui-review`
324
-
325
- - **O que faz:** Produz **`.oxe/UI-REVIEW.md`**: auditoria da implementação face ao **UI-SPEC** (checklist, bloqueios P0/P1, sugestões), tipicamente após trabalho de front e **antes** ou como entrada para o **verify** global.
326
- - **Artefatos:** `.oxe/UI-REVIEW.md`, `.oxe/STATE.md` se útil.
327
- - **Quando usar:** Depois de implementar ecrãs/componentes cobertos pelo UI-SPEC; se não existir `UI-SPEC.md`, o workflow pede **ui-spec** primeiro ou regista revisão *ad hoc* (menos ideal).
328
- - **Limite:** Não substitui **`/oxe-verify`** — o verify continua a cruzar SPEC, PLAN, evidência técnica e, quando existir, UI-REVIEW.
329
- - **Workflow:** [`oxe/workflows/ui-review.md`](oxe/workflows/ui-review.md)
330
-
331
- #### `/oxe-verify`
332
-
333
- - **O que faz:** Corre ou orienta verificação: comandos do PLAN, confronto de **cada** critério **A*** da SPEC com evidência, registo em `.oxe/VERIFY.md`; opcionalmente rascunho de commit e checklist de PR conforme `.oxe/config.json`.
334
- - **Artefatos:** `.oxe/VERIFY.md`, `.oxe/STATE.md` (`verify_complete` / `verify_failed`), `.oxe/SUMMARY.md` quando há gaps relevantes.
335
- - **Quando usar:** Após implementar uma onda ou fechar o plano; pode focar uma tarefa **Tn** se indicares.
336
- - **Limite:** Sandbox pode impedir comandos — regista “não executado aqui” e deixa o comando para correres localmente.
337
- - **Workflow:** [`oxe/workflows/verify.md`](oxe/workflows/verify.md)
338
-
339
- #### `/oxe-validate-gaps`
340
-
341
- - **O que faz:** Auditoria **complementar** pós-verify: cruza PLAN + VERIFY (+ SPEC), lista gaps de cobertura/evidência em **`.oxe/VALIDATION-GAPS.md`** e sugere tarefas em texto (Nyquist-lite).
342
- - **Artefatos:** `.oxe/VALIDATION-GAPS.md`, opcionalmente `STATE.md`.
343
- - **Quando usar:** Depois de **`/oxe-verify`** (passou ou falhou), para fechar dívida de testes ou evidência fraca.
344
- - **Limite:** Não altera `PLAN.md` por defeito nem substitui um novo verify após correções.
345
- - **Workflow:** [`oxe/workflows/validate-gaps.md`](oxe/workflows/validate-gaps.md)
346
-
347
- #### `/oxe-compact`
348
-
349
- - **O que faz:** **Rotina de projeto inteiro:** compara **`.oxe/codebase/*.md`** ao repositório **atual**, **atualiza** os sete mapas (incrementalmente se já existirem; geração completa alinhada a **`scan.md`** se faltar base), escreve **`.oxe/CODEBASE-DELTA.md`** (o que mudou na documentação face à versão anterior) e **`.oxe/RESUME.md`** (trilha OXE + ligação ao delta). **Independente** de limites de chat ou de qualquer comando de “compact” de IDE.
350
- - **Artefatos:** `.oxe/codebase/*.md`, `.oxe/CODEBASE-DELTA.md`, `.oxe/RESUME.md`; bloco opcional **Último compact** em `STATE.md`.
351
- - **Quando usar:** Fim de sprint, após refactors grandes, quando o mapa OXE “cheira” a desatualizado, ou em cadência que a equipa definir — **sem** substituir um **`/oxe-scan`** completo logo após clonar ou quando tudo mudou de raiz.
352
- - **Limite:** Não substitui SPEC/PLAN/VERIFY. Para **marco de sessão** nomeado, usar **`/oxe-checkpoint`**.
353
- - **Workflow:** [`oxe/workflows/compact.md`](oxe/workflows/compact.md)
354
-
355
- #### `/oxe-checkpoint`
356
-
357
- - **O que faz:** **Snapshot de sessão / trilha:** cria **`.oxe/checkpoints/YYYY-MM-DD-HHmm-<slug>.md`** com frontmatter (`linked` para artefactos) e atualiza **`.oxe/CHECKPOINTS.md`** (índice, mais recente primeiro).
358
- - **Artefatos:** `.oxe/checkpoints/*.md`, `.oxe/CHECKPOINTS.md`.
359
- - **Quando usar:** Antes de mudanças arriscadas, troca de ramo mental, ou fim de dia — marco **nomeado** sem apagar contratos. Contrasta com **`/oxe-compact`**, que atualiza o **mapa do projeto inteiro** (`codebase/` + delta + RESUME).
360
- - **Limite:** Não é `git commit`; não altera SPEC/PLAN por defeito; **não** substitui o refresh de `codebase/` do compact.
361
- - **Workflow:** [`oxe/workflows/checkpoint.md`](oxe/workflows/checkpoint.md)
362
-
363
- **Momentos chave (rotina):** antes de spike ou branch longa → checkpoint; após migração de stack ou fim de feature/PR → compact; fim de dia a meio trabalho → checkpoint. Tabela completa e `compact_max_age_days` em [`oxe/workflows/help.md`](oxe/workflows/help.md) (secção *Momentos chave*).
364
-
365
- #### `/oxe-forensics`
366
-
367
- - **O que faz:** Diagnóstico **pós-falha** ou incoerência (verify falhou, `doctor` em erro, STATE vs artefatos); escreve **`.oxe/FORENSICS.md`** com linha do tempo, hipótese de causa e **um** próximo passo canónico: **scan**, **plan** ou **execute** (nunca “fim” sem reentrada na trilha).
368
- - **Artefatos:** `.oxe/FORENSICS.md`, opcionalmente linha em `STATE.md`.
369
- - **Quando usar:** Preso após várias tentativas, drift de workflows, PLAN vs VERIFY inconsistente.
370
- - **Limite:** Recomenda; não apaga SPEC/PLAN sem decisão explícita tua.
371
- - **Workflow:** [`oxe/workflows/forensics.md`](oxe/workflows/forensics.md)
372
-
373
- #### `/oxe-debug`
374
-
375
- - **O que faz:** Ciclo **hipótese → experiência → evidência** durante o **execute** (teste vermelho, stack, regressão); regista sessões em **`.oxe/DEBUG.md`**, ligadas a **Tn** quando existir.
376
- - **Artefatos:** `.oxe/DEBUG.md` (append por sessão datada).
377
- - **Quando usar:** Dificuldade **técnica** no meio do plano; se o problema for requisito ambíguo, preferir **`/oxe-discuss`** e depois **plan**.
378
- - **Limite:** Corrigir com debug **não** dispensa **`/oxe-verify`** para fechar a trilha.
379
- - **Workflow:** [`oxe/workflows/debug.md`](oxe/workflows/debug.md)
380
-
381
- #### `/oxe-route`
382
-
383
- - **O que faz:** Meta-only: mapeia linguagem natural → **exatamente um** comando/workflow (tabela em **help**); não gera SPEC nem PLAN.
384
- - **Artefatos:** Nenhum obrigatório.
385
- - **Quando usar:** “Que comando OXE uso para…?” sem quereres escolher à mão.
386
- - **Limite:** Só orientação; a execução é o passo apontado (`/oxe-scan`, `/oxe-forensics`, etc.).
387
- - **Workflow:** [`oxe/workflows/route.md`](oxe/workflows/route.md)
388
-
389
- #### `/oxe-next`
390
-
391
- - **O que faz:** Sugere o **único** próximo passo lógico com base nos artefactos `.oxe/` (equivalente conceptual ao que o terminal faz com `npx oxe-cc status`, sem validar o pacote de workflows completo).
392
- - **Artefatos:** Pode sugerir atualizar `STATE.md` após confirmares a ação.
393
- - **Quando usar:** Retomar trabalho ou desbloquear “o que faço agora?”.
394
- - **Limite:** Heurística sobre arquivos existentes; não substitui leitura humana do PLAN.
395
- - **Workflow:** [`oxe/workflows/next.md`](oxe/workflows/next.md)
396
-
397
- #### `/oxe-help`
398
-
399
- - **O que faz:** Apresenta o fluxo OXE (scan → spec → plan → execute → verify), modo quick, invocação em várias IDEs/CLIs e referência ao `oxe-cc` (install, doctor, status, …).
400
- - **Artefatos:** Nenhum obrigatório (só saída no chat).
401
- - **Quando usar:** Onboarding ou quando mudas de IDE.
402
- - **Limite:** Resumo; detalhe máximo continua nos workflows linkados.
403
- - **Workflow:** [`oxe/workflows/help.md`](oxe/workflows/help.md)
404
-
405
- #### `/oxe-update`
406
-
407
- - **O que faz:** Segue o workflow de atualização: verificar versão no npm, correr `npx oxe-cc@latest` com flags adequadas, `doctor`, e próximos passos (ex. `/oxe-scan` se workflows mudaram).
408
- - **Artefatos:** Arquivos do pacote OXE no projeto e integrações conforme a tua instalação.
409
- - **Quando usar:** Após anúncio de release ou quando queres alinhar workflows/templates à última versão publicada.
410
- - **Limite:** Não altera o teu código de aplicação fora do que o instalador OXE gere.
411
- - **Workflow:** [`oxe/workflows/update.md`](oxe/workflows/update.md)
412
-
413
- #### Revisão de PR / diff (`review-pr`)
414
-
415
- - **O que faz:** Análise estilo code review sobre diff entre branches, link de PR, ou `gh pr diff`: riscos, testes sugeridos, checklist.
416
- - **Artefatos:** Saída no chat (não obriga arquivos em `.oxe/`).
417
- - **Quando usar:** Antes de merge ou para revisão rápida de alterações alheias.
418
- - **Copilot (VS Code):** prompt file **`/oxe-review-pr`** quando `chat.promptFiles` está ativo.
419
- - **Cursor:** não há slash dedicado em `.cursor/commands/` — abre [`oxe/workflows/review-pr.md`](oxe/workflows/review-pr.md) no contexto ou pede em linguagem natural o mesmo fluxo.
420
- - **Workflow:** [`oxe/workflows/review-pr.md`](oxe/workflows/review-pr.md)
421
-
422
- #### Autoria de workflows (`workflow-authoring`)
423
-
424
- - **O que faz:** Alinha edições de `oxe/workflows/*.md` ao guia de estrutura (objective/context/process/success_criteria), progressive disclosure, e coerência com Cursor/Copilot.
425
- - **Artefatos:** Alterações nos próprios workflows do pacote ou fork.
426
- - **Quando usar:** Manutenção do OXE ou contribuição de novos passos.
427
- - **Limite:** Para utilizadores finais do fluxo spec/plan, não é necessário no dia a dia.
428
- - **Workflow:** [`oxe/workflows/workflow-authoring.md`](oxe/workflows/workflow-authoring.md)
429
-
430
- ### Outros clientes (nomes `oxe:*`)
431
-
432
- Em **Claude Code**, **Copilot CLI** (skills), **Gemini CLI**, **OpenCode**, **Codex**, **Windsurf**, **Antigravity**, os mesmos passos aparecem com nomes como **`oxe:scan`**, **`oxe:plan`**, **`/oxe-scan`**, etc., conforme o destino instalado com `oxe-cc --all-agents` ou flags granulares. O núcleo continua a ser `.oxe/` no **projeto alvo**.
433
-
434
- ---
435
-
436
- ## CLI do pacote (`oxe-cc`)
437
-
438
- Comandos no terminal na **raiz do projeto** (ou `--dir`). Útil em CI, scripts e quando não estás num chat com slash commands.
439
-
440
- | Subcomando | Poder principal |
441
- |------------|-----------------|
442
- | `oxe-cc` / `oxe-cc install` | Copia **workflows** e **templates** para `.oxe/` (layout mínimo) ou `oxe/` + `.oxe/` (`--global`), e instala integrações IDE/CLI conforme flags (`--cursor`, `--copilot`, `--all-agents`, …). |
443
- | `oxe-cc doctor` | Validação **completa**: versão Node, diff workflows **pacote npm ↔ projeto**, parse de `.oxe/config.json`, coerência de **STATE** com arquivos esperados, scan/compact antigos (`scan_max_age_days`, `compact_max_age_days`), seções obrigatórias da SPEC, ondas do PLAN, avisos de estrutura dos `.md` de workflow, e **planWarn** (inclui tarefas **Tn** sem `**Aceite vinculado:**`). |
444
- | `oxe-cc status` | Diagnóstico **mais leve**: mesma leitura de saúde `.oxe/` + config + **um único** próximo passo sugerido (`suggestNextStep`) — não exige o mesmo conjunto de checks pesados do `doctor` sobre o pacote. |
445
- | `oxe-cc status --json` | Igual ao `status`, mas imprime **uma linha JSON** (`oxeStatusSchema: 2`, `nextStep`, `cursorCmd`, `reason`, `artifacts`, `phase`, `scanDate`, `staleScan`, `compactDate`, `staleCompact`, `diagnostics.*`) para pipelines e agentes automáticos. Sem banner quando `--json`. |
446
- | `oxe-cc status --hints` | Agrega lembretes de rotina (idade do scan e do compact quando configurados). Com **`--json --hints`**, inclui o array **`hints`**. |
447
- | `oxe-cc init-oxe` | Apenas **bootstrap** de `.oxe/STATE.md`, `.oxe/config.json` e pasta `.oxe/codebase/` — sem reinstalar integrações nas tuas pastas home. |
448
- | `oxe-cc update` | Corre `npx oxe-cc@latest --force` no projeto (ou equivalente) para alinhar workflows/templates; **`--check`** só compara versão no npm; **`--if-newer`** evita o npx se já estiveres na última. |
449
- | `oxe-cc uninstall` | Por omissão remove integrações em `~/.cursor`, `~/.copilot`, … **e** pastas de workflows no projeto (`.oxe/workflows`, `oxe/`, `commands/oxe`, …). **`--ide-only`** não remove workflows no repo (só integrações no HOME). **`--ide-local`** também remove integrações OXE **dentro** do repositório (`.cursor`, `.github`, `.claude`, `.copilot`, …). |
450
-
451
- **SDK:** `require('oxe-cc')` expõe `runDoctorChecks`, `health.buildHealthReport`, `health.suggestNextStep`, etc. — ver secção [SDK](#sdk-api-programática) abaixo e [`lib/sdk/README.md`](lib/sdk/README.md).
452
-
453
- ---
454
-
455
- ## Configuração
456
-
457
- Preferências do projeto em **`.oxe/config.json`** (criado no bootstrap a partir de `oxe/templates/config.template.json`). Inclui opções de fluxo (`discuss_before_plan`, `scan_max_age_days`, `compact_max_age_days`, `spec_required_sections`, …) e, opcionalmente, o bloco **`install`** (perfil de integração e layout do repo quando corres o instalador sem flags IDE). Referência completa: [`oxe/templates/CONFIG.md`](oxe/templates/CONFIG.md). Hooks Git opt-in: [`oxe/templates/GIT_HOOKS_OXE.md`](oxe/templates/GIT_HOOKS_OXE.md).
458
-
459
- Repositórios **legado** (COBOL, JCL, copybooks, VB6, stored procedures): os workflows **scan**, **spec**, **plan**, **execute** e **verify** delegam padrões de análise e verificação em [`.oxe/workflows/references/legacy-brownfield.md`](oxe/workflows/references/legacy-brownfield.md) após `npx oxe-cc` (no pacote fonte: [`oxe/workflows/references/legacy-brownfield.md`](oxe/workflows/references/legacy-brownfield.md)).
460
-
461
- ---
462
-
463
- ## SDK (API programática)
464
-
465
- O pacote **`oxe-cc`** expõe entrada npm (`main` / `exports`) para scripts e CI:
466
-
467
- ```js
468
- const oxe = require('oxe-cc');
469
- const result = oxe.runDoctorChecks({ projectRoot: process.cwd() });
470
- // result.ok, result.errors, result.warnings, result.healthReport, …
471
- ```
472
-
473
- Também estão disponíveis `oxe.health`, `oxe.workflows`, `oxe.install.resolveOptionsFromConfig`, `oxe.manifest`, `oxe.agents`. TypeScript: `lib/sdk/index.d.ts`. Documentação: [`lib/sdk/README.md`](lib/sdk/README.md).
474
-
475
- ---
476
-
477
- ## Resolução de problemas
478
-
479
- | Situação | O que tentar |
480
- |----------|----------------|
481
- | Comandos não aparecem no Cursor | Confirme que `~/.cursor/commands/` (ou a pasta configurada) existe; reinicie o Cursor |
482
- | Prompts `/oxe-*` não aparecem no Copilot | Ative `"chat.promptFiles": true`; confirme prompts em **`~/.copilot/prompts/`** (o OXE não coloca `.github/` no repo para o Copilot) |
483
- | **`/oxe` ou `/oxe-*` não aparecem no Copilot CLI** | O CLI usa **skills** em **`~/.copilot/skills/`**, não a pasta `commands`. Rode `npx oxe-cc --copilot-cli` (ou perfil com CLI), depois **`/skills reload`**. Use **`/oxe`** (ajuda) ou **`/oxe-scan`**, etc. |
484
- | **`ETARGET`** / versão não encontrada no `npx` | `npm cache clean --force`, `npx clear-npx-cache`, ou fixe a versão: `npx oxe-cc@0.3.6`. Verifique `npm config get registry` |
485
- | **404** no `npm view oxe-cc` | Pacote com outro nome (scope) ou ainda não publicado — use `npm link` ou `node …/bin/oxe-cc.js` |
486
- | Arquivos não atualizam | Reinstale com **`--force`** (com backup local se você tiver editado arquivos rastreados) |
487
- | Erro no **WSL** sobre Node do Windows | Use **Node instalado dentro do WSL** (o `oxe-cc` recusa `node.exe` do Windows em ambiente WSL para evitar caminhos quebrados) |
488
-
489
- **Ajuda no terminal:** `oxe-cc --help`. **Diagnóstico:** `oxe-cc doctor`.
490
-
491
- **Banner no CLI:** [`bin/banner.txt`](bin/banner.txt) (`{version}`). `OXE_NO_BANNER=1` desativa o banner; `NO_COLOR` remove cores.
492
-
493
- <details>
494
- <summary><strong>Variáveis de ambiente (instalação e CLI)</strong></summary>
495
-
496
- | Variável | Efeito |
497
- |----------|--------|
498
- | `OXE_NO_PROMPT` | `1` ou `true`: sem perguntas interativas (integração e layout usam padrões ou `.oxe/config.json` / flags) |
499
- | `OXE_NO_BANNER` | `1` ou `true`: oculta o banner do CLI (útil em scripts) |
500
- | `NO_COLOR` / `FORCE_COLOR` | Controlo de cores na saída |
501
- | `CURSOR_CONFIG_DIR` | Diretório base do Cursor em vez de `~/.cursor` |
502
- | `COPILOT_CONFIG_DIR` ou `COPILOT_HOME` | Diretório Copilot (VS Code / skills) em vez de `~/.copilot` |
503
- | `CLAUDE_CONFIG_DIR` | Diretório `~/.claude` alternativo para comandos legado |
504
- | `XDG_CONFIG_HOME` | Usado pelo instalador multi-agente (ex.: OpenCode em `$XDG_CONFIG_HOME/opencode/commands`) |
505
- | `CODEX_HOME` | Raiz alternativa para prompts Codex (`…/prompts`) em instalação multi-agente |
506
-
507
- </details>
508
-
509
- <details>
510
- <summary><strong>Mantenedores — autoria de workflows</strong></summary>
511
-
512
- Quem edita `oxe/workflows/*.md` deve seguir **[`oxe/templates/WORKFLOW_AUTHORING.md`](oxe/templates/WORKFLOW_AUTHORING.md)** (outcome-first, tags recomendadas, progressive disclosure, frontmatter dos comandos). O passo **`workflow-authoring.md`** no mesmo diretório orienta uma revisão guiada de um ficheiro contra esse guia. O `oxe-cc doctor` pode emitir **avisos** não bloqueantes sobre estrutura dos workflows (presença de `<objective>`, critérios de sucesso, tamanho).
513
-
514
- </details>
515
-
516
- <details>
517
- <summary><strong>Publicar no npm (mantenedores)</strong></summary>
518
-
519
- Incremente `version` em `package.json`, rode `npm login` (2FA se exigido) e `npm publish --access public`. O script `prepublishOnly` **executa** os testes e o `scan:assets`.
520
-
521
- </details>
522
-
523
- <details>
524
- <summary><strong>Estrutura do repositório</strong></summary>
525
-
526
- | Caminho | Função |
527
- |---------|--------|
528
- | `assets/readme-banner.svg` | Banner deste README |
529
- | `bin/oxe-cc.js`, `bin/banner.txt` | CLI |
530
- | `bin/lib/*.cjs` | Lógica partilhada (health, workflows, manifest, instalação multi-agente, resolução `install` em config) |
531
- | `lib/sdk/` | SDK npm (`require('oxe-cc')`) |
532
- | `oxe/workflows/` | Workflows canónicos (fonte no pacote) |
533
- | `oxe/templates/` | Modelos, `CONFIG.md`, `config.template.json`, **`WORKFLOW_AUTHORING.md`** (guia para editar workflows) |
534
- | `.cursor/`, `.github/` | Comandos Cursor, prompts Copilot, CI |
535
- | `commands/oxe/` | Comandos estilo `oxe:*` (layout clássico no projeto) |
536
- | `tests/`, `scripts/`, `.github/workflows/` | Testes, `scan:assets`, CI |
537
-
538
- </details>
539
-
540
- ---
541
-
542
- ## Licença
543
-
544
- [GPL-3.0](LICENSE).
1
+ <div align="center">
2
+
3
+ <p align="center">
4
+ <img src="assets/readme-banner.svg" alt="OXE" width="920" />
5
+ </p>
6
+
7
+ [![npm](https://img.shields.io/npm/v/oxe-cc.svg?style=flat-square)](https://www.npmjs.com/package/oxe-cc)
8
+ [![license](https://img.shields.io/npm/l/oxe-cc.svg?style=flat-square)](LICENSE)
9
+
10
+ **Versão:** `0.6.0` · [package.json](package.json)
11
+
12
+ ```bash
13
+ npx oxe-cc@latest
14
+ ```
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ ## O que é o OXE
21
+
22
+ OXE é um **framework de desenvolvimento assistido por IA** baseado em três princípios:
23
+
24
+ - **Spec-driven design** — antes de escrever código, você define *o que* construir e *como saber que está pronto*. Essa especificação restringe e guia tudo o que vem depois.
25
+ - **Context engineering** — o estado do trabalho fica em arquivos pequenos dentro de `.oxe/`, não na memória do chat. O agente lê o que precisa, quando precisa — sem sobrecarregar o contexto com decisões já tomadas.
26
+ - **Plan-Driven Dynamic Agents** — quando há múltiplos domínios, o plano cria agentes específicos para *aquela demanda*. Agentes não são reaproveitados entre projetos ou demandas.
27
+
28
+ O resultado: **menos requisições**, **mais coerência**, e um fluxo que funciona do mesmo jeito em qualquer IDE.
29
+
30
+ ---
31
+
32
+ ## Os 8 comandos que você precisa conhecer
33
+
34
+ ```
35
+ /oxe → onde estou / o que faço / help
36
+ /oxe-obs → registrei algo importante (incorporado automaticamente)
37
+ /oxe-quick → tarefa pequena, sem cerimônia
38
+ /oxe-scan → mapeia o projeto (ou atualiza se já mapeado)
39
+ /oxe-spec → nova feature: perguntas → requisitos → roteiro
40
+ /oxe-plan → tarefas por onda (--agents para multi-agente)
41
+ /oxe-execute → implementar (A: 1 sessão | B: por onda | C: por tarefa)
42
+ /oxe-verify → validar que está pronto
43
+ ```
44
+
45
+ Tudo o mais é ativado automaticamente por contexto ou existe como escape hatch.
46
+
47
+ ---
48
+
49
+ ## A cadeia
50
+
51
+ ```
52
+ /oxe-obs (qualquer momento)
53
+
54
+ /oxe-scan /oxe-spec /oxe-plan ──────────→ /oxe-execute /oxe-verify
55
+
56
+ /oxe-quick (trabalho pequeno)
57
+ ```
58
+
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.
60
+
61
+ ---
62
+
63
+ ## Como cada comando fica mais inteligente
64
+
65
+ | Comando | Inteligência embutida |
66
+ |---------|----------------------|
67
+ | `/oxe` | Sem input próximo passo. Com texto roteamento. Com "help" → 8 comandos. |
68
+ | `/oxe-scan` | Se `.oxe/codebase/` 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. |
72
+ | `/oxe-project` | `milestone` + `workstream` + `checkpoint` em um único comando. |
73
+
74
+ ---
75
+
76
+ ## Comandos completos
77
+
78
+ ### Fluxo principal
79
+
80
+ | Comando | O que faz | Artefato |
81
+ |---------|-----------|----------|
82
+ | `/oxe` | Entrada universal: próximo passo, roteamento ou help | |
83
+ | `/oxe-scan` | Mapeia o repo (bootstrap) ou atualiza mapas (refresh automático) | `.oxe/codebase/*.md` |
84
+ | `/oxe-spec` | Spec em 5 fases: perguntas pesquisa requisitos R-ID roteiro aprovação | `.oxe/SPEC.md` + `.oxe/ROADMAP.md` |
85
+ | `/oxe-plan` | Plano por ondas. `--agents` ativa blueprint com `model_hint` por agente | `.oxe/PLAN.md` [+ `plan-agents.json`] |
86
+ | `/oxe-execute` | Execução A/B/C com debug inline automático em falhas | `.oxe/STATE.md` |
87
+ | `/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` |
89
+ | `/oxe-quick` | Lean: objetivo passos agentes opcionais verify | `.oxe/QUICK.md` |
90
+ | `/oxe-project` | Unifica: `milestone`, `workstream`, `checkpoint` | vários |
91
+
92
+ ### Escape hatches (não precisam ser decorados)
93
+
94
+ | Comando | Quando usar |
95
+ |---------|-------------|
96
+ | `/oxe-research` | Spike, mapa de sistema, engenharia reversa |
97
+ | `/oxe-forensics` | Sugerido automaticamente pelo execute/verify em falha persistente |
98
+ | `/oxe-debug` | Diagnóstico técnico standalone (integrado ao execute) |
99
+ | `/oxe-loop` | Retry iterativo de onda standalone (integrado ao Modo B do execute) |
100
+ | `/oxe-security` | Auditoria OWASP standalone (automático no verify via config) |
101
+ | `/oxe-validate-gaps` | Auditoria de cobertura standalone (automático no verify via config) |
102
+ | `/oxe-ui-spec` | Contrato UI/UX derivado da SPEC |
103
+ | `/oxe-ui-review` | Auditoria da implementação UI |
104
+ | `/oxe-review-pr` | Revisão de PR/diff |
105
+ | `/oxe-discuss` | Decisões D-NN (ativado via `discuss_before_plan: true`) |
106
+ | `/oxe-compact` | Refresh explícito do codebase (equivalente a `/oxe-scan` em modo refresh) |
107
+
108
+ ---
109
+
110
+ ## Conceitos-chave
111
+
112
+ ### Context engineering — estado em disco, não no chat
113
+
114
+ ```
115
+ .oxe/
116
+ ├── STATE.md ← fase atual, próximo passo, decisões ativas
117
+ ├── SPEC.md ← contrato: critérios A1, A2, …
118
+ ├── ROADMAP.md ← fases de entrega mapeadas a requisitos
119
+ ├── PLAN.md ← tarefas Tn com verificação por item
120
+ ├── VERIFY.md ← resultado da verificação em até 6 camadas
121
+ ├── OBSERVATIONS.md ← observações incorporadas automaticamente
122
+ ├── codebase/ ← mapa do repo (stack, estrutura, testes, …)
123
+ ├── milestones/ ← arquivo de entregas M-NN
124
+ └── workstreams/ ← trilhas paralelas de desenvolvimento
125
+ ```
126
+
127
+ ### `/oxe-spec` — spec em 5 fases, máx 3 rodadas de perguntas
128
+
129
+ 1. **Perguntas** — blocos de 3-5 por rodada, máximo 3 rodadas
130
+ 2. **Pesquisa** — proposta inline na Fase 2 (sem sair do spec)
131
+ 3. **Requisitos** tabela R-ID com v1/v2/fora e critérios A*
132
+ 4. **Roteiro** — fases de entrega → `.oxe/ROADMAP.md`
133
+ 5. **Aprovação** instrui `/oxe-plan` ou `/oxe-plan --agents`
134
+
135
+ ### `/oxe-execute` — economia de requisições com debug automático
136
+
137
+ ```
138
+ A) Completo → todas as ondas em 1 sessão (ideal: Claude, Copilot, Gemini)
139
+ B) Por onda → onda 1, você verifica, chama de novo (N sessões)
140
+ C) Por tarefa → máximo controle (N tarefas = N sessões)
141
+ ```
142
+
143
+ Se uma tarefa falha: diagnóstico inline automático (2-3 hipóteses → fix → retry). Sem precisar chamar `/oxe-debug` separadamente.
144
+
145
+ ### `/oxe-obs` — observação sem re-explicar
146
+
147
+ ```
148
+ /oxe-obs JWT expiration deve ser configurável via env var, não hardcoded
149
+ ```
150
+
151
+ O próximo `/oxe-plan`, `/oxe-spec` ou `/oxe-execute` incorpora automaticamente — sem prompt extra.
152
+
153
+ ### Plan-Driven Dynamic Agents — agentes por demanda
154
+
155
+ Com `/oxe-plan --agents` (ou sugerido quando 3+ domínios detectados):
156
+ - `runId` único por demanda nunca reutilizado
157
+ - `role` específico ao domínio desta entrega
158
+ - `model_hint` por agente: `"fast"` / `"balanced"` / `"powerful"`
159
+ - Execute exibe o hint ao iniciar cada agente para o usuário configurar o modelo
160
+
161
+ ---
162
+
163
+ ## Instalação
164
+
165
+ **Requisito:** Node.js 18+
166
+
167
+ ```bash
168
+ npx oxe-cc@latest
169
+ ```
170
+
171
+ **Confirmar que funcionou:**
172
+
173
+ | IDE | Comando |
174
+ |-----|---------|
175
+ | Cursor | `/oxe` |
176
+ | Copilot (VS Code) | `/oxe` (requer `"chat.promptFiles": true`) |
177
+ | Claude Code | `/oxe` ou `oxe` |
178
+ | Gemini CLI | `/oxe` após `/commands reload` |
179
+ | Codex | `/prompts:oxe` |
180
+
181
+ <details>
182
+ <summary><strong>Flags de instalação</strong></summary>
183
+
184
+ | Flag | Efeito |
185
+ |------|--------|
186
+ | `--cursor` / `--copilot` | uma das stacks |
187
+ | `--all-agents` | Cursor + Copilot + Claude + OpenCode + Gemini + Codex + Windsurf + Antigravity |
188
+ | `--global` | Layout clássico: `oxe/` na raiz + `.oxe/` |
189
+ | `--local` | Layout mínimo: só `.oxe/` (padrão) |
190
+ | `--force` / `-f` | Sobrescreve arquivos existentes (use para atualizar) |
191
+ | `--dry-run` | Lista ações sem escrever |
192
+ | `--oxe-only` | Só workflows em `.oxe/`, sem integrações IDE |
193
+ | `--no-global-cli` / `-l` | Não instala `oxe-cc` globalmente (útil em CI) |
194
+ | `OXE_NO_PROMPT=1` | Modo não-interativo (CI) |
195
+
196
+ </details>
197
+
198
+ <details>
199
+ <summary><strong>Atualizar e desinstalar</strong></summary>
200
+
201
+ ```bash
202
+ npx oxe-cc@latest --force # atualizar workflows
203
+ npx oxe-cc update --check # verificar versão sem atualizar
204
+ npx oxe-cc uninstall --ide-only # remove integrações (mantém .oxe/)
205
+ ```
206
+
207
+ </details>
208
+
209
+ <details>
210
+ <summary><strong>Desenvolvimento (contribuir)</strong></summary>
211
+
212
+ ```bash
213
+ git clone https://github.com/propagno/oxe-build.git
214
+ cd oxe-build
215
+ npm test # 144 testes
216
+ node bin/oxe-cc.js --help
217
+ ```
218
+
219
+ </details>
220
+
221
+ ---
222
+
223
+ ## CLI (`oxe-cc`)
224
+
225
+ | Comando | O que faz |
226
+ |---------|-----------|
227
+ | `oxe-cc` / `oxe-cc install` | Instala workflows e integrações |
228
+ | `oxe-cc doctor` | Diagnóstico completo: Node, workflows, config, STATE, scan antigo |
229
+ | `oxe-cc status` | Próximo passo sugerido |
230
+ | `oxe-cc status --json` | Mesmo, em JSON (para pipelines) |
231
+ | `oxe-cc update` | Atualiza workflows para a versão mais recente |
232
+ | `oxe-cc init-oxe` | Bootstrap do `.oxe/` (STATE, config, codebase/) |
233
+ | `oxe-cc uninstall` | Remove integrações OXE do HOME e do repo |
234
+
235
+ ---
236
+
237
+ ## Configuração
238
+
239
+ Arquivo `.oxe/config.json`. Principais opções:
240
+
241
+ | Chave | Padrão | Descrição |
242
+ |-------|--------|-----------|
243
+ | `profile` | `"balanced"` | `strict` / `balanced` / `fast` / `legacy` |
244
+ | `verification_depth` | `"standard"` | `"thorough"` ativa gaps automático no verify (Camada 5) |
245
+ | `security_in_verify` | `false` | `true` ativa OWASP automático no verify (Camada 6) |
246
+ | `discuss_before_plan` | `false` | Exige `/oxe-discuss` antes do `/oxe-plan` |
247
+ | `scale_adaptive` | `true` | Scan sugere o profile pelo tamanho do projeto |
248
+ | `scan_max_age_days` | — | Doctor avisa quando o scan estiver velho |
249
+ | `plugins` | | Hooks de lifecycle em `.oxe/plugins/*.cjs` |
250
+
251
+ ---
252
+
253
+ ## SDK
254
+
255
+ ```js
256
+ const oxe = require('oxe-cc');
257
+
258
+ const plan = oxe.parsePlan(fs.readFileSync('.oxe/PLAN.md', 'utf8'));
259
+ const spec = oxe.parseSpec(fs.readFileSync('.oxe/SPEC.md', 'utf8'));
260
+ const state = oxe.parseState(fs.readFileSync('.oxe/STATE.md', 'utf8'));
261
+
262
+ const fidelity = oxe.validateDecisionFidelity(discussMd, planMd);
263
+ const result = oxe.runDoctorChecks({ projectRoot: process.cwd() });
264
+ const expanded = oxe.health.expandExecutionProfile('strict');
265
+ ```
266
+
267
+ TypeScript: [`lib/sdk/index.d.ts`](lib/sdk/index.d.ts) · Docs: [`lib/sdk/README.md`](lib/sdk/README.md)
268
+
269
+ ---
270
+
271
+ ## Resolução de problemas
272
+
273
+ | Situação | O que tentar |
274
+ |----------|-------------|
275
+ | Comandos não aparecem no Cursor | Confirme `~/.cursor/commands/`; reinicie o Cursor |
276
+ | `/oxe-*` não aparecem no Copilot | Ative `"chat.promptFiles": true`; confirme `~/.copilot/prompts/` |
277
+ | Arquivos não atualizam | Reinstale com `--force` |
278
+ | `ETARGET` / versão não encontrada | `npm cache clean --force` ou `npx oxe-cc@0.6.0` |
279
+ | Erro no WSL sobre Node | Use Node instalado dentro do WSL |
280
+
281
+ `oxe-cc --help` · `oxe-cc doctor` · `OXE_NO_BANNER=1` desativa o banner
282
+
283
+ ---
284
+
285
+ ## Licença
286
+
287
+ [GPL-3.0](LICENSE)