oxe-cc 0.3.9 → 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.
Files changed (77) hide show
  1. package/.cursor/commands/oxe-execute.md +2 -2
  2. package/.cursor/commands/oxe-loop.md +11 -0
  3. package/.cursor/commands/oxe-milestone.md +11 -0
  4. package/.cursor/commands/oxe-obs.md +11 -0
  5. package/.cursor/commands/oxe-project.md +11 -0
  6. package/.cursor/commands/oxe-quick.md +2 -2
  7. package/.cursor/commands/oxe-security.md +11 -0
  8. package/.cursor/commands/oxe-spec.md +2 -2
  9. package/.cursor/commands/oxe-workstream.md +11 -0
  10. package/.cursor/commands/oxe.md +9 -0
  11. package/.github/prompts/oxe-execute.prompt.md +12 -12
  12. package/.github/prompts/oxe-loop.prompt.md +12 -0
  13. package/.github/prompts/oxe-milestone.prompt.md +12 -0
  14. package/.github/prompts/oxe-obs.prompt.md +12 -0
  15. package/.github/prompts/oxe-project.prompt.md +12 -0
  16. package/.github/prompts/oxe-quick.prompt.md +12 -12
  17. package/.github/prompts/oxe-security.prompt.md +12 -0
  18. package/.github/prompts/oxe-spec.prompt.md +2 -2
  19. package/.github/prompts/oxe-workstream.prompt.md +12 -0
  20. package/.github/prompts/oxe.prompt.md +12 -0
  21. package/README.md +287 -544
  22. package/bin/banner.txt +1 -1
  23. package/bin/lib/oxe-plugins.cjs +226 -0
  24. package/bin/lib/oxe-project-health.cjs +97 -1
  25. package/bin/lib/oxe-security.cjs +225 -0
  26. package/bin/oxe-cc.js +30 -1
  27. package/commands/oxe/execute.md +16 -16
  28. package/commands/oxe/loop.md +17 -0
  29. package/commands/oxe/milestone.md +16 -0
  30. package/commands/oxe/obs.md +16 -0
  31. package/commands/oxe/oxe.md +16 -0
  32. package/commands/oxe/project.md +16 -0
  33. package/commands/oxe/quick.md +16 -16
  34. package/commands/oxe/security.md +16 -0
  35. package/commands/oxe/spec.md +2 -2
  36. package/commands/oxe/workstream.md +16 -0
  37. package/lib/sdk/index.cjs +284 -0
  38. package/lib/sdk/index.d.ts +148 -1
  39. package/oxe/personas/README.md +39 -0
  40. package/oxe/personas/architect.md +37 -0
  41. package/oxe/personas/db-specialist.md +36 -0
  42. package/oxe/personas/debugger.md +38 -0
  43. package/oxe/personas/executor.md +38 -0
  44. package/oxe/personas/planner.md +36 -0
  45. package/oxe/personas/researcher.md +35 -0
  46. package/oxe/personas/ui-specialist.md +36 -0
  47. package/oxe/personas/verifier.md +39 -0
  48. package/oxe/templates/CONFIG.md +54 -4
  49. package/oxe/templates/DISCUSS.template.md +44 -0
  50. package/oxe/templates/MEMORY.template.md +49 -0
  51. package/oxe/templates/MILESTONES.template.md +17 -0
  52. package/oxe/templates/OBSERVATIONS.template.md +18 -0
  53. package/oxe/templates/PLUGINS.md +101 -0
  54. package/oxe/templates/ROADMAP.template.md +44 -0
  55. package/oxe/templates/SECURITY.template.md +72 -0
  56. package/oxe/templates/STATE.md +29 -2
  57. package/oxe/templates/config.template.json +5 -0
  58. package/oxe/templates/plan-agents.template.json +3 -2
  59. package/oxe/templates/quick-agents.template.json +24 -0
  60. package/oxe/workflows/discuss.md +48 -5
  61. package/oxe/workflows/execute.md +133 -28
  62. package/oxe/workflows/help.md +105 -24
  63. package/oxe/workflows/loop.md +57 -0
  64. package/oxe/workflows/milestone.md +96 -0
  65. package/oxe/workflows/obs.md +95 -0
  66. package/oxe/workflows/oxe.md +115 -0
  67. package/oxe/workflows/plan-agent.md +50 -3
  68. package/oxe/workflows/plan.md +7 -2
  69. package/oxe/workflows/project.md +50 -0
  70. package/oxe/workflows/quick.md +120 -10
  71. package/oxe/workflows/research.md +16 -0
  72. package/oxe/workflows/scan.md +23 -1
  73. package/oxe/workflows/security.md +61 -0
  74. package/oxe/workflows/spec.md +172 -23
  75. package/oxe/workflows/verify.md +80 -18
  76. package/oxe/workflows/workstream.md +96 -0
  77. package/package.json +3 -2
@@ -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.
@@ -32,7 +46,15 @@ Se **`.oxe/config.json`** tiver `scan_focus_globs` ou `scan_ignore_globs`, **pri
32
46
  - **CONVENTIONS.md** — estilo de código (naming, formatação, imports), padrões de erros/logging, organização de módulos; **prescreve** o que seguir em novas alterações (com paths em backticks).
