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.
- package/.cursor/commands/oxe-execute.md +2 -2
- package/.cursor/commands/oxe-loop.md +11 -0
- package/.cursor/commands/oxe-milestone.md +11 -0
- package/.cursor/commands/oxe-obs.md +11 -0
- package/.cursor/commands/oxe-project.md +11 -0
- package/.cursor/commands/oxe-quick.md +2 -2
- package/.cursor/commands/oxe-security.md +11 -0
- package/.cursor/commands/oxe-spec.md +2 -2
- package/.cursor/commands/oxe-workstream.md +11 -0
- package/.cursor/commands/oxe.md +9 -0
- package/.github/prompts/oxe-execute.prompt.md +12 -12
- package/.github/prompts/oxe-loop.prompt.md +12 -0
- package/.github/prompts/oxe-milestone.prompt.md +12 -0
- package/.github/prompts/oxe-obs.prompt.md +12 -0
- package/.github/prompts/oxe-project.prompt.md +12 -0
- package/.github/prompts/oxe-quick.prompt.md +12 -12
- package/.github/prompts/oxe-security.prompt.md +12 -0
- package/.github/prompts/oxe-spec.prompt.md +2 -2
- package/.github/prompts/oxe-workstream.prompt.md +12 -0
- package/.github/prompts/oxe.prompt.md +12 -0
- package/README.md +287 -544
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-plugins.cjs +226 -0
- package/bin/lib/oxe-project-health.cjs +97 -1
- package/bin/lib/oxe-security.cjs +225 -0
- package/bin/oxe-cc.js +30 -1
- package/commands/oxe/execute.md +16 -16
- package/commands/oxe/loop.md +17 -0
- package/commands/oxe/milestone.md +16 -0
- package/commands/oxe/obs.md +16 -0
- package/commands/oxe/oxe.md +16 -0
- package/commands/oxe/project.md +16 -0
- package/commands/oxe/quick.md +16 -16
- package/commands/oxe/security.md +16 -0
- package/commands/oxe/spec.md +2 -2
- package/commands/oxe/workstream.md +16 -0
- package/lib/sdk/index.cjs +284 -0
- package/lib/sdk/index.d.ts +148 -1
- package/oxe/personas/README.md +39 -0
- package/oxe/personas/architect.md +37 -0
- package/oxe/personas/db-specialist.md +36 -0
- package/oxe/personas/debugger.md +38 -0
- package/oxe/personas/executor.md +38 -0
- package/oxe/personas/planner.md +36 -0
- package/oxe/personas/researcher.md +35 -0
- package/oxe/personas/ui-specialist.md +36 -0
- package/oxe/personas/verifier.md +39 -0
- package/oxe/templates/CONFIG.md +54 -4
- package/oxe/templates/DISCUSS.template.md +44 -0
- package/oxe/templates/MEMORY.template.md +49 -0
- package/oxe/templates/MILESTONES.template.md +17 -0
- package/oxe/templates/OBSERVATIONS.template.md +18 -0
- package/oxe/templates/PLUGINS.md +101 -0
- package/oxe/templates/ROADMAP.template.md +44 -0
- package/oxe/templates/SECURITY.template.md +72 -0
- package/oxe/templates/STATE.md +29 -2
- package/oxe/templates/config.template.json +5 -0
- package/oxe/templates/plan-agents.template.json +3 -2
- package/oxe/templates/quick-agents.template.json +24 -0
- package/oxe/workflows/discuss.md +48 -5
- package/oxe/workflows/execute.md +133 -28
- package/oxe/workflows/help.md +105 -24
- package/oxe/workflows/loop.md +57 -0
- package/oxe/workflows/milestone.md +96 -0
- package/oxe/workflows/obs.md +95 -0
- package/oxe/workflows/oxe.md +115 -0
- package/oxe/workflows/plan-agent.md +50 -3
- package/oxe/workflows/plan.md +7 -2
- package/oxe/workflows/project.md +50 -0
- package/oxe/workflows/quick.md +120 -10
- package/oxe/workflows/research.md +16 -0
- package/oxe/workflows/scan.md +23 -1
- package/oxe/workflows/security.md +61 -0
- package/oxe/workflows/spec.md +172 -23
- package/oxe/workflows/verify.md +80 -18
- package/oxe/workflows/workstream.md +96 -0
- package/package.json +3 -2
package/oxe/workflows/scan.md
CHANGED
|
@@ -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.
|
|
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>
|
package/oxe/workflows/spec.md
CHANGED
|
@@ -1,42 +1,191 @@
|
|
|
1
1
|
# OXE — Workflow: spec
|
|
2
2
|
|
|
3
3
|
<objective>
|
|
4
|
-
|
|
4
|
+
Conduzir as **5 fases** do processo de especificação e produzir dois artefatos:
|
|
5
5
|
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:**
|
|
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
|
-
|
|
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`** —
|
|
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
|
-
|
|
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.
|
|
27
|
-
2.
|
|
28
|
-
3.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
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 já 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
|
|
40
|
-
- [ ]
|
|
41
|
-
- [ ]
|
|
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>
|
package/oxe/workflows/verify.md
CHANGED
|
@@ -1,44 +1,106 @@
|
|
|
1
1
|
# OXE — Workflow: verify
|
|
2
2
|
|
|
3
3
|
<objective>
|
|
4
|
-
Executar ou orientar verificação pós-implementação
|
|
4
|
+
Executar ou orientar verificação pós-implementação em **quatro camadas progressivas**:
|
|
5
5
|
|
|
6
|
-
|
|
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
|
|
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 `
|
|
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
|
-
- **
|
|
18
|
-
- **
|
|
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.
|
|
23
|
-
2.
|
|
24
|
-
3. Para **cada ID de critério**
|
|
25
|
-
4.
|
|
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
|
-
- **
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
7.
|
|
35
|
-
|
|
86
|
+
- **Tabela — Fidelidade 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
|
|
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
|
+
"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",
|