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.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: oxe:loop
3
+ description: OXE — Execução iterativa de onda com retries automáticos e diagnóstico inline
4
+ argument-hint: "onda <N> [max:<tentativas>]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - Write
11
+ - Edit
12
+ - Task
13
+ ---
14
+
15
+ **Workflow canônico:** `oxe/workflows/loop.md`
16
+
17
+ Execute integralmente esse ficheiro na raiz do repositório. `$ARGUMENTS` = onda alvo e máximo de tentativas. Pré-requisito: `.oxe/PLAN.md`.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: oxe
3
+ description: OXE — Entrada universal: próximo passo, roteamento de linguagem natural ou help dos 8 comandos essenciais
4
+ argument-hint: "[contexto | 'help' | vazio]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - Write
11
+ - Task
12
+ ---
13
+
14
+ **Workflow canônico:** `oxe/workflows/oxe.md`
15
+
16
+ Execute integralmente esse ficheiro. `$ARGUMENTS`: vazio → próximo passo; texto → roteamento inteligente; "help" → 8 comandos essenciais.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: oxe:project
3
+ description: OXE — Gestão de projeto: milestone (M-NN), workstream (trilhas paralelas), checkpoint (snapshot)
4
+ argument-hint: "milestone new|complete|status|audit | workstream new|switch|list|close <nome> | checkpoint [slug]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - Write
11
+ - Task
12
+ ---
13
+
14
+ **Workflow canônico:** `oxe/workflows/project.md`
15
+
16
+ Execute integralmente esse ficheiro. `$ARGUMENTS` = subcomando. Sem argumento: mostra status atual (milestone ativo, workstreams, último checkpoint).
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: oxe:security
3
+ description: OXE — Auditoria de segurança OWASP (.oxe/SECURITY.md): P0 crítico / P1 alto / P2 médio
4
+ argument-hint: "[opcional: categoria OWASP, módulo ou arquivo]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - Write
11
+ - Task
12
+ ---
13
+
14
+ **Workflow canônico:** `oxe/workflows/security.md`
15
+
16
+ Execute integralmente esse ficheiro na raiz do repositório. Lê `STACK.md` para determinar categorias OWASP pertinentes. `$ARGUMENTS` = foco opcional.
@@ -0,0 +1,72 @@
1
+ ---
2
+ oxe_doc: security
3
+ status: draft
4
+ updated: YYYY-MM-DD
5
+ stack_ref: .oxe/codebase/STACK.md
6
+ plan_ref: .oxe/PLAN.md
7
+ ---
8
+
9
+ # Auditoria de Segurança OXE
10
+
11
+ ## Stack e escopo
12
+
13
+ **Stack identificado:** [linguagem, framework, DB, auth]
14
+ **Categorias OWASP avaliadas:** A01, A02, A03, ...
15
+ **Categorias descartadas:** A04 (motivo), A08 (motivo), ...
16
+
17
+ ---
18
+
19
+ ## Achados
20
+
21
+ ### P0 — Crítico (requer ação imediata)
22
+
23
+ | ID | Categoria | Arquivo:linha | Padrão encontrado | Recomendação | Tarefa |
24
+ |----|-----------|--------------|-------------------|--------------|--------|
25
+ | S-01 | A07 — Auth | `src/auth/login.ts:42` | Senha comparada sem hash | Usar bcrypt/argon2 | T_new |
26
+
27
+ ### P1 — Alto (antes do próximo deploy)
28
+
29
+ | ID | Categoria | Arquivo:linha | Padrão encontrado | Recomendação | Tarefa |
30
+ |----|-----------|--------------|-------------------|--------------|--------|
31
+ | S-02 | A05 — Config | `.env.example:8` | JWT_SECRET sem rotação documentada | Documentar política de rotação | T3 |
32
+
33
+ ### P2 — Médio (ação recomendada, compensação aceitável)
34
+
35
+ | ID | Categoria | Arquivo:linha | Padrão encontrado | Recomendação | Tarefa |
36
+ |----|-----------|--------------|-------------------|--------------|--------|
37
+ | S-03 | A09 — Logging | `src/api/handler.ts:15` | Erro logado com stack trace completo em produção | Filtrar dados sensíveis em prod | T_new |
38
+
39
+ ---
40
+
41
+ ## Resultado por categoria
42
+
43
+ | Categoria OWASP | Status | Achados |
44
+ |-----------------|--------|---------|
45
+ | A01 — Broken Access Control | ✅ Sem achados | — |
46
+ | A02 — Cryptographic Failures | ⚠️ P1 | S-02 |
47
+ | A03 — Injection | ✅ Sem achados | — |
48
+ | A05 — Security Misconfiguration | ⚠️ P1 | S-02 |
49
+ | A07 — Authentication Failures | ❌ P0 | S-01 |
50
+ | A09 — Logging & Monitoring | ⚠️ P2 | S-03 |
51
+
52
+ ---
53
+
54
+ ## Sugestões de tarefas novas
55
+
56
+ ```
57
+ T_new-S01: Implementar hash de senha com bcrypt (custo ≥ 12)
58
+ Verificar: login falha com senha errada; hash visível no DB.
59
+ Aceite vinculado: [A* de segurança se existir na SPEC]
60
+
61
+ T_new-S03: Filtrar stack traces em logs de produção
62
+ Verificar: log em NODE_ENV=production não expõe stacktrace.
63
+ Aceite vinculado: —
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Próximo passo
69
+
70
+ - **P0 presente:** ação obrigatória antes de qualquer deploy — criar tarefas e adicionar ao PLAN via `/oxe-plan --replan`.
71
+ - **Apenas P1/P2:** priorizar P1 na próxima onda; P2 pode ir para backlog v2.
72
+ - **Sem achados:** registrar como "auditoria limpa em YYYY-MM-DD" e prosseguir.
@@ -1,5 +1,5 @@
1
1
  {
2
- "oxePlanAgentsSchema": 2,
2
+ "oxePlanAgentsSchema": 3,
3
3
  "runId": "oxe-YYYY-MM-DD-substituir-por-id-opaco",
4
4
  "lifecycle": {
5
5
  "status": "pending_execute",
@@ -18,7 +18,8 @@
18
18
  "taskIds": ["T1"],
19
19
  "dependencies": [],
20
20
  "inputs": [".oxe/STATE.md", ".oxe/SPEC.md"],
21
- "outputs": ["src/example.ts"]
21
+ "outputs": ["src/example.ts"],
22
+ "model_hint": "balanced"
22
23
  }
23
24
  ],
24
25
  "execution": {
@@ -72,11 +72,33 @@ Este plano tem [N] tarefas em [X] ondas. Como quer executar?
72
72
  **Persistir escolha:** registrar em STATE.md: `execute_mode: completo | por_onda | por_tarefa`. Se STATE já tiver o campo, não perguntar novamente — usar o modo armazenado.
73
73
  </execution_mode_selection>
74
74
 
75
+ <failure_mode>
76
+ ## Modo de falha inline (Verificar falha durante execute)
77
+
78
+ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenciosamente**. Executar este ciclo inline sem exigir que o usuário chame `/oxe-debug` separadamente:
79
+
80
+ 1. **Diagnóstico rápido:** listar 2-3 hipóteses de causa baseadas no output de erro.
81
+ 2. **Fix mais provável:** aplicar o fix para a hipótese #1.
82
+ 3. **Re-verificar:** rodar o `Verificar` novamente.
83
+ 4. Se passou: continuar onda normalmente; registrar na onda que houve 1 iteração de fix.
84
+ 5. Se falhou novamente (2ª tentativa): aplicar hipótese #2 e tentar 1 vez mais.
85
+ 6. Se falhou após 2 tentativas: **pausar** — exibir as hipóteses testadas, evidências coletadas, e sugerir `/oxe-forensics` com contexto completo. Registrar em STATE.md: `execute_blocked: Tn | motivo`.
86
+
87
+ **Auto-loop no Modo B:** se `execute_mode: por_onda` e `loop_max` > 1 em STATE.md, o ciclo de retry roda automaticamente até `loop_max` tentativas antes de escalar para forensics.
88
+ </failure_mode>
89
+
75
90
  <context>
76
91
  **Observações pendentes:** verificar `.oxe/OBSERVATIONS.md` no início de cada onda. Se houver entradas `pendente` com impacto `execute` ou `all`, incorporar no trabalho da onda atual e marcá-las `incorporada → execute (data)`.
77
92
 
78
93
  **Quick-agents (lean PDDA):** se existir **`.oxe/quick-agents.json`** com `status: active` e a execução for baseada em **`QUICK.md`** (não há PLAN.md), adotar o `role` e `persona` de cada agente para os `steps[]` atribuídos. Ao concluir todos os steps, marcar `quick-agents.json` → `status: done` e sugerir `/oxe-verify`.
79
94
 
95
+ **Model hints (blueprint com agentes):** ao apresentar a atribuição de cada agente no início da onda, exibir `model_hint` se presente:
96
+ ```
97
+ Agente: agent-auth — "Especialista em JWT" [modelo: powerful]
98
+ Tarefas: T1, T2
99
+ ```
100
+ Se `model_hint` estiver ausente, não exibir a linha. O usuário pode configurar o modelo no IDE antes de iniciar aquele agente.
101
+
80
102
  **Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de **`.oxe/plan-agents.json`** SOMENTE quando:
81
103
  1. `lifecycle.status` ∈ `{ pending_execute, executing }` (não usar se `closed` ou `invalidated`).
82
104
  2. **`runId`** no JSON coincide com **`run_id`** no STATE.md (secção Blueprint de agentes).
@@ -11,11 +11,30 @@ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout
11
11
  </context>
12
12
 
13
13
  <output>
14
+ ## Os 8 comandos essenciais
15
+
16
+ ```
17
+ /oxe → onde estou / o que faço / help (entrada universal)
18
+ /oxe-obs → registrei algo importante — incorporado automaticamente nos próximos passos
19
+ /oxe-quick → tarefa pequena, sem cerimônia (com agentes lean quando necessário)
20
+ /oxe-scan → mapeia o projeto (ou atualiza o mapa se já existir)
21
+ /oxe-spec → nova feature: perguntas → pesquisa → requisitos → roteiro → aprovação
22
+ /oxe-plan → tarefas por onda (--agents para blueprint multi-agente)
23
+ /oxe-execute → implementar (A: 1 sessão | B: por onda | C: por tarefa)
24
+ /oxe-verify → validar (camadas 5+6 opcionais via config: gaps + segurança)
25
+ ```
26
+
27
+ Tudo o mais é ativado automaticamente por contexto, por config, ou existe como escape hatch.
28
+
29
+ ---
30
+
14
31
  ## Integrações principais (referência)
15
32
 
16
33
  ### Cursor
17
34
 
18
- Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-plan-agent`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/oxe-obs`, `/oxe-update`, `/oxe-help`, `/oxe-forensics`, `/oxe-debug`, `/oxe-route`, `/oxe-research`, `/oxe-validate-gaps`, `/oxe-compact`, `/oxe-checkpoint`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-milestone`, `/oxe-workstream` (instalados em `~/.cursor/commands/` pelo `oxe-cc` após `npm run sync:cursor` no pacote ou cópia equivalente). **Review de PR:** no Cursor não há slash dedicado — peça em linguagem natural seguindo `oxe/workflows/review-pr.md` (ou `.oxe/workflows/review-pr.md`) em contexto.
35
+ Slash commands essenciais: `/oxe`, `/oxe-obs`, `/oxe-quick`, `/oxe-scan`, `/oxe-spec`, `/oxe-plan`, `/oxe-execute`, `/oxe-verify`
36
+
37
+ Slash commands completos: `/oxe-discuss`, `/oxe-plan-agent`, `/oxe-project`, `/oxe-loop`, `/oxe-security`, `/oxe-update`, `/oxe-forensics`, `/oxe-debug`, `/oxe-route`, `/oxe-research`, `/oxe-validate-gaps`, `/oxe-compact`, `/oxe-checkpoint`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-milestone`, `/oxe-workstream`, `/oxe-next`, `/oxe-help` (instalados em `~/.cursor/commands/` pelo `oxe-cc`). **Review de PR:** no Cursor não há slash dedicado — peça em linguagem natural seguindo `oxe/workflows/review-pr.md` em contexto.
19
38
 
20
39
  ### GitHub Copilot (VS Code)
21
40
 
@@ -49,29 +68,26 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
49
68
 
50
69
  ## Fluxo completo
51
70
 
52
- 0. **obs** *(qualquer momento)* — `/oxe-obs` registra uma observação contextual em `.oxe/OBSERVATIONS.md`; incorporada automaticamente no próximo spec/plan/execute sem re-explicar (ver seção **Observações** abaixo).
53
- 1. **scan** — após clonar ou quando o repositório mudar muito. Repositórios **legado** (COBOL, JCL, copybooks, VB6, SQL procedures): o passo **scan** aplica `oxe/workflows/references/legacy-brownfield.md` quando esses sinais existirem preencha `TESTING.md` com honestidade (sem `npm test` fictício) e use `scan_focus_globs` em `.oxe/config.json` (ver `oxe/templates/CONFIG.md`).
54
- 2. **spec** — fluxo em **5 fases**: perguntas (máx 3 rodadas) → pesquisa (opcional) → requisitos R-ID (v1/v2/fora) → roteiro (`.oxe/ROADMAP.md`) → aprovação instrui plan ou plan-agent.
55
- 2b. **research** (opcional, pode ser proposto pela Fase 2 do spec) notas datadas em `.oxe/research/` + índice `.oxe/RESEARCH.md`; spikes, mapa de sistema, engenharia reversa, modernização.
56
- 3. **discuss** (opcional) decisões com IDs D-NN antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`. Incorpora OBS pendentes de impacto spec/plan.
57
- 4. **plan** — plano executável + **Verificar** por tarefa, ligado aos critérios A* da SPEC. Incorpora OBS pendentes de impacto plan.
58
- 4b. **plan-agent** (opcional) — igual ao **plan** + **`.oxe/plan-agents.json`** (schema **2**: `runId` **novo** por demanda, `lifecycle`). Agentes criados especificamente para ESTE plano sem reuso entre demandas. `/oxe-quick` invalida o blueprint.
59
- 5. **execute** — seleção de modo ao iniciar: **A) Completo** (1 sessão/requisição), **B) Por onda** (N sessões), **C) Por tarefa** (controle máximo). Incorpora OBS pendentes de impacto execute.
60
- 6. Implementar mudanças no agente/editor.
61
- 7. **verify** — 4 camadas: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, UAT checklist.
62
- 7b. **validate-gaps** (opcional) após verify, auditoria de cobertura em `.oxe/VALIDATION-GAPS.md`.
63
- 8. **next**retomar trabalho; no terminal: **`npx oxe-cc status`** sugere um único próximo passo.
64
-
65
- **Recuperação e meta (mesma trilha, outra camada):**
66
-
67
- - **`/oxe-forensics`** — após `verify` falhar, `doctor` em falta ou estado incoerente; escreve `.oxe/FORENSICS.md` e recomenda **um** reingresso: `scan`, `plan` ou `execute` (ver `forensics.md`).
68
- - **`/oxe-debug`** — durante **`execute`**, para sintomas técnicos (teste vermelho, stack); escreve `.oxe/DEBUG.md`; **não** substitui `verify` após corrigir (ver `debug.md`).
69
- - **`/oxe-route`** — desambigua pedido em linguagem natural → **um** workflow/comando; não gera SPEC/PLAN (ver `route.md` e tabela **Router** abaixo).
70
-
71
- **Contexto em disco (opcional):**
72
-
73
- - **`/oxe-compact`** — **refresh do projeto**: compara **`.oxe/codebase/*.md`** ao repositório atual, **atualiza** os sete mapas (incremental ou bootstrap como `scan.md` se faltar base), escreve **`.oxe/CODEBASE-DELTA.md`** (o que mudou na documentação) e **`.oxe/RESUME.md`** (trilha OXE + ponte para o delta). Rotina de desenvolvimento; **não** está ligado a limites de chat ou a ferramentas específicas (ver `compact.md`). *Exemplo:* scan mapeou **Angular 17**; após migração implementada para **21**, o compact **corrige** `STACK.md`/testes/convenções face ao repo — intenção: **documentação OXE = código atual**, não refazer scan completo só por bump de major.
74
- - **`/oxe-checkpoint`** — **snapshot de sessão**: **`.oxe/checkpoints/…md`** + **`.oxe/CHECKPOINTS.md`**; marco nomeado sem apagar SPEC/PLAN (ver `checkpoint.md`).
71
+ 0. **obs** *(qualquer momento)* — `/oxe-obs` registra uma observação contextual; incorporada automaticamente no próximo spec/plan/execute sem re-explicar.
72
+ 1. **scan** — após clonar ou quando o codebase mudar. **Inteligente:** se `.oxe/codebase/` existir, opera em modo refresh (incremental) automaticamente sem precisar chamar `/oxe-compact` separadamente. Use `--full` para forçar scan completo. Repositórios **legado** (COBOL, JCL, VB6): aplica `legacy-brownfield.md` automaticamente.
73
+ 2. **spec** — fluxo em **5 fases**: perguntas (máx 3 rodadas) → pesquisa (proposta inline na Fase 2, sem sair do spec) → requisitos R-ID (v1/v2/fora) → roteiro (`.oxe/ROADMAP.md`) → aprovação. Se `discuss_before_plan: true` na config, o próximo passo após aprovação é `oxe:discuss` antes de plan.
74
+ 3. **plan** plano executável + **Verificar** por tarefa. Se 3+ domínios distintos, **sugere automaticamente** blueprint de agentes (`/oxe-plan --agents`). Sem `--agents`: solo. Com `--agents`: gera também `plan-agents.json` (schema 3 com `model_hint`).
75
+ 4. **execute** — modo selecionado 1 vez: **A) Completo** (1 sessão), **B) Por onda**, **C) Por tarefa**. Se Verificar falhar inline: diagnóstico automático (2-3 hipóteses + fix), sem precisar chamar `/oxe-debug` separadamente. Escalação para `/oxe-forensics` se esgotar tentativas.
76
+ 5. **verify** — até **6 camadas** por config: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, UAT, **gaps de cobertura** (camada 5 — `verification_depth: "thorough"`), **segurança OWASP** (camada 6 — `security_in_verify: true`). Sem comandos extras.
77
+ 6. **→ próximo passo** `/oxe` sugere automaticamente o que fazer agora (nova feature, milestone, ou revisar gaps).
78
+
79
+ **Escape hatches (não precisam ser decorados — aparecem quando necessários):**
80
+
81
+ - **`/oxe-forensics`**sugerido automaticamente pelo execute/verify quando falha persiste. Diagnóstico pós-falha + 1 caminho de reentrada.
82
+ - **`/oxe-debug`**diagnóstico técnico inline durante execute (já integrado ao execute; disponível standalone para controle explícito).
83
+ - **`/oxe-loop`** — iteração até verify passar (disponível standalone; integrado ao Modo B do execute via `loop_max`).
84
+ - **`/oxe-research`** notas datadas em `.oxe/research/` para spikes, mapas de sistema, engenharia reversa.
85
+ - **`/oxe-route`** — traduz linguagem natural → comando. Equivalente a `/oxe [texto]`.
86
+ - **`/oxe-compact`** — refresh explícito do codebase. Equivalente a `/oxe-scan` sem `--full`.
87
+
88
+ **Gestão de projeto (`/oxe-project`):**
89
+
90
+ Um único comando para: `milestone new|complete|status|audit`, `workstream new|switch|list|close <nome>`, `checkpoint [slug]`. Sem argumento: mostra status atual.
75
91
 