33
47
  - **CONCERNS.md** — dívida técnica, áreas frágeis, riscos de segurança/desempenho, dependências sensíveis; cada item com impacto breve e **arquivos** referenciados.
34
48
  4. Atualizar **`.oxe/STATE.md`**: **Data** do scan (ISO), fase sugerida `scan_complete`, próximo passo `oxe:spec` ou `oxe:plan` se já houver SPEC.
35
- 5. Resumir em 5–10 linhas no chat: o que foi escrito e o próximo passo sugerido.
49
+ 5. **Scale-adaptive** (se `scale_adaptive: true` em `.oxe/config.json` ou não configurado ativo por padrão):
50
+ - Contar arquivos de código (excluindo `node_modules`, `dist`, `build`).
51
+ - Contar dependências diretas (se houver `package.json`, `pom.xml`, `go.mod`, etc.).
52
+ - Sugerir profile adequado no chat:
53
+ - **< 50 arquivos, < 10 dependências** → sugerir `profile: "fast"` no config.
54
+ - **50–500 arquivos** → sugerir `profile: "balanced"` (padrão).
55
+ - **> 500 arquivos ou sistema legado** → sugerir `profile: "strict"`.
56
+ - Se já houver `profile` no `.oxe/config.json`, não sugerir mudança — apenas confirmar.
57
+ 6. Resumir em 5–10 linhas no chat: o que foi escrito, o próximo passo sugerido, e (se scale-adaptive ativo) o profile recomendado.
36
58
  </process>
37
59
 
38
60
  <success_criteria>
@@ -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>
@@ -1,42 +1,191 @@
1
1
  # OXE — Workflow: spec
2
2
 
3
3
  <objective>
4
- Registrar a intenção do usuário em **`.oxe/SPEC.md`**: escopo, **critérios de aceite com IDs estáveis (A1, A2, …)** e coluna **Como verificar**, não objetivos e suposições. A spec é o contrato antes do plano.
4
+ Conduzir as **5 fases** do processo de especificação e produzir dois artefatos:
5
5
 
6
- Para trabalho **muito pequeno**, o usuário pode preferir **`oxe:quick`** (`.oxe/QUICK.md`) em vez deste fluxo não bloqueie: se pedirem explicitamente quick, redirecione.
6
+ 1. **`.oxe/SPEC.md`** contrato formal com critérios de aceite estáveis (A1, A2, …) e coluna **Como verificar**.
7
+ 2. **`.oxe/ROADMAP.md`** — fases de entrega mapeadas a requisitos (R-ID) e critérios (A*).
7
8
 
8
- Se **`.oxe/config.json`** tiver `discuss_before_plan: true`, mencionar no fim que o próximo passo recomendado é **`oxe:discuss`** antes do plano.
9
+ **Foco em redução de requisições:** as fases são estruturadas para extrair o máximo de informação por rodada nunca uma pergunta por vez, sempre blocos coesos.
9
10
 
10
- Entrada: texto livre na mensagem ou caminho `@arquivo.md` / anexo para incorporar PRD/notas.
11
+ Para trabalho **muito pequeno** que não justifica spec completa: redirecionar para **`oxe:quick`**.
12
+
13
+ Se **`.oxe/config.json`** tiver `discuss_before_plan: true`: mencionar no final da Fase 5 que o próximo passo é **`oxe:discuss`** antes do plano.
11
14
  </objective>
12
15
 
13
16
  <context>
14
- **Pré-requisito:** preferencialmente **scan** executado. Se não existir scan, mencionar na spec que o mapa está pendente.
15
-
16
- Leia `.oxe/STATE.md` e, se existirem, trechos relevantes de `.oxe/codebase/OVERVIEW.md` e `STACK.md` para não contradizer o projeto real.
17
+ **Pré-requisito preferível:** scan executado. Se não existir, mencionar na spec que o mapa está pendente.
17
18
 
18
- Use o template **`oxe/templates/SPEC.template.md`**: tabela **Critérios de aceite** com colunas **ID | Critério | Como verificar**.
19
+ Ler no início:
20
+ - `.oxe/STATE.md` — fase atual, decisões, workstream ativo
21
+ - `.oxe/codebase/OVERVIEW.md` e `STACK.md` se existirem — não contradizer o repo
22
+ - **`.oxe/OBSERVATIONS.md`** — se houver entradas `pendente` com impacto `spec` ou `all`, incorporá-las na Fase 3 (Requisitos) e marcá-las `incorporada → spec (data)` após uso
19
23
 
20
- **Brownfield (COBOL, JCL, copybooks, VB6, SP):** quando o objetivo for documentar ou planear migração, ver **`oxe/workflows/references/legacy-brownfield.md`** — epicos por **trilha** (batch, online, desktop↔SQL), critérios **A*** verificáveis por Grep/leitura/checklist, e secções opcionais alinháveis a `spec_required_sections` em `.oxe/config.json` (ver `oxe/templates/CONFIG.md`).
24
+ **Brownfield (COBOL, JCL, copybooks, VB6, SP):** quando o objetivo for documentar ou planear migração, ver **`oxe/workflows/references/legacy-brownfield.md`** — épicos por trilha, critérios A* verificáveis por Grep/leitura/checklist.
21
25
 
