oxe-cc 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/commands/oxe-loop.md +11 -0
- package/.cursor/commands/oxe-project.md +11 -0
- package/.cursor/commands/oxe-security.md +11 -0
- package/.cursor/commands/oxe.md +9 -0
- package/.github/prompts/oxe-loop.prompt.md +12 -0
- package/.github/prompts/oxe-project.prompt.md +12 -0
- package/.github/prompts/oxe-security.prompt.md +12 -0
- package/.github/prompts/oxe.prompt.md +12 -0
- package/README.md +287 -307
- package/bin/banner.txt +1 -1
- package/bin/oxe-cc.js +1 -1
- package/commands/oxe/loop.md +17 -0
- package/commands/oxe/oxe.md +16 -0
- package/commands/oxe/project.md +16 -0
- package/commands/oxe/security.md +16 -0
- package/oxe/templates/SECURITY.template.md +72 -0
- package/oxe/templates/plan-agents.template.json +3 -2
- package/oxe/workflows/execute.md +22 -0
- package/oxe/workflows/help.md +40 -24
- package/oxe/workflows/loop.md +57 -0
- package/oxe/workflows/oxe.md +115 -0
- package/oxe/workflows/plan-agent.md +20 -3
- package/oxe/workflows/plan.md +2 -1
- package/oxe/workflows/project.md +50 -0
- package/oxe/workflows/research.md +16 -0
- package/oxe/workflows/scan.md +14 -0
- package/oxe/workflows/security.md +61 -0
- package/oxe/workflows/verify.md +5 -2
- package/package.json +1 -1
|
@@ -0,0 +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>
|
package/oxe/workflows/verify.md
CHANGED
|
@@ -21,8 +21,9 @@ Se o usuário indicar uma tarefa (ex.: `T2`), focar só nela nas camadas 1–2;
|
|
|
21
21
|
- **Legado:** quando **Comando** for `—` ou inexistente, evidência válida inclui **Read/Grep**, existência de ficheiros referenciados e checklist manual — não marcar critério como passou sem evidência; se o ambiente host/desktop não estiver disponível, registar **não executado aqui** e próximo passo. Ver **`oxe/workflows/references/legacy-brownfield.md`**.
|
|
22
22
|
- **Debug:** investigação técnica de falhas **durante** a implementação segue **`oxe/workflows/debug.md`** (`/oxe-debug`). Resolver um bug com debug **não** dispensa este passo — após correções, **ainda** é necessário **`verify`** para fechar a trilha face à SPEC/PLAN.
|
|
23
23
|
- **UI:** se existirem `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md`, incorporar na evidência quando os critérios **A*** ou tarefas **Tn** tocarem interface.
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
24
|
+
- **Camada 5 — Validate-gaps (automático quando `verification_depth: "thorough"`):** após as 4 camadas, se `verification_depth: "thorough"` em `.oxe/config.json`, executar automaticamente a lógica de `oxe/workflows/validate-gaps.md` e produzir `.oxe/VALIDATION-GAPS.md` como parte deste verify. Não requer comando separado.
|
|
25
|
+
- **Camada 6 — Security (automático quando `security_in_verify: true`):** se `security_in_verify: true` em `.oxe/config.json`, executar automaticamente a lógica de `oxe/workflows/security.md` e produzir `.oxe/SECURITY.md` como parte deste verify. Não requer comando separado.
|
|
26
|
+
- **Rotina compact/checkpoint (opcional):** se esta entrega alterou **estrutura**, **stack** ou **pastas** de forma relevante, `/oxe-scan` em modo refresh alinha `.oxe/codebase/` ao repo. Após **verify** com sucesso, `/oxe-project checkpoint` com slug curto pode marcar estado estável.
|
|
26
27
|
</context>
|
|
27
28
|
|
|
28
29
|
<camada_1_pre_exec_audit>
|
|
@@ -88,6 +89,8 @@ O preenchimento da checklist é responsabilidade do **usuário** (não do agente
|
|
|
88
89
|
6. Atualizar **`.oxe/STATE.md`**: `verify_complete` ou `verify_failed` + próximo passo (replan, corrigir ou publicar).
|
|
89
90
|
6b. **Blueprint plan-agent:** se **todas** as verificações relevantes **passaram**, existir **`.oxe/plan-agents.json`** com `oxePlanAgentsSchema === 2` e `lifecycle.status === "executing"` (ou `pending_execute`), actualizar o JSON: `lifecycle: { "status": "closed", "since": "<ISO>" }` e espelhar em **`STATE.md`** (**lifecycle_status** → `closed`). Não fechar como `closed` se `verify_failed` ou gaps por resolver.
|
|
90
91
|
7. Acrescentar entrada em **`.oxe/SUMMARY.md`** (sessão): se não existir, criar a partir de **`oxe/templates/SUMMARY.template.md`**. **Obrigatório** quando `verify_failed` ou quando a seção **Gaps** tiver itens.
|
|
92
|
+
7b. **Camada 5 — Validate-gaps automático:** se `verification_depth: "thorough"` em `.oxe/config.json`, executar a lógica de `oxe/workflows/validate-gaps.md` e adicionar seção **Gaps de Cobertura** ao VERIFY.md (mesmo conteúdo de VALIDATION-GAPS.md). Também escrever `.oxe/VALIDATION-GAPS.md` separado.
|
|
93
|
+
7c. **Camada 6 — Security automático:** se `security_in_verify: true` em `.oxe/config.json`, executar a lógica de `oxe/workflows/security.md` e adicionar seção **Auditoria de Segurança** ao VERIFY.md. Também escrever `.oxe/SECURITY.md` separado. Achados P0 bloqueiam o `verify_complete` — registrar `verify_failed` até P0s serem resolvidos.
|
|
91
94
|
8. **Só se todas as verificações relevantes passarem:** se `after_verify_draft_commit` não for `false`: acrescentar em **VERIFY.md** a seção **Rascunho de commit** — mensagem convencional (ex.: `feat:` / `fix:`) + bullets alinhados aos critérios **A*** e decisões **D-NN**; **não** incluir segredos.
|
|
92
95
|
9. **Só se passou:** se `after_verify_suggest_pr` não for `false`: acrescentar **Checklist PR** — branch base, título sugerido, screenshots se UI, links a SPEC/PLAN/DISCUSS, testes executados.
|
|
93
96
|
</process>
|
package/package.json
CHANGED