76
92
  **Vertical UI (opcional, mesma trilha):**
77
93
 
@@ -0,0 +1,57 @@
1
+ # OXE — Workflow: loop (execução iterativa até verificação passar)
2
+
3
+ <objective>
4
+ Executar uma **onda do PLAN.md** em ciclo iterativo até que a verificação inline passe ou o limite de tentativas seja atingido. Complementa o **Modo B** (por onda) do **`execute.md`** com retries automáticos e diagnóstico inline de falhas.
5
+
6
+ Quando verify falha, não interrompe — diagnostica (2-3 hipóteses), corrige, tenta de novo. Escala para **`/oxe-forensics`** apenas quando esgota as tentativas.
7
+ </objective>
8
+
9
+ <context>
10
+ - **Pré-requisito:** `.oxe/PLAN.md` existente com pelo menos 1 onda; `STATE.md` com fase ≥ `plan_ready`.
11
+ - **Máximo de iterações:** padrão = 3; configurável via argumento `max:<N>` (ex.: `/oxe-loop onda 2 max:5`). Nunca exceder 10.
12
+ - **Artefato:** não cria novos arquivos — atualiza `STATE.md` com campos `loop_*` e registra cada iteração como bloco inline no chat.
13
+ - **Escalação:** se esgotou tentativas e ainda falhou → registrar estado em STATE.md + sugerir `/oxe-forensics` com contexto das hipóteses já tentadas.
14
+ - **Não substitui** `/oxe-verify` global (4 camadas): o loop faz verificação **inline por onda** (comando `**Verificar:**` de cada Tn); o verify completo deve ser chamado ao final de todas as ondas.
15
+ </context>
16
+
17
+ <loop_state>
18
+ ## Campos em STATE.md durante o loop
19
+
20
+ ```yaml
21
+ loop_onda: 2 # número da onda sendo executada
22
+ loop_iteracao: 2/3 # tentativa atual / máximo
23
+ loop_status: retrying # retrying | passed | escalated
24
+ loop_hipoteses: ["H1: ...", "H2: ..."] # hipóteses da última falha
25
+ ```
26
+
27
+ Limpar campos `loop_*` ao concluir com `passed` (ou manter `escalated` se escalou para forensics).
28
+ </loop_state>
29
+
30
+ <process>
31
+ 1. Ler `.oxe/STATE.md` e `.oxe/PLAN.md`. Identificar a onda alvo (argumento do usuário ou próxima onda pendente em STATE).
32
+ 2. Registrar em STATE.md: `loop_onda: N`, `loop_iteracao: 1/<max>`, `loop_status: retrying`.
33
+ 3. **Iteração:**
34
+ a. Listar tarefas da onda N com seus comandos `**Verificar:**`.
35
+ b. Implementar todas as tarefas da onda (seguindo `execute.md` `<modo_solo>`).
36
+ c. Executar os comandos `Verificar` de cada `Tn`.
37
+ d. **Se todos passaram:** registrar `loop_status: passed`; limpar campos `loop_*`; atualizar STATE.md com onda concluída; informar usuário e sugerir próxima onda ou `/oxe-verify`.
38
+ e. **Se algum falhou:**
39
+ - Listar 2-3 hipóteses de causa (baseado no erro/output da verificação).
40
+ - Registrar `loop_hipoteses` em STATE.md.
41
+ - Incrementar iteração: `loop_iteracao: K+1/<max>`.
42
+ - Se `K+1 > max`: ir para passo 4 (escalação).
43
+ - Senão: aplicar fix para a hipótese mais provável → voltar a `c`.
44
+ 4. **Escalação (tentativas esgotadas):**
45
+ - Registrar `loop_status: escalated` em STATE.md.
46
+ - Exibir no chat: tentativas realizadas, hipóteses testadas, evidência de cada falha.
47
+ - Sugerir `/oxe-forensics` com contexto: "onda N falhou após <max> tentativas — hipóteses testadas: H1, H2, H3".
48
+ </process>
49
+
50
+ <success_criteria>
51
+ - [ ] STATE.md tem campos `loop_*` atualizados a cada iteração.
52
+ - [ ] Cada falha gera 2-3 hipóteses registradas antes de tentar fix.
53
+ - [ ] Ao passar: campos `loop_*` limpos; onda marcada como concluída em STATE.md.
54
+ - [ ] Ao esgotar: `loop_status: escalated` + sugestão de `/oxe-forensics` com contexto completo.
55
+ - [ ] Nunca excede `max` iterações configurado.
56
+ - [ ] Não altera `.oxe/PLAN.md` (só implementa o que já está planejado).
57
+ </success_criteria>
@@ -0,0 +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
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>
@@ -22,7 +22,7 @@ Se o utilizador pedir **`--replan`**: aplicar a mesma lógica de replanejamento
22
22
  - **`sequential`** — uma onda por agente (ondas com um único id cada) ou execução estritamente ordenada.