22
- **Exploratório / sistema grande / reversa / modernização:** quando a tecnologia ou o âmbito for incerto, houver necessidade de **mapear** o sistema, **engenharia reversa** ou **hipóteses de modernização** antes de tarefas executáveis, recomendar **`oxe:research`** (notas datadas em `.oxe/research/` + índice `.oxe/RESEARCH.md`) **antes** de `oxe:plan` — sugestão, não bloqueio obrigatório para specs mínimas.
26
+ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.template.md`**.
23
27
  </context>
24
28
 
29
+ <fase_1_perguntas>
30
+ ## Fase 1 — Perguntas
31
+
32
+ **Objetivo:** entender completamente a ideia antes de qualquer escrita de artefato.
33
+
34
+ **Regra de ouro:** nunca uma pergunta por vez — sempre um **bloco coeso** de 3-5 perguntas por rodada. Máximo **3 rodadas**; sinalize quando achar que tem entendimento completo e peça confirmação antes de avançar.
35
+
36
+ **Blocos de perguntas (adaptar ao contexto):**
37
+
38
+ *Bloco A — Objetivo e motivação:*
39
+ - Qual o problema central que isso resolve? Quem se beneficia?
40
+ - Há uma solução atual (mesmo que ruim)? O que falha nela?
41
+ - Como o sucesso será medido — qual o indicador mais importante?
42
+
43
+ *Bloco B — Restrições e tecnologia:*
44
+ - Quais tecnologias ou frameworks são obrigatórios ou proibidos?
45
+ - Há restrições de prazo, orçamento, tamanho do time ou infraestrutura?
46
+ - Quais integrações existentes precisam ser mantidas?
47
+
48
+ *Bloco C — Casos extremos e escopo:*
49
+ - Quais cenários de erro ou casos extremos são críticos de tratar na v1?
50
+ - O que definitivamente está **fora** do escopo desta entrega?
51
+ - Há comportamento esperado que você sabe que não é óbvio?
52
+
53
+ **Estratégia de rodadas:**
54
+ - Rodada 1: blocos A + B (entendimento geral)
55
+ - Rodada 2: bloco C + clarificações específicas (se necessário)
56
+ - Rodada 3 (máx): apenas se ainda houver ambiguidade crítica
57
+ - Após rodada 3: avançar para Fase 2 mesmo com suposições explícitas
58
+
59
+ **Ao final:** "Acho que entendi completamente. Confirma antes de avançarmos para pesquisa/requisitos? [resumo em 3-5 bullets]"
60
+ </fase_1_perguntas>
61
+
62
+ <fase_2_pesquisa>
63
+ ## Fase 2 — Pesquisa (opcional, recomendada)
64
+
65
+ **Objetivo:** investigar domínios incertos antes de escrever requisitos.
66
+
67
+ **Proposta ao usuário:** com base na Fase 1, listar 2-4 áreas de investigação sugeridas e perguntar quais investigar. Exemplos:
68
+ - "Há 3 áreas com incerteza técnica: autenticação JWT, integração com Stripe, e deploy em edge. Quer investigar alguma antes de avançar para requisitos?"
69
+
70
+ **Se aprovado:**
71
+ - Criar notas de pesquisa datadas em `.oxe/research/YYYY-MM-DD-<slug>.md` (usar fluxo de `research.md`)
72
+ - Atualizar `.oxe/RESEARCH.md` com índice
73
+ - Consolidar descobertas relevantes antes de avançar para Fase 3
74
+
75
+ **Se pulado:** registrar em `SPEC.md` as áreas de incerteza como suposições explícitas.
76
+
77
+ **Explorações grandes / sistemas legado:** ver **`oxe/workflows/references/legacy-brownfield.md`** — progressive disclosure por área, multiple sessions, epicos por trilha.
78
+ </fase_2_pesquisa>
79
+
80
+ <fase_3_requisitos>
81
+ ## Fase 3 — Requisitos
82
+
83
+ **Objetivo:** extrair uma tabela clara de requisitos com versionamento (v1/v2/fora).
84
+
85
+ **Incorporar primeiro:** verificar `.oxe/OBSERVATIONS.md` por entradas `pendente` com impacto `spec` ou `all` — incorporar aqui antes de finalizar a tabela.
86
+
87
+ **Formato da tabela:**
88
+
89
+ | R-ID | Requisito | Versão | Critério de aceite |
90
+ |------|-----------|--------|--------------------|
91
+ | R1 | [o que o sistema deve fazer] | v1 | A1 — [como verificar] |
92
+ | R2 | [outro requisito] | v1 | A2 — [como verificar] |
93
+ | R3 | [requisito futuro] | v2 | A3 — [quando implementado] |
94
+ | R4 | [fora do escopo] | fora | — |
95
+
96
+ **Definições:**
97
+ - **v1** = MVP essencial; entra no próximo `/oxe-plan`
98
+ - **v2** = evolução futura; entra em ciclos seguintes
99
+ - **fora** = explicitamente descartado desta entrega
100
+
101
+ **Apresentar ao usuário para validação** antes de avançar para Fase 4. Se ajustar: atualizar tabela e repetir até aprovação.
102
+ </fase_3_requisitos>
103
+
104
+ <fase_4_roteiro>
105
+ ## Fase 4 — Roteiro
106
+
107
+ **Objetivo:** criar fases de entrega mapeadas aos requisitos v1 e escrever `.oxe/ROADMAP.md`.
108
+
109
+ **Lógica de agrupamento:**
110
+ - Agrupar requisitos v1 em fases por **dependência técnica** e **valor entregável**
111
+ - Cada fase deve ter resultado demonstrável (não apenas código interno)
112
+ - Fase 1 = o que `/oxe-plan` implementará no próximo ciclo
113
+ - Fases 2+ = ciclos futuros de spec→plan→execute→verify
114
+
115
+ **Escrever `.oxe/ROADMAP.md`** usando `oxe/templates/ROADMAP.template.md`:
116
+
117
+ ```markdown
118
+ ---
119
+ oxe_doc: roadmap
120
+ status: draft
121
+ updated: <data>
122
+ spec_ref: .oxe/SPEC.md
123
+ ---
124
+
125
+ ## Fase 1 — [Nome]
126
+ **Requisitos:** R1, R3
127
+ **Critérios de aceite:** A1, A2, A3
128
+ **Escopo:** ...
129
+
130
+ ## Fase 2 — [Nome]
131
+ **Requisitos:** R2, R5
132
+ **Critérios de aceite:** A4, A5
133
+ **Escopo:** ...
134
+
135
+ ## Fora do escopo (v2+)
136
+ - R4: [descrição] — motivo
137
+ ```
138
+ </fase_4_roteiro>
139
+
140
+ <fase_5_aprovacao>
141
+ ## Fase 5 — Aprovação e próximo passo
142
+
143
+ **Objetivo:** confirmar o roteiro com o usuário e redirecionar para o plano.
144
+
145
+ **Apresentar resumo:**
146
+ - Objetivo em 1 frase
147
+ - Requisitos v1 (N itens), v2 (M itens), fora (K itens)
148
+ - Roteiro: Fase 1 → N critérios; Fase 2 → M critérios
149
+ - Critérios de aceite da Fase 1: A1, A2, …
150
+
151
+ **Perguntar ao usuário:**
152
+ > "Roteiro aprovado? Quer gerar o plano agora ou ajustar algo antes?"
153
+
154
+ **Se aprovado — oferecer os próximos passos:**
155
+
156
+ | Opção | Quando usar | Próximo passo |
157
+ |-------|-------------|---------------|
158
+ | Plano simples | Tarefa clara, sem orquestração multi-agente | `/oxe-plan` |
159
+ | Plano com agentes | Time distribuído, domínios distintos, ondas paralelas | `/oxe-plan-agent` |
160
+ | Discutir antes | `discuss_before_plan: true` em config, ou risco técnico | `/oxe-discuss` → `/oxe-plan` |
161
+
162
+ **Se ajustar:** voltar à fase indicada (Requisitos, Roteiro ou Perguntas) e repetir.
163
+
164
+ **Ao finalizar:**
165
+ - Marcar `ROADMAP.md` → `status: approved`
166
+ - Atualizar `STATE.md`: `phase: spec_ready`, próximo passo conforme escolha
167
+ </fase_5_aprovacao>
168
+
25
169
  <process>
26
- 1. Resolver entrada: se começar com `@`, ler arquivo; senão usar o texto da conversa.
27
- 2. Criar ou atualizar **`.oxe/SPEC.md`** usando `oxe/templates/SPEC.template.md` como esqueleto. Se o ficheiro já existir com YAML inicial (`---` … `---` antes do primeiro `#`), **preservar** chaves existentes; **atualizar** `updated:` com a data ISO do dia; ajustar `status` (ex. para `ready`) se o utilizador declarar a spec fechada. Se não houver frontmatter, pode adicioná-lo na primeira edição substancial.
28
- 3. Garantir seções:
29
- - **Objetivo**uma frase clara.
30
- - **Escopo**bullets dentro / fora.
31
- - **Critérios de aceite** — tabela com IDs **A1**, **A2**, … (testáveis).
32
- - **Suposições e riscos**.
33
- - **Referências** paths se conhecidos.
34
- 4. Atualizar **`.oxe/STATE.md`**: fase `spec_ready`, próximo passo `oxe:discuss` ou `oxe:plan` conforme `discuss_before_plan`.
35
- 5. Responder com resumo da spec e no máximo 3 perguntas objetivas se algo crítico estiver ambíguo.
170
+ 1. Ler `.oxe/STATE.md`, `OVERVIEW.md`, `STACK.md` e `.oxe/OBSERVATIONS.md` (verificar pendentes).
171
+ 2. **Fase 1 Perguntas:** enviar bloco coeso de 3-5 perguntas; máx 3 rodadas; confirmar entendimento.
172
+ 3. **Fase 2 — Pesquisa:** propor áreas de investigação; aguardar aprovação; executar se aprovado.
173
+ 4. **Fase 3 Requisitos:** extrair tabela R-ID com v1/v2/fora e critérios A*; incorporar OBS pendentes; apresentar para validação.
174
+ 5. **Fase 4 Roteiro:** agrupar requisitos v1 em fases; escrever `.oxe/ROADMAP.md`.
175
+ 6. Escrever **`.oxe/SPEC.md`** usando `oxe/templates/SPEC.template.md`:
176
+ - Frontmatter YAML (`oxe_doc: spec`, `status`, `updated`, `inputs`)
177
+ - Objetivo, Escopo (dentro/fora), Critérios de aceite (tabela A*), Suposições e riscos, Referências
178
+ - Preservar chaves existentes se SPEC.md existir; atualizar `updated:`
179
+ 7. **Fase 5 Aprovação:** apresentar resumo, aguardar aprovação do roteiro, redirecionar.
180
+ 8. Atualizar **`.oxe/STATE.md`**: `phase: spec_ready`, próximo passo.
181
+ 9. Marcar OBS incorporadas em `.oxe/OBSERVATIONS.md` se houver pendentes de impacto `spec`.
36
182
  </process>
