oxe-cc 0.6.4 → 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/bin/banner.txt CHANGED
@@ -15,4 +15,4 @@
15
15
 
16
16
  ══════════════════════════════════════════════════════
17
17
 
18
- v0.6.4
18
+ v0.6.5
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: oxe:session
3
+ description: "Gerir sessões OXE: new, list, switch, resume, status, close, migrate"
4
+ argument-hint: "[new <nome> | list | switch <id> | resume <id> | status | close | migrate <nome>]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - Write
11
+ - Task
12
+ ---
13
+
14
+ **Workflow canónico:** `oxe/workflows/session.md`
15
+
16
+ Executa integralmente esse ficheiro na raiz do repositório em que estás a trabalhar. Usa `$ARGUMENTS` como subcomando e foco da operação da sessão ativa.
@@ -0,0 +1,32 @@
1
+ # Session sNNN — <nome>
2
+
3
+ ## Metadados
4
+
5
+ - **ID:** sNNN
6
+ - **Nome:** <nome>
7
+ - **Status:** active
8
+ - **Criada:** YYYY-MM-DD
9
+ - **Última atividade:** YYYY-MM-DD
10
+ - **Resumo:** <uma linha>
11
+
12
+ ## Índice de artefatos
13
+
14
+ | Artefato | Caminho | Status |
15
+ |----------|---------|--------|
16
+ | SESSION | `sessions/sNNN-<slug>/SESSION.md` | ativo |
17
+
18
+ ## Dependências cruzadas
19
+
20
+ - **Estende:** —
21
+ - **Referenciada por:** —
22
+ - **Decisões globais:** `.oxe/STATE.md`, `.oxe/SESSIONS.md`
23
+
24
+ ## Tags
25
+
26
+ - `<tag>`
27
+
28
+ ## Histórico
29
+
30
+ | Data | Evento |
31
+ |------|--------|
32
+ | YYYY-MM-DD | Sessão criada |
@@ -1,10 +1,15 @@
1
1
  # OXE — Estado
2
2
 
3
- ## Fase atual
4
-
5
- `initial` — defina após primeiro scan: `scan_complete` | `spec_ready` | `discuss_complete` | `plan_ready` | `quick_active` | `executing` | `verify_complete` | `verify_failed`
6
-
7
- ## Último scan
3
+ ## Fase atual
4
+
5
+ `initial` — defina após primeiro scan: `scan_complete` | `spec_ready` | `discuss_complete` | `plan_ready` | `quick_active` | `executing` | `verify_complete` | `verify_failed`
6
+
7
+ ## Sessão ativa (opcional — `/oxe-session`)
8
+
9
+ - **active_session:** (path relativo a `.oxe/` — ex.: `sessions/s001-auth-redesign` — ou — se nenhuma)
10
+ - **session_id:** (ex.: `s001` — ou —)
11
+
12
+ ## Último scan
8
13
 
9
14
  - **Data:** (use **YYYY-MM-DD** para o `oxe-cc doctor` avisar scan antigo com `scan_max_age_days` em `.oxe/config.json`)
10
15
  - **Notas:** (opcional)
@@ -1,7 +1,7 @@
1
1
  # OXE — Workflow: checkpoint
2
2
 
3
3
  <objective>
4
- Criar um **marco nomeado em disco** em **`.oxe/checkpoints/YYYY-MM-DD-HHmm-<slug>.md`** (data + hora + slug curto) e atualizar **`.oxe/CHECKPOINTS.md`** (índice): **snapshot da sessão / trilha corrente** para pausar e retomar sem apagar SPEC/PLAN.
4
+ Criar um **marco nomeado em disco** em `checkpoints/YYYY-MM-DD-HHmm-<slug>.md` do escopo resolvido e atualizar `CHECKPOINTS.md` correspondente (índice): **snapshot da sessão / trilha corrente** para pausar e retomar sem apagar SPEC/PLAN.
5
5
 
6
6
  **Não** duplica o papel de `git commit` nem de `verify`; é **registo explícito** para humanos e agentes. Para **atualizar o mapa do projeto inteiro** e alinhar `.oxe/codebase/` ao código, usar **`compact.md`** (`/oxe-compact`), não este passo.
7
7
  </objective>
