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.
- package/.cursor/commands/oxe-discuss.md +4 -2
- package/.cursor/commands/oxe-execute.md +6 -2
- package/.cursor/commands/oxe-help.md +10 -2
- package/.cursor/commands/oxe-next.md +10 -2
- package/.cursor/commands/oxe-plan.md +13 -2
- package/.cursor/commands/oxe-quick.md +6 -2
- package/.cursor/commands/oxe-review-pr.md +16 -0
- package/.cursor/commands/oxe-scan.md +13 -2
- package/.cursor/commands/oxe-spec.md +13 -2
- package/.cursor/commands/oxe-verify.md +13 -2
- package/.github/copilot-instructions.md +35 -14
- package/AGENTS.md +4 -2
- package/README.md +310 -244
- package/assets/readme-banner.svg +19 -18
- package/bin/lib/oxe-agent-install.cjs +460 -0
- package/bin/lib/oxe-install-resolve.cjs +93 -0
- package/bin/lib/oxe-manifest.cjs +117 -0
- package/bin/lib/oxe-project-health.cjs +464 -0
- package/bin/lib/oxe-workflows.cjs +145 -0
- package/bin/oxe-cc.js +1406 -123
- package/lib/sdk/README.md +54 -0
- package/lib/sdk/index.cjs +241 -0
- package/lib/sdk/index.d.ts +89 -0
- package/oxe/templates/CONFIG.md +32 -12
- package/oxe/templates/PLAN.template.md +1 -1
- package/oxe/templates/SPEC.template.md +9 -5
- package/oxe/templates/STATE.md +9 -1
- package/oxe/templates/WORKFLOW_AUTHORING.md +73 -0
- package/oxe/templates/config.template.json +18 -6
- package/oxe/workflows/discuss.md +31 -31
- package/oxe/workflows/execute.md +36 -28
- package/oxe/workflows/help.md +56 -22
- package/oxe/workflows/next.md +27 -13
- package/oxe/workflows/plan.md +14 -13
- package/oxe/workflows/quick.md +45 -32
- package/oxe/workflows/review-pr.md +13 -13
- package/oxe/workflows/scan.md +13 -11
- package/oxe/workflows/spec.md +15 -14
- package/oxe/workflows/verify.md +19 -16
- package/oxe/workflows/workflow-authoring.md +34 -0
- package/package.json +30 -3
- 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) —
|
|
8
|
-
|
|
9
|
-
[](https://www.npmjs.com/package/oxe-cc)
|
|
10
|
-
[](LICENSE)
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
npx oxe-cc@latest
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Para quem
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Em **terminal interativo**,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
|
73
|
-
|
|
74
|
-
| `--
|
|
75
|
-
| `--
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
|
175
|
-
|
|
176
|
-
|
|
|
177
|
-
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
|
182
|
-
|
|
183
|
-
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
|
208
|
-
|
|
209
|
-
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|
+
[](https://www.npmjs.com/package/oxe-cc)
|
|
10
|
+
[](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** (**só `.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 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).
|
|
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 só 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` | Só 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).
|
package/assets/readme-banner.svg
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<stop offset="
|
|
6
|
-
<stop offset="
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<stop offset="
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<rect
|
|
15
|
-
<
|
|
16
|
-
<text x="460" y="
|
|
17
|
-
<text x="460" y="
|
|
18
|
-
</
|
|
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 · Cursor & GitHub Copilot · 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>
|