37
183
 
38
184
  <success_criteria>
39
- - [ ] `.oxe/SPEC.md` existe e cada critério tem ID **A*** e forma de verificar.
40
- - [ ] `STATE.md` atualizado.
41
- - [ ] Ambiguidades críticas foram perguntas ou registradas como suposição explícita.
185
+ - [ ] `.oxe/SPEC.md` existe com critérios A* e coluna Como verificar; `STATE.md` atualizado.
186
+ - [ ] `.oxe/ROADMAP.md` existe com fases mapeadas a R-IDs e A*, status `approved` (ou `draft` se usuário não confirmou).
187
+ - [ ] Tabela de requisitos R-ID foi apresentada e validada (v1/v2/fora) antes do roteiro.
188
+ - [ ] Usuário foi consultado no gate da Fase 5 e escolheu o próximo passo.
189
+ - [ ] OBS pendentes com impacto `spec` foram incorporadas e marcadas `incorporada`.
190
+ - [ ] Máximo 3 rodadas de perguntas utilizadas — não mais.
42
191
  </success_criteria>
@@ -1,44 +1,106 @@
1
1
  # OXE — Workflow: verify
2
2
 
3
3
  <objective>
4
- Executar ou orientar verificação pós-implementação: rodar os comandos definidos no **PLAN.md**, confrontar **cada critério da SPEC** (IDs **A1**, **A2**, …) com o código e os testes, e registrar o resultado em **`.oxe/VERIFY.md`** (e atualizar **STATE**).
4
+ Executar ou orientar verificação pós-implementação em **quatro camadas progressivas**:
5
5
 