23
23
  - **`parallel_per_wave`** — dentro de cada onda, agentes sem dependência mútua podem correr em paralelo; ondas são sequenciais.
24
24
  - **`hybrid`** — ondas sequenciais; dentro da onda, paralelo quando `dependencies` já satisfeitas (é o caso mais comum).
25
- - **Schema:** **`oxePlanAgentsSchema: 2`** obrigatório nas novas gerações; incluir **`runId`** (string opaca única, ex. `oxe-{ISO8601}-{6 hex aleatórios}`) e **`lifecycle`**: `{ "status": "pending_execute", "since": "<ISO>" }`. Blueprints com schema **1** (legado) não aplicam exclusividade estrita até serem regerados.
25
+ - **Schema:** **`oxePlanAgentsSchema: 3`** obrigatório nas novas gerações (schema **2** = sem `model_hint`; schema **1** = legado sem `runId`/`lifecycle`). Incluir **`runId`** (string opaca única, ex. `oxe-{ISO8601}-{6 hex aleatórios}`) e **`lifecycle`**: `{ "status": "pending_execute", "since": "<ISO>" }`. Blueprints com schema **2** continuam válidos; schema **1** não aplica exclusividade estrita até serem regerados.
26
26
  - Modelo JSON: ver **`oxe/templates/plan-agents.template.json`** e **`oxe/schemas/plan-agents.schema.json`**.
