oxe-cc 0.3.8 → 0.5.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-checkpoint.md +2 -0
- package/.cursor/commands/oxe-compact.md +2 -0
- package/.cursor/commands/oxe-debug.md +2 -0
- package/.cursor/commands/oxe-discuss.md +2 -0
- package/.cursor/commands/oxe-execute.md +3 -1
- package/.cursor/commands/oxe-forensics.md +2 -0
- package/.cursor/commands/oxe-help.md +2 -0
- package/.cursor/commands/oxe-milestone.md +11 -0
- package/.cursor/commands/oxe-next.md +2 -0
- package/.cursor/commands/oxe-obs.md +11 -0
- package/.cursor/commands/oxe-plan-agent.md +2 -0
- package/.cursor/commands/oxe-plan.md +2 -0
- package/.cursor/commands/oxe-quick.md +3 -1
- package/.cursor/commands/oxe-research.md +2 -0
- package/.cursor/commands/oxe-review-pr.md +2 -0
- package/.cursor/commands/oxe-route.md +2 -0
- package/.cursor/commands/oxe-scan.md +2 -0
- package/.cursor/commands/oxe-spec.md +3 -1
- package/.cursor/commands/oxe-ui-review.md +2 -0
- package/.cursor/commands/oxe-ui-spec.md +2 -0
- package/.cursor/commands/oxe-update.md +2 -0
- package/.cursor/commands/oxe-validate-gaps.md +2 -0
- package/.cursor/commands/oxe-verify.md +2 -0
- package/.cursor/commands/oxe-workstream.md +11 -0
- package/.github/prompts/oxe-execute.prompt.md +12 -12
- package/.github/prompts/oxe-milestone.prompt.md +12 -0
- package/.github/prompts/oxe-obs.prompt.md +12 -0
- package/.github/prompts/oxe-quick.prompt.md +12 -12
- package/.github/prompts/oxe-spec.prompt.md +2 -2
- package/.github/prompts/oxe-workstream.prompt.md +12 -0
- package/README.md +205 -442
- 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 +29 -0
- package/commands/oxe/execute.md +16 -16
- package/commands/oxe/milestone.md +16 -0
- package/commands/oxe/obs.md +16 -0
- package/commands/oxe/quick.md +16 -16
- 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 +58 -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/STATE.md +29 -2
- package/oxe/templates/config.template.json +5 -0
- package/oxe/templates/plan-agent-messages-README.template.md +1 -1
- package/oxe/templates/quick-agents.template.json +24 -0
- package/oxe/workflows/discuss.md +48 -5
- package/oxe/workflows/execute.md +111 -28
- package/oxe/workflows/help.md +80 -15
- package/oxe/workflows/milestone.md +96 -0
- package/oxe/workflows/obs.md +95 -0
- package/oxe/workflows/plan-agent.md +31 -1
- package/oxe/workflows/plan.md +5 -1
- package/oxe/workflows/quick.md +120 -10
- package/oxe/workflows/references/plan-agent-chat-protocol.md +14 -0
- package/oxe/workflows/scan.md +9 -1
- package/oxe/workflows/spec.md +172 -23
- package/oxe/workflows/verify.md +77 -17
- package/oxe/workflows/workstream.md +96 -0
- package/package.json +3 -2
package/oxe/templates/STATE.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
## Último compact (codebase + RESUME) (opcional)
|
|
13
13
|
|
|
14
14
|
- **Data:** (**YYYY-MM-DD** — preenchido por **`/oxe-compact`**: refresh incremental dos mapas em `.oxe/codebase/` + `CODEBASE-DELTA.md` + `RESUME.md`)
|
|
15
|
-
- **Notas:** (opcional; ex.:
|
|
15
|
+
- **Notas:** (opcional; ex.: "só STRUCTURE e TESTING")
|
|
16
16
|
|
|
17
17
|
## Contexto do plano / quick (opcional)
|
|
18
18
|
|
|
@@ -37,9 +37,36 @@ _(O agente pode preencher após cada onda.)_
|
|
|
37
37
|
- [ ] Onda N — implementação concluída
|
|
38
38
|
- [ ] Onda N — **Verificar** executado ou agendado
|
|
39
39
|
|
|
40
|
+
## Milestone ativo (opcional — `/oxe-milestone`)
|
|
41
|
+
|
|
42
|
+
- **ID:** (ex.: M-01 — ou — se não houver milestone ativo)
|
|
43
|
+
- **Nome:** (ex.: v1.0 — autenticação básica)
|
|
44
|
+
- **Iniciado:** (YYYY-MM-DD)
|
|
45
|
+
- **Progresso:** (N/M critérios verificados)
|
|
46
|
+
|
|
47
|
+
## Último milestone encerrado (opcional)
|
|
48
|
+
|
|
49
|
+
- **ID:** —
|
|
50
|
+
- **Data de encerramento:** —
|
|
51
|
+
- **Artefatos:** `.oxe/milestones/M-NN/`
|
|
52
|
+
|
|
53
|
+
## Workstreams ativos (opcional — `/oxe-workstream`)
|
|
54
|
+
|
|
55
|
+
- (nenhum ou lista de nomes: ex.: `feature-billing`, `bugfix-auth`)
|
|
56
|
+
|
|
57
|
+
## Workstream ativo (contexto atual)
|
|
58
|
+
|
|
59
|
+
- (nome do workstream ativo — ou — para pipeline principal)
|
|
60
|
+
|
|
61
|
+
## Memory (sidecars de sessão) (opcional — `/oxe-memory`)
|
|
62
|
+
|
|
63
|
+
Sidecars de memória persistente por agente/sessão. Armazenados em `.oxe/memory/`.
|
|
64
|
+
|
|
65
|
+
- (nenhum ou lista: ex.: `architect-2025-01-15.md`, `researcher-auth-2025-01-14.md`)
|
|
66
|
+
|
|
40
67
|
## Decisões persistentes
|
|
41
68
|
|
|
42
|
-
- (bullet: decisão → data)
|
|
69
|
+
- (bullet: D-NN: decisão → data)
|
|
43
70
|
|
|
44
71
|
## Próximo passo sugerido
|
|
45
72
|
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_comment": "OXE config — copie para .oxe/config.json no seu projeto. Remova esta linha.",
|
|
3
|
+
"profile": "balanced",
|
|
2
4
|
"discuss_before_plan": false,
|
|
5
|
+
"verification_depth": "standard",
|
|
3
6
|
"after_verify_suggest_pr": true,
|
|
4
7
|
"after_verify_draft_commit": true,
|
|
8
|
+
"after_verify_suggest_uat": false,
|
|
5
9
|
"default_verify_command": "",
|
|
6
10
|
"scan_max_age_days": 0,
|
|
7
11
|
"compact_max_age_days": 0,
|
|
12
|
+
"scale_adaptive": true,
|
|
8
13
|
"scan_focus_globs": [],
|
|
9
14
|
"scan_ignore_globs": [],
|
|
10
15
|
"spec_required_sections": [],
|
|
@@ -6,4 +6,4 @@ Esta pasta guarda handoffs entre agentes do blueprint **`.oxe/plan-agents.json`*
|
|
|
6
6
|
- O campo **`runId`** no frontmatter deve coincidir com o de `plan-agents.json`
|
|
7
7
|
- Não editar mensagens depois de criadas; invalidação do blueprint (`lifecycle.invalidated`) encerra novos envios
|
|
8
8
|
|
|
9
|
-
Gerado por **`/oxe-plan-agent`**.
|
|
9
|
+
Gerado por **`/oxe-plan-agent`**. Após **`/oxe-verify`** com sucesso e blueprint **`closed`**, o fluxo OXE **recomenda** mover este conteúdo para **`.oxe/archive/plan-agent-runs/<runId>/messages/`** (ver **`oxe/workflows/references/plan-agent-chat-protocol.md`**). Antes de um **replan** com novo `runId`, arquivar o run anterior se quiser preservar handoffs.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"oxeQuickAgentsSchema": 1,
|
|
3
|
+
"quickId": "quick-YYYY-MM-DD-substituir-por-6hex",
|
|
4
|
+
"quickRef": ".oxe/QUICK.md",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"since": "YYYY-MM-DDTHH:mm:ssZ",
|
|
7
|
+
"_comment": "Agentes derivados dos passos do QUICK.md. Plan-Driven Dynamic Agents (lean): criados para esta demanda, invalidados ao promover para spec/plan ou iniciar novo quick.",
|
|
8
|
+
"agents": [
|
|
9
|
+
{
|
|
10
|
+
"id": "agent-dominio-a",
|
|
11
|
+
"role": "Papel específico para ESTA demanda (não genérico)",
|
|
12
|
+
"persona": "executor",
|
|
13
|
+
"steps": [1, 2, 3],
|
|
14
|
+
"focus": "Uma frase sobre o foco deste agente nos steps atribuídos"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "agent-dominio-b",
|
|
18
|
+
"role": "Papel específico para ESTA demanda (não genérico)",
|
|
19
|
+
"persona": "executor",
|
|
20
|
+
"steps": [4, 5],
|
|
21
|
+
"focus": "Uma frase sobre o foco deste agente nos steps atribuídos"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
package/oxe/workflows/discuss.md
CHANGED
|
@@ -8,10 +8,22 @@ Usar quando: SPEC existe mas há ambiguidade, risco técnico, ou `discuss_before
|
|
|
8
8
|
|
|
9
9
|
<context>
|
|
10
10
|
- Ler `.oxe/SPEC.md`, `.oxe/STATE.md` e trechos relevantes de `.oxe/codebase/OVERVIEW.md` / `STACK.md`.
|
|
11
|
+
- Se existir **`.oxe/OBSERVATIONS.md`** com entradas `pendente` de impacto `spec`, `plan` ou `all`, carregá-las como contexto adicional para as perguntas e decisões; marcá-las `incorporada → discuss (data)` após uso.
|
|
11
12
|
- Se existir **`.oxe/NOTES.md`**, rever bullets em aberto: promover para perguntas/decisões em `DISCUSS.md` ou marcar como *descartado* / *adiado* com uma linha de justificativa.
|
|
12
13
|
- Se `.oxe/config.json` existir e `discuss_before_plan` for `true`, tratar este passo como **recomendado** antes de `oxe:plan`.
|
|
13
14
|
</context>
|
|
14
15
|
|
|
16
|
+
<decision_ids>
|
|
17
|
+
Toda decisão fechada em `DISCUSS.md` recebe um **ID estável** com prefixo `D-` e número sequencial: **D-01**, **D-02**, …
|
|
18
|
+
|
|
19
|
+
Regras:
|
|
20
|
+
1. O ID é atribuído **quando a decisão é registrada** (não quando a pergunta é feita).
|
|
21
|
+
2. IDs não são reutilizados — se uma decisão for revertida, registrar a reversão com novo ID (`D-05: Revertendo D-02 — novo comportamento X`) e marcar D-02 como `*(revertida por D-05)*`.
|
|
22
|
+
3. `PLAN.md` deve referenciar os IDs nas tarefas (campo **Decisão vinculada:** `D-01, D-03`).
|
|
23
|
+
4. `VERIFY.md` deve cruzar os IDs na seção **Fidelidade de decisões**.
|
|
24
|
+
5. O ID é o vínculo de rastreabilidade discuss → plan → verify.
|
|
25
|
+
</decision_ids>
|
|
26
|
+
|
|
15
27
|
<process>
|
|
16
28
|
1. Se não existir `.oxe/SPEC.md`, pedir **spec** primeiro (ou **quick** se for trabalho trivial).
|
|
17
29
|
2. Se existir **`.oxe/NOTES.md`**, rever bullets em aberto e decidir o que entra em **Perguntas** ou **Decisões** (ou marcar *descartado* / *adiado* com justificativa curta).
|
|
@@ -19,16 +31,47 @@ Usar quando: SPEC existe mas há ambiguidade, risco técnico, ou `discuss_before
|
|
|
19
31
|
4. Criar ou atualizar **`.oxe/DISCUSS.md`** com estrutura fixa:
|
|
20
32
|
- **Contexto** — 2–4 bullets do que já se sabe da SPEC.
|
|
21
33
|
- **Perguntas** — numeradas; para cada uma: resposta (se o usuário já respondeu na mensagem) ou `_(pendente)_`.
|
|
22
|
-
- **Decisões** —
|
|
23
|
-
- **Implicações para o plano** — bullets (ex.:
|
|
34
|
+
- **Decisões** — tabela com colunas **ID** / **Decisão** / **Data** / **Impacto no plano** (só as já fechadas). Atribuir IDs **D-01**, **D-02**, … em sequência.
|
|
35
|
+
- **Implicações para o plano** — bullets (ex.: "migrations necessárias", "feature flag").
|
|
24
36
|
5. Se ainda houver perguntas **pendentes** críticas, listá-las no chat (máx. 7) e parar até resposta; depois atualizar DISCUSS.md.
|
|
25
|
-
6. Atualizar **`.oxe/STATE.md`**: fase `discuss_complete`, próximo passo `oxe:plan`.
|
|
26
|
-
7. Resumo no chat em ≤8 linhas.
|
|
37
|
+
6. Atualizar **`.oxe/STATE.md`**: fase `discuss_complete`, próximo passo `oxe:plan`. Registrar os IDs de decisão na seção **Decisões persistentes** do STATE (ex.: `D-01: escolheu JWT — 2025-01-15`).
|
|
38
|
+
7. Resumo no chat em ≤8 linhas, listando decisões com seus IDs.
|
|
27
39
|
</process>
|
|
28
40
|
|
|
41
|
+
<discuss_md_format>
|
|
42
|
+
```markdown
|
|
43
|
+
---
|
|
44
|
+
oxe_doc: discuss
|
|
45
|
+
status: (open | closed)
|
|
46
|
+
updated: YYYY-MM-DD
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
# OXE — Discuss
|
|
50
|
+
|
|
51
|
+
## Contexto
|
|
52
|
+
- …
|
|
53
|
+
|
|
54
|
+
## Perguntas
|
|
55
|
+
|
|
56
|
+
1. **[pergunta]**
|
|
57
|
+
- Resposta: … / _(pendente)_
|
|
58
|
+
|
|
59
|
+
## Decisões
|
|
60
|
+
|
|
61
|
+
| ID | Decisão | Data | Impacto no plano |
|
|
62
|
+
|------|----------------------------------|------------|---------------------------------------|
|
|
63
|
+
| D-01 | (decisão clara e acionável) | YYYY-MM-DD | (como afeta tarefas / arquivos) |
|
|
64
|
+
| D-02 | … | … | … |
|
|
65
|
+
|
|
66
|
+
## Implicações para o plano
|
|
67
|
+
- …
|
|
68
|
+
```
|
|
69
|
+
</discuss_md_format>
|
|
70
|
+
|
|
29
71
|
<success_criteria>
|
|
30
72
|
- [ ] `.oxe/DISCUSS.md` existe com perguntas e decisões alinhadas à SPEC.
|
|
73
|
+
- [ ] Cada decisão fechada tem ID único **D-NN** na tabela de Decisões.
|
|
31
74
|
- [ ] Se existir `.oxe/NOTES.md`, as entradas relevantes foram tratadas (promovidas, descartadas ou adiadas com nota).
|
|
32
75
|
- [ ] Nenhuma ambiguidade crítica ficou sem registro (como pendente ou suposição explícita na SPEC).
|
|
33
|
-
- [ ] `STATE.md` indica próximo passo **plan**.
|
|
76
|
+
- [ ] `STATE.md` indica próximo passo **plan** e lista IDs de decisão em **Decisões persistentes**.
|
|
34
77
|
</success_criteria>
|
package/oxe/workflows/execute.md
CHANGED
|
@@ -1,47 +1,130 @@
|
|
|
1
1
|
# OXE — Workflow: execute
|
|
2
2
|
|
|
3
3
|
<objective>
|
|
4
|
-
Guiar a **implementação
|
|
4
|
+
Guiar a **implementação** de um plano OXE com dois modos possíveis:
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**Modo Solo (padrão):** seguir `.oxe/PLAN.md` onda a onda sem `plan-agents.json`. O agente implementa diretamente cada tarefa Tn da onda atual, roda a verificação e avança. Não exige nenhum artefato além do PLAN.md.
|
|
7
|
+
|
|
8
|
+
**Modo com Agentes (extensão):** quando existe `.oxe/plan-agents.json` válido (schema 2, lifecycle ativo, runId alinhado ao STATE), adotar roles e personas por agente conforme o blueprint.
|
|
9
|
+
|
|
10
|
+
**Seleção de execução (redução de requisições):** quando o plano tem 2+ ondas, o usuário escolhe entre Completo (1 sessão), Por onda (N sessões) ou Por tarefa (N tarefas). A escolha é feita **uma vez** no início.
|
|
11
|
+
|
|
12
|
+
Se existir apenas **`.oxe/QUICK.md`**: tratar passos numerados como onda única (modo sempre Completo).
|
|
7
13
|
</objective>
|
|
8
14
|
|
|
15
|
+
<modo_solo>
|
|
16
|
+
## Modo Solo — Execução direta do PLAN.md
|
|
17
|
+
|
|
18
|
+
O modo padrão. Funciona sem `plan-agents.json`. O agente lê PLAN.md, segue as tarefas Tn na ordem das ondas, implementa e verifica.
|
|
19
|
+
|
|
20
|
+
**Checklist de onda (solo):**
|
|
21
|
+
```markdown
|
|
22
|
+
## Checklist — Onda N (OXE Solo)
|
|
23
|
+
- [ ] Dependências da onda conferidas (Tk de ondas anteriores concluídos)
|
|
24
|
+
- [ ] Tarefas da onda implementadas
|
|
25
|
+
- [ ] Comando **Verificar** de cada tarefa executado (ou agendado)
|
|
26
|
+
- [ ] STATE.md atualizado com progresso
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Ao fechar todas as ondas:** sugerir `/oxe-verify` para validação completa contra SPEC.
|
|
30
|
+
</modo_solo>
|
|
31
|
+
|
|
32
|
+
<execution_mode_selection>
|
|
33
|
+
## Seleção de Modo de Execução
|
|
34
|
+
|
|
35
|
+
**Quando aplicar:** ao início do execute, se PLAN.md tiver **2 ou mais ondas**. Apresentar UMA VEZ e armazenar a escolha em STATE.md para não perguntar novamente nas rodadas seguintes.
|
|
36
|
+
|
|
37
|
+
**Não aplicar** quando: QUICK.md (sempre Completo), PLAN.md com 1 onda (executar diretamente).
|
|
38
|
+
|
|
39
|
+
**Apresentar ao usuário:**
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Este plano tem [N] tarefas em [X] ondas. Como quer executar?
|
|
43
|
+
|
|
44
|
+
A) Completo → todas as [X] ondas nesta sessão
|
|
45
|
+
✓ 1 requisição/sessão (ideal: Copilot, Claude, Gemini)
|
|
46
|
+
✓ O agente vê todo o contexto e pode otimizar entre tarefas
|
|
47
|
+
⚠ Verificação inline — sem pausa entre ondas
|
|
48
|
+
|
|
49
|
+
B) Por onda → onda 1/[X] agora, você verifica e chama de novo para continuar
|
|
50
|
+
✓ Validação entre ondas reduz risco de retrabalho
|
|
51
|
+
✗ [X] sessões (uma por onda)
|
|
52
|
+
|
|
53
|
+
C) Por tarefa → T1 agora, você confirma, depois T2...
|
|
54
|
+
✓ Máximo controle
|
|
55
|
+
✗ [N] sessões (uma por tarefa)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Modo A — Completo:**
|
|
59
|
+
- Executar onda 1 → verificar → onda 2 → verificar → … → última onda
|
|
60
|
+
- A cada onda: executar o comando `**Verificar:**` de cada tarefa inline
|
|
61
|
+
- Atualizar STATE.md progressivamente (não esperar o final)
|
|
62
|
+
- Ao terminar: suário recebe sumário completo + sugestão de `/oxe-verify`
|
|
63
|
+
|
|
64
|
+
**Modo B — Por onda (padrão quando sem escolha):**
|
|
65
|
+
- Executar onda atual → apresentar checklist → parar
|
|
66
|
+
- Informar: "Onda N/X concluída. Chame `/oxe-execute` novamente para a Onda N+1."
|
|
67
|
+
|
|
68
|
+
**Modo C — Por tarefa:**
|
|
69
|
+
- Executar próxima tarefa pendente → parar
|
|
70
|
+
- Informar: "T[n] concluída. Chame `/oxe-execute` novamente para T[n+1]."
|
|
71
|
+
|
|
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
|
+
</execution_mode_selection>
|
|
74
|
+
|
|
9
75
|
<context>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
76
|
+
**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
|
+
|
|
78
|
+
**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
|
+
|
|
80
|
+
**Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de **`.oxe/plan-agents.json`** SOMENTE quando:
|
|
81
|
+
1. `lifecycle.status` ∈ `{ pending_execute, executing }` (não usar se `closed` ou `invalidated`).
|
|
82
|
+
2. **`runId`** no JSON coincide com **`run_id`** no STATE.md (secção Blueprint de agentes).
|
|
83
|
+
3. O pedido mapeia para pelo menos uma tarefa **`Tn`** no **`PLAN.md`**.
|
|
84
|
+
|
|
85
|
+
Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent` para novo blueprint.
|
|
86
|
+
|
|
87
|
+
**Transição `pending_execute` → `executing`:** na primeira onda com blueprint válido, atualizar `plan-agents.json` → `lifecycle: { "status": "executing", "since": "<ISO>" }` e espelhar em STATE.md.
|
|
88
|
+
|
|
89
|
+
**Protocolo agente → agente (blueprint):** mensagens em `.oxe/plan-agent-messages/` conforme `oxe/workflows/references/plan-agent-chat-protocol.md`.
|
|
90
|
+
|
|
91
|
+
**Se PLAN.md não existir mas QUICK.md existir:** seguir QUICK.md — passos = onda única, sempre Modo Completo.
|
|
92
|
+
|
|
93
|
+
**Se nem PLAN nem QUICK existir:** recomendar `oxe:plan` ou `oxe:quick` primeiro.
|
|
94
|
+
|
|
95
|
+
**Legado / brownfield:** entregáveis podem ser só documentação. Ver **`oxe/workflows/references/legacy-brownfield.md`**.
|
|
96
|
+
|
|
97
|
+
**Rotina compact/checkpoint:** antes de onda experimental ou refactor grande, `/oxe-checkpoint` com slug ajuda a retomar. Após ondas que mudem stack ou árvore, lembrar `/oxe-compact`.
|
|
22
98
|
</context>
|
|
23
99
|
|
|
24
100
|
<process>
|
|
25
|
-
1. Ler
|
|
26
|
-
2.
|
|
27
|
-
3.
|
|
28
|
-
4.
|
|
101
|
+
1. Ler **`.oxe/STATE.md`**, **`PLAN.md`** (se existir) e **`QUICK.md`** (se PLAN não existir).
|
|
102
|
+
2. Verificar **`.oxe/OBSERVATIONS.md`** — incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
|
|
103
|
+
3. **Seleção de modo** (apenas se PLAN.md com 2+ ondas e `execute_mode` não definido em STATE): apresentar opções A/B/C e aguardar escolha; registrar em STATE.md.
|
|
104
|
+
4. Identificar **onda ou bloco atual**: no PLAN, todas as tarefas da mesma onda sem dependências pendentes; no QUICK, passos ainda não marcados como feitos.
|
|
105
|
+
5. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
|
|
106
|
+
6. **Implementar** conforme o modo escolhido:
|
|
107
|
+
- **Modo Completo:** executar todas as ondas em sequência com verificação inline entre ondas; sumarizar ao final.
|
|
108
|
+
- **Modo Por onda:** executar onda atual, apresentar checklist, parar.
|
|
109
|
+
- **Modo Por tarefa:** executar próxima tarefa pendente, parar.
|
|
110
|
+
7. Após cada onda concluída, incluir checklist:
|
|
29
111
|
```markdown
|
|
30
112
|
## Checklist — Onda N (OXE)
|
|
31
|
-
- [ ] Pré-requisitos da onda conferidos (dependências
|
|
113
|
+
- [ ] Pré-requisitos da onda conferidos (dependências Tk atendidas)
|
|
32
114
|
- [ ] Implementação da onda concluída
|
|
33
|
-
- [ ] Comando
|
|
115
|
+
- [ ] Comando Verificar de cada tarefa executado (ou agendado)
|
|
34
116
|
```
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- Próximo passo: continuar próxima onda, `oxe:verify` (se todas as ondas terminadas), ou `oxe:plan` se o plano ficou obsoleto.
|
|
38
|
-
6. Se o PLAN tiver várias ondas, repetir execute por onda sob pedido; não apagar tarefas do PLAN.
|
|
117
|
+
8. Atualizar **`.oxe/STATE.md`**: última onda executada, tarefas concluídas (Tn), próximo passo.
|
|
118
|
+
9. Marcar OBS incorporadas como `incorporada → execute (data)` em `.oxe/OBSERVATIONS.md`.
|
|
39
119
|
</process>
|
|
40
120
|
|
|
41
121
|
<success_criteria>
|
|
42
|
-
- [ ]
|
|
43
|
-
- [ ]
|
|
44
|
-
- [ ]
|
|
122
|
+
- [ ] Modo de execução foi selecionado (ou herdado do STATE) antes de implementar.
|
|
123
|
+
- [ ] Onda ou bloco de passos explicitado antes de "implementar".
|
|
124
|
+
- [ ] Checklist da onda apresentado ou refletido no STATE.md.
|
|
125
|
+
- [ ] STATE.md registra progresso (Tn ou passos) e próximo passo.
|
|
45
126
|
- [ ] Verificação alinhada ao bloco **Verificar** do PLAN ou QUICK.
|
|
46
|
-
- [ ]
|
|
127
|
+
- [ ] OBS pendentes de impacto `execute` incorporadas no início da onda.
|
|
128
|
+
- [ ] Com quick-agents ativos: cada agente trabalha só em seus `steps[]`; ao concluir, `quick-agents.json` → `done`.
|
|
129
|
+
- [ ] Com blueprint schema 2 válido: não adotar persona para pedidos fora das `Tn`; `runId` alinhado entre JSON e STATE; handoffs escritos quando protocolo exige.
|
|
47
130
|
</success_criteria>
|
package/oxe/workflows/help.md
CHANGED
|
@@ -15,7 +15,7 @@ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout
|
|
|
15
15
|
|
|
16
16
|
### Cursor
|
|
17
17
|
|
|
18
|
-
Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-plan-agent`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/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` (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.
|
|
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.
|
|
19
19
|
|
|
20
20
|
### GitHub Copilot (VS Code)
|
|
21
21
|
|
|
@@ -49,17 +49,18 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
|
|
|
49
49
|
|
|
50
50
|
## Fluxo completo
|
|
51
51
|
|
|
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).
|
|
52
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`).
|
|
53
|
-
2. **spec** —
|
|
54
|
-
2b. **research** (opcional) — notas datadas em `.oxe/research/` + índice `.oxe/RESEARCH.md`; spikes, mapa de sistema, engenharia reversa,
|
|
55
|
-
3. **discuss** (opcional) — decisões antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`.
|
|
56
|
-
4. **plan** — plano executável + **Verificar** por tarefa, ligado aos critérios da SPEC.
|
|
57
|
-
4b. **plan-agent** (opcional) — igual ao **plan** + **`.oxe/plan-agents.json`** (schema **2**: `runId
|
|
58
|
-
5. **execute**
|
|
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.
|
|
59
60
|
6. Implementar mudanças no agente/editor.
|
|
60
|
-
7. **verify** —
|
|
61
|
-
7b. **validate-gaps** (opcional) — após verify, auditoria de cobertura em `.oxe/VALIDATION-GAPS.md
|
|
62
|
-
8. **next** — retomar trabalho; no terminal: **`npx oxe-cc status`** sugere um único próximo passo
|
|
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.
|
|
63
64
|
|
|
64
65
|
**Recuperação e meta (mesma trilha, outra camada):**
|
|
65
66
|
|
|
@@ -77,9 +78,21 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
|
|
|
77
78
|
- **`/oxe-ui-spec`** — após **spec**, contrato `.oxe/UI-SPEC.md` antes ou para alimentar o **plan** (ver `ui-spec.md`).
|
|
78
79
|
- **`/oxe-ui-review`** — após implementação UI, auditoria `.oxe/UI-REVIEW.md` antes ou como entrada para **verify** (ver `ui-review.md`).
|
|
79
80
|
|
|
80
|
-
## Modo rápido (quick)
|
|
81
|
+
## Modo rápido (quick) com Plan-Driven Dynamic Agents lean
|
|
81
82
|
|
|
82
|
-
- **`/oxe-quick`**: cria `.oxe/QUICK.md` (passos curtos + verificar) sem SPEC/PLAN longos
|
|
83
|
+
- **`/oxe-quick`**: cria `.oxe/QUICK.md` (passos curtos + verificar) sem SPEC/PLAN longos, integrando o conceito de **Plan-Driven Dynamic Agents (lean)**:
|
|
84
|
+
|
|
85
|
+
| Princípio | Como se manifesta no Quick |
|
|
86
|
+
|-----------|---------------------------|
|
|
87
|
+
| **Spec-Driven Design** | `## Objetivo` é a minispec — restringe o escopo de todos os agentes e passos |
|
|
88
|
+
| **Spec-Driven Development** | `## Passos` é o mini-plano — os agentes são derivados dos passos, não os definem |
|
|
89
|
+
| **Plan-Driven Dynamic Agents** | Agentes criados **a partir dos passos**, para **esta demanda**, invalidados ao terminar |
|
|
90
|
+
|
|
91
|
+
**Quando ativar agentes:** tarefa com 2+ domínios distintos (ex.: backend + frontend), 5+ passos que agrupam naturalmente, ou flag `--agents`. Máx. 3 agentes — se precisar de mais, promover para `/oxe-plan-agent`.
|
|
92
|
+
|
|
93
|
+
**Artefatos com agentes:** além de `.oxe/QUICK.md` (com seção `## Agentes dinâmicos`), cria **`.oxe/quick-agents.json`** (schema lean; `status: active` → `done` após verify). Sem handoff de mensagens entre agentes (lean — sem `.oxe/plan-agent-messages/`).
|
|
94
|
+
|
|
95
|
+
**Perfil fast (sem agentes):** objetivo numa frase, ≤10 passos, verificação. **Promova** para spec/plan se o trabalho crescer (muitos arquivos, API pública, segurança, ou > 3 domínios). Se existir **`.oxe/plan-agents.json`** (schema 2) ainda activo, o quick **invalida** o blueprint — não reutilizar esses agentes neste fluxo; para novo roteiro com agentes, **`/oxe-plan-agent`**.
|
|
83
96
|
|
|
84
97
|
## CLI (terminal)
|
|
85
98
|
|
|
@@ -114,18 +127,69 @@ Um pedido → **um** destino (sem gerar contrato). O agente aplica `route.md` ou
|
|
|
114
127
|
| O que é OXE / lista de passos | `/oxe-help` |
|
|
115
128
|
| Dúvida entre dois comandos sem contexto claro | `/oxe-route` |
|
|
116
129
|
| Pesquisa técnica, spike, mapa de sistema grande, engenharia reversa, modernização antes do plano | `/oxe-research` |
|
|
130
|
+
| Quero registrar uma observação (restrição, descoberta, preferência) durante ou fora de execução | `/oxe-obs [texto]` |
|
|
131
|
+
| Quero executar todo o plano de uma vez (1 sessão) | `/oxe-execute` → escolher opção A (Completo) |
|
|
132
|
+
| Quero executar onda por onda com verificação entre ondas | `/oxe-execute` → escolher opção B (Por onda) |
|
|
117
133
|
| Gaps de cobertura de verificação / Nyquist-lite após verify | `/oxe-validate-gaps` |
|
|
118
134
|
| Mapa OXE desatualizado / quero sincronizar codebase com o código sem scan completo | `/oxe-compact` |
|
|
119
135
|
| Quero gravar um marco nomeado da sessão (antes de experimento grande) | `/oxe-checkpoint` + slug |
|
|
120
136
|
| Plano com **blueprint de agentes** (JSON + mesmo PLAN.md) / subagentes por onda | `/oxe-plan-agent` |
|
|
137
|
+
| Criar marco de entrega / versão / milestone | `/oxe-milestone new [nome]` |
|
|
138
|
+
| Verificar se o milestone está pronto para fechar | `/oxe-milestone audit` |
|
|
139
|
+
| Trabalho paralelo em trilhas separadas / feature branch OXE | `/oxe-workstream new <nome>` |
|
|
140
|
+
| Alternar entre trilhas de desenvolvimento | `/oxe-workstream switch <nome>` |
|
|
141
|
+
|
|
142
|
+
## Observações Contextuais (`/oxe-obs`)
|
|
143
|
+
|
|
144
|
+
**Princípio:** *observation-without-re-explaining* — registre uma observação em 1 request; ela é incorporada automaticamente nos workflows seguintes sem precisar re-explicar.
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
/oxe-obs JWT expiration deve ser via env var JWT_EXPIRES_IN, não hardcoded
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- **Quando usar:** durante execute (descoberta técnica), após scan (restrição identificada), após spec (ajuste de escopo), a qualquer momento
|
|
151
|
+
- **Impacto:** classificado automaticamente em `spec` | `plan` | `execute` | `all`
|
|
152
|
+
- **Auto-incorporação:** o próximo `/oxe-spec` (Fase 3), `/oxe-plan`, `/oxe-discuss` ou `/oxe-execute` lê `.oxe/OBSERVATIONS.md` e aplica observações pendentes sem prompt extra
|
|
153
|
+
- **Urgência execute:** se chamado durante `executing` com impacto execute, oferece pausar onda atual ou continuar
|
|
121
154
|
|
|
122
155
|
## Notas pré-trilha (opcional)
|
|
123
156
|
|
|
124
157
|
- Ficheiro **`.oxe/NOTES.md`**: bullets `YYYY-MM-DD — …` como fila leve (**não** substitui SPEC). Em **`/oxe-discuss`**, **`/oxe-plan`** e **`/oxe-plan-agent`**, consumir ou marcar descartado/adiado.
|
|
125
158
|
|
|
159
|
+
## Milestones e Workstreams
|
|
160
|
+
|
|
161
|
+
- **`/oxe-milestone new [nome]`** — iniciar marco de entrega (M-01, M-02, …); registrado em `.oxe/MILESTONES.md`.
|
|
162
|
+
- **`/oxe-milestone complete`** — fechar milestone ativo, arquivar artefatos em `.oxe/milestones/M-NN/`.
|
|
163
|
+
- **`/oxe-milestone status`** / **`/oxe-milestone audit`** — progresso e Definition of Done.
|
|
164
|
+
- **`/oxe-workstream new <nome>`** — trilha paralela em `.oxe/workstreams/<nome>/`.
|
|
165
|
+
- **`/oxe-workstream switch <nome>`** — definir workstream ativo; workflows operam nos artefatos dessa trilha.
|
|
166
|
+
- **`/oxe-workstream list`** / **`/oxe-workstream close <nome>`** — gerenciar trilhas.
|
|
167
|
+
|
|
168
|
+
## Personas de agentes
|
|
169
|
+
|
|
170
|
+
Arquivos em `oxe/personas/` (ou `.oxe/personas/` após instalação) definem comportamentos de agentes para uso com `/oxe-plan-agent`. Personas builtin: `executor`, `planner`, `verifier`, `researcher`, `debugger`, `architect`, `ui-specialist`, `db-specialist`. Personas customizadas do projeto ficam em `.oxe/personas/`.
|
|
171
|
+
|
|
172
|
+
## Profiles de execução
|
|
173
|
+
|
|
174
|
+
O campo `profile` em `.oxe/config.json` expande automaticamente múltiplas keys:
|
|
175
|
+
- **`balanced`** (padrão): cerimônia moderada, verificação standard.
|
|
176
|
+
- **`strict`**: discuss obrigatório, verificação 4 camadas, UAT, aviso de scan antigo.
|
|
177
|
+
- **`fast`**: sem discuss, verificação quick, sem UAT.
|
|
178
|
+
- **`legacy`**: discuss obrigatório, verificação thorough, sem comando de test assumido.
|
|
179
|
+
|
|
126
180
|
## SDK (API programática)
|
|
127
181
|
|
|
128
|
-
Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pacote):
|
|
182
|
+
Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pacote):
|
|
183
|
+
- **`runDoctorChecks({ projectRoot })`** — gate em CI.
|
|
184
|
+
- **`parsePlan(planMd)`** — extrai tarefas, ondas, decisões e metadata de PLAN.md.
|
|
185
|
+
- **`parseSpec(specMd)`** — extrai critérios A* e seções obrigatórias.
|
|
186
|
+
- **`parseState(stateMd)`** — extrai fase, scan date, workstreams, milestone ativo.
|
|
187
|
+
- **`validateDecisionFidelity(discussMd, planMd)`** — verifica cobertura de decisões D-NN.
|
|
188
|
+
- **`security.checkPathSafety(path, root)`** — valida caminhos contra path traversal e segredos.
|
|
189
|
+
- **`plugins.loadPlugins(projectRoot)`** / **`plugins.runHook(plugins, hook, ctx)`** — plugin lifecycle.
|
|
190
|
+
- **`health.expandExecutionProfile(profile)`** — expande profile em keys individuais.
|
|
191
|
+
|
|
192
|
+
Ver **`lib/sdk/README.md`** e **`lib/sdk/index.d.ts`**.
|
|
129
193
|
|
|
130
194
|
## Variáveis de ambiente (referência)
|
|
131
195
|
|
|
@@ -142,8 +206,9 @@ Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pa
|
|
|
142
206
|
|
|
143
207
|
## Artefatos
|
|
144
208
|
|
|
145
|
-
- `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional), `.oxe/NOTES.md` (opcional, fila), `.oxe/RESUME.md` (opcional, trilha + ponte para delta), `.oxe/CODEBASE-DELTA.md` (opcional, último refresh documentado do codebase), `.oxe/CHECKPOINTS.md` (opcional, índice), `.oxe/checkpoints/*.md` (opcional, marcos de sessão), `.oxe/RESEARCH.md` (opcional, índice de pesquisa), `.oxe/research/*.md` (opcional, notas datadas), `.oxe/VALIDATION-GAPS.md` (opcional, pós-verify), `.oxe/FORENSICS.md` (opcional, recuperação), `.oxe/DEBUG.md` (opcional, sessões de debug), `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md` (opcional, front-end)
|
|
146
|
-
-
|
|
209
|
+
- `.oxe/STATE.md`, `.oxe/config.json` (opcional), `.oxe/codebase/*`, `.oxe/SPEC.md`, `.oxe/DISCUSS.md` (opcional, com IDs D-NN), `.oxe/PLAN.md`, `.oxe/VERIFY.md`, `.oxe/QUICK.md`, `.oxe/SUMMARY.md` (opcional), `.oxe/NOTES.md` (opcional, fila), `.oxe/RESUME.md` (opcional, trilha + ponte para delta), `.oxe/CODEBASE-DELTA.md` (opcional, último refresh documentado do codebase), `.oxe/CHECKPOINTS.md` (opcional, índice), `.oxe/checkpoints/*.md` (opcional, marcos de sessão), `.oxe/RESEARCH.md` (opcional, índice de pesquisa), `.oxe/research/*.md` (opcional, notas datadas), `.oxe/VALIDATION-GAPS.md` (opcional, pós-verify), `.oxe/FORENSICS.md` (opcional, recuperação), `.oxe/DEBUG.md` (opcional, sessões de debug), `.oxe/UI-SPEC.md` / `.oxe/UI-REVIEW.md` (opcional, front-end)
|
|
210
|
+
- **Novos artefatos:** `.oxe/MILESTONES.md` (marcos de entrega), `.oxe/milestones/M-NN/` (artefatos arquivados), `.oxe/workstreams/<nome>/` (trilhas paralelas), `.oxe/personas/*.md` (personas de agentes customizadas), `.oxe/plugins/*.cjs` (plugins de lifecycle), `.oxe/memory/*.md` (sidecars de memória por sessão).
|
|
211
|
+
- Templates: `oxe/templates/` (ou `.oxe/templates/` em layout aninhado, conforme instalação). Hooks Git **opt-in** (lembretes não bloqueantes): `oxe/templates/GIT_HOOKS_OXE.md`. Plugin system: `oxe/templates/PLUGINS.md`.
|
|
147
212
|
|
|
148
213
|
## Para autores (mantenedores)
|
|
149
214
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# OXE — Workflow: milestone
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Gerenciar **marcos de entrega** do projeto: registrar versões entregues, arquivar fases concluídas e preparar o contexto para a próxima iteração.
|
|
5
|
+
|
|
6
|
+
Subcomandos:
|
|
7
|
+
- `/oxe-milestone new [nome]` — iniciar novo milestone.
|
|
8
|
+
- `/oxe-milestone complete` — fechar milestone ativo, arquivar artefatos, preparar próxima iteração.
|
|
9
|
+
- `/oxe-milestone status` — exibir progresso do milestone ativo.
|
|
10
|
+
- `/oxe-milestone audit` — verificar se o milestone atingiu sua definição de pronto.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<context>
|
|
14
|
+
- Milestone ≠ Checkpoint. **Checkpoint** (`/oxe-checkpoint`) é um snapshot de sessão — restaurável a qualquer momento. **Milestone** é uma entrega — marcador de versão com artefatos arquivados e critérios de pronto validados.
|
|
15
|
+
- Milestones são rastreados em **`.oxe/MILESTONES.md`** (índice) e cada entrega tem uma entrada com status, data e links aos artefatos.
|
|
16
|
+
- O milestone ativo é registrado no **STATE.md** na seção **Milestone ativo**.
|
|
17
|
+
- Um milestone é considerado **pronto** quando:
|
|
18
|
+
1. Todos os critérios A* da SPEC estão com `verify_complete` no STATE.
|
|
19
|
+
2. VERIFY.md não tem gaps abertos.
|
|
20
|
+
3. Checklist UAT foi preenchido pelo usuário (se aplicável).
|
|
21
|
+
4. Rascunho de commit ou PR foi gerado.
|
|
22
|
+
</context>
|
|
23
|
+
|
|
24
|
+
<process_new>
|
|
25
|
+
**`/oxe-milestone new [nome]`**
|
|
26
|
+
|
|
27
|
+
1. Verificar se há milestone ativo em STATE.md. Se houver, alertar e pedir confirmação antes de criar novo.
|
|
28
|
+
2. Gerar ID sequencial: **M-01**, **M-02**, …
|
|
29
|
+
3. Criar entrada em **`.oxe/MILESTONES.md`**:
|
|
30
|
+
```markdown
|
|
31
|
+
## M-01 — [nome] (ativo)
|
|
32
|
+
- **Status:** ativo
|
|
33
|
+
- **Iniciado:** YYYY-MM-DD
|
|
34
|
+
- **SPEC:** `.oxe/SPEC.md` (versão atual)
|
|
35
|
+
- **Critérios:** A1, A2, … (lista dos IDs da SPEC)
|
|
36
|
+
- **Entregável:** (descrever o que será entregue)
|
|
37
|
+
```
|
|
38
|
+
4. Atualizar **STATE.md**: seção **Milestone ativo** com ID e nome.
|
|
39
|
+
5. Confirmar no chat: `Milestone M-01 iniciado — próximo passo: /oxe-spec (ou /oxe-plan se SPEC já existir)`.
|
|
40
|
+
</process_new>
|
|
41
|
+
|
|
42
|
+
<process_complete>
|
|
43
|
+
**`/oxe-milestone complete`**
|
|
44
|
+
|
|
45
|
+
Pré-requisitos (verificar antes de executar):
|
|
46
|
+
- [ ] STATE.md indica `verify_complete`.
|
|
47
|
+
- [ ] VERIFY.md não tem gaps abertos.
|
|
48
|
+
- [ ] Checklist UAT preenchido (se aplicável).
|
|
49
|
+
|
|
50
|
+
Se pré-requisitos não forem satisfeitos: listar os que faltam e pausar. Com `--force`: documentar pré-requisitos não satisfeitos e continuar com aviso.
|
|
51
|
+
|
|
52
|
+
Passos:
|
|
53
|
+
1. Arquivar artefatos do milestone:
|
|
54
|
+
- Copiar `.oxe/SPEC.md` → `.oxe/milestones/M-NN/SPEC.md`
|
|
55
|
+
- Copiar `.oxe/PLAN.md` → `.oxe/milestones/M-NN/PLAN.md`
|
|
56
|
+
- Copiar `.oxe/VERIFY.md` → `.oxe/milestones/M-NN/VERIFY.md`
|
|
57
|
+
- Copiar `.oxe/DISCUSS.md` → `.oxe/milestones/M-NN/DISCUSS.md` (se existir)
|
|
58
|
+
- Criar `.oxe/milestones/M-NN/MILESTONE.md` com resumo da entrega.
|
|
59
|
+
2. Atualizar **`.oxe/MILESTONES.md`**: marcar milestone como `entregue`, adicionar data de encerramento e links aos artefatos arquivados.
|
|
60
|
+
3. Atualizar **STATE.md**: limpar seção **Milestone ativo**, registrar **Último milestone** com ID e data.
|
|
61
|
+
4. Sugerir próximo milestone ou nova spec: `Milestone M-NN concluído. Próximos passos: /oxe-milestone new v2 | /oxe-spec | /oxe-checkpoint`.
|
|
62
|
+
</process_complete>
|
|
63
|
+
|
|
64
|
+
<process_status>
|
|
65
|
+
**`/oxe-milestone status`**
|
|
66
|
+
|
|
67
|
+
1. Ler STATE.md para identificar milestone ativo (ID e nome).
|
|
68
|
+
2. Ler MILESTONES.md para detalhes.
|
|
69
|
+
3. Ler SPEC.md para listar critérios A* e seu status (verificado / pendente).
|
|
70
|
+
4. Ler VERIFY.md (se existir) para gaps abertos.
|
|
71
|
+
5. Exibir no chat:
|
|
72
|
+
- Milestone ativo: ID, nome, data de início.
|
|
73
|
+
- Progresso: N/M critérios verificados.
|
|
74
|
+
- Gaps abertos: lista ou "nenhum".
|
|
75
|
+
- Próximo passo sugerido.
|
|
76
|
+
</process_status>
|
|
77
|
+
|
|
78
|
+
<process_audit>
|
|
79
|
+
**`/oxe-milestone audit`**
|
|
80
|
+
|
|
81
|
+
Verificar definição de pronto (Definition of Done):
|
|
82
|
+
1. [ ] `verify_complete` no STATE.
|
|
83
|
+
2. [ ] VERIFY.md sem gaps.
|
|
84
|
+
3. [ ] Checklist UAT preenchido (ou ausente se inaplicável).
|
|
85
|
+
4. [ ] Rascunho de commit ou PR gerado.
|
|
86
|
+
5. [ ] Artefatos do milestone existem (SPEC, PLAN, VERIFY).
|
|
87
|
+
|
|
88
|
+
Resultado: `Milestone M-NN: PRONTO` ou lista de itens pendentes.
|
|
89
|
+
</process_audit>
|
|
90
|
+
|
|
91
|
+
<success_criteria>
|
|
92
|
+
- [ ] `.oxe/MILESTONES.md` existe e tem entrada para o milestone ativo.
|
|
93
|
+
- [ ] STATE.md indica milestone ativo (ID e nome).
|
|
94
|
+
- [ ] Ao completar: artefatos arquivados em `.oxe/milestones/M-NN/`.
|
|
95
|
+
- [ ] Ao completar: MILESTONES.md atualizado com status `entregue` e data.
|
|
96
|
+
</success_criteria>
|