6
- Se o usuário indicar uma tarefa (ex.: `T2`), focar nela; caso contrário, percorrer todas as tarefas com blocos **Verificar**.
6
+ 1. **Auditoria de pré-execução** verificar que o PLAN está íntegro antes de iniciar (gate de qualidade).
7
+ 2. **Verificação de tarefas e critérios** — rodar comandos do PLAN e cruzar cada critério da SPEC (IDs **A1**, **A2**, …) com evidência.
8
+ 3. **Fidelidade de decisões** — cruzar cada decisão **D-NN** do DISCUSS.md com a implementação.
9
+ 4. **UAT (Checklist de aceite)** — checklist manual para o usuário confirmar entregáveis.
10
+
11
+ Resultado registrado em **`.oxe/VERIFY.md`** com atualização de **STATE**.
12
+
13
+ Se o usuário indicar uma tarefa (ex.: `T2`), focar só nela nas camadas 1–2; as camadas 3–4 são sempre de escopo completo.
7
14
  </objective>
8
15
 
9
16
  <context>
10
- - Preferir rodar comandos reais no terminal quando o ambiente permitir; se o sandbox bloquear, marcar como não executado aqui e deixar o comando para o usuário.
17
+ - Preferir rodar comandos reais no terminal quando o ambiente permitir; se o sandbox bloquear, marcar como "não executado aqui" e deixar o comando para o usuário.
11
18
  - Não destruir `PLAN.md`; registrar achados em `VERIFY.md`.
12
- - Ler **`.oxe/config.json`** se existir: `after_verify_draft_commit` e `after_verify_suggest_pr` controlam passos opcionais (se o arquivo não existir, use o mesmo padrão do `config.template.json`).
19
+ - Ler **`.oxe/config.json`** se existir: `after_verify_draft_commit`, `after_verify_suggest_pr`, e `verification_depth` (`"standard"` por padrão; `"thorough"` ativa camadas 3–4 completas; `"quick"` pula camadas 3–4 e UAT).
13
20
  - Os critérios na SPEC devem estar na tabela **Critérios de aceite** com colunas **ID** / **Critério** / **Como verificar**; o verify deve **cruzar cada ID** com evidência (arquivo, comando, trecho).
