oxe-cc 0.6.4 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/commands/oxe-ask.md +11 -0
- package/.cursor/commands/oxe-execute.md +1 -1
- package/.cursor/commands/oxe-session.md +11 -0
- package/.github/prompts/oxe-ask.prompt.md +12 -0
- package/.github/prompts/oxe-execute.prompt.md +1 -1
- package/.github/prompts/oxe-session.prompt.md +12 -0
- package/README.md +363 -323
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-project-health.cjs +284 -91
- package/bin/oxe-cc.js +305 -123
- package/commands/oxe/ask.md +14 -0
- package/commands/oxe/session.md +16 -0
- package/oxe/templates/CONFIG.md +3 -2
- package/oxe/templates/PLAN.template.md +22 -7
- package/oxe/templates/SESSION.template.md +32 -0
- package/oxe/templates/STATE.md +10 -5
- package/oxe/templates/config.template.json +3 -2
- package/oxe/workflows/ask.md +62 -0
- package/oxe/workflows/checkpoint.md +10 -9
- package/oxe/workflows/debug.md +6 -5
- package/oxe/workflows/discuss.md +8 -7
- package/oxe/workflows/execute.md +37 -28
- package/oxe/workflows/forensics.md +6 -6
- package/oxe/workflows/help.md +39 -19
- package/oxe/workflows/milestone.md +12 -13
- package/oxe/workflows/next.md +16 -13
- package/oxe/workflows/obs.md +9 -8
- package/oxe/workflows/plan-agent.md +6 -4
- package/oxe/workflows/plan.md +73 -32
- package/oxe/workflows/project.md +1 -1
- package/oxe/workflows/quick.md +11 -7
- package/oxe/workflows/references/flow-robustness-contract.md +80 -0
- package/oxe/workflows/references/session-path-resolution.md +71 -0
- package/oxe/workflows/research.md +9 -8
- package/oxe/workflows/security.md +7 -6
- package/oxe/workflows/session.md +153 -0
- package/oxe/workflows/spec.md +41 -27
- package/oxe/workflows/ui-review.md +3 -3
- package/oxe/workflows/ui-spec.md +3 -3
- package/oxe/workflows/validate-gaps.md +5 -4
- package/oxe/workflows/verify.md +37 -21
- package/oxe/workflows/workstream.md +16 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,323 +1,363 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img src="assets/readme-banner.svg" alt="OXE" width="920" />
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/oxe-cc)
|
|
8
|
-
[](LICENSE)
|
|
9
|
-
|
|
10
|
-
**Versão:** `0.6.4` · [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
|
-
##
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
/oxe → onde estou / o que faço / help
|
|
36
|
-
/oxe-
|
|
37
|
-
/oxe-
|
|
38
|
-
/oxe-
|
|
39
|
-
/oxe-
|
|
40
|
-
/oxe-
|
|
41
|
-
/oxe-
|
|
42
|
-
/oxe-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/oxe-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
|
75
|
-
|
|
76
|
-
| `/oxe-
|
|
77
|
-
| `/oxe-
|
|
78
|
-
| `/oxe-
|
|
79
|
-
| `/oxe-
|
|
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
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
</
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
|
262
|
-
|
|
263
|
-
| `
|
|
264
|
-
|
|
|
265
|
-
|
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
|
316
|
-
|
|
317
|
-
`
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/readme-banner.svg" alt="OXE" width="920" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/oxe-cc)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
|
|
10
|
+
**Versão:** `0.6.4` · [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
|
+
## Comandos principais
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
/oxe → onde estou / o que faço / help
|
|
36
|
+
/oxe-ask → entender a situação atual com leitura robusta de STATE + sessão + artefatos
|
|
37
|
+
/oxe-obs → registrei algo importante (incorporado automaticamente)
|
|
38
|
+
/oxe-quick → tarefa pequena, sem cerimônia
|
|
39
|
+
/oxe-scan → mapeia o projeto (ou atualiza se já mapeado)
|
|
40
|
+
/oxe-spec → nova feature: perguntas → requisitos → roteiro
|
|
41
|
+
/oxe-plan → tarefas por onda (--agents para multi-agente)
|
|
42
|
+
/oxe-execute → implementar (A: completo | B: por onda | C: por tarefa)
|
|
43
|
+
/oxe-verify → validar que está pronto
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Tudo o mais é ativado automaticamente por contexto ou chamado só quando necessário.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Sessões OXE
|
|
51
|
+
|
|
52
|
+
Sessões organizam um ciclo completo em `.oxe/sessions/sNNN-slug/` sem misturar artefatos de entregas diferentes na raiz. `spec`, `plan`, `execute`, `verify`, `checkpoint`, `research` e afins respeitam `active_session` em `.oxe/STATE.md`. `oxe-cc status` e `oxe-cc doctor` também devem refletir a sessão ativa, a autoavaliação do plano e a saúde lógica do fluxo.
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
.oxe/
|
|
56
|
+
├── STATE.md
|
|
57
|
+
├── SESSIONS.md
|
|
58
|
+
├── global/
|
|
59
|
+
│ ├── LESSONS.md
|
|
60
|
+
│ └── MILESTONES.md
|
|
61
|
+
├── codebase/
|
|
62
|
+
└── sessions/
|
|
63
|
+
└── s001-exemplo/
|
|
64
|
+
├── SESSION.md
|
|
65
|
+
├── spec/
|
|
66
|
+
├── plan/
|
|
67
|
+
├── execution/
|
|
68
|
+
├── verification/
|
|
69
|
+
├── checkpoints/
|
|
70
|
+
├── research/
|
|
71
|
+
└── workstreams/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
| Subcomando | O que faz |
|
|
75
|
+
|------------|-----------|
|
|
76
|
+
| `/oxe-session new <nome>` | Cria a sessão e define `active_session` |
|
|
77
|
+
| `/oxe-session list` | Lista sessões em `.oxe/SESSIONS.md` |
|
|
78
|
+
| `/oxe-session switch <id>` | Alterna a sessão ativa |
|
|
79
|
+
| `/oxe-session resume <id>` | Alias de `switch` |
|
|
80
|
+
| `/oxe-session status` | Mostra os metadados da sessão ativa |
|
|
81
|
+
| `/oxe-session close` | Arquiva a sessão ativa |
|
|
82
|
+
| `/oxe-session migrate <nome>` | Cria sessão nova e move artefatos session-scoped da raiz |
|
|
83
|
+
|
|
84
|
+
Exemplo de ciclo:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
/oxe-session new auth-redesign
|
|
88
|
+
/oxe-spec
|
|
89
|
+
/oxe-plan
|
|
90
|
+
/oxe-execute
|
|
91
|
+
/oxe-verify
|
|
92
|
+
/oxe-session close
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Com sessão ativa:
|
|
96
|
+
|
|
97
|
+
- `spec/` contém `SPEC.md`, `ROADMAP.md`, `DISCUSS.md`, `UI-SPEC.md`
|
|
98
|
+
- `plan/` contém `PLAN.md`, `QUICK.md`, `plan-agents.json`, `quick-agents.json`
|
|
99
|
+
- `execution/` contém o `STATE.md` operacional da trilha, `OBSERVATIONS.md`, `DEBUG.md`, `FORENSICS.md`
|
|
100
|
+
- `verification/` contém `VERIFY.md`, `VALIDATION-GAPS.md`, `SECURITY.md`, `UI-REVIEW.md`
|
|
101
|
+
- `LESSONS.md`, `MILESTONES.md`, `codebase/`, `SESSIONS.md` e o `STATE.md` global permanecem fora da sessão
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## A cadeia
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
/oxe-obs (qualquer momento)
|
|
109
|
+
↓
|
|
110
|
+
/oxe-scan → /oxe-spec → /oxe-plan ──────────→ /oxe-execute → /oxe-verify → /oxe-retro
|
|
111
|
+
↓ ↓
|
|
112
|
+
/oxe-quick (trabalho pequeno) .oxe/global/LESSONS.md
|
|
113
|
+
↓
|
|
114
|
+
(alimenta o próximo ciclo)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Cada passo lê o anterior como contexto e escreve seu artefato no escopo correto: raiz `.oxe/` em modo legado, ou `.oxe/sessions/sNNN-slug/` quando `active_session` está definido. Nenhum passo depende de você re-explicar o que já foi decidido.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Como cada comando funciona
|
|
122
|
+
|
|
123
|
+
| Comando | O que entrega |
|
|
124
|
+
|---------|--------------|
|
|
125
|
+
| `/oxe` | Sem input → próximo passo. Com texto → roteamento. Com "help" → 8 comandos. |
|
|
126
|
+
| `/oxe-scan` | Se `.oxe/codebase/` já existe → modo refresh automático. `--full` força scan completo. |
|
|
127
|
+
| `/oxe-spec` | **Auto-reflexão semântica** antes da aprovação: detecta contradições, critérios vagos, escopo creep e conflitos com stack — sem requisição extra. Lê `.oxe/global/LESSONS.md` para não repetir erros do ciclo anterior. |
|
|
128
|
+
| `/oxe-plan` | **Test-first:** `Verificar` vem antes de `Implementar` em cada tarefa. Agora o `PLAN.md` também exige `## Autoavaliação do Plano` com rubrica fixa, `Melhor plano atual` e percentual de confiança determinístico. Com `--agents`: `model_hint` por agente orienta qual tier de modelo usar (schema v3). |
|
|
129
|
+
| `/oxe-execute` | Execução A/B/C. Antes de implementar, valida a autoavaliação do plano e bloqueia execução abaixo do limiar de confiança. Se uma tarefa falha: **diagnóstico inline automático** (2-3 hipóteses + fix + retry). |
|
|
130
|
+
| `/oxe-verify` | Até 6 camadas por config: audit + critérios + decisões + **calibração do plano** + UAT + gaps (`verification_depth: thorough`) + OWASP (`security_in_verify: true`). Sugere `/oxe-retro` ao concluir. |
|
|
131
|
+
| `/oxe-retro` | Sintetiza 3–5 lições prescritivas em `.oxe/global/LESSONS.md` — consumidas automaticamente pelo próximo spec/plan. |
|
|
132
|
+
| `/oxe-obs` | Registra observação → propaga automaticamente para R-IDs e Tns afetados no próximo plan/spec/execute. |
|
|
133
|
+
| `/oxe-quick` | Objetivo → passos → agentes opcionais (PDDA lean) → verify. Para correções pontuais e features pequenas. |
|
|
134
|
+
| `/oxe-project` | `milestone` + `workstream` + `checkpoint` em um único comando. |
|
|
135
|
+
| `/oxe-session` | Cria, alterna, retoma, fecha e migra sessões OXE sem misturar artefatos de ciclos diferentes. |
|
|
136
|
+
| `/oxe-ask` | Lê `STATE`, resolve a sessão ativa e responde perguntas situacionais com base nos artefatos reais. |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Quando usar cada modo do execute
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
A) Completo → todas as ondas numa só execução (ideal: Claude, Copilot, Gemini)
|
|
144
|
+
B) Por onda → onda 1, você verifica, chama de novo (1 rodada por onda)
|
|
145
|
+
C) Por tarefa → máximo controle (1 rodada por tarefa)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Se uma tarefa falha: diagnóstico inline automático (2-3 hipóteses → fix → retry). O Modo B inclui loop iterativo com escalada automática para diagnóstico profundo quando necessário.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Comandos especializados
|
|
153
|
+
|
|
154
|
+
Estes não precisam ser decorados — aparecem quando o contexto pede ou quando a situação específica justifica.
|
|
155
|
+
|
|
156
|
+
| Comando | Quando usar |
|
|
157
|
+
|---------|-------------|
|
|
158
|
+
| `/oxe-research` | Spike, mapa de sistema, engenharia reversa — antes de spec ou plano |
|
|
159
|
+
| `/oxe-forensics` | Falha persistente após múltiplas tentativas — diagnóstico profundo |
|
|
160
|
+
| `/oxe-ui-spec` | Contrato UI/UX derivado da SPEC (quando UI é domínio crítico) |
|
|
161
|
+
| `/oxe-ui-review` | Auditoria da implementação UI contra o contrato |
|
|
162
|
+
| `/oxe-review-pr` | Revisão de PR ou diff de branches |
|
|
163
|
+
| `/oxe-checkpoint` | Snapshot nomeado do estado da sessão |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Conceitos-chave
|
|
168
|
+
|
|
169
|
+
### Context engineering — estado em disco, não no chat
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
.oxe/
|
|
173
|
+
├── STATE.md ← índice global: fase resumida, sessão ativa, próximo passo
|
|
174
|
+
├── SESSIONS.md ← índice de sessões
|
|
175
|
+
├── global/
|
|
176
|
+
│ ├── LESSONS.md ← lições prescritivas cumulativas
|
|
177
|
+
│ └── MILESTONES.md ← marcos globais de entrega
|
|
178
|
+
├── codebase/ ← mapa do repo (stack, estrutura, testes, …)
|
|
179
|
+
└── sessions/
|
|
180
|
+
└── sNNN-slug/
|
|
181
|
+
├── spec/ ← SPEC.md, ROADMAP.md, DISCUSS.md, UI-SPEC.md
|
|
182
|
+
├── plan/ ← PLAN.md, QUICK.md, blueprints de agentes
|
|
183
|
+
├── execution/ ← STATE.md local, OBSERVATIONS.md, DEBUG.md, FORENSICS.md
|
|
184
|
+
├── verification/ ← VERIFY.md, VALIDATION-GAPS.md, SECURITY.md, UI-REVIEW.md
|
|
185
|
+
├── checkpoints/
|
|
186
|
+
├── research/
|
|
187
|
+
└── workstreams/
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### `/oxe-spec` — spec em 5 fases com auto-reflexão semântica
|
|
191
|
+
|
|
192
|
+
1. **Perguntas** — blocos de 3-5 por rodada, máximo 3 rodadas
|
|
193
|
+
2. **Pesquisa** — proposta inline na Fase 2 (sem sair do spec)
|
|
194
|
+
3. **Requisitos** — tabela R-ID com v1/v2/fora e critérios A*
|
|
195
|
+
4. **Roteiro** — fases de entrega → `.oxe/ROADMAP.md`
|
|
196
|
+
5. **Auto-reflexão** *(automática, sem requisição extra)* — detecta contradições, critérios vagos, escopo creep, conflitos com stack. Corrige antes de apresentar ao usuário.
|
|
197
|
+
6. **Aprovação** → instrui `/oxe-plan` ou `/oxe-plan --agents`
|
|
198
|
+
|
|
199
|
+
A spec lê `.oxe/global/LESSONS.md` antes de iniciar — lições do ciclo anterior informam as perguntas e os critérios.
|
|
200
|
+
|
|
201
|
+
### `/oxe-plan` — test-first com complexidade explícita
|
|
202
|
+
|
|
203
|
+
Cada tarefa usa a ordem **Verificar → Implementar** (test-first):
|
|
204
|
+
```
|
|
205
|
+
Verificar: como saberei que está pronto? ← definido PRIMEIRO
|
|
206
|
+
Implementar: o mínimo para passar o Verificar
|
|
207
|
+
Complexidade: S | M | L | XL
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Tarefas `XL` bloqueiam o gate sem sub-tarefas ou justificativa. `/oxe-obs` propaga automaticamente constraints para os R-IDs e Tns afetados.
|
|
211
|
+
|
|
212
|
+
### `/oxe-retro` — loop de aprendizado
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
/oxe-verify completo
|
|
216
|
+
↓
|
|
217
|
+
/oxe-retro → 3–5 lições prescritivas → .oxe/global/LESSONS.md
|
|
218
|
+
↓
|
|
219
|
+
/oxe-spec (próximo ciclo lê LESSONS)
|
|
220
|
+
/oxe-plan (próximo ciclo lê LESSONS)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Lições não são diário — são instruções para o próximo ciclo. Exemplo:
|
|
224
|
+
> "Tarefas com integração de terceiros: `Complexidade: L` mínimo + `Verificar` com mock fallback"
|
|
225
|
+
|
|
226
|
+
### Plan-Driven Dynamic Agents — agentes por demanda
|
|
227
|
+
|
|
228
|
+
Com `/oxe-plan --agents` (ou sugerido quando 3+ domínios detectados):
|
|
229
|
+
- `runId` único por demanda — nunca reutilizado
|
|
230
|
+
- `role` específico ao domínio desta entrega
|
|
231
|
+
- `model_hint` por agente: `"fast"` / `"balanced"` / `"powerful"`
|
|
232
|
+
- Execute exibe o hint ao iniciar cada agente para o usuário configurar o modelo
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Instalação
|
|
237
|
+
|
|
238
|
+
**Requisito:** Node.js 18+
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
npx oxe-cc@latest
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**Confirmar que funcionou:**
|
|
245
|
+
|
|
246
|
+
| IDE | Comando |
|
|
247
|
+
|-----|---------|
|
|
248
|
+
| Cursor | `/oxe` |
|
|
249
|
+
| Copilot (VS Code) | `/oxe` (requer `"chat.promptFiles": true`) |
|
|
250
|
+
| Claude Code | `/oxe` ou `oxe` |
|
|
251
|
+
| Gemini CLI | `/oxe` após `/commands reload` |
|
|
252
|
+
| Codex | `/prompts:oxe` |
|
|
253
|
+
|
|
254
|
+
<details>
|
|
255
|
+
<summary><strong>Flags de instalação</strong></summary>
|
|
256
|
+
|
|
257
|
+
| Flag | Efeito |
|
|
258
|
+
|------|--------|
|
|
259
|
+
| `--cursor` / `--copilot` | Só uma das stacks |
|
|
260
|
+
| `--all-agents` | Cursor + Copilot + Claude + OpenCode + Gemini + Codex + Windsurf + Antigravity |
|
|
261
|
+
| `--global` | Layout clássico: `oxe/` na raiz + `.oxe/` |
|
|
262
|
+
| `--local` | Layout mínimo: só `.oxe/` (padrão) |
|
|
263
|
+
| `--force` / `-f` | Sobrescreve arquivos existentes (use para atualizar) |
|
|
264
|
+
| `--dry-run` | Lista ações sem escrever |
|
|
265
|
+
| `--oxe-only` | Só workflows em `.oxe/`, sem integrações IDE |
|
|
266
|
+
| `--no-global-cli` / `-l` | Não instala `oxe-cc` globalmente (útil em CI) |
|
|
267
|
+
| `OXE_NO_PROMPT=1` | Modo não-interativo (CI) |
|
|
268
|
+
|
|
269
|
+
</details>
|
|
270
|
+
|
|
271
|
+
<details>
|
|
272
|
+
<summary><strong>Atualizar e desinstalar</strong></summary>
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
npx oxe-cc@latest --force # atualizar workflows
|
|
276
|
+
npx oxe-cc update --check # verificar versão sem atualizar
|
|
277
|
+
npx oxe-cc uninstall --ide-only # remove integrações (mantém .oxe/)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
</details>
|
|
281
|
+
|
|
282
|
+
<details>
|
|
283
|
+
<summary><strong>Desenvolvimento (contribuir)</strong></summary>
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
git clone https://github.com/propagno/oxe-build.git
|
|
287
|
+
cd oxe-build
|
|
288
|
+
npm test # 165 testes
|
|
289
|
+
node bin/oxe-cc.js --help
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
</details>
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## CLI (`oxe-cc`)
|
|
297
|
+
|
|
298
|
+
| Comando | O que faz |
|
|
299
|
+
|---------|-----------|
|
|
300
|
+
| `oxe-cc` / `oxe-cc install` | Instala workflows e integrações |
|
|
301
|
+
| `oxe-cc doctor` | Diagnóstico completo: Node, workflows, config, bootstrap `.oxe/`, sessão ativa, autoavaliação do plano e saúde lógica (`healthy` \| `warning` \| `broken`) |
|
|
302
|
+
| `oxe-cc status` | Próximo passo sugerido + saúde lógica do fluxo |
|
|
303
|
+
| `oxe-cc status --json` | Mesmo, em JSON, com `healthStatus`, `activeSession` e `planSelfEvaluation` |
|
|
304
|
+
| `oxe-cc update` | Atualiza workflows para a versão mais recente |
|
|
305
|
+
| `oxe-cc init-oxe` | Bootstrap do `.oxe/` (STATE, config, codebase/) |
|
|
306
|
+
| `oxe-cc uninstall` | Remove integrações OXE do HOME e do repo |
|
|
307
|
+
| `oxe-cc uninstall --global-cli` | Também remove o pacote npm global do PATH |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Configuração
|
|
312
|
+
|
|
313
|
+
Arquivo `.oxe/config.json`. Principais opções:
|
|
314
|
+
|
|
315
|
+
| Chave | Padrão | Descrição |
|
|
316
|
+
|-------|--------|-----------|
|
|
317
|
+
| `profile` | `"balanced"` | `strict` / `balanced` / `fast` / `legacy` |
|
|
318
|
+
| `verification_depth` | `"standard"` | `"thorough"` ativa gaps automático no verify (Camada 5) |
|
|
319
|
+
| `plan_confidence_threshold` | `70` | Limiar mínimo para `execute` aceitar um `PLAN.md` |
|
|
320
|
+
| `security_in_verify` | `false` | `true` ativa OWASP automático no verify (Camada 6) |
|
|
321
|
+
| `discuss_before_plan` | `false` | Exige aprovação de decisões antes do plano |
|
|
322
|
+
| `scale_adaptive` | `true` | Scan sugere o profile pelo tamanho do projeto |
|
|
323
|
+
| `scan_max_age_days` | `0` | Doctor avisa quando o scan estiver velho |
|
|
324
|
+
| `lessons_max_age_days` | `0` | Doctor avisa quando a última retro estiver velho |
|
|
325
|
+
| `plugins` | `[]` | Hooks de lifecycle em `.oxe/plugins/*.cjs` |
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## SDK
|
|
330
|
+
|
|
331
|
+
```js
|
|
332
|
+
const oxe = require('oxe-cc');
|
|
333
|
+
|
|
334
|
+
const plan = oxe.parsePlan(fs.readFileSync('.oxe/PLAN.md', 'utf8')); // ou .oxe/sessions/<id>/plan/PLAN.md
|
|
335
|
+
const spec = oxe.parseSpec(fs.readFileSync('.oxe/SPEC.md', 'utf8')); // ou .oxe/sessions/<id>/spec/SPEC.md
|
|
336
|
+
const state = oxe.parseState(fs.readFileSync('.oxe/STATE.md', 'utf8'));
|
|
337
|
+
|
|
338
|
+
const fidelity = oxe.validateDecisionFidelity(discussMd, planMd);
|
|
339
|
+
const result = oxe.runDoctorChecks({ projectRoot: process.cwd() });
|
|
340
|
+
const expanded = oxe.health.expandExecutionProfile('strict');
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
TypeScript: [`lib/sdk/index.d.ts`](lib/sdk/index.d.ts) · Docs: [`lib/sdk/README.md`](lib/sdk/README.md)
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## Resolução de problemas
|
|
348
|
+
|
|
349
|
+
| Situação | O que tentar |
|
|
350
|
+
|----------|-------------|
|
|
351
|
+
| Comandos não aparecem no Cursor | Confirme `~/.cursor/commands/`; reinicie o Cursor |
|
|
352
|
+
| `/oxe-*` não aparecem no Copilot | Ative `"chat.promptFiles": true`; confirme `~/.copilot/prompts/` |
|
|
353
|
+
| Arquivos não atualizam | Reinstale com `--force` |
|
|
354
|
+
| `ETARGET` / versão não encontrada | `npm cache clean --force` |
|
|
355
|
+
| Erro no WSL sobre Node | Use Node instalado dentro do WSL |
|
|
356
|
+
|
|
357
|
+
`oxe-cc --help` · `oxe-cc doctor` · `OXE_NO_BANNER=1` desativa o banner
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## Licença
|
|
362
|
+
|
|
363
|
+
[GPL-3.0](LICENSE)
|