oxe-cc 0.6.2 → 0.6.4
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/.github/prompts/oxe-loop.prompt.md +12 -12
- package/.github/prompts/oxe-project.prompt.md +12 -12
- package/.github/prompts/oxe-retro.prompt.md +12 -12
- package/.github/prompts/oxe-security.prompt.md +12 -12
- package/.github/prompts/oxe.prompt.md +12 -12
- package/AGENTS.md +75 -8
- package/CHANGELOG.md +74 -0
- package/README.md +323 -323
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-project-health.cjs +82 -0
- package/bin/oxe-cc.js +13 -1
- package/commands/oxe/loop.md +17 -17
- package/commands/oxe/oxe.md +16 -16
- package/commands/oxe/project.md +16 -16
- package/commands/oxe/retro.md +16 -16
- package/commands/oxe/review-pr.md +16 -0
- package/commands/oxe/security.md +16 -16
- package/commands/oxe/update.md +16 -0
- package/lib/sdk/index.cjs +22 -1
- package/lib/sdk/index.d.ts +28 -2
- package/oxe/schemas/plan-agents.schema.json +15 -4
- package/oxe/templates/CONFIG.md +6 -1
- package/oxe/templates/LESSONS.template.md +43 -43
- package/oxe/templates/SECURITY.template.md +72 -72
- package/oxe/templates/STATE.md +19 -1
- package/oxe/templates/config.template.json +2 -0
- package/oxe/templates/plan-agents.template.json +1 -0
- package/oxe/workflows/loop.md +57 -57
- package/oxe/workflows/next.md +4 -1
- package/oxe/workflows/obs.md +10 -0
- package/oxe/workflows/oxe.md +115 -115
- package/oxe/workflows/project.md +50 -50
- package/oxe/workflows/quick.md +1 -1
- package/oxe/workflows/retro.md +62 -62
- package/oxe/workflows/security.md +61 -61
- package/oxe/workflows/verify.md +2 -0
- package/package.json +2 -2
package/oxe/workflows/oxe.md
CHANGED
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
# OXE — Workflow: oxe (entrada universal)
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Ponto de entrada inteligente do OXE. Faz uma de três coisas dependendo do input do usuário:
|
|
5
|
-
|
|
6
|
-
1. **Sem input / "o que faço agora?"** → lê `STATE.md` e recomenda exatamente 1 próximo passo (lógica de `next.md`).
|
|
7
|
-
2. **Input em linguagem natural** (ex.: "quero adicionar login", "preciso revisar um PR") → traduz para o comando OXE correto e executa ou orienta (lógica de `route.md`).
|
|
8
|
-
3. **"help", "o que é OXE" ou "comandos"** → apresenta o fluxo dos 8 comandos essenciais e a cadeia canônica.
|
|
9
|
-
|
|
10
|
-
**Princípio:** o usuário não precisa decorar o nome do comando — `/oxe [contexto]` resolve.
|
|
11
|
-
</objective>
|
|
12
|
-
|
|
13
|
-
<context>
|
|
14
|
-
- Este workflow **não gera artefatos** por conta própria. Ele orienta ou delega para o workflow correto.
|
|
15
|
-
- Lê `STATE.md` quando disponível para personalizar a resposta ao estado atual do projeto.
|
|
16
|
-
- Quando o input for claro o suficiente para um workflow específico, **executar diretamente** esse workflow (carregar e seguir o `.md` correspondente) em vez de só sugerir o comando.
|
|
17
|
-
- Quando houver ambiguidade genuína, apresentar 2 opções e pedir escolha — nunca listas longas.
|
|
18
|
-
</context>
|
|
19
|
-
|
|
20
|
-
<modo_status>
|
|
21
|
-
## Modo: Status + Próximo Passo (sem input ou "o que faço agora?")
|
|
22
|
-
|
|
23
|
-
Aplicar a lógica completa de `oxe/workflows/next.md`:
|
|
24
|
-
|
|
25
|
-
1. Se `.oxe/` ou `STATE.md` não existir → **scan** (`npx oxe-cc@latest` primeiro se OXE não instalado)
|
|
26
|
-
2. Se `.oxe/codebase/` incompleto e não for quick isolado → **scan**
|
|
27
|
-
3. Se `quick_active` ou `QUICK.md` sem `PLAN.md` → avaliar promoção (ver `next.md`)
|
|
28
|
-
4. Se sem `SPEC.md` → **spec**
|
|
29
|
-
5. Se SPEC mas sem PLAN → verificar `discuss_before_plan` → **discuss** ou **plan**
|
|
30
|
-
6. Se PLAN sem VERIFY pós-implementação → **execute** ou **verify**
|
|
31
|
-
7. Se VERIFY com falha → **plan --replan**
|
|
32
|
-
8. Se VERIFY OK → próxima feature ou milestone
|
|
33
|
-
|
|
34
|
-
**Saída:** exatamente 1 passo, 1 comando, 1 frase de justificativa.
|
|
35
|
-
</modo_status>
|
|
36
|
-
|
|
37
|
-
<modo_route>
|
|
38
|
-
## Modo: Roteamento de Linguagem Natural (input com contexto)
|
|
39
|
-
|
|
40
|
-
Mapear o input para o workflow correto e executar ou orientar:
|
|
41
|
-
|
|
42
|
-
| Se o usuário disser | Executar |
|
|
43
|
-
|---------------------|----------|
|
|
44
|
-
| "quero [feature / tarefa / entrega]" | Verificar estado → **spec** ou **quick** |
|
|
45
|
-
| "analisa / mapeia o projeto" | **scan** (modo refresh se codebase/ existir) |
|
|
46
|
-
| "pesquisa / spike / quero entender X" | **research** |
|
|
47
|
-
| "revisa PR / diff" | **review-pr** |
|
|
48
|
-
| "auditoria de segurança" | **security** |
|
|
49
|
-
| "valida / verifica" | **verify** |
|
|
50
|
-
| "milestone / release / versão" | **project milestone** |
|
|
51
|
-
| "trilha paralela / workstream" | **project workstream** |
|
|
52
|
-
| "snapshot / checkpoint" | **project checkpoint** |
|
|
53
|
-
| "recuperação / erro / algo quebrou" | **forensics** |
|
|
54
|
-
| "debug / teste falhando" | **debug** |
|
|
55
|
-
| "obs / observação / nota" | **obs** |
|
|
56
|
-
| "atualiza / update OXE" | **update** |
|
|
57
|
-
|
|
58
|
-
Se o input não mapear claramente → apresentar 2 opções mais prováveis e perguntar.
|
|
59
|
-
</modo_route>
|
|
60
|
-
|
|
61
|
-
<modo_help>
|
|
62
|
-
## Modo: Help (quando o usuário pede "help", "o que é OXE", "comandos")
|
|
63
|
-
|
|
64
|
-
Apresentar de forma concisa:
|
|
65
|
-
|
|
66
|
-
### Os 8 comandos que você precisa conhecer
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
/oxe → onde estou / o que faço / help
|
|
70
|
-
/oxe-obs → registrei algo importante agora
|
|
71
|
-
/oxe-quick → tarefa pequena, sem cerimônia
|
|
72
|
-
/oxe-scan → mapeia o projeto (ou atualiza o mapa)
|
|
73
|
-
/oxe-spec → nova feature ou entrega: perguntas → requisitos → roteiro
|
|
74
|
-
/oxe-plan → detalhar em tarefas (--agents para multi-agente)
|
|
75
|
-
/oxe-execute → implementar (A: completo | B: por onda | C: por tarefa)
|
|
76
|
-
/oxe-verify → validar que está pronto
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### A cadeia
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
/oxe-obs (qualquer momento)
|
|
83
|
-
↓
|
|
84
|
-
/oxe-scan → /oxe-spec → /oxe-plan → /oxe-execute → /oxe-verify → /oxe-retro
|
|
85
|
-
↓
|
|
86
|
-
/oxe-quick (trabalho pequeno)
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Para saber o próximo passo agora
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
/oxe
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Escape hatches (não precisa decorar — aparecem quando necessários)
|
|
96
|
-
|
|
97
|
-
`/oxe-research`, `/oxe-forensics`, `/oxe-debug`, `/oxe-loop`, `/oxe-security`,
|
|
98
|
-
`/oxe-validate-gaps`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-review-pr`,
|
|
99
|
-
`/oxe-project` (milestone, workstream, checkpoint)
|
|
100
|
-
</modo_help>
|
|
101
|
-
|
|
102
|
-
<process>
|
|
103
|
-
1. Verificar se há input adicional na mensagem:
|
|
104
|
-
- **Sem input ou "next / o que faço / status":** aplicar `<modo_status>`.
|
|
105
|
-
- **"help / comandos / o que é OXE":** aplicar `<modo_help>`.
|
|
106
|
-
- **Qualquer outra coisa (linguagem natural com contexto):** aplicar `<modo_route>` e, se o workflow for claro, carregar e executar diretamente o `oxe/workflows/<nome>.md` correspondente.
|
|
107
|
-
2. Nunca produzir listas longas de alternativas. Um passo, um comando, uma frase.
|
|
108
|
-
3. Se o workflow executado diretamente gerar artefatos, reportar no chat conforme esse workflow.
|
|
109
|
-
</process>
|
|
110
|
-
|
|
111
|
-
<success_criteria>
|
|
112
|
-
- [ ] Usuário recebe exatamente 1 próximo passo (modo status) OU 1 workflow executado (modo route) OU o bloco help compacto (modo help).
|
|
113
|
-
- [ ] Nenhum artefato criado por este workflow diretamente (a menos que o workflow delegado o faça).
|
|
114
|
-
- [ ] Nunca lista mais de 2 alternativas ao mesmo tempo.
|
|
115
|
-
</success_criteria>
|
|
1
|
+
# OXE — Workflow: oxe (entrada universal)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Ponto de entrada inteligente do OXE. Faz uma de três coisas dependendo do input do usuário:
|
|
5
|
+
|
|
6
|
+
1. **Sem input / "o que faço agora?"** → lê `STATE.md` e recomenda exatamente 1 próximo passo (lógica de `next.md`).
|
|
7
|
+
2. **Input em linguagem natural** (ex.: "quero adicionar login", "preciso revisar um PR") → traduz para o comando OXE correto e executa ou orienta (lógica de `route.md`).
|
|
8
|
+
3. **"help", "o que é OXE" ou "comandos"** → apresenta o fluxo dos 8 comandos essenciais e a cadeia canônica.
|
|
9
|
+
|
|
10
|
+
**Princípio:** o usuário não precisa decorar o nome do comando — `/oxe [contexto]` resolve.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<context>
|
|
14
|
+
- Este workflow **não gera artefatos** por conta própria. Ele orienta ou delega para o workflow correto.
|
|
15
|
+
- Lê `STATE.md` quando disponível para personalizar a resposta ao estado atual do projeto.
|
|
16
|
+
- Quando o input for claro o suficiente para um workflow específico, **executar diretamente** esse workflow (carregar e seguir o `.md` correspondente) em vez de só sugerir o comando.
|
|
17
|
+
- Quando houver ambiguidade genuína, apresentar 2 opções e pedir escolha — nunca listas longas.
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<modo_status>
|
|
21
|
+
## Modo: Status + Próximo Passo (sem input ou "o que faço agora?")
|
|
22
|
+
|
|
23
|
+
Aplicar a lógica completa de `oxe/workflows/next.md`:
|
|
24
|
+
|
|
25
|
+
1. Se `.oxe/` ou `STATE.md` não existir → **scan** (`npx oxe-cc@latest` primeiro se OXE não instalado)
|
|
26
|
+
2. Se `.oxe/codebase/` incompleto e não for quick isolado → **scan**
|
|
27
|
+
3. Se `quick_active` ou `QUICK.md` sem `PLAN.md` → avaliar promoção (ver `next.md`)
|
|
28
|
+
4. Se sem `SPEC.md` → **spec**
|
|
29
|
+
5. Se SPEC mas sem PLAN → verificar `discuss_before_plan` → **discuss** ou **plan**
|
|
30
|
+
6. Se PLAN sem VERIFY pós-implementação → **execute** ou **verify**
|
|
31
|
+
7. Se VERIFY com falha → **plan --replan**
|
|
32
|
+
8. Se VERIFY OK → próxima feature ou milestone
|
|
33
|
+
|
|
34
|
+
**Saída:** exatamente 1 passo, 1 comando, 1 frase de justificativa.
|
|
35
|
+
</modo_status>
|
|
36
|
+
|
|
37
|
+
<modo_route>
|
|
38
|
+
## Modo: Roteamento de Linguagem Natural (input com contexto)
|
|
39
|
+
|
|
40
|
+
Mapear o input para o workflow correto e executar ou orientar:
|
|
41
|
+
|
|
42
|
+
| Se o usuário disser | Executar |
|
|
43
|
+
|---------------------|----------|
|
|
44
|
+
| "quero [feature / tarefa / entrega]" | Verificar estado → **spec** ou **quick** |
|
|
45
|
+
| "analisa / mapeia o projeto" | **scan** (modo refresh se codebase/ existir) |
|
|
46
|
+
| "pesquisa / spike / quero entender X" | **research** |
|
|
47
|
+
| "revisa PR / diff" | **review-pr** |
|
|
48
|
+
| "auditoria de segurança" | **security** |
|
|
49
|
+
| "valida / verifica" | **verify** |
|
|
50
|
+
| "milestone / release / versão" | **project milestone** |
|
|
51
|
+
| "trilha paralela / workstream" | **project workstream** |
|
|
52
|
+
| "snapshot / checkpoint" | **project checkpoint** |
|
|
53
|
+
| "recuperação / erro / algo quebrou" | **forensics** |
|
|
54
|
+
| "debug / teste falhando" | **debug** |
|
|
55
|
+
| "obs / observação / nota" | **obs** |
|
|
56
|
+
| "atualiza / update OXE" | **update** |
|
|
57
|
+
|
|
58
|
+
Se o input não mapear claramente → apresentar 2 opções mais prováveis e perguntar.
|
|
59
|
+
</modo_route>
|
|
60
|
+
|
|
61
|
+
<modo_help>
|
|
62
|
+
## Modo: Help (quando o usuário pede "help", "o que é OXE", "comandos")
|
|
63
|
+
|
|
64
|
+
Apresentar de forma concisa:
|
|
65
|
+
|
|
66
|
+
### Os 8 comandos que você precisa conhecer
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
/oxe → onde estou / o que faço / help
|
|
70
|
+
/oxe-obs → registrei algo importante agora
|
|
71
|
+
/oxe-quick → tarefa pequena, sem cerimônia
|
|
72
|
+
/oxe-scan → mapeia o projeto (ou atualiza o mapa)
|
|
73
|
+
/oxe-spec → nova feature ou entrega: perguntas → requisitos → roteiro
|
|
74
|
+
/oxe-plan → detalhar em tarefas (--agents para multi-agente)
|
|
75
|
+
/oxe-execute → implementar (A: completo | B: por onda | C: por tarefa)
|
|
76
|
+
/oxe-verify → validar que está pronto
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### A cadeia
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
/oxe-obs (qualquer momento)
|
|
83
|
+
↓
|
|
84
|
+
/oxe-scan → /oxe-spec → /oxe-plan → /oxe-execute → /oxe-verify → /oxe-retro
|
|
85
|
+
↓
|
|
86
|
+
/oxe-quick (trabalho pequeno)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Para saber o próximo passo agora
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
/oxe
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Escape hatches (não precisa decorar — aparecem quando necessários)
|
|
96
|
+
|
|
97
|
+
`/oxe-research`, `/oxe-forensics`, `/oxe-debug`, `/oxe-loop`, `/oxe-security`,
|
|
98
|
+
`/oxe-validate-gaps`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-review-pr`,
|
|
99
|
+
`/oxe-project` (milestone, workstream, checkpoint)
|
|
100
|
+
</modo_help>
|
|
101
|
+
|
|
102
|
+
<process>
|
|
103
|
+
1. Verificar se há input adicional na mensagem:
|
|
104
|
+
- **Sem input ou "next / o que faço / status":** aplicar `<modo_status>`.
|
|
105
|
+
- **"help / comandos / o que é OXE":** aplicar `<modo_help>`.
|
|
106
|
+
- **Qualquer outra coisa (linguagem natural com contexto):** aplicar `<modo_route>` e, se o workflow for claro, carregar e executar diretamente o `oxe/workflows/<nome>.md` correspondente.
|
|
107
|
+
2. Nunca produzir listas longas de alternativas. Um passo, um comando, uma frase.
|
|
108
|
+
3. Se o workflow executado diretamente gerar artefatos, reportar no chat conforme esse workflow.
|
|
109
|
+
</process>
|
|
110
|
+
|
|
111
|
+
<success_criteria>
|
|
112
|
+
- [ ] Usuário recebe exatamente 1 próximo passo (modo status) OU 1 workflow executado (modo route) OU o bloco help compacto (modo help).
|
|
113
|
+
- [ ] Nenhum artefato criado por este workflow diretamente (a menos que o workflow delegado o faça).
|
|
114
|
+
- [ ] Nunca lista mais de 2 alternativas ao mesmo tempo.
|
|
115
|
+
</success_criteria>
|
package/oxe/workflows/project.md
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
# OXE — Workflow: project (gestão de projeto)
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Ponto de entrada unificado para as três operações de gestão de projeto OXE:
|
|
5
|
-
|
|
6
|
-
- **milestone** — marcos de entrega (M-NN): `new`, `complete`, `status`, `audit`
|
|
7
|
-
- **workstream** — trilhas paralelas: `new <nome>`, `switch <nome>`, `list`, `close <nome>`
|
|
8
|
-
- **checkpoint** — snapshot nomeado de sessão: `[slug]`
|
|
9
|
-
|
|
10
|
-
Detecta a operação pelo primeiro token do input e delega ao workflow canônico correspondente.
|
|
11
|
-
</objective>
|
|
12
|
-
|
|
13
|
-
<context>
|
|
14
|
-
- Este workflow é um **dispatcher**: lê o input, identifica a operação e executa o workflow correto.
|
|
15
|
-
- Workflows canônicos: `oxe/workflows/milestone.md`, `oxe/workflows/workstream.md`, `oxe/workflows/checkpoint.md`.
|
|
16
|
-
- Se o input for ambíguo, apresentar as 3 operações disponíveis e pedir escolha.
|
|
17
|
-
- Sem input: mostrar o estado atual de milestones e workstreams ativos lendo `STATE.md`, `MILESTONES.md` e `CHECKPOINTS.md`.
|
|
18
|
-
</context>
|
|
19
|
-
|
|
20
|
-
<dispatch_table>
|
|
21
|
-
| Input começa com | Delega para | Exemplos |
|
|
22
|
-
|------------------|-------------|---------|
|
|
23
|
-
| `milestone new ...` | `milestone.md` + subcomando `new` | `/oxe-project milestone new v1.0` |
|
|
24
|
-
| `milestone complete` | `milestone.md` + subcomando `complete` | `/oxe-project milestone complete` |
|
|
25
|
-
| `milestone status` | `milestone.md` + subcomando `status` | `/oxe-project milestone status` |
|
|
26
|
-
| `milestone audit` | `milestone.md` + subcomando `audit` | `/oxe-project milestone audit` |
|
|
27
|
-
| `workstream new <nome>` | `workstream.md` + subcomando `new` | `/oxe-project workstream new auth` |
|
|
28
|
-
| `workstream switch <nome>` | `workstream.md` + subcomando `switch` | `/oxe-project workstream switch auth` |
|
|
29
|
-
| `workstream list` | `workstream.md` + subcomando `list` | `/oxe-project workstream list` |
|
|
30
|
-
| `workstream close <nome>` | `workstream.md` + subcomando `close` | `/oxe-project workstream close auth` |
|
|
31
|
-
| `checkpoint [slug]` | `checkpoint.md` | `/oxe-project checkpoint pre-refactor` |
|
|
32
|
-
| *(sem input)* | Status atual | `/oxe-project` |
|
|
33
|
-
</dispatch_table>
|
|
34
|
-
|
|
35
|
-
<process>
|
|
36
|
-
1. Ler o input do usuário (texto após o comando).
|
|
37
|
-
2. Identificar o primeiro token:
|
|
38
|
-
- `milestone` → carregar e executar `oxe/workflows/milestone.md` passando o restante como subcomando.
|
|
39
|
-
- `workstream` → carregar e executar `oxe/workflows/workstream.md` passando o restante como subcomando.
|
|
40
|
-
- `checkpoint` → carregar e executar `oxe/workflows/checkpoint.md` passando o slug (se houver).
|
|
41
|
-
- *(vazio)* → ler `STATE.md`, `MILESTONES.md` (se existir) e listar: milestone ativo (M-NN / nenhum), workstreams abertos, último checkpoint. Sugerir próxima operação.
|
|
42
|
-
- *(ambíguo)* → listar as 3 operações disponíveis com exemplos de uso.
|
|
43
|
-
3. Executar o workflow delegado integralmente.
|
|
44
|
-
</process>
|
|
45
|
-
|
|
46
|
-
<success_criteria>
|
|
47
|
-
- [ ] O workflow correto foi executado com base no input.
|
|
48
|
-
- [ ] Sem input: STATUS atual de milestone ativo, workstreams e último checkpoint mostrado.
|
|
49
|
-
- [ ] Input ambíguo: máximo 3 opções apresentadas com exemplos, não listas longas.
|
|
50
|
-
</success_criteria>
|
|
1
|
+
# OXE — Workflow: project (gestão de projeto)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Ponto de entrada unificado para as três operações de gestão de projeto OXE:
|
|
5
|
+
|
|
6
|
+
- **milestone** — marcos de entrega (M-NN): `new`, `complete`, `status`, `audit`
|
|
7
|
+
- **workstream** — trilhas paralelas: `new <nome>`, `switch <nome>`, `list`, `close <nome>`
|
|
8
|
+
- **checkpoint** — snapshot nomeado de sessão: `[slug]`
|
|
9
|
+
|
|
10
|
+
Detecta a operação pelo primeiro token do input e delega ao workflow canônico correspondente.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<context>
|
|
14
|
+
- Este workflow é um **dispatcher**: lê o input, identifica a operação e executa o workflow correto.
|
|
15
|
+
- Workflows canônicos: `oxe/workflows/milestone.md`, `oxe/workflows/workstream.md`, `oxe/workflows/checkpoint.md`.
|
|
16
|
+
- Se o input for ambíguo, apresentar as 3 operações disponíveis e pedir escolha.
|
|
17
|
+
- Sem input: mostrar o estado atual de milestones e workstreams ativos lendo `STATE.md`, `MILESTONES.md` e `CHECKPOINTS.md`.
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<dispatch_table>
|
|
21
|
+
| Input começa com | Delega para | Exemplos |
|
|
22
|
+
|------------------|-------------|---------|
|
|
23
|
+
| `milestone new ...` | `milestone.md` + subcomando `new` | `/oxe-project milestone new v1.0` |
|
|
24
|
+
| `milestone complete` | `milestone.md` + subcomando `complete` | `/oxe-project milestone complete` |
|
|
25
|
+
| `milestone status` | `milestone.md` + subcomando `status` | `/oxe-project milestone status` |
|
|
26
|
+
| `milestone audit` | `milestone.md` + subcomando `audit` | `/oxe-project milestone audit` |
|
|
27
|
+
| `workstream new <nome>` | `workstream.md` + subcomando `new` | `/oxe-project workstream new auth` |
|
|
28
|
+
| `workstream switch <nome>` | `workstream.md` + subcomando `switch` | `/oxe-project workstream switch auth` |
|
|
29
|
+
| `workstream list` | `workstream.md` + subcomando `list` | `/oxe-project workstream list` |
|
|
30
|
+
| `workstream close <nome>` | `workstream.md` + subcomando `close` | `/oxe-project workstream close auth` |
|
|
31
|
+
| `checkpoint [slug]` | `checkpoint.md` | `/oxe-project checkpoint pre-refactor` |
|
|
32
|
+
| *(sem input)* | Status atual | `/oxe-project` |
|
|
33
|
+
</dispatch_table>
|
|
34
|
+
|
|
35
|
+
<process>
|
|
36
|
+
1. Ler o input do usuário (texto após o comando).
|
|
37
|
+
2. Identificar o primeiro token:
|
|
38
|
+
- `milestone` → carregar e executar `oxe/workflows/milestone.md` passando o restante como subcomando.
|
|
39
|
+
- `workstream` → carregar e executar `oxe/workflows/workstream.md` passando o restante como subcomando.
|
|
40
|
+
- `checkpoint` → carregar e executar `oxe/workflows/checkpoint.md` passando o slug (se houver).
|
|
41
|
+
- *(vazio)* → ler `STATE.md`, `MILESTONES.md` (se existir) e listar: milestone ativo (M-NN / nenhum), workstreams abertos, último checkpoint. Sugerir próxima operação.
|
|
42
|
+
- *(ambíguo)* → listar as 3 operações disponíveis com exemplos de uso.
|
|
43
|
+
3. Executar o workflow delegado integralmente.
|
|
44
|
+
</process>
|
|
45
|
+
|
|
46
|
+
<success_criteria>
|
|
47
|
+
- [ ] O workflow correto foi executado com base no input.
|
|
48
|
+
- [ ] Sem input: STATUS atual de milestone ativo, workstreams e último checkpoint mostrado.
|
|
49
|
+
- [ ] Input ambíguo: máximo 3 opções apresentadas com exemplos, não listas longas.
|
|
50
|
+
</success_criteria>
|
package/oxe/workflows/quick.md
CHANGED
|
@@ -140,7 +140,7 @@ No final de **`.oxe/QUICK.md`**, mantenha a linha:
|
|
|
140
140
|
Se **sim**, o próximo passo recomendado no chat é **`/oxe-spec`** (depois discuss/plan conforme config).
|
|
141
141
|
|
|
142
142
|
<process>
|
|
143
|
-
1. Garantir `.oxe/` (usar template de STATE só se `STATE.md` não existir).
|
|
143
|
+
1. Garantir `.oxe/` (usar template de STATE só se `STATE.md` não existir). Verificar **`.oxe/OBSERVATIONS.md`** — se houver entradas `pendente` com impacto `all`, registrar como restrições nos **Passos** ou no **Contexto** do QUICK.md antes de finalizar; marcar as OBS como `incorporada → quick (data)`.
|
|
144
144
|
2. Avaliar se PDDA lean se aplica (ver `<plan_driven_dynamic_agents_lean>` — domínios distintos, 5+ passos, ou flag `--agents`).
|
|
145
145
|
3. Criar ou substituir **`.oxe/QUICK.md`** com:
|
|
146
146
|
- **Objetivo** — uma frase. *(Esta é a minispec: restringe o escopo de todos os agentes e passos.)*
|
package/oxe/workflows/retro.md
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
# OXE — Workflow: retro (retrospectiva de ciclo)
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Sintetizar os aprendizados de um ciclo completo (spec → verify) em **`.oxe/LESSONS.md`** — um arquivo prescritivo e cumulativo que alimenta automaticamente ciclos futuros.
|
|
5
|
-
|
|
6
|
-
**Princípio:** lições não são diário — são instruções para o próximo ciclo. Cada entrada diz COMO agir diferente, não apenas o que aconteceu.
|
|
7
|
-
|
|
8
|
-
Pode ser chamado:
|
|
9
|
-
- Após `/oxe-verify` (ciclo normal completo)
|
|
10
|
-
- Após `/oxe-verify` com falha e replanejamento (ciclo com retrabalho)
|
|
11
|
-
- A qualquer momento para capturar aprendizados antes que se percam
|
|
12
|
-
</objective>
|
|
13
|
-
|
|
14
|
-
<context>
|
|
15
|
-
- **Pré-requisito preferível:** `.oxe/VERIFY.md` existente. Sem ele, a retro é baseada em STATE.md e relato do usuário.
|
|
16
|
-
- **Artefato:** `.oxe/LESSONS.md` — append-only por padrão; nunca apagar entradas anteriores, apenas mudar `Status` para `resolvido`.
|
|
17
|
-
- **Consumidores:** `/oxe-spec` (lições tipo `spec`), `/oxe-plan` (lições tipo `plan`), `/oxe-scan` (lições tipo `process`), `/oxe-execute` (lições tipo `execute`).
|
|
18
|
-
- **Ciclo ID:** sequencial `C-01`, `C-02`, … (continuar do último em LESSONS.md).
|
|
19
|
-
- Template: `oxe/templates/LESSONS.template.md`.
|
|
20
|
-
</context>
|
|
21
|
-
|
|
22
|
-
<taxonomy>
|
|
23
|
-
## Taxonomia de tipos de lição
|
|
24
|
-
|
|
25
|
-
| Tipo | Quando usar | Consumido por |
|
|
26
|
-
|------|-------------|---------------|
|
|
27
|
-
| `spec` | Problemas na definição de requisitos ou critérios A* | `/oxe-spec` Fase 1/3 |
|
|
28
|
-
| `plan` | Problemas de granularidade, ondas, verificações | `/oxe-plan` |
|
|
29
|
-
| `execute` | Padrões de falha na implementação, hipóteses erradas | `/oxe-execute` |
|
|
30
|
-
| `verify` | Critérios vagos, evidências insuficientes, camadas puladas | `/oxe-verify` |
|
|
31
|
-
| `process` | Escolha errada de workflow (quick vs spec, solo vs agents) | `/oxe-scan`, qualquer entry |
|
|
32
|
-
| `agents` | Problemas de orquestração, runId, dependências de agente | `/oxe-plan-agent`, `/oxe-execute` |
|
|
33
|
-
|
|
34
|
-
**Formato de lição (prescritivo, não descritivo):**
|
|
35
|
-
- ❌ "A tarefa T4 demorou muito" (descritivo — não ajuda no próximo ciclo)
|
|
36
|
-
- ✅ "Tarefas com integração de terceiros devem ter Complexidade L mínimo + Verificar com mock fallback" (prescritivo — o próximo plan pode aplicar)
|
|
37
|
-
</taxonomy>
|
|
38
|
-
|
|
39
|
-
<process>
|
|
40
|
-
1. Ler **`.oxe/VERIFY.md`** se existir: identificar tarefas que falharam, critérios A* sem evidência, gaps documentados.
|
|
41
|
-
2. Ler **`.oxe/FORENSICS.md`** se existir: capturar causa raiz de falhas de execução.
|
|
42
|
-
3. Ler **`.oxe/SUMMARY.md`** se existir: capturar contexto de replans e decisões forçadas.
|
|
43
|
-
4. Ler **`.oxe/STATE.md`**: capturar número de ondas, execute_mode usado, se houve loop, se houve escalação para forensics.
|
|
44
|
-
5. Sintetizar **3–5 lições prescritivas** (não mais — qualidade sobre quantidade):
|
|
45
|
-
- Cada lição responde: "O que o próximo ciclo deve fazer diferente?"
|
|
46
|
-
- Formato: **Lição** (o que fazer) + **Raiz** (por que isso aconteceu) + **Tipo** + **Aplicar em**
|
|
47
|
-
6. Determinar o próximo **ciclo ID** (C-NN) lendo `.oxe/LESSONS.md` existente ou começando em C-01.
|
|
48
|
-
7. Criar ou atualizar **`.oxe/LESSONS.md`** usando `oxe/templates/LESSONS.template.md`:
|
|
49
|
-
- Adicionar linha na tabela de índice (mais recente primeiro).
|
|
50
|
-
- Adicionar seção `### C-NN` com as lições sintetizadas.
|
|
51
|
-
- **Nunca apagar** entradas anteriores — só mudar `Status: resolvido` se a lição foi superada.
|
|
52
|
-
8. Atualizar **`.oxe/STATE.md`**: campo `last_retro: YYYY-MM-DD`.
|
|
53
|
-
9. Responder no chat: ID do ciclo (C-NN), número de lições registradas, lição mais crítica em 1 frase, sugestão do próximo ciclo (`/oxe-scan` ou `/oxe-spec`).
|
|
54
|
-
</process>
|
|
55
|
-
|
|
56
|
-
<success_criteria>
|
|
57
|
-
- [ ] `.oxe/LESSONS.md` existe com entrada C-NN na tabela e seção de detalhe.
|
|
58
|
-
- [ ] Cada lição é prescritiva (diz o que fazer) não descritiva (não é só o que aconteceu).
|
|
59
|
-
- [ ] 3–5 lições por ciclo — não um dump completo de eventos.
|
|
60
|
-
- [ ] `STATE.md` tem `last_retro` atualizado.
|
|
61
|
-
- [ ] Entradas anteriores preservadas; apenas `Status` pode mudar.
|
|
62
|
-
</success_criteria>
|
|
1
|
+
# OXE — Workflow: retro (retrospectiva de ciclo)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Sintetizar os aprendizados de um ciclo completo (spec → verify) em **`.oxe/LESSONS.md`** — um arquivo prescritivo e cumulativo que alimenta automaticamente ciclos futuros.
|
|
5
|
+
|
|
6
|
+
**Princípio:** lições não são diário — são instruções para o próximo ciclo. Cada entrada diz COMO agir diferente, não apenas o que aconteceu.
|
|
7
|
+
|
|
8
|
+
Pode ser chamado:
|
|
9
|
+
- Após `/oxe-verify` (ciclo normal completo)
|
|
10
|
+
- Após `/oxe-verify` com falha e replanejamento (ciclo com retrabalho)
|
|
11
|
+
- A qualquer momento para capturar aprendizados antes que se percam
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<context>
|
|
15
|
+
- **Pré-requisito preferível:** `.oxe/VERIFY.md` existente. Sem ele, a retro é baseada em STATE.md e relato do usuário.
|
|
16
|
+
- **Artefato:** `.oxe/LESSONS.md` — append-only por padrão; nunca apagar entradas anteriores, apenas mudar `Status` para `resolvido`.
|
|
17
|
+
- **Consumidores:** `/oxe-spec` (lições tipo `spec`), `/oxe-plan` (lições tipo `plan`), `/oxe-scan` (lições tipo `process`), `/oxe-execute` (lições tipo `execute`).
|
|
18
|
+
- **Ciclo ID:** sequencial `C-01`, `C-02`, … (continuar do último em LESSONS.md).
|
|
19
|
+
- Template: `oxe/templates/LESSONS.template.md`.
|
|
20
|
+
</context>
|
|
21
|
+
|
|
22
|
+
<taxonomy>
|
|
23
|
+
## Taxonomia de tipos de lição
|
|
24
|
+
|
|
25
|
+
| Tipo | Quando usar | Consumido por |
|
|
26
|
+
|------|-------------|---------------|
|
|
27
|
+
| `spec` | Problemas na definição de requisitos ou critérios A* | `/oxe-spec` Fase 1/3 |
|
|
28
|
+
| `plan` | Problemas de granularidade, ondas, verificações | `/oxe-plan` |
|
|
29
|
+
| `execute` | Padrões de falha na implementação, hipóteses erradas | `/oxe-execute` |
|
|
30
|
+
| `verify` | Critérios vagos, evidências insuficientes, camadas puladas | `/oxe-verify` |
|
|
31
|
+
| `process` | Escolha errada de workflow (quick vs spec, solo vs agents) | `/oxe-scan`, qualquer entry |
|
|
32
|
+
| `agents` | Problemas de orquestração, runId, dependências de agente | `/oxe-plan-agent`, `/oxe-execute` |
|
|
33
|
+
|
|
34
|
+
**Formato de lição (prescritivo, não descritivo):**
|
|
35
|
+
- ❌ "A tarefa T4 demorou muito" (descritivo — não ajuda no próximo ciclo)
|
|
36
|
+
- ✅ "Tarefas com integração de terceiros devem ter Complexidade L mínimo + Verificar com mock fallback" (prescritivo — o próximo plan pode aplicar)
|
|
37
|
+
</taxonomy>
|
|
38
|
+
|
|
39
|
+
<process>
|
|
40
|
+
1. Ler **`.oxe/VERIFY.md`** se existir: identificar tarefas que falharam, critérios A* sem evidência, gaps documentados.
|
|
41
|
+
2. Ler **`.oxe/FORENSICS.md`** se existir: capturar causa raiz de falhas de execução.
|
|
42
|
+
3. Ler **`.oxe/SUMMARY.md`** se existir: capturar contexto de replans e decisões forçadas.
|
|
43
|
+
4. Ler **`.oxe/STATE.md`**: capturar número de ondas, execute_mode usado, se houve loop, se houve escalação para forensics.
|
|
44
|
+
5. Sintetizar **3–5 lições prescritivas** (não mais — qualidade sobre quantidade):
|
|
45
|
+
- Cada lição responde: "O que o próximo ciclo deve fazer diferente?"
|
|
46
|
+
- Formato: **Lição** (o que fazer) + **Raiz** (por que isso aconteceu) + **Tipo** + **Aplicar em**
|
|
47
|
+
6. Determinar o próximo **ciclo ID** (C-NN) lendo `.oxe/LESSONS.md` existente ou começando em C-01.
|
|
48
|
+
7. Criar ou atualizar **`.oxe/LESSONS.md`** usando `oxe/templates/LESSONS.template.md`:
|
|
49
|
+
- Adicionar linha na tabela de índice (mais recente primeiro).
|
|
50
|
+
- Adicionar seção `### C-NN` com as lições sintetizadas.
|
|
51
|
+
- **Nunca apagar** entradas anteriores — só mudar `Status: resolvido` se a lição foi superada.
|
|
52
|
+
8. Atualizar **`.oxe/STATE.md`**: campo `last_retro: YYYY-MM-DD`.
|
|
53
|
+
9. Responder no chat: ID do ciclo (C-NN), número de lições registradas, lição mais crítica em 1 frase, sugestão do próximo ciclo (`/oxe-scan` ou `/oxe-spec`).
|
|
54
|
+
</process>
|
|
55
|
+
|
|
56
|
+
<success_criteria>
|
|
57
|
+
- [ ] `.oxe/LESSONS.md` existe com entrada C-NN na tabela e seção de detalhe.
|
|
58
|
+
- [ ] Cada lição é prescritiva (diz o que fazer) não descritiva (não é só o que aconteceu).
|
|
59
|
+
- [ ] 3–5 lições por ciclo — não um dump completo de eventos.
|
|
60
|
+
- [ ] `STATE.md` tem `last_retro` atualizado.
|
|
61
|
+
- [ ] Entradas anteriores preservadas; apenas `Status` pode mudar.
|
|
62
|
+
</success_criteria>
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
# OXE — Workflow: security (auditoria de segurança)
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Produzir **`.oxe/SECURITY.md`**: auditoria de segurança do repositório focada nas categorias OWASP Top 10 **relevantes** ao stack do projeto. Complementa **`validate-gaps`** (cobertura de testes) com uma camada de segurança aplicativa.
|
|
5
|
-
|
|
6
|
-
Pode ser chamado standalone ou como Camada 5 do **`verify.md`** quando `config.json` tiver `"security_in_verify": true`.
|
|
7
|
-
|
|
8
|
-
Não substitui ferramentas de análise estática (SAST) — identifica padrões de risco no código e na configuração a partir do contexto disponível no repositório.
|
|
9
|
-
</objective>
|
|
10
|
-
|
|
11
|
-
<context>
|
|
12
|
-
- **Fonte de stack:** `.oxe/codebase/STACK.md` determina quais categorias OWASP são pertinentes (ex.: app sem DB descarta A03:Injection-SQL; API sem auth descarta A07:Authentication).
|
|
13
|
-
- **Fontes de código:** `.oxe/codebase/STRUCTURE.md`, `.oxe/codebase/CONCERNS.md`, `.oxe/codebase/INTEGRATIONS.md` orientam quais arquivos focar.
|
|
14
|
-
- **Severidade:** P0 = crítico (exploração provável, impacto direto), P1 = alto (requer mitigação antes do próximo deploy), P2 = médio (risco aceitável com compensação documentada).
|
|
15
|
-
- **Saída de tarefas:** recomendações vinculadas a `Tn` existentes no PLAN.md (se disponível) ou como sugestões de novas tarefas `T_new`.
|
|
16
|
-
- **Integração com verify:** se `security_in_verify: true` em `.oxe/config.json`, o workflow `verify.md` inclui referência a este output como Camada 5. O `security.md` continua sendo o workflow canônico.
|
|
17
|
-
- **Não alterar código:** apenas auditar e registrar achados. Nenhum arquivo de código é modificado.
|
|
18
|
-
</context>
|
|
19
|
-
|
|
20
|
-
<owasp_scope>
|
|
21
|
-
## Mapeamento OWASP → Stack
|
|
22
|
-
|
|
23
|
-
Antes de auditar, determinar quais categorias se aplicam lendo `STACK.md` e `INTEGRATIONS.md`:
|
|
24
|
-
|
|
25
|
-
| Categoria OWASP | Aplicável quando |
|
|
26
|
-
|-----------------|-----------------|
|
|
27
|
-
| A01 — Broken Access Control | App com autenticação/autorização ou rotas protegidas |
|
|
28
|
-
| A02 — Cryptographic Failures | Dados sensíveis em trânsito ou em repouso; senhas; tokens |
|
|
29
|
-
| A03 — Injection | DB queries, shell commands, parsers de entrada, templates |
|
|
30
|
-
| A04 — Insecure Design | Ausência de modelagem de ameaças; fluxos de negócio sem validação |
|
|
31
|
-
| A05 — Security Misconfiguration | Config de servidor, CORS, headers HTTP, variáveis de ambiente |
|
|
32
|
-
| A06 — Vulnerable Components | Dependências com CVEs conhecidos; versões sem suporte |
|
|
33
|
-
| A07 — Authentication Failures | Login, sessão, JWT, OAuth, tokens de reset |
|
|
34
|
-
| A08 — Software Integrity | Supply chain; checksums; CI/CD sem verificação |
|
|
35
|
-
| A09 — Logging & Monitoring | Ausência de logs de eventos críticos; dados sensíveis em logs |
|
|
36
|
-
| A10 — SSRF | Requisições a URLs controladas pelo usuário; fetch/proxy interno |
|
|
37
|
-
|
|
38
|
-
**Selecionar apenas as categorias aplicáveis** ao stack identificado. Listar explicitamente as ignoradas e o motivo.
|
|
39
|
-
</owasp_scope>
|
|
40
|
-
|
|
41
|
-
<process>
|
|
42
|
-
1. Ler `.oxe/codebase/STACK.md`, `.oxe/codebase/STRUCTURE.md`, `.oxe/codebase/INTEGRATIONS.md`, `.oxe/codebase/CONCERNS.md`.
|
|
43
|
-
2. Selecionar categorias OWASP aplicáveis ao stack (ver `<owasp_scope>`); registrar as descartadas.
|
|
44
|
-
3. Para cada categoria aplicável:
|
|
45
|
-
a. Identificar **arquivos críticos** (auth, input handlers, DB queries, configs, env, deps).
|
|
46
|
-
b. Ler os arquivos relevantes (Glob, Grep, Read) procurando padrões de risco.
|
|
47
|
-
c. Registrar achados com: localização (`path:linha`), padrão encontrado, severidade (P0/P1/P2), recomendação.
|
|
48
|
-
4. Ler `.oxe/PLAN.md` se existir — vincular achados P0/P1 a tarefas `Tn` existentes quando possível, ou criar sugestão `T_new`.
|
|
49
|
-
5. Escrever `.oxe/SECURITY.md` a partir de `oxe/templates/SECURITY.template.md`.
|
|
50
|
-
6. Atualizar `.oxe/STATE.md`: nota de segurança (ex.: `security_audit: YYYY-MM-DD | P0:N | P1:N | P2:N`).
|
|
51
|
-
7. Responder no chat: total de achados por severidade, arquivos mais críticos identificados, próximo passo (P0 presentes → bloquear deploy; apenas P2 → ação opcional).
|
|
52
|
-
</process>
|
|
53
|
-
|
|
54
|
-
<success_criteria>
|
|
55
|
-
- [ ] `.oxe/SECURITY.md` existe com categorias OWASP selecionadas e justificativa de descarte.
|
|
56
|
-
- [ ] Cada achado tem: localização, padrão, severidade, recomendação.
|
|
57
|
-
- [ ] Categorias sem achados registradas como "nenhum achado nesta categoria".
|
|
58
|
-
- [ ] Achados P0/P1 vinculados a `Tn` existente ou sugestão `T_new`.
|
|
59
|
-
- [ ] Nenhum arquivo de código foi modificado.
|
|
60
|
-
- [ ] STATE.md tem linha `security_audit` com data e contagem de achados.
|
|
61
|
-
</success_criteria>
|
|
1
|
+
# OXE — Workflow: security (auditoria de segurança)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Produzir **`.oxe/SECURITY.md`**: auditoria de segurança do repositório focada nas categorias OWASP Top 10 **relevantes** ao stack do projeto. Complementa **`validate-gaps`** (cobertura de testes) com uma camada de segurança aplicativa.
|
|
5
|
+
|
|
6
|
+
Pode ser chamado standalone ou como Camada 5 do **`verify.md`** quando `config.json` tiver `"security_in_verify": true`.
|
|
7
|
+
|
|
8
|
+
Não substitui ferramentas de análise estática (SAST) — identifica padrões de risco no código e na configuração a partir do contexto disponível no repositório.
|
|
9
|
+
</objective>
|
|
10
|
+
|
|
11
|
+
<context>
|
|
12
|
+
- **Fonte de stack:** `.oxe/codebase/STACK.md` determina quais categorias OWASP são pertinentes (ex.: app sem DB descarta A03:Injection-SQL; API sem auth descarta A07:Authentication).
|
|
13
|
+
- **Fontes de código:** `.oxe/codebase/STRUCTURE.md`, `.oxe/codebase/CONCERNS.md`, `.oxe/codebase/INTEGRATIONS.md` orientam quais arquivos focar.
|
|
14
|
+
- **Severidade:** P0 = crítico (exploração provável, impacto direto), P1 = alto (requer mitigação antes do próximo deploy), P2 = médio (risco aceitável com compensação documentada).
|
|
15
|
+
- **Saída de tarefas:** recomendações vinculadas a `Tn` existentes no PLAN.md (se disponível) ou como sugestões de novas tarefas `T_new`.
|
|
16
|
+
- **Integração com verify:** se `security_in_verify: true` em `.oxe/config.json`, o workflow `verify.md` inclui referência a este output como Camada 5. O `security.md` continua sendo o workflow canônico.
|
|
17
|
+
- **Não alterar código:** apenas auditar e registrar achados. Nenhum arquivo de código é modificado.
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<owasp_scope>
|
|
21
|
+
## Mapeamento OWASP → Stack
|
|
22
|
+
|
|
23
|
+
Antes de auditar, determinar quais categorias se aplicam lendo `STACK.md` e `INTEGRATIONS.md`:
|
|
24
|
+
|
|
25
|
+
| Categoria OWASP | Aplicável quando |
|
|
26
|
+
|-----------------|-----------------|
|
|
27
|
+
| A01 — Broken Access Control | App com autenticação/autorização ou rotas protegidas |
|
|
28
|
+
| A02 — Cryptographic Failures | Dados sensíveis em trânsito ou em repouso; senhas; tokens |
|
|
29
|
+
| A03 — Injection | DB queries, shell commands, parsers de entrada, templates |
|
|
30
|
+
| A04 — Insecure Design | Ausência de modelagem de ameaças; fluxos de negócio sem validação |
|
|
31
|
+
| A05 — Security Misconfiguration | Config de servidor, CORS, headers HTTP, variáveis de ambiente |
|
|
32
|
+
| A06 — Vulnerable Components | Dependências com CVEs conhecidos; versões sem suporte |
|
|
33
|
+
| A07 — Authentication Failures | Login, sessão, JWT, OAuth, tokens de reset |
|
|
34
|
+
| A08 — Software Integrity | Supply chain; checksums; CI/CD sem verificação |
|
|
35
|
+
| A09 — Logging & Monitoring | Ausência de logs de eventos críticos; dados sensíveis em logs |
|
|
36
|
+
| A10 — SSRF | Requisições a URLs controladas pelo usuário; fetch/proxy interno |
|
|
37
|
+
|
|
38
|
+
**Selecionar apenas as categorias aplicáveis** ao stack identificado. Listar explicitamente as ignoradas e o motivo.
|
|
39
|
+
</owasp_scope>
|
|
40
|
+
|
|
41
|
+
<process>
|
|
42
|
+
1. Ler `.oxe/codebase/STACK.md`, `.oxe/codebase/STRUCTURE.md`, `.oxe/codebase/INTEGRATIONS.md`, `.oxe/codebase/CONCERNS.md`.
|
|
43
|
+
2. Selecionar categorias OWASP aplicáveis ao stack (ver `<owasp_scope>`); registrar as descartadas.
|
|
44
|
+
3. Para cada categoria aplicável:
|
|
45
|
+
a. Identificar **arquivos críticos** (auth, input handlers, DB queries, configs, env, deps).
|
|
46
|
+
b. Ler os arquivos relevantes (Glob, Grep, Read) procurando padrões de risco.
|
|
47
|
+
c. Registrar achados com: localização (`path:linha`), padrão encontrado, severidade (P0/P1/P2), recomendação.
|
|
48
|
+
4. Ler `.oxe/PLAN.md` se existir — vincular achados P0/P1 a tarefas `Tn` existentes quando possível, ou criar sugestão `T_new`.
|
|
49
|
+
5. Escrever `.oxe/SECURITY.md` a partir de `oxe/templates/SECURITY.template.md`.
|
|
50
|
+
6. Atualizar `.oxe/STATE.md`: nota de segurança (ex.: `security_audit: YYYY-MM-DD | P0:N | P1:N | P2:N`).
|
|
51
|
+
7. Responder no chat: total de achados por severidade, arquivos mais críticos identificados, próximo passo (P0 presentes → bloquear deploy; apenas P2 → ação opcional).
|
|
52
|
+
</process>
|
|
53
|
+
|
|
54
|
+
<success_criteria>
|
|
55
|
+
- [ ] `.oxe/SECURITY.md` existe com categorias OWASP selecionadas e justificativa de descarte.
|
|
56
|
+
- [ ] Cada achado tem: localização, padrão, severidade, recomendação.
|
|
57
|
+
- [ ] Categorias sem achados registradas como "nenhum achado nesta categoria".
|
|
58
|
+
- [ ] Achados P0/P1 vinculados a `Tn` existente ou sugestão `T_new`.
|
|
59
|
+
- [ ] Nenhum arquivo de código foi modificado.
|
|
60
|
+
- [ ] STATE.md tem linha `security_audit` com data e contagem de achados.
|
|
61
|
+
</success_criteria>
|
package/oxe/workflows/verify.md
CHANGED
|
@@ -104,4 +104,6 @@ O preenchimento da checklist é responsabilidade do **usuário** (não do agente
|
|
|
104
104
|
- [ ] SUMMARY.md atualizado quando houver falha ou gaps relevantes.
|
|
105
105
|
- [ ] Se passou: seções **Rascunho de commit** e **Checklist PR** presentes em VERIFY.md, salvo se desativadas na config.
|
|
106
106
|
- [ ] Se existiu DISCUSS.md: tabela de Fidelidade de decisões preenchida sem divergências não documentadas.
|
|
107
|
+
- [ ] Se `verification_depth: "thorough"` em config: `.oxe/VALIDATION-GAPS.md` produzido como parte deste verify.
|
|
108
|
+
- [ ] Se `security_in_verify: true` em config: `.oxe/SECURITY.md` produzido; achados P0 resolvidos ou `verify_failed` registrado.
|
|
107
109
|
</success_criteria>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oxe-cc",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "OXE — spec-driven workflows in .oxe/; integrates with Cursor, GitHub Copilot, Claude, OpenCode, Gemini, Codex, Windsurf, Antigravity (npx)",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"author": "",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
],
|
|
55
55
|
"scripts": {
|
|
56
56
|
"sync:cursor": "node scripts/sync-cursor-from-prompts.cjs",
|
|
57
|
-
"test": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-sdk.test.cjs tests/oxe-manifest.test.cjs tests/oxe-agent-install.test.cjs tests/oxe-install-resolve-full.test.cjs tests/oxe-health-extended.test.cjs tests/oxe-workflows-edge.test.cjs tests/oxe-sdk-edge.test.cjs tests/oxe-cli-edge.test.cjs tests/oxe-npm-version.test.cjs tests/oxe-scripts.test.cjs",
|
|
57
|
+
"test": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-sdk.test.cjs tests/oxe-manifest.test.cjs tests/oxe-agent-install.test.cjs tests/oxe-install-resolve-full.test.cjs tests/oxe-health-extended.test.cjs tests/oxe-workflows-edge.test.cjs tests/oxe-sdk-edge.test.cjs tests/oxe-cli-edge.test.cjs tests/oxe-npm-version.test.cjs tests/oxe-scripts.test.cjs tests/oxe-retro-health.test.cjs",
|
|
58
58
|
"test:coverage": "c8 --check-coverage --lines 82 --functions 85 --branches 58 --statements 82 npm test",
|
|
59
59
|
"scan:assets": "node scripts/oxe-assets-scan.cjs",
|
|
60
60
|
"prepublishOnly": "node scripts/sync-cursor-from-prompts.cjs && npm test && npm run scan:assets && node bin/oxe-cc.js --version"
|