14
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`**.
15
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.
16
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.
17
- - **Pós-verify (opcional):** para auditoria de **cobertura** e gaps de verificabilidade (sem substituir este passo), **`oxe:validate-gaps`** `.oxe/VALIDATION-GAPS.md` (ver **`oxe/workflows/validate-gaps.md`**).
18
- - **Rotina compact/checkpoint (opcional):** se esta entrega alterou **estrutura**, **stack** ou **pastas** de forma relevante, sugira **`/oxe-compact`** para alinhar `.oxe/codebase/` ao repo (e `CODEBASE-DELTA.md` + `RESUME.md`). Após **verify** com sucesso e antes de abrir nova entrega grande, um **`/oxe-checkpoint`** com slug curto pode marcar estado estável — **não** faz parte dos critérios de sucesso abaixo.
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.
19
27
  </context>
20
28
 
29
+ <camada_1_pre_exec_audit>
30
+ **Camada 1 — Auditoria de pré-execução** (roda *antes* de iniciar os comandos de verify)
31
+
32
+ Verificar que o PLAN.md está apto para verificação:
33
+ 1. Toda tarefa `### Tn` tem bloco **Verificar** com pelo menos Comando ou Manual.
34
+ 2. Todo **Aceite vinculado** referencia IDs que existem na tabela de SPEC.md (`A1`, `A2`, …).
35
+ 3. Se houver `.oxe/DISCUSS.md`, toda decisão técnica com ID **D-NN** aparece em **Decisão vinculada:** de alguma tarefa (ou nota explícita de gap no PLAN).
36
+ 4. Não há dependências `Tk` inválidas (ID inexistente no PLAN).
37
+
38
+ Se auditoria falhar: registrar na seção **Auditoria de pré-execução** do VERIFY.md os itens com problema e **pausar** — pedir correção do PLAN antes de continuar. Se o usuário forçar continuar com `--skip-audit`, documentar e prosseguir com aviso.
39
+ </camada_1_pre_exec_audit>
40
+
41
+ <camada_2_tarefas_e_criterios>
42
+ **Camada 2 — Verificação de tarefas e critérios SPEC**
43
+
44
+ Para cada tarefa relevante, executar **Verificar: Comando** do PLAN (ou subconjunto se foco Tn). Para **cada ID de critério** usado na SPEC (A1, A2, …), registrar se passou com evidência (Read/Grep, saída de teste resumida).
45
+ </camada_2_tarefas_e_criterios>
46
+
47
+ <camada_3_fidelidade_decisoes>
48
+ **Camada 3 — Fidelidade de decisões** (ativa se existir `.oxe/DISCUSS.md` com IDs D-NN)
49
+
50
+ Para cada decisão na tabela de DISCUSS.md:
51
+ 1. Localizar a(s) tarefa(s) que referenciam esse ID em **Decisão vinculada:**.
52
+ 2. Verificar que a implementação reflete a decisão (Grep/Read dos arquivos da tarefa).
53
+ 3. Registrar na tabela **Fidelidade de decisões** do VERIFY.md: ID | Decisão (resumo) | Tarefa(s) | Implementado? | Evidência.
54
+
55
+ Se uma decisão D-NN não tem tarefa vinculada **e** não há nota de gap no PLAN: marcar como `divergência` e adicionar ao bloco **Gaps**.
56
+ </camada_3_fidelidade_decisoes>
57
+
58
+ <camada_4_uat>
59
+ **Camada 4 — UAT (User Acceptance Testing)** (ativa se `after_verify_suggest_uat` não for `false` na config)
60
+
61
+ Gerar uma **Checklist UAT** no VERIFY.md com passos manuais derivados dos critérios de aceite. Formato:
62
+
63
+ ```markdown
64
+ ## Checklist UAT (aceite manual)
65
+
66
+ Para cada critério da SPEC que exige validação manual:
67
+ - [ ] A1: (descrição do passo a executar pelo usuário, em linguagem simples)
68
+ - [ ] A2: …
69
+
70
+ **Instruções:** execute os itens acima no ambiente real e marque ✓. Se algum falhar, abra um item em Gaps abaixo.
71
+ ```
72
+
73
+ O preenchimento da checklist é responsabilidade do **usuário** (não do agente de IA).
74
+ </camada_4_uat>
75
+
21
76
  <process>
22
- 1. Ler `.oxe/SPEC.md`, `.oxe/PLAN.md`, `.oxe/STATE.md`.
23
- 2. Para cada tarefa relevante, executar **Verificar: Comando** do PLAN (ou subconjunto se foco Tn).
24
- 3. Para **cada ID de critério** usado na SPEC (A1, A2, …), registrar se passou, com evidência (Read/Grep, saída de teste resumida).
25
- 4. Escrever **`.oxe/VERIFY.md`** com:
77
+ 1. **Camada 1 — Auditoria de pré-execução:** checar integridade do PLAN.md e DISCUSS.md conforme `<camada_1_pre_exec_audit>`. Documentar resultado.
78
+ 2. Ler `.oxe/SPEC.md`, `.oxe/PLAN.md`, `.oxe/STATE.md`.
79
+ 3. **Camada 2:** Para cada tarefa relevante, executar **Verificar: Comando** do PLAN (ou subconjunto se foco Tn). Para **cada ID de critério** da SPEC (A1, A2, …), registrar se passou com evidência.
80
+ 4. **Camada 3:** Se existir `.oxe/DISCUSS.md` com IDs D-NN, executar **Fidelidade de decisões** conforme `<camada_3_fidelidade_decisoes>`.
81
+ 5. Escrever **`.oxe/VERIFY.md`** com:
26
82
  - Data, ambiente (SO / versão do Node se relevante).
