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
package/README.md CHANGED
@@ -1,244 +1,310 @@
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 para [Cursor](https://cursor.com) e [GitHub Copilot](https://github.com/features/copilot) — inspirado na ideia do [GSD](https://github.com/gsd-build/get-shit-done), com **menos comandos** e foco em **`.oxe/`** + **`oxe/workflows/`**.**
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
- ```bash
13
- npx oxe-cc@latest
14
- ```
15
-
16
- **Manter atualizado:** `npx oxe-cc@latest --force` (na raiz do projeto).
17
-
18
- [Para quem é](#para-quem-é) · [Começar](#começar) · [Como funciona](#como-funciona) · [Modo rápido](#modo-rápido) · [Porque funciona](#porque-funciona) · [Comandos](#comandos) · [Configuração](#configuração) · [Problemas](#resolução-de-problemas)
19
-
20
- </div>
21
-
22
- ---
23
-
24
- ## Para quem é
25
-
26
- 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.
27
-
28
- OXE é **enxuto**: não há dezenas de slash commands nem instalador multi-runtime. Há **um CLI** que copia ficheiros para o projeto, **workflows em Markdown** que o agente segue, e **estado em disco** para a sessão principal não “inchada” com tudo o que já foi decidido.
29
-
30
- ---
31
-
32
- ## Começar
33
-
34
- **Requisito:** [Node.js 18+](https://nodejs.org/).
35
-
36
- Na **raiz do repositório** do teu projeto:
37
-
38
- ```bash
39
- npx oxe-cc@latest
40
- ```
41
-
42
- Isto copia, entre outros: **`oxe/`** (workflows + templates), **`.cursor/`** (slash commands), **`.github/`** (instruções Copilot + prompt files), **`commands/oxe/`** (atalhos estilo `oxe:*` para outros clientes), **`AGENTS.md`**, e cria um **`.oxe/`** mínimo (`STATE.md`, `config.json` a partir de template, pasta `codebase/`) — salvo flags como `--no-init-oxe`.
43
-
44
- Em **terminal interativo**, no fim pergunta se queres instalar o **`oxe-cc` globalmente** (`npm install -g`) ou continuar só com **`npx`**. Em CI ou scripts usa **`--no-global-cli`** / **`-l`**, ou define **`OXE_NO_PROMPT=1`**. Para instalar o CLI sem pergunta: **`--global-cli`** / **`-g`**.
45
-
46
- **GitHub Copilot CLI (experimental):** para testar slash commands no terminal, instala com **`--copilot-cli`** copia **`.cursor/commands/*.md`** para **`.claude/commands/`** (ficheiros `oxe-scan.md`, etc., sem `prompt` no nome). Usa na raiz do repo: `npx oxe-cc@latest --force --copilot --copilot-cli`. Depois, na sessão do Copilot CLI, experimenta **`/oxe-scan`**. O suporte depende da versão do CLI; vê [discussão no copilot-cli](https://github.com/github/copilot-cli/issues/1113).
47
-
48
- **Confirmar instalação no agente**
49
-
50
- | Onde | O que correr |
51
- |------|----------------|
52
- | **Cursor** | `/oxe-help` |
53
- | **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)) |
54
-
55
- > **Nota:** O Copilot usa **instruções do repositório** (`.github/copilot-instructions.md`) **e** os ficheiros em `.github/prompts/*.prompt.md`. Sem prompt files, ainda podes pedir em linguagem natural (“executa o workflow OXE scan”) com o repo em contexto.
56
-
57
- **Sem pacote no npm** (`npm view oxe-cc version` → 404): clone este repo, `npm link` na pasta **oxe-build**, `npm link oxe-cc` no teu projeto, e corre `oxe-cc`. Alternativa: `node /caminho/oxe-build/bin/oxe-cc.js`.
58
-
59
- <details>
60
- <summary><strong>Instalação: flags úteis (CI, ou parte do pacote)</strong></summary>
61
-
62
- | Flag | Efeito |
63
- |------|--------|
64
- | `--force` / `-f` | Sobrescreve ficheiros já existentes (**obrigatório** para atualizar cópias antigas) |
65
- | `--dry-run` | Lista ações sem escrever |
66
- | `--cursor` / `--copilot` | Instala só uma das stacks |
67
- | `--oxe-only` | a pasta `oxe/` (workflows) |
68
- | `--no-init-oxe` | Não cria `.oxe/` no fim |
69
- | `--global-cli` / `-g` | Após copiar: `npm install -g oxe-cc@versão` (sem pergunta) |
70
- | `--no-global-cli` / `-l` | Não pergunta nem instala o CLI global (útil em CI) |
71
- | `--copilot-cli` | Copia comandos OXE para `.claude/commands/` (teste com GitHub Copilot CLI) |
72
- | `--vscode` | Copia `.vscode/settings.json` de exemplo |
73
- | `--no-commands` | Omite `commands/oxe/` |
74
- | `--no-agents` | Omite `AGENTS.md` |
75
- | `--dir <pasta>` ou argumento posicional | Destino em vez do diretório atual |
76
-
77
- **Global:** `npm install -g oxe-cc`.
78
-
79
- **Subcomandos:** `oxe-cc doctor` (valida Node, workflows, `.oxe/`), `oxe-cc init-oxe` (só bootstrap `.oxe/`).
80
-
81
- </details>
82
-
83
- <details>
84
- <summary><strong>Desenvolvimento (clonar o oxe-build)</strong></summary>
85
-
86
- ```bash
87
- git clone https://github.com/propagno/oxe-build.git
88
- cd oxe-build
89
- npm test
90
- node bin/oxe-cc.js --help
91
- ```
92
-
93
- Para testar no teu app: `npm link` aqui, depois `npm link oxe-cc` no projeto alvo.
94
-
95
- </details>
96
-
97
- ---
98
-
99
- ## Como funciona
100
-
101
- **Já tens código?** Começa por **`/oxe-scan`**. Gera mapas em **`.oxe/codebase/`** (stack, estrutura, testes, convenções, etc.). Assim o **spec** e o **plan** alinham com o repo real — à semelhança de correres *map-codebase* antes do roadmap no GSD.
102
-
103
- ### 1. Mapear `/oxe-scan`
104
-
105
- Inventaria o projeto e preenche **`.oxe/codebase/*.md`**, atualiza **`.oxe/STATE.md`**. Podes indicar foco opcional (ex. “só API”).
106
-
107
- ### 2. Especificar — `/oxe-spec`
108
-
109
- Produz ou atualiza **`.oxe/SPEC.md`**: objetivo, escopo, critérios de aceite, riscos. Isto é o contrato antes do plano.
110
-
111
- ### 3. Discutir *(opcional)* — `/oxe-discuss`
112
-
113
- Captura decisões de implementação (UI, API, tom, edge cases) em **`.oxe/DISCUSS.md`**, para o plano não “adivinhar” o que preferes. Útil quando `discuss_before_plan` está ativo em `.oxe/config.json`. Saltar = defaults razoáveis; usar = mais próximo da tua visão.
114
-
115
- ### 4. Planear — `/oxe-plan`
116
-
117
- 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 — mesmo espírito dos planos XML pequenos do GSD, em Markdown.
118
-
119
- Ondas em resumo: tarefas **independentes** na mesma onda podem correr em paralelo; **dependentes** vão para ondas posteriores (como no diagrama de *waves* do GSD, só que com menos cerimónia).
120
-
121
- ### 5. Executar — implementação + `/oxe-execute` *(opcional)*
122
-
123
- Implementas no editor ou deixas o agente seguir **`/oxe-execute`** sobre o plano (ou QUICK). O OXE não impõe subagentes nem commits atómicos por tarefa como o GSD; isso fica ao teu fluxo Git.
124
-
125
- ### 6. Verificar — `/oxe-verify`
126
-
127
- Cruza **SPEC** + **PLAN** com o código; escreve **`.oxe/VERIFY.md`**. Se algo falhar, corrigis ou replanejas (`/oxe-plan` com lógica de replanejamento descrita no workflow).
128
-
129
- ### 7. Seguir em frente — `/oxe-next` e ciclo
130
-
131
- 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**.
132
-
133
- ---
134
-
135
- ## Modo rápido
136
-
137
- Para trabalho **adhoc** sem roadmap completo — equivalente conceptual ao **`/gsd:quick`**:
138
-
139
- **`/oxe-quick`** gera **`.oxe/QUICK.md`** com passos curtos e verificação. Depois podes usar **`/oxe-execute`** em cima disso ou implementar direto e fechar com **`/oxe-verify`**.
140
-
141
- Se o trabalho crescer, **promove** para spec + plan completos.
142
-
143
- ---
144
-
145
- ## Porque funciona
146
-
147
- **Context engineering:** o agente não precisa de “lembrar” tudo na janela principal — o que importa está em ficheiros **pequenos e por etapa**.
148
-
149
- | Artefato | Função |
150
- |----------|--------|
151
- | `.oxe/STATE.md` | Fase, decisões, próximo passo — memória entre sessões |
152
- | `.oxe/codebase/*.md` | Mapa do repo após scan |
153
- | `.oxe/SPEC.md` | O que entregar e como saber que está certo |
154
- | `.oxe/DISCUSS.md` | Preferências antes do plano *(opcional)* |
155
- | `.oxe/PLAN.md` | Tarefas atómicas + **Verificar** por item |
156
- | `.oxe/QUICK.md` | Modo rápido |
157
- | `.oxe/VERIFY.md` | Resultado das verificações |
158
- | `oxe/workflows/*.md` | **Fonte única** dos passos (Cursor e Copilot só delegam aqui) |
159
-
160
- **Formato:** planos em Markdown com secçõ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*.
161
-
162
- ---
163
-
164
- ## Comandos
165
-
166
- ### Fluxo principal
167
-
168
- | Comando | O que faz |
169
- |---------|-----------|
170
- | `/oxe-scan` | Mapeia o codebase → `.oxe/codebase/` |
171
- | `/oxe-spec` | Escreve/atualiza `.oxe/SPEC.md` |
172
- | `/oxe-discuss` | Decisões antes do plano `.oxe/DISCUSS.md` |
173
- | `/oxe-plan` | Pesquisa no repo + plano com ondas e Verificar |
174
- | `/oxe-execute` | Execução guiada do plano (ou QUICK) |
175
- | `/oxe-verify` | Validação; `.oxe/VERIFY.md` |
176
- | `/oxe-next` | Sugere o próximo passo |
177
- | `/oxe-help` | Ajuda e visão geral |
178
-
179
- ### Modo rápido
180
-
181
- | Comando | O que faz |
182
- |---------|-----------|
183
- | `/oxe-quick` | `.oxe/QUICK.md` tarefa pontual |
184
-
185
- ### Revisão de PR / diff entre branches *(só Copilot)*
186
-
187
- | Prompt | O que faz |
188
- |--------|-----------|
189
- | `/oxe-review-pr` | Segue `oxe/workflows/review-pr.md`: diff estilo PR (`git diff base...head`, `gh pr diff <n>`, ou fetch `pull/<n>/head`), riscos, testes e checklist. Podes colar o **link da PR** (ex. `https://github.com/org/repo/pull/10`) ou indicar `main` e `feature/x`. **Não** há slash command em `.cursor/commands/`; no Cursor podes pedir o mesmo em linguagem natural com o workflow em contexto. |
190
-
191
- ### Outros clientes
192
-
193
- Em **Claude Code** (ou ferramentas que leem `commands/oxe/`), os mesmos passos expõem nomes **`oxe:scan`**, **`oxe:plan`**, etc. (frontmatter `name:`).
194
-
195
- ---
196
-
197
- ## Configuração
198
-
199
- Preferências do projeto em **`.oxe/config.json`** (criado no bootstrap a partir de `oxe/templates/config.template.json`). Chaves e comportamento: [`oxe/templates/CONFIG.md`](oxe/templates/CONFIG.md) (ex.: `discuss_before_plan`, texto pós-verify, comando de teste por defeito).
200
-
201
- ---
202
-
203
- ## Resolução de problemas
204
-
205
- | Situação | O que tentar |
206
- |----------|----------------|
207
- | Comandos não aparecem no Cursor | Confirma que `.cursor/commands/` existe; reinicia o Cursor |
208
- | Prompts `/oxe-*` não aparecem no Copilot | Ativa `"chat.promptFiles": true`; confirma `.github/prompts/*.prompt.md` |
209
- | Slash `/oxe-*` no **Copilot CLI** | Instala com **`--copilot-cli`** (pasta `.claude/commands/`); atualiza o CLI; comportamento ainda experimental |
210
- | **`ETARGET`** / versão não encontrada no `npx` | `npm cache clean --force`, `npx clear-npx-cache`, ou fixa versão: `npx oxe-cc@0.3.0`. Verifica `npm config get registry` |
211
- | **404** no `npm view oxe-cc` | Pacote com outro nome (scope) ou ainda não publicado — usa `npm link` ou `node …/bin/oxe-cc.js` |
212
- | Ficheiros não atualizam | Reinstala com **`--force`** |
213
-
214
- **Ajuda no terminal:** `oxe-cc --help`. **Diagnóstico:** `oxe-cc doctor`.
215
-
216
- **Banner no CLI:** [`bin/banner.txt`](bin/banner.txt) (`{version}`). `OXE_NO_BANNER=1` desliga; `NO_COLOR` remove cores.
217
-
218
- <details>
219
- <summary><strong>Publicar no npm (mantenedores)</strong></summary>
220
-
221
- Sobe `version` em `package.json`, `npm login` (2FA se exigido), `npm publish --access public`. O `prepublishOnly` corre testes e `scan:assets`.
222
-
223
- </details>
224
-
225
- <details>
226
- <summary><strong>Estrutura do repositório</strong></summary>
227
-
228
- | Caminho | Função |
229
- |---------|--------|
230
- | `assets/readme-banner.svg` | Banner deste README |
231
- | `bin/oxe-cc.js`, `bin/banner.txt` | CLI |
232
- | `oxe/workflows/` | Workflows canónicos |
233
- | `oxe/templates/` | Modelos e CONFIG |
234
- | `.cursor/`, `.github/` | Cursor e Copilot |
235
- | `commands/oxe/` | `oxe:*` para outros runtimes |
236
- | `tests/`, `scripts/`, `.github/workflows/` | CI e qualidade |
237
-
238
- </details>
239
-
240
- ---
241
-
242
- ## Licença
243
-
244
- [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
+ **Fluxo spec-driven e context engineering para [Cursor](https://cursor.com) e [GitHub Copilot](https://github.com/features/copilot)****poucos comandos slash**, foco em **`.oxe/`** (workflows em **`.oxe/workflows/`** por padrão, ou **`oxe/workflows/`** com `--global`). Textos do CLI e resumos pós-comando estão 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
+ ```bash
13
+ npx oxe-cc@latest
14
+ # equivalente explícito:
15
+ # npx oxe-cc@latest install
16
+ ```
17
+
18
+ **Manter atualizado:** `npx oxe-cc@latest --force` ou `npx oxe-cc update` (na raiz do projeto). Com **`--force`**, alterações locais em arquivos rastreados geram backup em **`~/.oxe-cc/oxe-local-patches/`**.
19
+
20
+ [Para quem é](#para-quem-é) · [Começar](#começar) · [Como funciona](#como-funciona) · [Modo rápido](#modo-rápido) · [Porque funciona](#porque-funciona) · [Comandos](#comandos) · [Configuração](#configuração) · [SDK](#sdk-api-programática) · [Problemas](#resolução-de-problemas)
21
+
22
+ </div>
23
+
24
+ ---
25
+
26
+ ## Para quem é
27
+
28
+ 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.
29
+
30
+ OXE é **enxuto**: não há dezenas de slash commands. Há **um CLI** que deixa o repositório **só com `.oxe/`** (layout **padrão**) ou **`oxe/` + `.oxe/`** com **`--global`**, e instala integrações em **`~/.cursor`**, **`~/.copilot`** e **`~/.claude`** — **workflows em Markdown** e **estado em disco** para a sessão não ficar **sobrecarregada** com tudo o que já foi decidido.
31
+
32
+ ---
33
+
34
+ ## Começar
35
+
36
+ **Requisito:** [Node.js 18+](https://nodejs.org/).
37
+
38
+ Na **raiz do repositório** do seu projeto:
39
+
40
+ ```bash
41
+ npx oxe-cc@latest
42
+ ```
43
+
44
+ Em **terminal interativo**, o instalador pergunta em **dois passos**: (1) **onde integrar** o OXE (Cursor, Copilot, só núcleo com `.oxe/`, etc.); (2) **layout no repositório** — **clássico** (`oxe/` na raiz + `.oxe/`, com opcional `commands/oxe/`, `AGENTS.md`) ou **mínimo** (**`.oxe/`**, com **`.oxe/workflows/`** e templates). **Cursor, Copilot e CLI** usam **sempre** as pastas do **usuário** (`~/.cursor`, `~/.copilot`, `~/.claude`); **não** são criados `.cursor` / `.github` / `.claude` dentro do repo. Com layout clássico e **`--vscode`**, **`.vscode/`** fica no projeto.
45
+
46
+ 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`).
47
+
48
+ Sem TTY (CI), o **layout mínimo** (só `.oxe/`) e integrações no **HOME** são o padrão (Cursor + Copilot, sem multi-agente). Use **`--global`** para também ter **`oxe/`** na raiz. Flags: **`--cursor`**, **`--copilot`**, **`--all`**, **`--oxe-only`**, **`OXE_NO_PROMPT=1`**, etc.
49
+
50
+ Se 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).
51
+
52
+ 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`**.
53
+
54
+ **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).
55
+
56
+ **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); não há `PROJECT.md` nem `research/` impostos pelo OXE.
57
+
58
+ **Confirmar instalação no agente**
59
+
60
+ | Onde | O que executar |
61
+ |------|----------------|
62
+ | **Cursor** | `/oxe-help` |
63
+ | **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)) |
64
+
65
+ > **Nota:** Instruções e prompt files do Copilot ficam em **`~/.copilot/`**, não em `.github/` no repo. **`oxe-cc doctor`** aceita workflows em **`.oxe/workflows/`** ou **`oxe/workflows/`**. Sem prompt files, você ainda pode pedir em linguagem natural com o repositório em contexto.
66
+
67
+ **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`.
68
+
69
+ <details>
70
+ <summary><strong>Instalação: flags úteis (CI, ou parte do pacote)</strong></summary>
71
+
72
+ | Flag | Efeito |
73
+ |------|--------|
74
+ | `--force` / `-f` | Sobrescreve arquivos já existentes (**obrigatório** para atualizar cópias antigas) |
75
+ | `--dry-run` | Lista ações sem escrever |
76
+ | `--cursor` / `--copilot` | Instala só uma das stacks |
77
+ | `--oxe-only` | workflows + templates dentro de **`.oxe/`** (sem integrações IDE) |
78
+ | `--no-init-oxe` | Não executa o bootstrap de `STATE.md` / `config.json` / `codebase/` (mantém `.oxe/workflows` se copiados) |
79
+ | `--global` | Layout **clássico**: **`oxe/`** na raiz do repo + **`.oxe/`**; IDE em `~/.cursor`, `~/.copilot`, `~/.claude` |
80
+ | `--local` | Layout **mínimo** (padrão): **só `.oxe/`** com **`.oxe/workflows/`**; IDE nas mesmas pastas do usuário |
81
+ | `--global-cli` / `-g` | Após copiar: `npm install -g oxe-cc@versão` (sem pergunta) |
82
+ | `--no-global-cli` / `-l` | Não pergunta nem instala o CLI global (útil em CI) |
83
+ | `--copilot-cli` | **Skills** em **`~/.copilot/skills/`** (`/oxe`, `/oxe-scan`, …) + cópia legado em **`~/.claude/commands/`** e **`~/.copilot/commands/`** |
84
+ | `--all-agents` | Tudo de `--copilot-cli` **mais** OpenCode, Gemini (TOML), Codex, Windsurf, Antigravity (ver texto acima) |
85
+ | `--all` / `-a` | Cursor + Copilot (padrão quando não indicas `--cursor` nem `--copilot`) |
86
+ | `--vscode` | Copia `.vscode/settings.json` (só com layout **`--global`**) |
87
+ | `--no-commands` | Omite `commands/oxe/` |
88
+ | `--no-agents` | Omite `AGENTS.md` |
89
+ | `--no-install-config` | Ignora o bloco `install` em `.oxe/config.json` nesta instalação |
90
+ | `--config-dir` / `-c` | Pasta base para **uma** integração (`--cursor`, `--copilot` ou `--copilot-cli`); não combina com `--all-agents` |
91
+ | `--dir <pasta>` ou argumento posicional | Destino em vez do diretório atual |
92
+
93
+ **Global:** `npm install -g oxe-cc`.
94
+
95
+ **Subcomandos**
96
+
97
+ | Comando | Função |
98
+ |---------|--------|
99
+ | `oxe-cc` ou `oxe-cc install` | Instalação predefinida (mesmo comportamento; `install` é alias explícito) |
100
+ | `oxe-cc doctor` | Valida Node, workflows do pacote, `.oxe/`, coerência STATE vs arquivos, scan antigo (`scan_max_age_days`), seções da SPEC, ondas do PLAN |
101
+ | `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`) |
102
+ | `oxe-cc init-oxe` | Só o bootstrap `.oxe/` (STATE, config, codebase) |
103
+ | `oxe-cc uninstall` | Remove integrações OXE em `~/.cursor`, `~/.copilot`, `~/.claude` e pastas de workflows no repo (`--ide-only` só no HOME) |
104
+ | `oxe-cc update` | Executa `npx oxe-cc@latest --force` na pasta do projeto (útil para atualizar tudo de uma vez) |
105
+
106
+ </details>
107
+
108
+ <details>
109
+ <summary><strong>Desenvolvimento (clonar o oxe-build)</strong></summary>
110
+
111
+ ```bash
112
+ git clone https://github.com/propagno/oxe-build.git
113
+ cd oxe-build
114
+ npm test
115
+ node bin/oxe-cc.js --help
116
+ ```
117
+
118
+ Para testar no seu app: `npm link` aqui, depois `npm link oxe-cc` no projeto alvo.
119
+
120
+ </details>
121
+
122
+ ---
123
+
124
+ ## Como funciona
125
+
126
+ **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.
127
+
128
+ ### 1. Mapear — `/oxe-scan`
129
+
130
+ Inventaria o projeto e preenche **`.oxe/codebase/*.md`**, atualiza **`.oxe/STATE.md`**. Você pode indicar foco opcional (ex.: “só API”).
131
+
132
+ ### 2. Especificar — `/oxe-spec`
133
+
134
+ Produz ou atualiza **`.oxe/SPEC.md`**: objetivo, escopo, critérios de aceite, riscos. Isso é o contrato antes do plano.
135
+
136
+ ### 3. Discutir *(opcional)* — `/oxe-discuss`
137
+
138
+ 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.
139
+
140
+ ### 4. Planear — `/oxe-plan`
141
+
142
+ 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.
143
+
144
+ 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).
145
+
146
+ ### 5. Executar — implementação + `/oxe-execute` *(opcional)*
147
+
148
+ 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.
149
+
150
+ ### 6. Verificar — `/oxe-verify`
151
+
152
+ 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).
153
+
154
+ ### 7. Seguir em frente `/oxe-next` e ciclo
155
+
156
+ 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**.
157
+
158
+ ---
159
+
160
+ ## Modo rápido
161
+
162
+ Para trabalho **ad hoc** sem roadmap completo:
163
+
164
+ **`/oxe-quick`** gera **`.oxe/QUICK.md`** com passos curtos e verificação. Depois você pode usar **`/oxe-execute`** em cima disso ou implementar direto e fechar com **`/oxe-verify`**.
165
+
166
+ Se o trabalho crescer, **promova** para spec + plan completos.
167
+
168
+ ---
169
+
170
+ ## Porque funciona
171
+
172
+ **Context engineering:** o agente não precisa de “lembrar” tudo na janela principal — o que importa está em arquivos **pequenos e por etapa**.
173
+
174
+ | Artefato | Função |
175
+ |----------|--------|
176
+ | `.oxe/STATE.md` | Fase, decisões, próximo passo — memória entre sessões |
177
+ | `.oxe/codebase/*.md` | Mapa do repo após scan |
178
+ | `.oxe/SPEC.md` | O que entregar e como saber que está certo |
179
+ | `.oxe/DISCUSS.md` | Preferências antes do plano *(opcional)* |
180
+ | `.oxe/PLAN.md` | Tarefas atômicas + **Verificar** por item |
181
+ | `.oxe/QUICK.md` | Modo rápido |
182
+ | `.oxe/VERIFY.md` | Resultado das verificações |
183
+ | `.oxe/SUMMARY.md` | Resumo para replanejamento *(opcional)* |
184
+ | `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/`) |
185
+
186
+ **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*.
187
+
188
+ ---
189
+
190
+ ## Comandos
191
+
192
+ ### Fluxo principal
193
+
194
+ | Comando | O que faz |
195
+ |---------|-----------|
196
+ | `/oxe-scan` | Mapeia o codebase → `.oxe/codebase/` |
197
+ | `/oxe-spec` | Escreve/atualiza `.oxe/SPEC.md` |
198
+ | `/oxe-discuss` | Decisões antes do plano → `.oxe/DISCUSS.md` |
199
+ | `/oxe-plan` | Pesquisa no repo + plano com ondas e Verificar |
200
+ | `/oxe-execute` | Execução guiada do plano (ou QUICK) |
201
+ | `/oxe-verify` | Validação; `.oxe/VERIFY.md` |
202
+ | `/oxe-next` | Sugere o próximo passo |
203
+ | `/oxe-help` | Ajuda e visão geral |
204
+
205
+ ### Modo rápido
206
+
207
+ | Comando | O que faz |
208
+ |---------|-----------|
209
+ | `/oxe-quick` | `.oxe/QUICK.md` tarefa pontual |
210
+
211
+ ### Revisão de PR / diff entre branches *(só Copilot)*
212
+
213
+ | Prompt | O que faz |
214
+ |--------|-----------|
215
+ | `/oxe-review-pr` | Segue `oxe/workflows/review-pr.md`: diff estilo PR (`git diff base...head`, `gh pr diff <n>`, ou fetch `pull/<n>/head`), riscos, testes e checklist. Você pode colar o **link da PR** (ex.: `https://github.com/org/repo/pull/10`) ou indicar `main` e `feature/x`. **Não** há slash command em `.cursor/commands/`; no Cursor você pode pedir o mesmo em linguagem natural com o workflow em contexto. |
216
+
217
+ ### Outros clientes
218
+
219
+ Em **Claude Code** (ou ferramentas que leem `commands/oxe/`), os mesmos passos expõem nomes **`oxe:scan`**, **`oxe:plan`**, etc. (frontmatter `name:`).
220
+
221
+ ---
222
+
223
+ ## Configuração
224
+
225
+ 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`, `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).
226
+
227
+ ---
228
+
229
+ ## SDK (API programática)
230
+
231
+ O pacote **`oxe-cc`** expõe entrada npm (`main` / `exports`) para scripts e CI:
232
+
233
+ ```js
234
+ const oxe = require('oxe-cc');
235
+ const result = oxe.runDoctorChecks({ projectRoot: process.cwd() });
236
+ // result.ok, result.errors, result.warnings, result.healthReport,
237
+ ```
238
+
239
+ 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).
240
+
241
+ ---
242
+
243
+ ## Resolução de problemas
244
+
245
+ | Situação | O que tentar |
246
+ |----------|----------------|
247
+ | Comandos não aparecem no Cursor | Confirme que `~/.cursor/commands/` (ou a pasta configurada) existe; reinicie o Cursor |
248
+ | 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) |
249
+ | **`/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. |
250
+ | **`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.0`. Verifique `npm config get registry` |
251
+ | **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` |
252
+ | Arquivos não atualizam | Reinstale com **`--force`** (com backup local se você tiver editado arquivos rastreados) |
253
+ | 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) |
254
+
255
+ **Ajuda no terminal:** `oxe-cc --help`. **Diagnóstico:** `oxe-cc doctor`.
256
+
257
+ **Banner no CLI:** [`bin/banner.txt`](bin/banner.txt) (`{version}`). `OXE_NO_BANNER=1` desativa o banner; `NO_COLOR` remove cores.
258
+
259
+ <details>
260
+ <summary><strong>Variáveis de ambiente (instalação e CLI)</strong></summary>
261
+
262
+ | Variável | Efeito |
263
+ |----------|--------|
264
+ | `OXE_NO_PROMPT` | `1` ou `true`: sem perguntas interativas (integração e layout usam padrões ou `.oxe/config.json` / flags) |
265
+ | `OXE_NO_BANNER` | `1` ou `true`: oculta o banner do CLI (útil em scripts) |
266
+ | `NO_COLOR` / `FORCE_COLOR` | Controlo de cores na saída |
267
+ | `CURSOR_CONFIG_DIR` | Diretório base do Cursor em vez de `~/.cursor` |
268
+ | `COPILOT_CONFIG_DIR` ou `COPILOT_HOME` | Diretório Copilot (VS Code / skills) em vez de `~/.copilot` |
269
+ | `CLAUDE_CONFIG_DIR` | Diretório `~/.claude` alternativo para comandos legado |
270
+ | `XDG_CONFIG_HOME` | Usado pelo instalador multi-agente (ex.: OpenCode em `$XDG_CONFIG_HOME/opencode/commands`) |
271
+ | `CODEX_HOME` | Raiz alternativa para prompts Codex (`…/prompts`) em instalação multi-agente |
272
+
273
+ </details>
274
+
275
+ <details>
276
+ <summary><strong>Mantenedores — autoria de workflows</strong></summary>
277
+
278
+ 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).
279
+
280
+ </details>
281
+
282
+ <details>
283
+ <summary><strong>Publicar no npm (mantenedores)</strong></summary>
284
+
285
+ 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`.
286
+
287
+ </details>
288
+
289
+ <details>
290
+ <summary><strong>Estrutura do repositório</strong></summary>
291
+
292
+ | Caminho | Função |
293
+ |---------|--------|
294
+ | `assets/readme-banner.svg` | Banner deste README |
295
+ | `bin/oxe-cc.js`, `bin/banner.txt` | CLI |
296
+ | `bin/lib/*.cjs` | Lógica partilhada (health, workflows, manifest, instalação multi-agente, resolução `install` em config) |
297
+ | `lib/sdk/` | SDK npm (`require('oxe-cc')`) |
298
+ | `oxe/workflows/` | Workflows canónicos (fonte no pacote) |
299
+ | `oxe/templates/` | Modelos, `CONFIG.md`, `config.template.json`, **`WORKFLOW_AUTHORING.md`** (guia para editar workflows) |
300
+ | `.cursor/`, `.github/` | Comandos Cursor, prompts Copilot, CI |
301
+ | `commands/oxe/` | Comandos estilo `oxe:*` (layout clássico no projeto) |
302
+ | `tests/`, `scripts/`, `.github/workflows/` | Testes, `scan:assets`, CI |
303
+
304
+ </details>
305
+
306
+ ---
307
+
308
+ ## Licença
309
+
310
+ [GPL-3.0](LICENSE).
@@ -1,18 +1,19 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="920" height="200" viewBox="0 0 920 200" role="img" aria-label="OXE  spec-driven workflows">
2
- <defs>
3
- <linearGradient id="oxe-bg" x1="0%" y1="0%" x2="100%" y2="100%">
4
- <stop offset="0%" style="stop-color:#0d1117"/>
5
- <stop offset="50%" style="stop-color:#161b22"/>
6
- <stop offset="100%" style="stop-color:#21262d"/>
7
- </linearGradient>
8
- <linearGradient id="oxe-accent" x1="0%" y1="0%" x2="100%" y2="0%">
9
- <stop offset="0%" style="stop-color:#58a6ff"/>
10
- <stop offset="100%" style="stop-color:#79c0ff"/>
11
- </linearGradient>
12
- </defs>
13
- <rect width="920" height="200" rx="16" fill="url(#oxe-bg)"/>
14
- <rect x="2" y="2" width="916" height="196" rx="14" fill="none" stroke="url(#oxe-accent)" stroke-width="2" opacity="0.45"/>
15
- <text x="460" y="100" text-anchor="middle" font-family="ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif" font-size="72" font-weight="800" fill="url(#oxe-accent)" letter-spacing="0.12em">OXE</text>
16
- <text x="460" y="138" text-anchor="middle" font-family="ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif" font-size="17" fill="#8b949e">Fluxo spec-driven � Cursor &amp; GitHub Copilot � CLI npm</text>
17
- <text x="460" y="168" text-anchor="middle" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="13" fill="#6e7681">npx oxe-cc@latest</text>
18
- </svg>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="920" height="200" viewBox="0 0 920 200" role="img" aria-label="OXE spec-driven workflows">
3
+ <defs>
4
+ <linearGradient id="oxe-bg" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" stop-color="#0d1117"/>
6
+ <stop offset="50%" stop-color="#161b22"/>
7
+ <stop offset="100%" stop-color="#21262d"/>
8
+ </linearGradient>
9
+ <linearGradient id="oxe-accent" x1="0%" y1="0%" x2="100%" y2="0%">
10
+ <stop offset="0%" stop-color="#58a6ff"/>
11
+ <stop offset="100%" stop-color="#79c0ff"/>
12
+ </linearGradient>
13
+ </defs>
14
+ <rect width="920" height="200" rx="16" fill="url(#oxe-bg)"/>
15
+ <rect x="2" y="2" width="916" height="196" rx="14" fill="none" stroke="url(#oxe-accent)" stroke-width="2" opacity="0.45"/>
16
+ <text x="460" y="100" text-anchor="middle" font-family="ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif" font-size="72" font-weight="800" fill="url(#oxe-accent)" letter-spacing="0.12em">OXE</text>
17
+ <text x="460" y="138" text-anchor="middle" font-family="ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif" font-size="17" fill="#8b949e">Fluxo spec-driven &#xb7; Cursor &amp; GitHub Copilot &#xb7; CLI npm</text>
18
+ <text x="460" y="168" text-anchor="middle" font-family="ui-monospace,SFMono-Regular,Consolas,monospace" font-size="13" fill="#6e7681">npx oxe-cc@latest</text>
19
+ </svg>