oxe-cc 0.6.2 → 0.6.5
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 +1 -1
- package/.cursor/commands/oxe-session.md +11 -0
- package/.github/prompts/oxe-execute.prompt.md +1 -1
- package/.github/prompts/oxe-loop.prompt.md +12 -12
- package/.github/prompts/oxe-project.prompt.md +12 -12
- package/.github/prompts/oxe-retro.prompt.md +12 -12
- package/.github/prompts/oxe-security.prompt.md +12 -12
- package/.github/prompts/oxe-session.prompt.md +12 -0
- package/.github/prompts/oxe.prompt.md +12 -12
- package/AGENTS.md +75 -8
- package/CHANGELOG.md +74 -0
- package/README.md +81 -60
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-project-health.cjs +82 -0
- package/bin/oxe-cc.js +13 -1
- package/commands/oxe/loop.md +17 -17
- package/commands/oxe/oxe.md +16 -16
- package/commands/oxe/project.md +16 -16
- package/commands/oxe/retro.md +16 -16
- package/commands/oxe/review-pr.md +16 -0
- package/commands/oxe/security.md +16 -16
- package/commands/oxe/session.md +16 -0
- package/commands/oxe/update.md +16 -0
- package/lib/sdk/index.cjs +22 -1
- package/lib/sdk/index.d.ts +28 -2
- package/oxe/schemas/plan-agents.schema.json +15 -4
- package/oxe/templates/CONFIG.md +6 -1
- package/oxe/templates/LESSONS.template.md +43 -43
- package/oxe/templates/SECURITY.template.md +72 -72
- package/oxe/templates/SESSION.template.md +32 -0
- package/oxe/templates/STATE.md +29 -6
- package/oxe/templates/config.template.json +2 -0
- package/oxe/templates/plan-agents.template.json +1 -0
- package/oxe/workflows/checkpoint.md +10 -9
- package/oxe/workflows/debug.md +6 -5
- package/oxe/workflows/discuss.md +8 -7
- package/oxe/workflows/execute.md +14 -12
- package/oxe/workflows/forensics.md +6 -6
- package/oxe/workflows/help.md +21 -4
- package/oxe/workflows/loop.md +57 -57
- package/oxe/workflows/milestone.md +12 -13
- package/oxe/workflows/next.md +9 -5
- package/oxe/workflows/obs.md +19 -8
- package/oxe/workflows/oxe.md +115 -115
- package/oxe/workflows/plan-agent.md +4 -3
- package/oxe/workflows/plan.md +17 -16
- package/oxe/workflows/project.md +50 -50
- package/oxe/workflows/quick.md +6 -5
- package/oxe/workflows/references/session-path-resolution.md +71 -0
- package/oxe/workflows/research.md +9 -8
- package/oxe/workflows/retro.md +62 -62
- package/oxe/workflows/security.md +59 -58
- package/oxe/workflows/session.md +153 -0
- package/oxe/workflows/spec.md +26 -20
- package/oxe/workflows/ui-review.md +3 -3
- package/oxe/workflows/ui-spec.md +3 -3
- package/oxe/workflows/validate-gaps.md +5 -4
- package/oxe/workflows/verify.md +12 -9
- package/oxe/workflows/workstream.md +16 -15
- package/package.json +2 -2
package/oxe/workflows/help.md
CHANGED
|
@@ -16,19 +16,36 @@ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout
|
|
|
16
16
|
```
|
|
17
17
|
/oxe → onde estou / o que faço / help (entrada universal)
|
|
18
18
|
/oxe-obs → registrei algo importante — incorporado automaticamente nos próximos passos
|
|
19
|
-
/oxe-quick → tarefa pequena, sem cerimônia (com agentes lean quando necessário)
|
|
20
|
-
/oxe-
|
|
19
|
+
/oxe-quick → tarefa pequena, sem cerimônia (com agentes lean quando necessário)
|
|
20
|
+
/oxe-session → criar, alternar, retomar, fechar ou migrar sessões OXE
|
|
21
|
+
/oxe-scan → mapeia o projeto (ou atualiza o mapa se já existir)
|
|
21
22
|
/oxe-spec → nova feature: perguntas → pesquisa → requisitos → roteiro → aprovação
|
|
22
23
|
/oxe-plan → tarefas por onda (--agents para blueprint multi-agente)
|
|
23
24
|
/oxe-execute → implementar (A: 1 sessão | B: por onda | C: por tarefa)
|
|
24
25
|
/oxe-verify → validar (camadas 5+6 opcionais via config: gaps + segurança)
|
|
25
26
|
```
|
|
26
27
|
|
|
27
|
-
Tudo o mais é ativado automaticamente por contexto, por config, ou existe como escape hatch.
|
|
28
|
+
Tudo o mais é ativado automaticamente por contexto, por config, ou existe como escape hatch.
|
|
28
29
|
|
|
29
30
|
---
|
|
30
31
|
|
|
31
|
-
##
|
|
32
|
+
## Sessões OXE
|
|
33
|
+
|
|
34
|
+
- `active_session` em `.oxe/STATE.md` define a sessão ativa com path relativo completo (`sessions/sNNN-slug`).
|
|
35
|
+
- Com sessão ativa, workflows de spec/plan/execute/verify e suportes ligados à trilha escrevem em `.oxe/<active_session>/...`.
|
|
36
|
+
- Permanecem globais: `.oxe/STATE.md`, `.oxe/config.json`, `.oxe/codebase/`, `.oxe/SESSIONS.md`, `.oxe/global/LESSONS.md`, `.oxe/global/MILESTONES.md`.
|
|
37
|
+
- Nesta versão, o suporte é **workflows only**: `oxe-cc status` / `doctor` ainda não são session-aware.
|
|
38
|
+
|
|
39
|
+
### `/oxe-session`
|
|
40
|
+
|
|
41
|
+
- `new <nome>` — cria `.oxe/sessions/sNNN-slug/` e ativa a sessão
|
|
42
|
+
- `list` — mostra `.oxe/SESSIONS.md`
|
|
43
|
+
- `switch <id>` / `resume <id>` — alterna a sessão ativa
|
|
44
|
+
- `status` — mostra o manifesto `SESSION.md`
|
|
45
|
+
- `close` — arquiva a sessão ativa
|
|
46
|
+
- `migrate <nome>` — move artefatos session-scoped da raiz para uma nova sessão
|
|
47
|
+
|
|
48
|
+
## Integrações principais (referência)
|
|
32
49
|
|
|
33
50
|
### Cursor
|
|
34
51
|
|
package/oxe/workflows/loop.md
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
# OXE — Workflow: loop (execução iterativa até verificação passar)
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Executar uma **onda do PLAN.md** em ciclo iterativo até que a verificação inline passe ou o limite de tentativas seja atingido. Complementa o **Modo B** (por onda) do **`execute.md`** com retries automáticos e diagnóstico inline de falhas.
|
|
5
|
-
|
|
6
|
-
Quando verify falha, não interrompe — diagnostica (2-3 hipóteses), corrige, tenta de novo. Escala para **`/oxe-forensics`** apenas quando esgota as tentativas.
|
|
7
|
-
</objective>
|
|
8
|
-
|
|
9
|
-
<context>
|
|
10
|
-
- **Pré-requisito:** `.oxe/PLAN.md` existente com pelo menos 1 onda; `STATE.md` com fase ≥ `plan_ready`.
|
|
11
|
-
- **Máximo de iterações:** padrão = 3; configurável via argumento `max:<N>` (ex.: `/oxe-loop onda 2 max:5`). Nunca exceder 10.
|
|
12
|
-
- **Artefato:** não cria novos arquivos — atualiza `STATE.md` com campos `loop_*` e registra cada iteração como bloco inline no chat.
|
|
13
|
-
- **Escalação:** se esgotou tentativas e ainda falhou → registrar estado em STATE.md + sugerir `/oxe-forensics` com contexto das hipóteses já tentadas.
|
|
14
|
-
- **Não substitui** `/oxe-verify` global (4 camadas): o loop faz verificação **inline por onda** (comando `**Verificar:**` de cada Tn); o verify completo deve ser chamado ao final de todas as ondas.
|
|
15
|
-
</context>
|
|
16
|
-
|
|
17
|
-
<loop_state>
|
|
18
|
-
## Campos em STATE.md durante o loop
|
|
19
|
-
|
|
20
|
-
```yaml
|
|
21
|
-
loop_onda: 2 # número da onda sendo executada
|
|
22
|
-
loop_iteracao: 2/3 # tentativa atual / máximo
|
|
23
|
-
loop_status: retrying # retrying | passed | escalated
|
|
24
|
-
loop_hipoteses: ["H1: ...", "H2: ..."] # hipóteses da última falha
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Limpar campos `loop_*` ao concluir com `passed` (ou manter `escalated` se escalou para forensics).
|
|
28
|
-
</loop_state>
|
|
29
|
-
|
|
30
|
-
<process>
|
|
31
|
-
1. Ler `.oxe/STATE.md` e `.oxe/PLAN.md`. Identificar a onda alvo (argumento do usuário ou próxima onda pendente em STATE).
|
|
32
|
-
2. Registrar em STATE.md: `loop_onda: N`, `loop_iteracao: 1/<max>`, `loop_status: retrying`.
|
|
33
|
-
3. **Iteração:**
|
|
34
|
-
a. Listar tarefas da onda N com seus comandos `**Verificar:**`.
|
|
35
|
-
b. Implementar todas as tarefas da onda (seguindo `execute.md` `<modo_solo>`).
|
|
36
|
-
c. Executar os comandos `Verificar` de cada `Tn`.
|
|
37
|
-
d. **Se todos passaram:** registrar `loop_status: passed`; limpar campos `loop_*`; atualizar STATE.md com onda concluída; informar usuário e sugerir próxima onda ou `/oxe-verify`.
|
|
38
|
-
e. **Se algum falhou:**
|
|
39
|
-
- Listar 2-3 hipóteses de causa (baseado no erro/output da verificação).
|
|
40
|
-
- Registrar `loop_hipoteses` em STATE.md.
|
|
41
|
-
- Incrementar iteração: `loop_iteracao: K+1/<max>`.
|
|
42
|
-
- Se `K+1 > max`: ir para passo 4 (escalação).
|
|
43
|
-
- Senão: aplicar fix para a hipótese mais provável → voltar a `c`.
|
|
44
|
-
4. **Escalação (tentativas esgotadas):**
|
|
45
|
-
- Registrar `loop_status: escalated` em STATE.md.
|
|
46
|
-
- Exibir no chat: tentativas realizadas, hipóteses testadas, evidência de cada falha.
|
|
47
|
-
- Sugerir `/oxe-forensics` com contexto: "onda N falhou após <max> tentativas — hipóteses testadas: H1, H2, H3".
|
|
48
|
-
</process>
|
|
49
|
-
|
|
50
|
-
<success_criteria>
|
|
51
|
-
- [ ] STATE.md tem campos `loop_*` atualizados a cada iteração.
|
|
52
|
-
- [ ] Cada falha gera 2-3 hipóteses registradas antes de tentar fix.
|
|
53
|
-
- [ ] Ao passar: campos `loop_*` limpos; onda marcada como concluída em STATE.md.
|
|
54
|
-
- [ ] Ao esgotar: `loop_status: escalated` + sugestão de `/oxe-forensics` com contexto completo.
|
|
55
|
-
- [ ] Nunca excede `max` iterações configurado.
|
|
56
|
-
- [ ] Não altera `.oxe/PLAN.md` (só implementa o que já está planejado).
|
|
57
|
-
</success_criteria>
|
|
1
|
+
# OXE — Workflow: loop (execução iterativa até verificação passar)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Executar uma **onda do PLAN.md** em ciclo iterativo até que a verificação inline passe ou o limite de tentativas seja atingido. Complementa o **Modo B** (por onda) do **`execute.md`** com retries automáticos e diagnóstico inline de falhas.
|
|
5
|
+
|
|
6
|
+
Quando verify falha, não interrompe — diagnostica (2-3 hipóteses), corrige, tenta de novo. Escala para **`/oxe-forensics`** apenas quando esgota as tentativas.
|
|
7
|
+
</objective>
|
|
8
|
+
|
|
9
|
+
<context>
|
|
10
|
+
- **Pré-requisito:** `.oxe/PLAN.md` existente com pelo menos 1 onda; `STATE.md` com fase ≥ `plan_ready`.
|
|
11
|
+
- **Máximo de iterações:** padrão = 3; configurável via argumento `max:<N>` (ex.: `/oxe-loop onda 2 max:5`). Nunca exceder 10.
|
|
12
|
+
- **Artefato:** não cria novos arquivos — atualiza `STATE.md` com campos `loop_*` e registra cada iteração como bloco inline no chat.
|
|
13
|
+
- **Escalação:** se esgotou tentativas e ainda falhou → registrar estado em STATE.md + sugerir `/oxe-forensics` com contexto das hipóteses já tentadas.
|
|
14
|
+
- **Não substitui** `/oxe-verify` global (4 camadas): o loop faz verificação **inline por onda** (comando `**Verificar:**` de cada Tn); o verify completo deve ser chamado ao final de todas as ondas.
|
|
15
|
+
</context>
|
|
16
|
+
|
|
17
|
+
<loop_state>
|
|
18
|
+
## Campos em STATE.md durante o loop
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
loop_onda: 2 # número da onda sendo executada
|
|
22
|
+
loop_iteracao: 2/3 # tentativa atual / máximo
|
|
23
|
+
loop_status: retrying # retrying | passed | escalated
|
|
24
|
+
loop_hipoteses: ["H1: ...", "H2: ..."] # hipóteses da última falha
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Limpar campos `loop_*` ao concluir com `passed` (ou manter `escalated` se escalou para forensics).
|
|
28
|
+
</loop_state>
|
|
29
|
+
|
|
30
|
+
<process>
|
|
31
|
+
1. Ler `.oxe/STATE.md` e `.oxe/PLAN.md`. Identificar a onda alvo (argumento do usuário ou próxima onda pendente em STATE).
|
|
32
|
+
2. Registrar em STATE.md: `loop_onda: N`, `loop_iteracao: 1/<max>`, `loop_status: retrying`.
|
|
33
|
+
3. **Iteração:**
|
|
34
|
+
a. Listar tarefas da onda N com seus comandos `**Verificar:**`.
|
|
35
|
+
b. Implementar todas as tarefas da onda (seguindo `execute.md` `<modo_solo>`).
|
|
36
|
+
c. Executar os comandos `Verificar` de cada `Tn`.
|
|
37
|
+
d. **Se todos passaram:** registrar `loop_status: passed`; limpar campos `loop_*`; atualizar STATE.md com onda concluída; informar usuário e sugerir próxima onda ou `/oxe-verify`.
|
|
38
|
+
e. **Se algum falhou:**
|
|
39
|
+
- Listar 2-3 hipóteses de causa (baseado no erro/output da verificação).
|
|
40
|
+
- Registrar `loop_hipoteses` em STATE.md.
|
|
41
|
+
- Incrementar iteração: `loop_iteracao: K+1/<max>`.
|
|
42
|
+
- Se `K+1 > max`: ir para passo 4 (escalação).
|
|
43
|
+
- Senão: aplicar fix para a hipótese mais provável → voltar a `c`.
|
|
44
|
+
4. **Escalação (tentativas esgotadas):**
|
|
45
|
+
- Registrar `loop_status: escalated` em STATE.md.
|
|
46
|
+
- Exibir no chat: tentativas realizadas, hipóteses testadas, evidência de cada falha.
|
|
47
|
+
- Sugerir `/oxe-forensics` com contexto: "onda N falhou após <max> tentativas — hipóteses testadas: H1, H2, H3".
|
|
48
|
+
</process>
|
|
49
|
+
|
|
50
|
+
<success_criteria>
|
|
51
|
+
- [ ] STATE.md tem campos `loop_*` atualizados a cada iteração.
|
|
52
|
+
- [ ] Cada falha gera 2-3 hipóteses registradas antes de tentar fix.
|
|
53
|
+
- [ ] Ao passar: campos `loop_*` limpos; onda marcada como concluída em STATE.md.
|
|
54
|
+
- [ ] Ao esgotar: `loop_status: escalated` + sugestão de `/oxe-forensics` com contexto completo.
|
|
55
|
+
- [ ] Nunca excede `max` iterações configurado.
|
|
56
|
+
- [ ] Não altera `.oxe/PLAN.md` (só implementa o que já está planejado).
|
|
57
|
+
</success_criteria>
|
|
@@ -10,9 +10,10 @@ Subcomandos:
|
|
|
10
10
|
- `/oxe-milestone audit` — verificar se o milestone atingiu sua definição de pronto.
|
|
11
11
|
</objective>
|
|
12
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
|
-
-
|
|
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
|
+
- Nesta versão, milestones são **globais**: usar `.oxe/global/MILESTONES.md` e `.oxe/global/milestones/`, ignorando `active_session` para escrita do índice global.
|
|
16
|
+
- Milestones são rastreados em **`.oxe/global/MILESTONES.md`** (índice) e cada entrega tem uma entrada com status, data e links aos artefatos.
|
|
16
17
|
- O milestone ativo é registrado no **STATE.md** na seção **Milestone ativo**.
|
|
17
18
|
- Um milestone é considerado **pronto** quando:
|
|
18
19
|
1. Todos os critérios A* da SPEC estão com `verify_complete` no STATE.
|
|
@@ -26,7 +27,7 @@ Subcomandos:
|
|
|
26
27
|
|
|
27
28
|
1. Verificar se há milestone ativo em STATE.md. Se houver, alertar e pedir confirmação antes de criar novo.
|
|
28
29
|
2. Gerar ID sequencial: **M-01**, **M-02**, …
|
|
29
|
-
3. Criar entrada em **`.oxe/MILESTONES.md`**:
|
|
30
|
+
3. Criar entrada em **`.oxe/global/MILESTONES.md`**:
|
|
30
31
|
```markdown
|
|
31
32
|
## M-01 — [nome] (ativo)
|
|
32
33
|
- **Status:** ativo
|
|
@@ -50,13 +51,11 @@ Pré-requisitos (verificar antes de executar):
|
|
|
50
51
|
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
|
|
|
52
53
|
Passos:
|
|
53
|
-
1. Arquivar artefatos do milestone:
|
|
54
|
-
- Copiar
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
|
|
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.
|
|
54
|
+
1. Arquivar artefatos do milestone:
|
|
55
|
+
- Copiar os artefatos do escopo ativo da sessão, se houver, para `.oxe/global/milestones/M-NN/`
|
|
56
|
+
- Sem sessão ativa, copiar da raiz `.oxe/`
|
|
57
|
+
- Criar `.oxe/global/milestones/M-NN/MILESTONE.md` com resumo da entrega.
|
|
58
|
+
2. Atualizar **`.oxe/global/MILESTONES.md`**: marcar milestone como `entregue`, adicionar data de encerramento e links aos artefatos arquivados.
|
|
60
59
|
3. Atualizar **STATE.md**: limpar seção **Milestone ativo**, registrar **Último milestone** com ID e data.
|
|
61
60
|
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
61
|
</process_complete>
|
|
@@ -65,7 +64,7 @@ Passos:
|
|
|
65
64
|
**`/oxe-milestone status`**
|
|
66
65
|
|
|
67
66
|
1. Ler STATE.md para identificar milestone ativo (ID e nome).
|
|
68
|
-
2. Ler MILESTONES.md para detalhes.
|
|
67
|
+
2. Ler `.oxe/global/MILESTONES.md` para detalhes.
|
|
69
68
|
3. Ler SPEC.md para listar critérios A* e seu status (verificado / pendente).
|
|
70
69
|
4. Ler VERIFY.md (se existir) para gaps abertos.
|
|
71
70
|
5. Exibir no chat:
|
|
@@ -89,7 +88,7 @@ Resultado: `Milestone M-NN: PRONTO` ou lista de itens pendentes.
|
|
|
89
88
|
</process_audit>
|
|
90
89
|
|
|
91
90
|
<success_criteria>
|
|
92
|
-
- [ ] `.oxe/MILESTONES.md` existe e tem entrada para o milestone ativo.
|
|
91
|
+
- [ ] `.oxe/global/MILESTONES.md` existe e tem entrada para o milestone ativo.
|
|
93
92
|
- [ ] STATE.md indica milestone ativo (ID e nome).
|
|
94
93
|
- [ ] Ao completar: artefatos arquivados em `.oxe/milestones/M-NN/`.
|
|
95
94
|
- [ ] Ao completar: MILESTONES.md atualizado com status `entregue` e data.
|
package/oxe/workflows/next.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# OXE — Workflow: next
|
|
2
2
|
|
|
3
3
|
<objective>
|
|
4
|
-
Inspecionar `.oxe/STATE.md` e a existência de `SPEC.md`, `PLAN.md`, `QUICK.md`, `VERIFY.md` e `.oxe/codebase/` para recomendar **exatamente um** próximo passo OXE e **uma** frase de justificativa — sem lista de alternativas equiparáveis.
|
|
4
|
+
Inspecionar `.oxe/STATE.md` global, a sessão ativa quando existir, e a existência de `SPEC.md`, `PLAN.md`, `QUICK.md`, `VERIFY.md` e `.oxe/codebase/` para recomendar **exatamente um** próximo passo OXE e **uma** frase de justificativa — sem lista de alternativas equiparáveis.
|
|
5
5
|
</objective>
|
|
6
6
|
|
|
7
7
|
<context>
|
|
8
|
-
- O usuário pode rodar **`npx oxe-cc status`** no terminal para a mesma lógica resumida. **`npx oxe-cc status --hints`** (ou **`--json --hints`**) acrescenta lembretes **paralelos** (idade do scan/compact por config) — **não** altera o único passo canónico que este workflow deve devolver.
|
|
8
|
+
- O usuário pode rodar **`npx oxe-cc status`** no terminal para a mesma lógica resumida. **`npx oxe-cc status --hints`** (ou **`--json --hints`**) acrescenta lembretes **paralelos** (idade do scan/compact por config) — **não** altera o único passo canónico que este workflow deve devolver.
|
|
9
|
+
- Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, preferir os artefatos da sessão antes de olhar a raiz legada.
|
|
9
10
|
- Se houver empate aparente (ex.: poderia ser spec ou quick), preferir **spec** quando já existir mapa de codebase; preferir **quick** só se o usuário deixar explícito que é correção mínima.
|
|
10
11
|
- **Blueprint plan-agent:** se **`.oxe/plan-agents.json`** tiver `lifecycle.status === "invalidated"`, o próximo passo **não** assume papéis desse JSON; continuar a raciocinar só com **PLAN.md** / **QUICK.md** / **VERIFY.md** e **STATE.md**. Se o utilizador quiser de novo agentes + mensagens, indicar **`/oxe-plan-agent`**.
|
|
11
12
|
</context>
|
|
@@ -13,9 +14,12 @@ Inspecionar `.oxe/STATE.md` e a existência de `SPEC.md`, `PLAN.md`, `QUICK.md`,
|
|
|
13
14
|
<process>
|
|
14
15
|
1. Se `.oxe/` ou `STATE.md` não existir → **único** passo: **scan** (ou `oxe-cc init-oxe` seguido de scan).
|
|
15
16
|
2. Se não houver `.oxe/codebase/*.md` completos (sete mapas) e o trabalho **não** for só um quick isolado → **scan**.
|
|
16
|
-
3. Se fase `quick_active` ou existir `QUICK.md` **sem** `PLAN.md
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
3. Se fase `quick_active` ou existir `QUICK.md` no escopo resolvido **sem** `PLAN.md`:
|
|
18
|
+
- Se `QUICK.md` contiver linha `Promover para spec/plan?: sim` → **spec** (promoção declarada pelo autor; ignorar demais heurísticas).
|
|
19
|
+
- Se o `QUICK.md` tiver **mais de 10 passos**, ou o utilizador/descrição indicar **contrato público**, **segurança**, **dados pessoais**, ou **>8 ficheiros** tocados ou previstos → **spec** (promoção obrigatória).
|
|
20
|
+
- Senão → **execute** (há passos curtos a implementar).
|
|
21
|
+
4. Se não houver `SPEC.md` no escopo resolvido e não for quick intencional declarado → **spec** (passo único).
|
|
22
|
+
5. Se houver SPEC no escopo resolvido mas não PLAN → se `.oxe/config.json` tiver `discuss_before_plan: true` e faltar **`DISCUSS.md`** com decisões → **discuss**; senão → **plan**.
|
|
19
23
|
6. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual → **execute** (onda atual).
|
|
20
24
|
7. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
|
|
21
25
|
8. Se VERIFY indica falha ou gaps não resolvidos → **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
|
package/oxe/workflows/obs.md
CHANGED
|
@@ -8,16 +8,17 @@ Registrar uma **observação contextual** em **`.oxe/OBSERVATIONS.md`** durante
|
|
|
8
8
|
Entrada: texto livre com a observação (restrição, descoberta técnica, preferência, risco, decisão).
|
|
9
9
|
</objective>
|
|
10
10
|
|
|
11
|
-
<context>
|
|
11
|
+
<context>
|
|
12
12
|
- Pode ser chamado **a qualquer momento**: antes, durante ou após qualquer passo da trilha OXE.
|
|
13
13
|
- Não interrompe o fluxo em curso — a observação é armazenada e incorporada na próxima oportunidade.
|
|
14
|
-
- Se chamado **durante execute** (fase `executing` no STATE) com impacto `execute` ou `all`: oferecer opção de aplicar agora (pausar onda atual) ou continuar e aplicar na próxima rodada.
|
|
15
|
-
- Ler **`.oxe/STATE.md`** para capturar o contexto automático (fase atual, tarefa ativa, workstream ativo).
|
|
16
|
-
-
|
|
17
|
-
|
|
14
|
+
- Se chamado **durante execute** (fase `executing` no STATE) com impacto `execute` ou `all`: oferecer opção de aplicar agora (pausar onda atual) ou continuar e aplicar na próxima rodada.
|
|
15
|
+
- Ler **`.oxe/STATE.md`** para capturar o contexto automático (fase atual, tarefa ativa, workstream ativo).
|
|
16
|
+
- Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `OBSERVATIONS.md` vive em `.oxe/<active_session>/execution/`; sem sessão ativa, manter `.oxe/`.
|
|
17
|
+
- Usar `oxe/templates/OBSERVATIONS.template.md` para criar o arquivo se ainda não existir.
|
|
18
|
+
</context>
|
|
18
19
|
|
|
19
20
|
<format_observations_md>
|
|
20
|
-
Arquivo:
|
|
21
|
+
Arquivo: **`OBSERVATIONS.md`** no escopo resolvido da sessão
|
|
21
22
|
|
|
22
23
|
```markdown
|
|
23
24
|
# Observações OXE
|
|
@@ -49,6 +50,16 @@ API deve retornar mensagens de erro em português do Brasil.
|
|
|
49
50
|
**IDs:** sequenciais `OBS-001`, `OBS-002`, … (continuar do último ID existente no arquivo).
|
|
50
51
|
|
|
51
52
|
**Impacto:** classificar automaticamente com base no conteúdo:
|
|
53
|
+
|
|
54
|
+
| Texto menciona | Impacto atribuído |
|
|
55
|
+
|----------------|------------------|
|
|
56
|
+
| Requisitos, critérios A*, escopo, SPEC | `spec` |
|
|
57
|
+
| Tarefas Tn, ondas, verificação, PLAN | `plan` |
|
|
58
|
+
| Implementação, arquivos de código, comportamento técnico | `execute` |
|
|
59
|
+
| Dois ou mais dos acima, ou restrição global | `all` |
|
|
60
|
+
|
|
61
|
+
Se ambíguo, usar `all` (princípio de maior abrangência).
|
|
62
|
+
|
|
52
63
|
- `spec` — afeta requisitos, critérios de aceite ou escopo
|
|
53
64
|
- `plan` — afeta tarefas, ondas, dependências ou verificação
|
|
54
65
|
- `execute` — afeta a implementação da tarefa atual ou próxima
|
|
@@ -59,14 +70,14 @@ API deve retornar mensagens de erro em português do Brasil.
|
|
|
59
70
|
|
|
60
71
|
<process>
|
|
61
72
|
1. Ler **`.oxe/STATE.md`**: capturar `phase`, `last_task` ou tarefa ativa na onda, `active_workstream`.
|
|
62
|
-
2. Determinar o **próximo ID** (OBS-NNN): contar entradas existentes em
|
|
73
|
+
2. Determinar o **próximo ID** (OBS-NNN): contar entradas existentes em `OBSERVATIONS.md` do escopo resolvido ou começar em OBS-001.
|
|
63
74
|
3. Classificar o **impacto** automaticamente com base no texto; se ambíguo, usar `all`.
|
|
64
75
|
3b. **Propagação automática de constraints:**
|
|
65
76
|
- Se existir **`.oxe/SPEC.md`**: ler a tabela de requisitos (R-ID) e critérios (A*) e identificar quais são diretamente afetados pelo texto da observação. Registrar em `**Afeta (spec):**`.
|
|
66
77
|
- Se existir **`.oxe/PLAN.md`**: ler as tarefas (Tn) e identificar quais podem precisar de ajuste no campo `Verificar` ou `Implementar`. Registrar em `**Afeta (plan):**`.
|
|
67
78
|
- Se nenhum R-ID ou Tn identificável: registrar `**Afeta:** (a cruzar na próxima incorporação)`.
|
|
68
79
|
- Esta propagação é automática e não requer input do usuário.
|
|
69
|
-
4. Criar ou atualizar
|
|
80
|
+
4. Criar ou atualizar **`OBSERVATIONS.md`** no escopo resolvido:
|
|
70
81
|
- Adicionar linha na tabela de índice.
|
|
71
82
|
- Adicionar seção `### OBS-NNN` com contexto, impacto, status e texto.
|
|
72
83
|
5. Avaliar **urgência**:
|
package/oxe/workflows/oxe.md
CHANGED
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
# OXE — Workflow: oxe (entrada universal)
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Ponto de entrada inteligente do OXE. Faz uma de três coisas dependendo do input do usuário:
|
|
5
|
-
|
|
6
|
-
1. **Sem input / "o que faço agora?"** → lê `STATE.md` e recomenda exatamente 1 próximo passo (lógica de `next.md`).
|
|
7
|
-
2. **Input em linguagem natural** (ex.: "quero adicionar login", "preciso revisar um PR") → traduz para o comando OXE correto e executa ou orienta (lógica de `route.md`).
|
|
8
|
-
3. **"help", "o que é OXE" ou "comandos"** → apresenta o fluxo dos 8 comandos essenciais e a cadeia canônica.
|
|
9
|
-
|
|
10
|
-
**Princípio:** o usuário não precisa decorar o nome do comando — `/oxe [contexto]` resolve.
|
|
11
|
-
</objective>
|
|
12
|
-
|
|
13
|
-
<context>
|
|
14
|
-
- Este workflow **não gera artefatos** por conta própria. Ele orienta ou delega para o workflow correto.
|
|
15
|
-
- Lê `STATE.md` quando disponível para personalizar a resposta ao estado atual do projeto.
|
|
16
|
-
- Quando o input for claro o suficiente para um workflow específico, **executar diretamente** esse workflow (carregar e seguir o `.md` correspondente) em vez de só sugerir o comando.
|
|
17
|
-
- Quando houver ambiguidade genuína, apresentar 2 opções e pedir escolha — nunca listas longas.
|
|
18
|
-
</context>
|
|
19
|
-
|
|
20
|
-
<modo_status>
|
|
21
|
-
## Modo: Status + Próximo Passo (sem input ou "o que faço agora?")
|
|
22
|
-
|
|
23
|
-
Aplicar a lógica completa de `oxe/workflows/next.md`:
|
|
24
|
-
|
|
25
|
-
1. Se `.oxe/` ou `STATE.md` não existir → **scan** (`npx oxe-cc@latest` primeiro se OXE não instalado)
|
|
26
|
-
2. Se `.oxe/codebase/` incompleto e não for quick isolado → **scan**
|
|
27
|
-
3. Se `quick_active` ou `QUICK.md` sem `PLAN.md` → avaliar promoção (ver `next.md`)
|
|
28
|
-
4. Se sem `SPEC.md` → **spec**
|
|
29
|
-
5. Se SPEC mas sem PLAN → verificar `discuss_before_plan` → **discuss** ou **plan**
|
|
30
|
-
6. Se PLAN sem VERIFY pós-implementação → **execute** ou **verify**
|
|
31
|
-
7. Se VERIFY com falha → **plan --replan**
|
|
32
|
-
8. Se VERIFY OK → próxima feature ou milestone
|
|
33
|
-
|
|
34
|
-
**Saída:** exatamente 1 passo, 1 comando, 1 frase de justificativa.
|
|
35
|
-
</modo_status>
|
|
36
|
-
|
|
37
|
-
<modo_route>
|
|
38
|
-
## Modo: Roteamento de Linguagem Natural (input com contexto)
|
|
39
|
-
|
|
40
|
-
Mapear o input para o workflow correto e executar ou orientar:
|
|
41
|
-
|
|
42
|
-
| Se o usuário disser | Executar |
|
|
43
|
-
|---------------------|----------|
|
|
44
|
-
| "quero [feature / tarefa / entrega]" | Verificar estado → **spec** ou **quick** |
|
|
45
|
-
| "analisa / mapeia o projeto" | **scan** (modo refresh se codebase/ existir) |
|
|
46
|
-
| "pesquisa / spike / quero entender X" | **research** |
|
|
47
|
-
| "revisa PR / diff" | **review-pr** |
|
|
48
|
-
| "auditoria de segurança" | **security** |
|
|
49
|
-
| "valida / verifica" | **verify** |
|
|
50
|
-
| "milestone / release / versão" | **project milestone** |
|
|
51
|
-
| "trilha paralela / workstream" | **project workstream** |
|
|
52
|
-
| "snapshot / checkpoint" | **project checkpoint** |
|
|
53
|
-
| "recuperação / erro / algo quebrou" | **forensics** |
|
|
54
|
-
| "debug / teste falhando" | **debug** |
|
|
55
|
-
| "obs / observação / nota" | **obs** |
|
|
56
|
-
| "atualiza / update OXE" | **update** |
|
|
57
|
-
|
|
58
|
-
Se o input não mapear claramente → apresentar 2 opções mais prováveis e perguntar.
|
|
59
|
-
</modo_route>
|
|
60
|
-
|
|
61
|
-
<modo_help>
|
|
62
|
-
## Modo: Help (quando o usuário pede "help", "o que é OXE", "comandos")
|
|
63
|
-
|
|
64
|
-
Apresentar de forma concisa:
|
|
65
|
-
|
|
66
|
-
### Os 8 comandos que você precisa conhecer
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
/oxe → onde estou / o que faço / help
|
|
70
|
-
/oxe-obs → registrei algo importante agora
|
|
71
|
-
/oxe-quick → tarefa pequena, sem cerimônia
|
|
72
|
-
/oxe-scan → mapeia o projeto (ou atualiza o mapa)
|
|
73
|
-
/oxe-spec → nova feature ou entrega: perguntas → requisitos → roteiro
|
|
74
|
-
/oxe-plan → detalhar em tarefas (--agents para multi-agente)
|
|
75
|
-
/oxe-execute → implementar (A: completo | B: por onda | C: por tarefa)
|
|
76
|
-
/oxe-verify → validar que está pronto
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### A cadeia
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
/oxe-obs (qualquer momento)
|
|
83
|
-
↓
|
|
84
|
-
/oxe-scan → /oxe-spec → /oxe-plan → /oxe-execute → /oxe-verify → /oxe-retro
|
|
85
|
-
↓
|
|
86
|
-
/oxe-quick (trabalho pequeno)
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Para saber o próximo passo agora
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
/oxe
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Escape hatches (não precisa decorar — aparecem quando necessários)
|
|
96
|
-
|
|
97
|
-
`/oxe-research`, `/oxe-forensics`, `/oxe-debug`, `/oxe-loop`, `/oxe-security`,
|
|
98
|
-
`/oxe-validate-gaps`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-review-pr`,
|
|
99
|
-
`/oxe-project` (milestone, workstream, checkpoint)
|
|
100
|
-
</modo_help>
|
|
101
|
-
|
|
102
|
-
<process>
|
|
103
|
-
1. Verificar se há input adicional na mensagem:
|
|
104
|
-
- **Sem input ou "next / o que faço / status":** aplicar `<modo_status>`.
|
|
105
|
-
- **"help / comandos / o que é OXE":** aplicar `<modo_help>`.
|
|
106
|
-
- **Qualquer outra coisa (linguagem natural com contexto):** aplicar `<modo_route>` e, se o workflow for claro, carregar e executar diretamente o `oxe/workflows/<nome>.md` correspondente.
|
|
107
|
-
2. Nunca produzir listas longas de alternativas. Um passo, um comando, uma frase.
|
|
108
|
-
3. Se o workflow executado diretamente gerar artefatos, reportar no chat conforme esse workflow.
|
|
109
|
-
</process>
|
|
110
|
-
|
|
111
|
-
<success_criteria>
|
|
112
|
-
- [ ] Usuário recebe exatamente 1 próximo passo (modo status) OU 1 workflow executado (modo route) OU o bloco help compacto (modo help).
|
|
113
|
-
- [ ] Nenhum artefato criado por este workflow diretamente (a menos que o workflow delegado o faça).
|
|
114
|
-
- [ ] Nunca lista mais de 2 alternativas ao mesmo tempo.
|
|
115
|
-
</success_criteria>
|
|
1
|
+
# OXE — Workflow: oxe (entrada universal)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Ponto de entrada inteligente do OXE. Faz uma de três coisas dependendo do input do usuário:
|
|
5
|
+
|
|
6
|
+
1. **Sem input / "o que faço agora?"** → lê `STATE.md` e recomenda exatamente 1 próximo passo (lógica de `next.md`).
|
|
7
|
+
2. **Input em linguagem natural** (ex.: "quero adicionar login", "preciso revisar um PR") → traduz para o comando OXE correto e executa ou orienta (lógica de `route.md`).
|
|
8
|
+
3. **"help", "o que é OXE" ou "comandos"** → apresenta o fluxo dos 8 comandos essenciais e a cadeia canônica.
|
|
9
|
+
|
|
10
|
+
**Princípio:** o usuário não precisa decorar o nome do comando — `/oxe [contexto]` resolve.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<context>
|
|
14
|
+
- Este workflow **não gera artefatos** por conta própria. Ele orienta ou delega para o workflow correto.
|
|
15
|
+
- Lê `STATE.md` quando disponível para personalizar a resposta ao estado atual do projeto.
|
|
16
|
+
- Quando o input for claro o suficiente para um workflow específico, **executar diretamente** esse workflow (carregar e seguir o `.md` correspondente) em vez de só sugerir o comando.
|
|
17
|
+
- Quando houver ambiguidade genuína, apresentar 2 opções e pedir escolha — nunca listas longas.
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<modo_status>
|
|
21
|
+
## Modo: Status + Próximo Passo (sem input ou "o que faço agora?")
|
|
22
|
+
|
|
23
|
+
Aplicar a lógica completa de `oxe/workflows/next.md`:
|
|
24
|
+
|
|
25
|
+
1. Se `.oxe/` ou `STATE.md` não existir → **scan** (`npx oxe-cc@latest` primeiro se OXE não instalado)
|
|
26
|
+
2. Se `.oxe/codebase/` incompleto e não for quick isolado → **scan**
|
|
27
|
+
3. Se `quick_active` ou `QUICK.md` sem `PLAN.md` → avaliar promoção (ver `next.md`)
|
|
28
|
+
4. Se sem `SPEC.md` → **spec**
|
|
29
|
+
5. Se SPEC mas sem PLAN → verificar `discuss_before_plan` → **discuss** ou **plan**
|
|
30
|
+
6. Se PLAN sem VERIFY pós-implementação → **execute** ou **verify**
|
|
31
|
+
7. Se VERIFY com falha → **plan --replan**
|
|
32
|
+
8. Se VERIFY OK → próxima feature ou milestone
|
|
33
|
+
|
|
34
|
+
**Saída:** exatamente 1 passo, 1 comando, 1 frase de justificativa.
|
|
35
|
+
</modo_status>
|
|
36
|
+
|
|
37
|
+
<modo_route>
|
|
38
|
+
## Modo: Roteamento de Linguagem Natural (input com contexto)
|
|
39
|
+
|
|
40
|
+
Mapear o input para o workflow correto e executar ou orientar:
|
|
41
|
+
|
|
42
|
+
| Se o usuário disser | Executar |
|
|
43
|
+
|---------------------|----------|
|
|
44
|
+
| "quero [feature / tarefa / entrega]" | Verificar estado → **spec** ou **quick** |
|
|
45
|
+
| "analisa / mapeia o projeto" | **scan** (modo refresh se codebase/ existir) |
|
|
46
|
+
| "pesquisa / spike / quero entender X" | **research** |
|
|
47
|
+
| "revisa PR / diff" | **review-pr** |
|
|
48
|
+
| "auditoria de segurança" | **security** |
|
|
49
|
+
| "valida / verifica" | **verify** |
|
|
50
|
+
| "milestone / release / versão" | **project milestone** |
|
|
51
|
+
| "trilha paralela / workstream" | **project workstream** |
|
|
52
|
+
| "snapshot / checkpoint" | **project checkpoint** |
|
|
53
|
+
| "recuperação / erro / algo quebrou" | **forensics** |
|
|
54
|
+
| "debug / teste falhando" | **debug** |
|
|
55
|
+
| "obs / observação / nota" | **obs** |
|
|
56
|
+
| "atualiza / update OXE" | **update** |
|
|
57
|
+
|
|
58
|
+
Se o input não mapear claramente → apresentar 2 opções mais prováveis e perguntar.
|
|
59
|
+
</modo_route>
|
|
60
|
+
|
|
61
|
+
<modo_help>
|
|
62
|
+
## Modo: Help (quando o usuário pede "help", "o que é OXE", "comandos")
|
|
63
|
+
|
|
64
|
+
Apresentar de forma concisa:
|
|
65
|
+
|
|
66
|
+
### Os 8 comandos que você precisa conhecer
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
/oxe → onde estou / o que faço / help
|
|
70
|
+
/oxe-obs → registrei algo importante agora
|
|
71
|
+
/oxe-quick → tarefa pequena, sem cerimônia
|
|
72
|
+
/oxe-scan → mapeia o projeto (ou atualiza o mapa)
|
|
73
|
+
/oxe-spec → nova feature ou entrega: perguntas → requisitos → roteiro
|
|
74
|
+
/oxe-plan → detalhar em tarefas (--agents para multi-agente)
|
|
75
|
+
/oxe-execute → implementar (A: completo | B: por onda | C: por tarefa)
|
|
76
|
+
/oxe-verify → validar que está pronto
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### A cadeia
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
/oxe-obs (qualquer momento)
|
|
83
|
+
↓
|
|
84
|
+
/oxe-scan → /oxe-spec → /oxe-plan → /oxe-execute → /oxe-verify → /oxe-retro
|
|
85
|
+
↓
|
|
86
|
+
/oxe-quick (trabalho pequeno)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Para saber o próximo passo agora
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
/oxe
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Escape hatches (não precisa decorar — aparecem quando necessários)
|
|
96
|
+
|
|
97
|
+
`/oxe-research`, `/oxe-forensics`, `/oxe-debug`, `/oxe-loop`, `/oxe-security`,
|
|
98
|
+
`/oxe-validate-gaps`, `/oxe-ui-spec`, `/oxe-ui-review`, `/oxe-review-pr`,
|
|
99
|
+
`/oxe-project` (milestone, workstream, checkpoint)
|
|
100
|
+
</modo_help>
|
|
101
|
+
|
|
102
|
+
<process>
|
|
103
|
+
1. Verificar se há input adicional na mensagem:
|
|
104
|
+
- **Sem input ou "next / o que faço / status":** aplicar `<modo_status>`.
|
|
105
|
+
- **"help / comandos / o que é OXE":** aplicar `<modo_help>`.
|
|
106
|
+
- **Qualquer outra coisa (linguagem natural com contexto):** aplicar `<modo_route>` e, se o workflow for claro, carregar e executar diretamente o `oxe/workflows/<nome>.md` correspondente.
|
|
107
|
+
2. Nunca produzir listas longas de alternativas. Um passo, um comando, uma frase.
|
|
108
|
+
3. Se o workflow executado diretamente gerar artefatos, reportar no chat conforme esse workflow.
|
|
109
|
+
</process>
|
|
110
|
+
|
|
111
|
+
<success_criteria>
|
|
112
|
+
- [ ] Usuário recebe exatamente 1 próximo passo (modo status) OU 1 workflow executado (modo route) OU o bloco help compacto (modo help).
|
|
113
|
+
- [ ] Nenhum artefato criado por este workflow diretamente (a menos que o workflow delegado o faça).
|
|
114
|
+
- [ ] Nunca lista mais de 2 alternativas ao mesmo tempo.
|
|
115
|
+
</success_criteria>
|
|
@@ -13,8 +13,9 @@ O plano **não** é só uma lista de tarefas: cada agente é um **pacote de cont
|
|
|
13
13
|
Se o utilizador pedir **`--replan`**: aplicar a mesma lógica de replanejamento descrita em **`plan.md`** (VERIFY, SUMMARY, secção Replanejamento) e **atualizar ou recriar** `plan-agents.json` em coerência com o novo `PLAN.md`; gerar **novo** `runId` e repor `lifecycle.status` → `pending_execute`. Se ainda existir pasta **`.oxe/plan-agent-messages/`** cheia do **run** anterior e o utilizador não precisar dela na raiz, **arquivar** primeiro em **`.oxe/archive/plan-agent-runs/<runId-antigo>/`** (ver **`references/plan-agent-chat-protocol.md`**) ou pedir confirmação antes de sobrescrever; depois recriar **`.oxe/plan-agent-messages/README.md`** para o novo `runId`.
|
|
14
14
|
</objective>
|
|
15
15
|
|
|
16
|
-
<context>
|
|
17
|
-
-
|
|
16
|
+
<context>
|
|
17
|
+
- Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `PLAN.md`, `plan-agents.json` e `plan-agent-messages/` vivem em `.oxe/<active_session>/plan/`; sem sessão ativa, manter `.oxe/`.
|
|
18
|
+
- **Pré-requisitos** iguais a **`plan.md`**: `.oxe/SPEC.md` obrigatória; `discuss_before_plan` + `DISCUSS.md` quando configurado; consumir **NOTES**, **UI-SPEC**, **DISCUSS**, **RESEARCH**, **CODEBASE-DELTA** / **RESUME**, **config.json** (`plan_max_tasks_per_wave`, `default_verify_command`) como em **`plan.md`**.
|
|
18
19
|
- **Fonte de verdade das tarefas:** `PLAN.md`. O JSON referencia tarefas via **`taskIds`** em cada agente — **não** duplicar o texto de **Verificar** no JSON; copiar só paths/resumo curto em **`outputs`** quando útil para routing.
|
|
19
20
|
- **Agentes ≠ ferramentas externas fixas:** `role` e `scope` descrevem o **comportamento esperado** de um contexto focado (ex.: “Backend Auth Specialist”), não um binário. Quem executa pode ser um único modelo com instruções diferentes por onda.
|
|
20
21
|
- **Protocolo agente → agente:** **`oxe/workflows/references/plan-agent-chat-protocol.md`** — mensagens em **`.oxe/plan-agent-messages/`** (ficheiros `W{onda}-{seq}-{from}-to-{dest}.md` com frontmatter YAML). Criar a pasta e copiar o índice a partir de **`oxe/templates/plan-agent-messages-README.template.md`** → `.oxe/plan-agent-messages/README.md`.
|
|
@@ -125,7 +126,7 @@ Resumo obrigatório no chat: `Gate plan-agent: OK` ou `Gate plan-agent: corrigid
|
|
|
125
126
|
3. Escrever **`.oxe/PLAN.md`** (cabeçalho YAML como em `oxe/templates/PLAN.template.md`; em **--replan**, secção Replanejamento).
|
|
126
127
|
4. Gerar **`runId`** novo e **`lifecycle`**: `{ "status": "pending_execute", "since": "<ISO agora>" }`.
|
|
127
128
|
5. Escrever **`.oxe/plan-agents.json`** a partir de **`oxe/templates/plan-agents.template.json`**, com **`oxePlanAgentsSchema: 3`**, `goal`, `agents` (incluindo `model_hint` por agente conforme `<model_hints>`), `execution`, `runId`, `lifecycle`.
|
|
128
|
-
6. Criar
|
|
129
|
+
6. Criar `plan-agent-messages/` e `plan-agent-messages/README.md` no escopo resolvido a partir de **`oxe/templates/plan-agent-messages-README.template.md`**.
|
|
129
130
|
7. Atualizar **`.oxe/STATE.md`**: fase `plan_ready`, próximo passo `oxe:execute`; preencher **Blueprint de agentes (sessão)** — `run_id` (= `runId`), `lifecycle_status` (= `pending_execute`), **última onda** — (ou `—`).
|
|
130
131
|
8. Aplicar **`<plan_agent_quality_gate>`**; corrigir até passar.
|
|
131
132
|
9. No chat: resumo do gate plan-agent, `runId`, número de agentes, ondas, tarefas, referência ao protocolo em **`references/plan-agent-chat-protocol.md`**.
|