83
+ - **Seção — Auditoria de pré-execução:** resultado da Camada 1.
27
84
  - **Tabela — Tarefas:** Tarefa (Tn) | Verificação (comando/checklist) | Passou? | Notas.
28
85
  - **Tabela — Critérios SPEC:** ID (A1…) | Critério (resumo) | Evidência | Passou? | Notas.
29
- - **Gaps**o que falhou e sugestão de correção (pode virar novas entradas no PLAN); se não houver, escrever explicitamente `Nenhum gap restante` ou equivalente.
30
- 5. Atualizar **`.oxe/STATE.md`**: `verify_complete` ou `verify_failed` + próximo passo (replan, corrigir ou publicar).
31
- 5b. **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` se ainda não houve execute formal mas a trilha fechou aqui), 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.
32
- 5c. **Arquivo plan-agent (opcional, recomendado após fecho com sucesso):** se o passo **5b** marcou o blueprint como **`closed`** e existem **`.oxe/plan-agent-messages/`** (com mensagens) ou **`plan-agents.json`** na raiz `.oxe/`, propor ao utilizador **arquivar** em **`.oxe/archive/plan-agent-runs/<runId>/`** conforme **`oxe/workflows/references/plan-agent-chat-protocol.md`** (secção *Artefactos no repositório após fecho*): subpasta **`messages/`** com os handoffs, cópia de **`plan-agents.json`**, depois **esvaziar** **`.oxe/plan-agent-messages/`** (ou recriar só `README.md` a partir do template) e **remover** **`.oxe/plan-agents.json`** da raiz se já estiver copiado no arquivo. Se o utilizador preferir **manter** tudo na raiz para um PR único, respeitar o protocolo trata o arquivo como **recomendação**, não obrigatório do gate de verify.
33
- 6. 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 isso alimenta o replanejamento.
34
- 7. **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***; **não** incluir segredos.
35
- 8. ** 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, testes executados.
86
+ - **TabelaFidelidade de decisões** (se DISCUSS.md existir): ID | Decisão | Tarefa(s) | Implementado? | Evidência.
87
+ - **Checklist UAT** (Camada 4).
88
+ - **Gaps** o que falhou e sugestão de correção; se não houver, escrever `Nenhum gap restante`.
89
+ 6. Atualizar **`.oxe/STATE.md`**: `verify_complete` ou `verify_failed` + próximo passo (replan, corrigir ou publicar).
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.
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.
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.
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.
36
96
  </process>
37
97
 
38
98
  <success_criteria>
39
- - [ ] VERIFY.md reflete o que foi de fato verificado (tarefas **e** critérios SPEC por ID).
99
+ - [ ] VERIFY.md contém as quatro seções: Auditoria de pré-execução, Tabela de tarefas, Tabela de critérios SPEC, Fidelidade de decisões (quando aplicável), Checklist UAT.
100
+ - [ ] Auditoria de pré-execução passou ou divergências foram documentadas.
40
101
  - [ ] Falhas têm próximo passo claro (qual tarefa replanejar ou qual arquivo corrigir); se falhou, próximo passo inclui **plan** com replanejamento ou correção direta.
41
102
  - [ ] STATE.md atualizado.
42
103
  - [ ] SUMMARY.md atualizado quando houver falha ou gaps relevantes.
43
104
  - [ ] Se passou: seções **Rascunho de commit** e **Checklist PR** presentes em VERIFY.md, salvo se desativadas na config.
105
+ - [ ] Se existiu DISCUSS.md: tabela de Fidelidade de decisões preenchida sem divergências não documentadas.
44
106
  </success_criteria>
@@ -0,0 +1,96 @@
1
+ # OXE — Workflow: workstream
2
+
3
+ <objective>
4
+ Gerenciar **trilhas de desenvolvimento paralelas** dentro do mesmo projeto. Cada workstream tem seu próprio ciclo SPEC → PLAN → EXECUTE → VERIFY independente, sem interferir no pipeline principal.
5
+
6
+ Subcomandos:
7
+ - `/oxe-workstream list` — listar workstreams ativos.
8
+ - `/oxe-workstream new <nome>` — criar novo workstream.
9
+ - `/oxe-workstream switch <nome>` — definir workstream ativo no contexto atual.
10
+ - `/oxe-workstream status [nome]` — exibir status de um workstream.
11
+ - `/oxe-workstream close <nome>` — fechar workstream e mesclar contexto ao pipeline principal.
12
+ </objective>
13
+
14
+ <context>
15
+ **Por que workstreams?**
16
+
17
+ O pipeline OXE padrão (`.oxe/SPEC.md`, `PLAN.md`, etc.) é linear — uma entrega por vez. Workstreams permitem:
18
+ - Desenvolvimento de features paralelas sem sobrescrever artefatos.
19
+ - Trabalho em `bugfix/auth` e `feature/billing` simultaneamente.
20
+ - Times menores trabalhando em trilhas independentes com contextos separados.
21
+
22
+ **Estrutura no disco:**
23
+ ```
24
+ .oxe/
25
+ workstreams/
26
+ <nome>/
27
+ SPEC.md
28
+ PLAN.md
29
+ VERIFY.md
30
+ DISCUSS.md (opcional)
31
+ STATE.md (estado local da trilha)
32
+ config.json (herda do config principal; pode sobrescrever keys)
33
+ ```
34
+
35
+ **Compatibilidade:**
36
+ - O pipeline principal (`.oxe/SPEC.md`, `.oxe/PLAN.md`, etc.) continua funcionando normalmente.
37
+ - Workstreams **não** substituem o pipeline principal — são adicionais.
38
+ - `oxe-cc doctor` e `oxe-cc status` reportam cada workstream separadamente quando `--workstream=<nome>` for passado.
39
+ - A seção **Workstreams ativos** do STATE.md principal lista os workstreams em andamento.
40
+ </context>
41
+
42
+ <process_list>
43
+ **`/oxe-workstream list`**
44
+
45
+ 1. Ler `.oxe/workstreams/` — listar subpastas.
46
+ 2. Para cada workstream, ler seu `STATE.md` local (fase e próximo passo).
47
+ 3. Exibir tabela no chat: Nome | Fase | Próximo passo | Última atividade.
48
+ </process_list>
49
+
50
+ <process_new>
51
+ **`/oxe-workstream new <nome>`**
52
+
53
+ 1. Validar que `<nome>` é um slug seguro (letras, números, hífens — sem espaços ou caracteres especiais).
54
+ 2. Criar `.oxe/workstreams/<nome>/STATE.md` a partir de `oxe/templates/STATE.md`.
55
+ 3. Criar `.oxe/workstreams/<nome>/config.json` vazio (herda do config principal).
56
+ 4. Atualizar **STATE.md principal**: adicionar `<nome>` na seção **Workstreams ativos**.
57
+ 5. Confirmar no chat: `Workstream '<nome>' criado. Próximo passo: /oxe-spec (no contexto do workstream)`.
58
+
59
+ **Convenção:** para operar em um workstream, prefixar os artefatos com `--workstream=<nome>` ou ativar com `/oxe-workstream switch <nome>`.
60
+ </process_new>
61
+
62
+ <process_switch>
63
+ **`/oxe-workstream switch <nome>`**
64
+
65
+ 1. Verificar que `.oxe/workstreams/<nome>/` existe.
66
+ 2. Atualizar STATE.md principal: seção **Workstream ativo** com nome.
67
+ 3. Confirmar no chat: `Workstream ativo: <nome>. Artefatos em .oxe/workstreams/<nome>/`.
68
+
69
+ Após ativar, os workflows `/oxe-spec`, `/oxe-plan`, `/oxe-execute`, `/oxe-verify` operam nos artefatos do workstream ativo em vez dos artefatos raiz.
70
+ </process_switch>
71
+
72
+ <process_status>
73
+ **`/oxe-workstream status [nome]`**
74
+
75
+ 1. Se `nome` omitido: usar workstream ativo do STATE.md.
76
+ 2. Ler `.oxe/workstreams/<nome>/STATE.md` — fase e próximo passo.
77
+ 3. Ler SPEC, PLAN, VERIFY do workstream (se existirem).
78
+ 4. Exibir resumo: fase, critérios, gaps, próximo passo.
79
+ </process_status>
80
+
81
+ <process_close>
82
+ **`/oxe-workstream close <nome>`**
83
+
84
+ 1. Verificar que o workstream está com `verify_complete` no seu STATE.md local.
85
+ 2. Se não estiver: alertar e pedir confirmação com `--force`.
86
+ 3. Mover (ou arquivar) `.oxe/workstreams/<nome>/` → `.oxe/workstreams/closed/<nome>-YYYY-MM-DD/`.
87
+ 4. Atualizar STATE.md principal: remover `<nome>` de **Workstreams ativos**, registrar em **Workstreams encerrados**.
88
+ 5. Confirmar no chat: `Workstream '<nome>' encerrado. Artefatos em .oxe/workstreams/closed/`.
89
+ </process_close>
90
+
91
+ <success_criteria>
92
+ - [ ] `.oxe/workstreams/<nome>/` existe com STATE.md local.
93
+ - [ ] STATE.md principal lista workstream na seção **Workstreams ativos**.
94
+ - [ ] Workflows OXE operam no workstream ativo quando configurado.
95
+ - [ ] Ao encerrar: artefatos arquivados e STATE principal atualizado.
96
+ </success_criteria>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oxe-cc",
3
- "version": "0.3.9",
3
+ "version": "0.6.0",
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": "",
@@ -49,7 +49,8 @@
49
49
  ".github",
50
50
  "commands",
51
51
  "AGENTS.md",
52
- "README.md"
52
+ "README.md",
53
+ "CHANGELOG.md"
53
54
  ],
54
55
  "scripts": {
55
56
  "sync:cursor": "node scripts/sync-cursor-from-prompts.cjs",