27
27
  </context>
28
28
 
@@ -55,6 +55,22 @@ Se já existir `.oxe/plan-agents.json` com status não-terminal (`pending_execut
55
55
  Seguir **integralmente** o bloco **`<format_plan>`** e **`<plan_quality_gate>`** do ficheiro **`oxe/workflows/plan.md`** ao escrever `.oxe/PLAN.md` (incluindo gate antes de fechar).
56
56
  </format_plan_md>
57
57
 
58
+ <model_hints>
59
+ ## Model Hints por Agente (schema v3, opcional)
60
+
61
+ Cada agente pode declarar `model_hint` para orientar qual tier de modelo usar:
62
+
63
+ | Valor | Quando usar |
64
+ |-------|-------------|
65
+ | `"powerful"` | Agentes de análise, arquitetura, pesquisa, decisões de design |
66
+ | `"balanced"` | Agentes de implementação de features, integração, refactor |
67
+ | `"fast"` | Agentes de review, testes, lint, validação, tarefas repetitivas |
68
+
69
+ **Regra de uso:** quando o `plan-agents.json` tiver `model_hint`, o **`execute.md`** exibe a sugestão ao apresentar a atribuição do agente — permitindo ao usuário configurar o modelo antes de iniciar aquele agente.
70
+
71
+ `model_hint` é opcional: omitir significa "sem preferência" (executa com o modelo padrão da sessão).
72
+ </model_hints>
73
+
58
74
  <format_plan_agents_json>
59
75
  Raiz do ficheiro **`.oxe/plan-agents.json`**:
60
76
 
@@ -80,6 +96,7 @@ Cada **agente**:
80
96
  | `dependencies` | não | Lista de **`id`** de outros agentes que devem concluir antes (grafo entre agentes). |
81
97
  | `inputs` | não | Caminhos ou nomes de artefactos a carregar no contexto (ex.: `.oxe/STATE.md`, `.oxe/SPEC.md`). |
82
98
  | `outputs` | não | Paths ou padrões de ficheiros esperados (orientação; o código real vem do PLAN). |
99
+ | `model_hint` | não | Tier de modelo sugerido: `"fast"` \| `"balanced"` \| `"powerful"`. Ver `<model_hints>`. |
83
100
 
84
101
  **Personas disponíveis:** `executor`, `planner`, `verifier`, `researcher`, `debugger`, `architect`, `ui-specialist`, `db-specialist`. Ver `oxe/personas/README.md` para descrição de cada uma. Personas customizadas do projeto ficam em `.oxe/personas/`.
85
102
 
@@ -89,7 +106,7 @@ Cada **agente**:
89
106
  <plan_agent_quality_gate>
90
107
  Antes de finalizar, validar **em conjunto** `PLAN.md` + `plan-agents.json`:
91
108
 
92
- 1. **Schema:** JSON válido; `oxePlanAgentsSchema === 2`; presentes **`runId`** e **`lifecycle`** com `status: pending_execute` e `since` ISO; todos os `id` de agente únicos.
109
+ 1. **Schema:** JSON válido; `oxePlanAgentsSchema {2, 3}` (3 para novos blueprints); presentes **`runId`** e **`lifecycle`** com `status: pending_execute` e `since` ISO; todos os `id` de agente únicos. Se schema 3: `model_hint` de cada agente é `"fast"`, `"balanced"`, `"powerful"` ou ausente.
93
110
  2. **Cobertura de tarefas:** a união dos `taskIds` de todos os agentes é **igual** ao conjunto de `### Tn` presentes no `PLAN.md` (sem tarefa órfã nem tarefa duplicada entre agentes).
94
111
  3. **Dependências de agente:** só referenciam `id` existentes; **sem ciclos**; se o agente A depende de B, então **onda(B) < onda(A)** em `execution.waves` (primeira aparição do id define a onda).
95
112
  4. **Ondas:** cada `id` em `agents` aparece **exatamente uma vez** no total das `waves`; ordem das ondas reflete dependências e alinha com **Onda:** do `PLAN.md` (tarefas na mesma onda do PLAN podem mapear para agentes na mesma wave se não houver dependência agente-a-agente).
@@ -107,7 +124,7 @@ Resumo obrigatório no chat: `Gate plan-agent: OK` ou `Gate plan-agent: corrigid
107
124
  2. Conceber **agentes** e **ondas** (grafo por dependências de domínio); depois derivar **tarefas `Tn`** com o formato habitual do PLAN (uma tarefa continua a ser a unidade de **Verificar** e **Aceite vinculado**).
108
125
  3. Escrever **`.oxe/PLAN.md`** (cabeçalho YAML como em `oxe/templates/PLAN.template.md`; em **--replan**, secção Replanejamento).
109
126
  4. Gerar **`runId`** novo e **`lifecycle`**: `{ "status": "pending_execute", "since": "<ISO agora>" }`.
110
- 5. Escrever **`.oxe/plan-agents.json`** a partir de **`oxe/templates/plan-agents.template.json`**, com **`oxePlanAgentsSchema: 2`**, `goal`, `agents`, `execution`, `runId`, `lifecycle`.
127
+ 5. Escrever **`.oxe/plan-agents.json`** a partir de **`oxe/templates/plan-agents.template.json`**, com **`oxePlanAgentsSchema: 3`**, `goal`, `agents` (incluindo `model_hint` por agente conforme `<model_hints>`), `execution`, `runId`, `lifecycle`.
111
128
  6. Criar **`.oxe/plan-agent-messages/`** e **`.oxe/plan-agent-messages/README.md`** a partir de **`oxe/templates/plan-agent-messages-README.template.md`**.
112
129
  7. Atualizar **`.oxe/STATE.md`**: fase `plan_ready`, próximo passo `oxe:execute`; preencher **Blueprint de agentes (sessão)** — `run_id` (= `runId`), `lifecycle_status` (= `pending_execute`), **última onda** — (ou `—`).
113
130
  8. Aplicar **`<plan_agent_quality_gate>`**; corrigir até passar.
@@ -73,7 +73,8 @@ Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N
73
73
  6. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
74
74
  7. Aplicar integralmente o bloco **`<plan_quality_gate>`** acima ao `PLAN.md` em disco; corrigir o ficheiro até passar ou documentar gaps explícitos.
75
75
  8. Atualizar `.oxe/STATE.md`: fase `plan_ready`, próximo passo `oxe:execute` (implementar ondas) e depois `oxe:verify`.
76
- 9. Listar no chat: resultado do gate (OK ou corrigido), ondas, contagem de tarefas, comando de teste guarda-chuva se houver.
76
+ 9. **Sugestão de agentes (inteligente):** após o gate passar, verificar se o plano tem 3+ domínios distintos (ex.: backend + frontend + DB, ou auth + notificações + UI). Se sim, sugerir proativamente: "Este plano tem N domínios distintos. Quer gerar um blueprint de agentes com `/oxe-plan --agents`?" — não executar automaticamente, apenas oferecer. Se o usuário incluiu `--agents` no input original, executar imediatamente a lógica de `oxe/workflows/plan-agent.md`.
77
+ 10. Listar no chat: resultado do gate (OK ou corrigido), ondas, contagem de tarefas, comando de teste guarda-chuva se houver.
77
78
  </process>
78
79
 
79
80
  <success_criteria>
@@ -0,0 +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>
@@ -16,6 +16,22 @@ Não substitui **SPEC** nem **PLAN**; alimenta decisões que depois entram na SP
16
16
  - Segurança: não gravar segredos nem valores de variáveis de ambiente.
17
17
  </context>
18
18
 
19
+ <thinking_depth>
20
+ ## Profundidade de Raciocínio
21
+
22
+ Antes de iniciar a pesquisa, classificar o tipo de investigação e calibrar a profundidade:
23
+
24
+ | Tipo | Indicadores | Abordagem |
25
+ |------|-------------|-----------|
26
+ | `surface` | Coletar fatos, comparar 2-3 opções conhecidas, confirmar API | Pesquisa padrão — fontes diretas, resposta objetiva |
27
+ | `standard` | Análise de trade-offs, integração de sistemas, avaliação de bibliotecas | Evidências múltiplas, prós/contras explícitos, referências cruzadas |
28
+ | `deep` | Reverse engineering de sistema existente, design de arquitetura nova, migração complexa, brownfield | **Extended thinking recomendado** se o modelo suportar — ativar raciocínio estendido antes de produzir a nota |
29
+
30
+ Anotar `thinking_depth: surface | standard | deep` no frontmatter da nota de pesquisa gerada.
31
+
32
+ **Quando `deep`:** instrua o modelo (explicitamente se necessário) a "raciocinar em profundidade antes de escrever a nota" — explorando hipóteses, descartando alternativas, mapeando incertezas antes de consolidar evidências.
33
+ </thinking_depth>
34
+
19
35
  <process>
20
36
  1. Garantir pastas `.oxe/` e `.oxe/research/`.
21
37
  2. Escolher `YYYY-MM-DD-<slug>.md` único; se colisão, acrescentar sufixo ao slug (ex. `-b`).
@@ -18,6 +18,20 @@ Se **`.oxe/config.json`** tiver `scan_focus_globs` ou `scan_ignore_globs`, **pri
18
18
 
19
19
  </context>
20
20
 
21
+ <mode_detection>
22
+ ## Detecção automática de modo: bootstrap vs refresh
23
+
24
+ Antes de iniciar, verificar se `.oxe/codebase/` já existe com os sete mapas:
25
+
26
+ - **Modo bootstrap** (padrão quando codebase/ não existe ou está incompleto): produzir os sete arquivos do zero. Comportamento descrito no `<process>` abaixo.
27
+ - **Modo refresh** (quando codebase/ existe e tem os sete mapas): executar a lógica de `oxe/workflows/compact.md` — comparar mapas existentes ao repo atual, atualizar incrementalmente, produzir `CODEBASE-DELTA.md` e `RESUME.md`. **Não refazer do zero.**
28
+
29
+ Flag `--full`: forçar modo bootstrap mesmo se codebase/ existir.
30
+ Flag `--refresh`: forçar modo refresh.
31
+
32
+ **Sem flag:** automático por contexto. Se os mapas existem e o último scan foi há menos de `scan_max_age_days` (config), sugerir refresh mas perguntar ao usuário antes de executar o scan completo.
33
+ </mode_detection>
34
+
21
35
  <process>
22
36
  1. Garantir pastas `.oxe/` e `.oxe/codebase/`.
23
37
  2. Inventariar o repo (Glob/Grep): linguagens, manifests (`package.json`, `pom.xml`, `go.mod`, etc.), pastas principais — aplicando foco/ignore da config se houver.