@@ -9,24 +9,25 @@ Criar um **marco nomeado em disco** em **`.oxe/checkpoints/YYYY-MM-DD-HHmm-<slug
9
9
  <context>
10
10
  - **Checkpoint vs compact** e **momentos chave** da rotina: tabelas canónicas em **`help.md`** (secções *Checkpoint vs compact* e *Momentos chave*) — evitar divergência; este ficheiro descreve só a execução do checkpoint.
11
11
 
12
- - Entrada: texto do utilizador = **slug** e/ou **nota** (ex.: `antes-refactor-auth` + “estado estável, falta T4”).
13
- - Nome do ficheiro: **`YYYY-MM-DD-HHmm-<slug-kebab>.md`** (hora 24h local ou UTC — documentar na nota se misturar fusos).
14
- - Frontmatter YAML no checkpoint (ver `oxe/templates/CHECKPOINT.template.md`): `created`, `slug`, `linked` (lista de paths relativos à raiz do repo, tipicamente `.oxe/STATE.md`, `.oxe/SPEC.md`, …).
15
- - **Índice** `.oxe/CHECKPOINTS.md`: tabela **mais recente primeiro** com colunas **Data** | **Ficheiro** | **Slug** | **Nota (1 linha)**.
12
+ - Entrada: texto do utilizador = **slug** e/ou **nota** (ex.: `antes-refactor-auth` + “estado estável, falta T4”).
13
+ - Nome do ficheiro: **`YYYY-MM-DD-HHmm-<slug-kebab>.md`** (hora 24h local ou UTC — documentar na nota se misturar fusos).
14
+ - Frontmatter YAML no checkpoint (ver `oxe/templates/CHECKPOINT.template.md`): `created`, `slug`, `linked` (lista de paths relativos à raiz do repo, tipicamente `.oxe/STATE.md`, `.oxe/SPEC.md`, …).
15
+ - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, checkpoints vivem em `.oxe/<active_session>/checkpoints/`; sem sessão ativa, usar `.oxe/checkpoints/`.
16
+ - **Índice** `CHECKPOINTS.md` do mesmo escopo: tabela **mais recente primeiro** com colunas **Data** | **Ficheiro** | **Slug** | **Nota (1 linha)**.
16
17
  - Não mover nem apagar artefactos canónicos; o checkpoint é **documento adicional**.
17
18
  </context>
18
19
 
19
20
  <process>
20
- 1. Garantir pasta **`.oxe/checkpoints/`**.
21
+ 1. Garantir pasta `checkpoints/` do escopo resolvido.
21
22
  2. Normalizar slug a partir dos argumentos do utilizador (kebab-case, ASCII; se vazio, usar `checkpoint`).
22
23
  3. Escolher nome único; se colisão, acrescentar sufixo `-b`, `-c`, …
23
24
  4. Escrever o ficheiro de checkpoint a partir do template: preencher frontmatter `linked` com os `.oxe/*.md` relevantes que **existem**; corpo com nota do utilizador e **snapshot** (trecho de STATE, uma linha de objetivo SPEC, resumo PLAN).
24
- 5. Se **`.oxe/CHECKPOINTS.md`** não existir, criar com título `# OXE — Índice de checkpoints` e tabela com cabeçalho; senão, **inserir linha no topo** da tabela.
25
+ 5. Se `CHECKPOINTS.md` do escopo resolvido não existir, criar com título `# OXE — Índice de checkpoints` e tabela com cabeçalho; senão, **inserir linha no topo** da tabela.
25
26
  6. Responder no chat: caminho do ficheiro novo + como usar na retomada (ler checkpoint + `linked` + próximo `oxe:*`).
26
27
  </process>
27
28
 
28
29
  <success_criteria>
29
- - [ ] Novo ficheiro em `.oxe/checkpoints/` com frontmatter e corpo úteis.
30
- - [ ] `CHECKPOINTS.md` atualizado com entrada correspondente.
30
+ - [ ] Novo ficheiro em `checkpoints/` do escopo correto com frontmatter e corpo úteis.
31
+ - [ ] `CHECKPOINTS.md` do mesmo escopo atualizado com entrada correspondente.
31
32
  - [ ] SPEC/PLAN/VERIFY intocados salvo o utilizador pedir outra coisa explicitamente.
32
33
  </success_criteria>
@@ -8,13 +8,14 @@ Diferente de **`verify`**, que audita **aceite** contra SPEC/PLAN. Depois de est
8
8
 
9
9
  <context>
10
10
  - Pré-requisito: sintoma reproduzível ou descrição clara (mensagem de erro, Tn em falha).
11
- - Preferir ancorar ao identificador de tarefa **`Tn`** do `.oxe/PLAN.md` quando existir.
12
- - Artefato: **`.oxe/DEBUG.md`** ficheiro único com **sessões** datadas (append); não dispersar em vários ficheiros sem convenção.
11
+ - Preferir ancorar ao identificador de tarefa **`Tn`** do `PLAN.md` do escopo resolvido quando existir.
12
+ - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, usar `.oxe/<active_session>/execution/DEBUG.md`; sem sessão ativa, usar `.oxe/DEBUG.md`.
13
+ - Artefato: **`DEBUG.md`** no escopo correto — ficheiro único com **sessões** datadas (append); não dispersar em vários ficheiros sem convenção.
13
14
  </context>
14
15
 
15
16
  <process>
16
- 1. Ler `.oxe/PLAN.md` e `.oxe/STATE.md`; se o foco for uma tarefa, localizar **Tn** e o bloco **Verificar**.
17
- 2. Registar em **`.oxe/DEBUG.md`** uma nova sessão:
17
+ 1. Ler `PLAN.md` do escopo resolvido e `.oxe/STATE.md`; se o foco for uma tarefa, localizar **Tn** e o bloco **Verificar**.
18
+ 2. Registar em **`DEBUG.md`** do escopo resolvido uma nova sessão:
18
19
  - **Data** / **Sintoma** (com stack ou comando que falhou).
19
20
  - **Hipóteses** (ordenadas por plausibilidade).
20
21
  - **Experiências** — o que foi tentado e resultado (uma linha cada).
@@ -25,7 +26,7 @@ Diferente de **`verify`**, que audita **aceite** contra SPEC/PLAN. Depois de est
25
26
  </process>
26
27
 
27
28
  <success_criteria>
28
- - [ ] `.oxe/DEBUG.md` contém sessão datada com sintoma e **Próximo passo** explícito.
29
+ - [ ] `DEBUG.md` no escopo correto contém sessão datada com sintoma e **Próximo passo** explícito.
29
30
  - [ ] Quando aplicável, a sessão referencia **Tn** do PLAN.
30
31
  - [ ] Não se confunde com verify: não se declara “entrega aprovada” só com debug.
31
32
  </success_criteria>
@@ -6,9 +6,10 @@ Esclarecer requisitos **antes** do plano: registrar perguntas, respostas e decis
6
6
  Usar quando: SPEC existe mas há ambiguidade, risco técnico, ou `discuss_before_plan: true` em `.oxe/config.json`.
7
7
  </objective>
8
8
 
9
- <context>
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.
9
+ <context>
10
+ - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, usar `.oxe/<active_session>/spec/` para `SPEC.md` e `DISCUSS.md`; sem sessão ativa, manter `.oxe/`.
11
+ - Ler `SPEC.md` do escopo resolvido, `.oxe/STATE.md` e trechos relevantes de `.oxe/codebase/OVERVIEW.md` / `STACK.md`.
12
+ - Se existir `OBSERVATIONS.md` do escopo resolvido 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.
12
13
  - 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.
13
14
  - Se `.oxe/config.json` existir e `discuss_before_plan` for `true`, tratar este passo como **recomendado** antes de `oxe:plan`.
14
15
  </context>
@@ -25,16 +26,16 @@ Regras:
25
26
  </decision_ids>
26
27
 
27
28
  <process>
28
- 1. Se não existir `.oxe/SPEC.md`, pedir **spec** primeiro (ou **quick** se for trabalho trivial).
29
+ 1. Se não existir `SPEC.md` no escopo resolvido, pedir **spec** primeiro (ou **quick** se for trabalho trivial).
29
30
  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).
30
31
  3. Identificar **lacunas** (escopo, dados, UX, edge cases, compatibilidade) — no máximo **7** perguntas objetivas.
31
- 4. Criar ou atualizar **`.oxe/DISCUSS.md`** com estrutura fixa:
32
+ 4. Criar ou atualizar **`DISCUSS.md`** no escopo resolvido com estrutura fixa:
32
33
  - **Contexto** — 2–4 bullets do que já se sabe da SPEC.
33
34
  - **Perguntas** — numeradas; para cada uma: resposta (se o usuário já respondeu na mensagem) ou `_(pendente)_`.
34
35
  - **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
36
  - **Implicações para o plano** — bullets (ex.: "migrations necessárias", "feature flag").
36
37
  5. Se ainda houver perguntas **pendentes** críticas, listá-las no chat (máx. 7) e parar até resposta; depois atualizar DISCUSS.md.
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
+ 6. Atualizar **`.oxe/STATE.md`** global: 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
39
  7. Resumo no chat em ≤8 linhas, listando decisões com seus IDs.
39
40
  </process>
40
41
 
@@ -69,7 +70,7 @@ updated: YYYY-MM-DD
69
70
  </discuss_md_format>
70
71
 
71
72
  <success_criteria>
72
- - [ ] `.oxe/DISCUSS.md` existe com perguntas e decisões alinhadas à SPEC.
73
+ - [ ] `DISCUSS.md` existe no escopo correto com perguntas e decisões alinhadas à SPEC.
73
74
  - [ ] Cada decisão fechada tem ID único **D-NN** na tabela de Decisões.
74
75
  - [ ] Se existir `.oxe/NOTES.md`, as entradas relevantes foram tratadas (promovidas, descartadas ou adiadas com nota).
75
76
  - [ ] Nenhuma ambiguidade crítica ficou sem registro (como pendente ou suposição explícita na SPEC).
@@ -3,13 +3,13 @@
3
3
  <objective>
4
4
  Guiar a **implementação** de um plano OXE com dois modos possíveis:
5
5
 
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.
6
+ **Modo Solo (padrão):** seguir `PLAN.md` do escopo resolvido da sessão 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
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.
8
+ **Modo com Agentes (extensão):** quando existe `plan-agents.json` válido no escopo resolvido (schema 2+, lifecycle ativo, runId alinhado ao STATE), adotar roles e personas por agente conforme o blueprint.
9
9
 
10
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
11
 
12
- Se existir apenas **`.oxe/QUICK.md`**: tratar passos numerados como onda única (modo sempre Completo).
12
+ Se existir apenas **`QUICK.md`** no escopo resolvido: tratar passos numerados como onda única (modo sempre Completo).
13
13
  </objective>
14
14
 
15
15
  <modo_solo>
@@ -32,6 +32,8 @@ O modo padrão. Funciona sem `plan-agents.json`. O agente lê PLAN.md, segue as
32
32
  <execution_mode_selection>
33
33
  ## Seleção de Modo de Execução
34
34
 
35
+ **Argumento direto:** se o foco/argumento recebido já for `A`, `B` ou `C` (sozinho), usar diretamente como seleção de modo sem apresentar o menu.
36
+
35
37
  **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
38
 
37
39
  **Não aplicar** quando: QUICK.md (sempre Completo), PLAN.md com 1 onda (executar diretamente).
@@ -88,9 +90,9 @@ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenci
88
90
  </failure_mode>
89
91
 
90
92
  <context>
91
- **Observações pendentes:** verificar `.oxe/OBSERVATIONS.md` no início de cada onda. Se houver entradas `pendente` com impacto `execute` ou `all`, incorporar no trabalho da onda atual e marcá-las `incorporada → execute (data)`.
93
+ **Observações pendentes:** verificar `OBSERVATIONS.md` do escopo resolvido 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)`.
92
94
 
93
- **Quick-agents (lean PDDA):** se existir **`.oxe/quick-agents.json`** com `status: active` e a execução for baseada em **`QUICK.md`** (não há PLAN.md), adotar o `role` e `persona` de cada agente para os `steps[]` atribuídos. Ao concluir todos os steps, marcar `quick-agents.json` → `status: done` e sugerir `/oxe-verify`.
95
+ **Quick-agents (lean PDDA):** se existir **`quick-agents.json`** do escopo resolvido 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`.
94
96
 
95
97
  **Model hints (blueprint com agentes):** ao apresentar a atribuição de cada agente no início da onda, exibir `model_hint` se presente:
96
98
  ```
@@ -99,7 +101,7 @@ Tarefas: T1, T2
99
101
  ```
100
102
  Se `model_hint` estiver ausente, não exibir a linha. O usuário pode configurar o modelo no IDE antes de iniciar aquele agente.
101
103
 
102
- **Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de **`.oxe/plan-agents.json`** SOMENTE quando:
104
+ **Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de **`plan-agents.json`** do escopo resolvido SOMENTE quando:
103
105
  1. `lifecycle.status` ∈ `{ pending_execute, executing }` (não usar se `closed` ou `invalidated`).
104
106
  2. **`runId`** no JSON coincide com **`run_id`** no STATE.md (secção Blueprint de agentes).
105
107
  3. O pedido mapeia para pelo menos uma tarefa **`Tn`** no **`PLAN.md`**.
@@ -108,7 +110,7 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
108
110
 
109
111
  **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.
110
112
 
111
- **Protocolo agente → agente (blueprint):** mensagens em `.oxe/plan-agent-messages/` conforme `oxe/workflows/references/plan-agent-chat-protocol.md`.
113
+ **Protocolo agente → agente (blueprint):** mensagens em `plan-agent-messages/` do escopo resolvido conforme `oxe/workflows/references/plan-agent-chat-protocol.md`.
112
114
 
113
115
  **Se PLAN.md não existir mas QUICK.md existir:** seguir QUICK.md — passos = onda única, sempre Modo Completo.
114
116
 
@@ -120,9 +122,9 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
120
122
  </context>
121
123
 
122
124
  <process>
123
- 1. Ler **`.oxe/STATE.md`**, **`PLAN.md`** (se existir) e **`QUICK.md`** (se PLAN não existir).
124
- 2. Verificar **`.oxe/OBSERVATIONS.md`** — incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
125
- 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.
125
+ 1. Ler **`.oxe/STATE.md`** global para resolver `active_session`, depois ler **`PLAN.md`** (se existir) e **`QUICK.md`** do escopo resolvido.
126
+ 2. Verificar **`OBSERVATIONS.md`** do escopo resolvido — incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
127
+ 3. **Seleção de modo** (apenas se PLAN.md com 2+ ondas e `execute_mode` não definido em STATE): se o argumento já for `A`, `B` ou `C`, usá-lo diretamente; senão apresentar opções A/B/C e aguardar escolha; registrar em STATE.md.
126
128
  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.
127
129
  5. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
128
130
  6. **Implementar** conforme o modo escolhido:
@@ -136,8 +138,8 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
136
138
  - [ ] Implementação da onda concluída
137
139
  - [ ] Comando Verificar de cada tarefa executado (ou agendado)
138
140
  ```
139
- 8. Atualizar **`.oxe/STATE.md`**: última onda executada, tarefas concluídas (Tn), próximo passo.
140
- 9. Marcar OBS incorporadas como `incorporada → execute (data)` em `.oxe/OBSERVATIONS.md`.
141
+ 8. Atualizar **`.oxe/STATE.md`** global com progresso resumido e, com sessão ativa, escrever o detalhe operacional em `execution/STATE.md`.
142
+ 9. Marcar OBS incorporadas como `incorporada → execute (data)` em `OBSERVATIONS.md` do escopo resolvido.
141
143
  </process>
142
144
 
143
145
  <success_criteria>
@@ -1,14 +1,14 @@
1
1
  # OXE — Workflow: forensics
2
2
 
3
3
  <objective>
4
- Diagnosticar **incidentes de fluxo** após falha ou incoerência entre artefatos `.oxe/`, Git e saída de `oxe-cc doctor`: produzir **`.oxe/FORENSICS.md`** com linha do tempo, hipótese de causa e **exatamente um** próximo passo canónico OXE (`scan`, `plan` ou `execute` — incluindo ações como reinstalar workflows ou correr verify como parte do movimento **execute**).
4
+ Diagnosticar **incidentes de fluxo** após falha ou incoerência entre artefatos `.oxe/`, Git e saída de `oxe-cc doctor`: produzir **`FORENSICS.md`** no escopo resolvido com linha do tempo, hipótese de causa e **exatamente um** próximo passo canónico OXE (`scan`, `plan` ou `execute` — incluindo ações como reinstalar workflows ou correr verify como parte do movimento **execute**).
5
5
 
6
6
  Não reescrever `SPEC.md` nem apagar `PLAN.md`; apenas **recomendar** o reingresso na trilha.
7
7
  </objective>
8
8
 
9
9
  <context>
10
- - Usar quando: `VERIFY.md` com falhas ou gaps não explicados, `oxe-cc doctor` com **FALHA**, `STATE.md` contradiz ficheiros presentes (ex.: “onda concluída” sem `VERIFY.md`), ou o utilizador indica estar **preso** após várias tentativas de replan.
11
- - Ler: `.oxe/STATE.md`, `.oxe/VERIFY.md` (se existir), `.oxe/PLAN.md`, `.oxe/SPEC.md` (se existir), `.oxe/QUICK.md` (se existir).
10
+ - Usar quando: `VERIFY.md` com falhas ou gaps não explicados, `oxe-cc doctor` com **FALHA**, `STATE.md` contradiz ficheiros presentes (ex.: “onda concluída” sem `VERIFY.md`), ou o utilizador indica estar **preso** após várias tentativas de replan.
11
+ - Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`; ler `.oxe/STATE.md` global e os artefatos de sessão (`VERIFY.md`, `PLAN.md`, `SPEC.md`, `QUICK.md`) no escopo resolvido.
12
12
  - **Git é opcional:** em sandbox sem Git ou sem permissão de terminal, **não** falhar o workflow; registar em `FORENSICS.md` que Git não foi avaliado.
13
13
  - Opcional: saída resumida de `npx oxe-cc doctor` no diretório do projeto.
14
14
  - Se o sintoma for **mapa OXE desatualizado** (ex.: `STACK.md` / estrutura em `.oxe/codebase/` claramente atrás do repo) sem workflows em falta, a **Hipótese de causa** ou a **Justificativa** pode mencionar **`/oxe-compact`** como ação complementar **depois** de escolhido o passo canónico — o próximo passo OXE recomendado continua a ser **um** entre `scan` | `plan` | `execute`.
@@ -25,18 +25,18 @@ Não reescrever `SPEC.md` nem apagar `PLAN.md`; apenas **recomendar** o reingres
25
25
  <process>
26
26
  1. Confirmar diretório raiz do projeto e existência de `.oxe/`.
27
27
  2. Recolher evidência: STATE, VERIFY, PLAN, SPEC, QUICK (trechos relevantes), saída de **doctor** se disponível, e **Git (opcional)** conforme bloco no context (se indisponível, seguir sem Git).
28
- 3. Redigir **`.oxe/FORENSICS.md`** com secções fixas:
28
+ 3. Redigir **`FORENSICS.md`** no escopo resolvido com secções fixas:
29
29
  - **Data** (ISO) e **Sintoma** (1–3 frases).
30
30
  - **Linha do tempo** — bullets curtos (o que se tentou, ordem aproximada); **incorporar** commits/datas e ficheiros mais tocados quando houver evidência Git; se Git não foi avaliado, linha explícita: *Git não avaliado (ambiente/indisponível)*.
31
31
  - **Hipótese de causa** — uma ou duas hipóteses ranqueadas (ex.: plano desalinhado, mapa desatualizado, workflows em falta, implementação incompleta); usar padrões Git (ficheiros repetidos, working tree suja) quando útil.
32
32
  - **Próximo passo OXE recomendado:** **um único** valor entre `scan` | `plan` | `execute` e o **comando** correspondente (`/oxe-scan`, `/oxe-plan`, `/oxe-execute` ou `npx oxe-cc@latest` / `npx oxe-cc doctor` quando a causa for tooling).
33
33
  - **Justificativa** — uma frase que liga evidência ao passo escolhido.
34
- 4. Atualizar **`.oxe/STATE.md`** com uma linha opcional sob decisões ou contexto: referência a `FORENSICS.md` e fase sugerida (ex.: `forensics_complete` → próximo conforme passo recomendado).
34
+ 4. Atualizar **`.oxe/STATE.md`** global com uma linha opcional sob decisões ou contexto: referência a `FORENSICS.md` e fase sugerida (ex.: `forensics_complete` → próximo conforme passo recomendado).
35
35
  5. Responder no chat em ≤8 linhas: resumo do diagnóstico e **só** o próximo passo (sem lista equiparável de alternativas).
36
36
  </process>
37
37
 
38
38
  <success_criteria>
39
- - [ ] `.oxe/FORENSICS.md` existe com **Próximo passo OXE recomendado** igual a **um** entre `scan`, `plan`, `execute`.
39
+ - [ ] `FORENSICS.md` existe no escopo correto com **Próximo passo OXE recomendado** igual a **um** entre `scan`, `plan`, `execute`.
40
40
  - [ ] Não há conclusão “feito” sem indicar reingresso na trilha canónica.
41
41
  - [ ] `SPEC.md` / `PLAN.md` não foram apagados nem substituídos sem ação explícita do utilizador.
42
42
  </success_criteria>
@@ -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-scan mapeia o projeto (ou atualiza o mapa se já existir)
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
- ## Integrações principais (referência)
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
 
@@ -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
- - Milestones são rastreados em **`.oxe/MILESTONES.md`** (índice) e cada entrega tem uma entrada com status, data e links aos artefatos.
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 `.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.
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.
@@ -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,12 +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
+ 3. Se fase `quick_active` ou existir `QUICK.md` no escopo resolvido **sem** `PLAN.md`:
17
18
  - Se `QUICK.md` contiver linha `Promover para spec/plan?: sim` → **spec** (promoção declarada pelo autor; ignorar demais heurísticas).
18
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).
19
20
  - Senão → **execute** (há passos curtos a implementar).
20
- 4. Se não houver `SPEC.md` e não for quick intencional declarado → **spec** (passo único).
21
- 5. Se houver SPEC mas não PLAN → se `.oxe/config.json` tiver `discuss_before_plan: true` e faltar **`.oxe/DISCUSS.md`** com decisões → **discuss**; senão → **plan**.
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**.
22
23
  6. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual → **execute** (onda atual).
23
24
  7. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
24
25
  8. Se VERIFY indica falha ou gaps não resolvidos → **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
@@ -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
- - Usar `oxe/templates/OBSERVATIONS.template.md` para criar o arquivo se ainda não existir.
17
- </context>
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: **`.oxe/OBSERVATIONS.md`**
21
+ Arquivo: **`OBSERVATIONS.md`** no escopo resolvido da sessão
21
22
 
22
23
  ```markdown
23
24
  # Observações OXE
@@ -69,14 +70,14 @@ Se ambíguo, usar `all` (princípio de maior abrangência).
69
70
 
70
71
  <process>
71
72
  1. Ler **`.oxe/STATE.md`**: capturar `phase`, `last_task` ou tarefa ativa na onda, `active_workstream`.
72
- 2. Determinar o **próximo ID** (OBS-NNN): contar entradas existentes em `.oxe/OBSERVATIONS.md` ou começar em OBS-001.
73
+ 2. Determinar o **próximo ID** (OBS-NNN): contar entradas existentes em `OBSERVATIONS.md` do escopo resolvido ou começar em OBS-001.
73
74
  3. Classificar o **impacto** automaticamente com base no texto; se ambíguo, usar `all`.
74
75
  3b. **Propagação automática de constraints:**
75
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):**`.
76
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):**`.
77
78
  - Se nenhum R-ID ou Tn identificável: registrar `**Afeta:** (a cruzar na próxima incorporação)`.
78
79
  - Esta propagação é automática e não requer input do usuário.
79
- 4. Criar ou atualizar **`.oxe/OBSERVATIONS.md`**:
80
+ 4. Criar ou atualizar **`OBSERVATIONS.md`** no escopo resolvido:
80
81
  - Adicionar linha na tabela de índice.
81
82
  - Adicionar seção `### OBS-NNN` com contexto, impacto, status e texto.
82
83
  5. Avaliar **urgência**:
@@ -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
- - **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`**.
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 **`.oxe/plan-agent-messages/`** e **`.oxe/plan-agent-messages/README.md`** a partir de **`oxe/templates/plan-agent-messages-README.template.md`**.
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`**.