oxe-cc 0.6.4 → 0.6.6
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-ask.md +11 -0
- package/.cursor/commands/oxe-execute.md +1 -1
- package/.cursor/commands/oxe-session.md +11 -0
- package/.github/prompts/oxe-ask.prompt.md +12 -0
- package/.github/prompts/oxe-execute.prompt.md +1 -1
- package/.github/prompts/oxe-session.prompt.md +12 -0
- package/README.md +363 -323
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-project-health.cjs +284 -91
- package/bin/oxe-cc.js +305 -123
- package/commands/oxe/ask.md +14 -0
- package/commands/oxe/session.md +16 -0
- package/oxe/templates/CONFIG.md +3 -2
- package/oxe/templates/PLAN.template.md +22 -7
- package/oxe/templates/SESSION.template.md +32 -0
- package/oxe/templates/STATE.md +10 -5
- package/oxe/templates/config.template.json +3 -2
- package/oxe/workflows/ask.md +62 -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 +37 -28
- package/oxe/workflows/forensics.md +6 -6
- package/oxe/workflows/help.md +39 -19
- package/oxe/workflows/milestone.md +12 -13
- package/oxe/workflows/next.md +16 -13
- package/oxe/workflows/obs.md +9 -8
- package/oxe/workflows/plan-agent.md +6 -4
- package/oxe/workflows/plan.md +73 -32
- package/oxe/workflows/project.md +1 -1
- package/oxe/workflows/quick.md +11 -7
- package/oxe/workflows/references/flow-robustness-contract.md +80 -0
- package/oxe/workflows/references/session-path-resolution.md +71 -0
- package/oxe/workflows/research.md +9 -8
- package/oxe/workflows/security.md +7 -6
- package/oxe/workflows/session.md +153 -0
- package/oxe/workflows/spec.md +41 -27
- 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 +37 -21
- package/oxe/workflows/workstream.md +16 -15
- package/package.json +1 -1
|
@@ -14,13 +14,28 @@ inputs: []
|
|
|
14
14
|
|
|
15
15
|
> Gerado a partir de `.oxe/SPEC.md`. Cada tarefa deve ter bloco **Verificar**.
|
|
16
16
|
|
|
17
|
-
## Resumo
|
|
18
|
-
|
|
19
|
-
- **Spec vinculada:** (data ou versão informal)
|
|
20
|
-
- **Ondas:** (número)
|
|
21
|
-
- **Tarefas:** (número)
|
|
22
|
-
|
|
23
|
-
##
|
|
17
|
+
## Resumo
|
|
18
|
+
|
|
19
|
+
- **Spec vinculada:** (data ou versão informal)
|
|
20
|
+
- **Ondas:** (número)
|
|
21
|
+
- **Tarefas:** (número)
|
|
22
|
+
|
|
23
|
+
## Autoavaliação do Plano
|
|
24
|
+
|
|
25
|
+
- **Melhor plano atual:** sim
|
|
26
|
+
- **Confiança:** 80%
|
|
27
|
+
- **Base da confiança:**
|
|
28
|
+
- Completude dos requisitos: 20/25
|
|
29
|
+
- Dependências conhecidas: 12/15
|
|
30
|
+
- Risco técnico: 15/20
|
|
31
|
+
- Impacto no código existente: 12/15
|
|
32
|
+
- Clareza da validação / testes: 13/15
|
|
33
|
+
- Lacunas externas / decisões pendentes: 8/10
|
|
34
|
+
- **Principais incertezas:** (0–3 bullets)
|
|
35
|
+
- **Alternativas descartadas:** (1–2 linhas)
|
|
36
|
+
- **Condição para replanejar:** (critério objetivo)
|
|
37
|
+
|
|
38
|
+
## Dependências globais
|
|
24
39
|
|
|
25
40
|
- (ex.: branch base, feature flags, migrations)
|
|
26
41
|
|
|
@@ -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 |
|
package/oxe/templates/STATE.md
CHANGED
|
@@ -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
|
-
##
|
|
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)
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
"_comment": "OXE config — copie para .oxe/config.json no seu projeto. Remova esta linha.",
|
|
3
3
|
"profile": "balanced",
|
|
4
4
|
"discuss_before_plan": false,
|
|
5
|
-
"verification_depth": "standard",
|
|
6
|
-
"
|
|
5
|
+
"verification_depth": "standard",
|
|
6
|
+
"plan_confidence_threshold": 70,
|
|
7
|
+
"security_in_verify": false,
|
|
7
8
|
"after_verify_suggest_pr": true,
|
|
8
9
|
"after_verify_draft_commit": true,
|
|
9
10
|
"after_verify_suggest_uat": false,
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# OXE — Workflow: ask
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Responder perguntas sobre a situação atual do trabalho OXE com máxima robustez, usando o contexto real do repositório, a sessão ativa quando existir, e os artefatos mais recentes da trilha.
|
|
5
|
+
</objective>
|
|
6
|
+
|
|
7
|
+
<context>
|
|
8
|
+
- Resolver `active_session` via `oxe/workflows/references/session-path-resolution.md`.
|
|
9
|
+
- Ler sempre `.oxe/STATE.md` global primeiro.
|
|
10
|
+
- Com sessão ativa, priorizar artefatos em `.oxe/<active_session>/...` antes do modo legado.
|
|
11
|
+
- Usar `.oxe/codebase/` como mapa do repositório, não como substituto dos artefatos da trilha.
|
|
12
|
+
- Se a pergunta estiver ambígua, responder em modo “situação atual + próximos riscos + melhor próxima ação”.
|
|
13
|
+
</context>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
1. Ler `.oxe/STATE.md` global e determinar se há `active_session`.
|
|
17
|
+
2. Se houver sessão ativa, ler nesta ordem:
|
|
18
|
+
- `SESSION.md`
|
|
19
|
+
- `spec/SPEC.md`, `spec/ROADMAP.md`, `spec/DISCUSS.md`, `spec/UI-SPEC.md` se existirem
|
|
20
|
+
- `plan/PLAN.md`, `plan/QUICK.md`, `plan/plan-agents.json`, `plan/quick-agents.json` se existirem
|
|
21
|
+
- `execution/STATE.md`, `execution/OBSERVATIONS.md`, `execution/DEBUG.md`, `execution/FORENSICS.md`, `execution/SUMMARY.md` se existirem
|
|
22
|
+
- `verification/VERIFY.md`, `verification/VALIDATION-GAPS.md`, `verification/SECURITY.md`, `verification/UI-REVIEW.md` se existirem
|
|
23
|
+
3. Sem sessão ativa, ler o equivalente legado na raiz `.oxe/`.
|
|
24
|
+
4. Em ambos os casos, ler também:
|
|
25
|
+
- `.oxe/codebase/OVERVIEW.md`
|
|
26
|
+
- `.oxe/codebase/STACK.md`
|
|
27
|
+
- `.oxe/codebase/CONCERNS.md`
|
|
28
|
+
- `.oxe/global/LESSONS.md` se existir, com fallback para `.oxe/LESSONS.md`
|
|
29
|
+
- `.oxe/SESSIONS.md` se a pergunta mencionar sessões, histórico ou retomada
|
|
30
|
+
5. Responder à pergunta do utilizador com base em evidência explícita dos artefatos lidos.
|
|
31
|
+
6. Se faltar artefato crítico para responder com segurança, dizer exatamente o que falta e qual comando OXE fecha essa lacuna.
|
|
32
|
+
|
|
33
|
+
## Modo diagnóstico padrão
|
|
34
|
+
|
|
35
|
+
Se o utilizador só disser algo genérico como “o que está acontecendo?”, “qual a situação?” ou “me contextualize”, responder com:
|
|
36
|
+
|
|
37
|
+
- **Situação atual**
|
|
38
|
+
- **Escopo ativo**
|
|
39
|
+
- **Artefatos relevantes**
|
|
40
|
+
- **Riscos ou lacunas**
|
|
41
|
+
- **Próximo passo recomendado**
|
|
42
|
+
|
|
43
|
+
## Regras de robustez
|
|
44
|
+
|
|
45
|
+
- Não assumir que `doctor` ou `status` sejam session-aware; eles não substituem a leitura direta dos artefatos da sessão.
|
|
46
|
+
- Se houver conflito entre `.oxe/STATE.md` global e `execution/STATE.md` da sessão, explicitar o conflito.
|
|
47
|
+
- Se `VERIFY.md` existir e contradizer o estado declarado, priorizar a evidência do `VERIFY.md` e mencionar a incoerência.
|
|
48
|
+
- Se o mapa `.oxe/codebase/` estiver ausente ou incompleto, dizer isso explicitamente antes de extrapolar sobre o repositório.
|
|
49
|
+
</process>
|
|
50
|
+
|
|
51
|
+
<output>
|
|
52
|
+
- Resposta direta à pergunta do utilizador
|
|
53
|
+
- Referência curta aos artefatos usados
|
|
54
|
+
- Quando necessário, um único próximo passo OXE
|
|
55
|
+
</output>
|
|
56
|
+
|
|
57
|
+
<success_criteria>
|
|
58
|
+
- [ ] A resposta parte de `.oxe/STATE.md` global e resolve corretamente a sessão ativa quando existir.
|
|
59
|
+
- [ ] O contexto da sessão ativa tem precedência sobre artefatos legados.
|
|
60
|
+
- [ ] Conflitos ou lacunas entre artefatos são explicitados.
|
|
61
|
+
- [ ] A saída responde à pergunta sem inventar estado que não esteja nos arquivos.
|
|
62
|
+
</success_criteria>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OXE — Workflow: checkpoint
|
|
2
2
|
|
|
3
3
|
<objective>
|
|
4
|
-
Criar um **marco nomeado em disco** em
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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>
|
package/oxe/workflows/debug.md
CHANGED
|
@@ -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
|
|
12
|
-
-
|
|
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
|
|
17
|
-
2. Registar em
|
|
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
|
-
- [ ]
|
|
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>
|
package/oxe/workflows/discuss.md
CHANGED
|
@@ -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
|
-
-
|
|
11
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
- [ ]
|
|
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).
|
package/oxe/workflows/execute.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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).
|
|
@@ -87,10 +89,12 @@ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenci
|
|
|
87
89
|
**Auto-loop no Modo B:** se `execute_mode: por_onda` e `loop_max` > 1 em STATE.md, o ciclo de retry roda automaticamente até `loop_max` tentativas antes de escalar para forensics.
|
|
88
90
|
</failure_mode>
|
|
89
91
|
|
|
90
|
-
<context>
|
|
91
|
-
**
|
|
92
|
+
<context>
|
|
93
|
+
**Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de executar, validar os artefatos obrigatórios e o gate do plano.
|
|
94
|
+
|
|
95
|
+
**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
96
|
|
|
93
|
-
**Quick-agents (lean PDDA):** se existir
|
|
97
|
+
**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
98
|
|
|
95
99
|
**Model hints (blueprint com agentes):** ao apresentar a atribuição de cada agente no início da onda, exibir `model_hint` se presente:
|
|
96
100
|
```
|
|
@@ -99,7 +103,7 @@ Tarefas: T1, T2
|
|
|
99
103
|
```
|
|
100
104
|
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
105
|
|
|
102
|
-
**Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de
|
|
106
|
+
**Blueprint plan-agent (Modo com Agentes):** adotar `role`/`scope` de **`plan-agents.json`** do escopo resolvido SOMENTE quando:
|
|
103
107
|
1. `lifecycle.status` ∈ `{ pending_execute, executing }` (não usar se `closed` ou `invalidated`).
|
|
104
108
|
2. **`runId`** no JSON coincide com **`run_id`** no STATE.md (secção Blueprint de agentes).
|
|
105
109
|
3. O pedido mapeia para pelo menos uma tarefa **`Tn`** no **`PLAN.md`**.
|
|
@@ -108,7 +112,7 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
|
|
|
108
112
|
|
|
109
113
|
**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
114
|
|
|
111
|
-
**Protocolo agente → agente (blueprint):** mensagens em
|
|
115
|
+
**Protocolo agente → agente (blueprint):** mensagens em `plan-agent-messages/` do escopo resolvido conforme `oxe/workflows/references/plan-agent-chat-protocol.md`.
|
|
112
116
|
|
|
113
117
|
**Se PLAN.md não existir mas QUICK.md existir:** seguir QUICK.md — passos = onda única, sempre Modo Completo.
|
|
114
118
|
|
|
@@ -119,26 +123,31 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
|
|
|
119
123
|
**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`.
|
|
120
124
|
</context>
|
|
121
125
|
|
|
122
|
-
<process>
|
|
123
|
-
1. Ler **`.oxe/STATE.md
|
|
124
|
-
2.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
126
|
+
<process>
|
|
127
|
+
1. Ler **`.oxe/STATE.md`** global para resolver `active_session`, depois ler **`PLAN.md`** (se existir) e **`QUICK.md`** do escopo resolvido.
|
|
128
|
+
2. Se existir `PLAN.md`, validar a seção `## Autoavaliação do Plano` antes de qualquer implementação:
|
|
129
|
+
- `Melhor plano atual` deve ser `sim`;
|
|
130
|
+
- `Confiança` deve existir em `0–100%`;
|
|
131
|
+
- se `.oxe/config.json` definir `plan_confidence_threshold`, usar esse limiar; senão, usar `70%`;
|
|
132
|
+
- se a confiança estiver abaixo do limiar, **não executar**. Registrar o bloqueio e orientar redução de incerteza (`/oxe-discuss`, `/oxe-research` ou `/oxe-plan --replan`).
|
|
133
|
+
3. Verificar **`OBSERVATIONS.md`** do escopo resolvido — incorporar pendentes de impacto `execute` ou `all` antes de iniciar.
|
|
134
|
+
4. **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.
|
|
135
|
+
5. 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.
|
|
136
|
+
6. Listar no chat: tarefas/passos desta onda, arquivos prováveis, comando **Verificar** de cada tarefa.
|
|
137
|
+
7. **Implementar** conforme o modo escolhido:
|
|
138
|
+
- **Modo Completo:** executar todas as ondas em sequência com verificação inline entre ondas; sumarizar ao final.
|
|
139
|
+
- **Modo Por onda:** executar onda atual, apresentar checklist, parar.
|
|
140
|
+
- **Modo Por tarefa:** executar próxima tarefa pendente, parar.
|
|
141
|
+
8. Após cada onda concluída, incluir checklist:
|
|
142
|
+
```markdown
|
|
143
|
+
## Checklist — Onda N (OXE)
|
|
144
|
+
- [ ] Pré-requisitos da onda conferidos (dependências Tk atendidas)
|
|
145
|
+
- [ ] Implementação da onda concluída
|
|
146
|
+
- [ ] Comando Verificar de cada tarefa executado (ou agendado)
|
|
147
|
+
```
|
|
148
|
+
9. Atualizar **`.oxe/STATE.md`** global com progresso resumido e, com sessão ativa, escrever o detalhe operacional em `execution/STATE.md`.
|
|
149
|
+
10. Marcar OBS incorporadas como `incorporada → execute (data)` em `OBSERVATIONS.md` do escopo resolvido.
|
|
150
|
+
</process>
|
|
142
151
|
|
|
143
152
|
<success_criteria>
|
|
144
153
|
- [ ] Modo de execução foi selecionado (ou herdado do STATE) antes de implementar.
|
|
@@ -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
|
|
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
|
-
-
|
|
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
|
|
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
|
-
- [ ]
|
|
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>
|
package/oxe/workflows/help.md
CHANGED
|
@@ -11,24 +11,42 @@ No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout
|
|
|
11
11
|
</context>
|
|
12
12
|
|
|
13
13
|
<output>
|
|
14
|
-
##
|
|
14
|
+
## Comandos principais
|
|
15
15
|
|
|
16
16
|
```
|
|
17
|
-
/oxe → onde estou / o que faço / help (entrada universal)
|
|
18
|
-
/oxe-
|
|
19
|
-
/oxe-
|
|
20
|
-
/oxe-
|
|
17
|
+
/oxe → onde estou / o que faço / help (entrada universal)
|
|
18
|
+
/oxe-ask → entender a situação atual com leitura robusta de STATE + sessão + artefatos
|
|
19
|
+
/oxe-obs → registrei algo importante — incorporado automaticamente nos próximos passos
|
|
20
|
+
/oxe-quick → tarefa pequena, sem cerimônia (com agentes lean quando necessário)
|
|
21
|
+
/oxe-session → criar, alternar, retomar, fechar ou migrar sessões OXE
|
|
22
|
+
/oxe-scan → mapeia o projeto (ou atualiza o mapa se já existir)
|
|
21
23
|
/oxe-spec → nova feature: perguntas → pesquisa → requisitos → roteiro → aprovação
|
|
22
24
|
/oxe-plan → tarefas por onda (--agents para blueprint multi-agente)
|
|
23
25
|
/oxe-execute → implementar (A: 1 sessão | B: por onda | C: por tarefa)
|
|
24
26
|
/oxe-verify → validar (camadas 5+6 opcionais via config: gaps + segurança)
|
|
25
27
|
```
|
|
26
28
|
|
|
27
|
-
Tudo o mais é ativado automaticamente por contexto, por config, ou existe como escape hatch.
|
|
29
|
+
Tudo o mais é ativado automaticamente por contexto, por config, ou existe como escape hatch.
|
|
28
30
|
|
|
29
31
|
---
|
|
30
32
|
|
|
31
|
-
##
|
|
33
|
+
## Sessões OXE
|
|
34
|
+
|
|
35
|
+
- `active_session` em `.oxe/STATE.md` define a sessão ativa com path relativo completo (`sessions/sNNN-slug`).
|
|
36
|
+
- Com sessão ativa, workflows de spec/plan/execute/verify e suportes ligados à trilha escrevem em `.oxe/<active_session>/...`.
|
|
37
|
+
- Permanecem globais: `.oxe/STATE.md`, `.oxe/config.json`, `.oxe/codebase/`, `.oxe/SESSIONS.md`, `.oxe/global/LESSONS.md`, `.oxe/global/MILESTONES.md`.
|
|
38
|
+
- `oxe-cc status` / `doctor` devem refletir a sessão ativa, a autoavaliação do plano e a saúde lógica do fluxo.
|
|
39
|
+
|
|
40
|
+
### `/oxe-session`
|
|
41
|
+
|
|
42
|
+
- `new <nome>` — cria `.oxe/sessions/sNNN-slug/` e ativa a sessão
|
|
43
|
+
- `list` — mostra `.oxe/SESSIONS.md`
|
|
44
|
+
- `switch <id>` / `resume <id>` — alterna a sessão ativa
|
|
45
|
+
- `status` — mostra o manifesto `SESSION.md`
|
|
46
|
+
- `close` — arquiva a sessão ativa
|
|
47
|
+
- `migrate <nome>` — move artefatos session-scoped da raiz para uma nova sessão
|
|
48
|
+
|
|
49
|
+
## Integrações principais (referência)
|
|
32
50
|
|
|
33
51
|
### Cursor
|
|
34
52
|
|
|
@@ -72,8 +90,8 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
|
|
|
72
90
|
1. **scan** — após clonar ou quando o codebase mudar. **Inteligente:** se `.oxe/codebase/` já existir, opera em modo refresh (incremental) automaticamente — sem precisar chamar `/oxe-compact` separadamente. Use `--full` para forçar scan completo. Repositórios **legado** (COBOL, JCL, VB6): aplica `legacy-brownfield.md` automaticamente.
|
|
73
91
|
2. **spec** — fluxo em **5 fases**: perguntas (máx 3 rodadas) → pesquisa (proposta inline na Fase 2, sem sair do spec) → requisitos R-ID (v1/v2/fora) → roteiro (`.oxe/ROADMAP.md`) → aprovação. Se `discuss_before_plan: true` na config, o próximo passo após aprovação é `oxe:discuss` antes de plan.
|
|
74
92
|
3. **plan** — plano executável + **Verificar** por tarefa. Se 3+ domínios distintos, **sugere automaticamente** blueprint de agentes (`/oxe-plan --agents`). Sem `--agents`: solo. Com `--agents`: gera também `plan-agents.json` (schema 3 com `model_hint`).
|
|
75
|
-
4. **execute** — modo selecionado 1 vez: **A) Completo** (1 sessão), **B) Por onda**, **C) Por tarefa**. Se Verificar falhar inline: diagnóstico automático (2-3 hipóteses + fix), sem precisar chamar `/oxe-debug` separadamente. Escalação para `/oxe-forensics` só se esgotar tentativas.
|
|
76
|
-
5. **verify** — até **6 camadas** por config: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, UAT, **gaps de cobertura** (camada 5 — `verification_depth: "thorough"`), **segurança OWASP** (camada 6 — `security_in_verify: true`). Sem comandos extras.
|
|
93
|
+
4. **execute** — modo selecionado 1 vez: **A) Completo** (1 sessão), **B) Por onda**, **C) Por tarefa**. Antes de executar, validar a **Autoavaliação do Plano**: se `Melhor plano atual: não` ou a confiança estiver abaixo do limiar, o fluxo deve replanear em vez de implementar. Se Verificar falhar inline: diagnóstico automático (2-3 hipóteses + fix), sem precisar chamar `/oxe-debug` separadamente. Escalação para `/oxe-forensics` só se esgotar tentativas.
|
|
94
|
+
5. **verify** — até **6 camadas** por config: auditoria pré-exec, tarefas + critérios A*, fidelidade D-NN, **calibração do plano**, UAT, **gaps de cobertura** (camada 5 — `verification_depth: "thorough"`), **segurança OWASP** (camada 6 — `security_in_verify: true`). Sem comandos extras.
|
|
77
95
|
6. **retro** *(opcional, recomendado após verify_complete)* — `/oxe-retro` sintetiza 3–5 lições prescritivas em `.oxe/LESSONS.md`. Cada lição diz **o que fazer diferente** no próximo ciclo — consumida automaticamente pelo próximo spec/plan.
|
|
78
96
|
7. **→ próximo ciclo** — spec/plan do próximo ciclo lê LESSONS.md automaticamente. Os erros do ciclo anterior não se repetem.
|
|
79
97
|
|
|
@@ -115,14 +133,15 @@ Um único comando para: `milestone new|complete|status|audit`, `workstream new|s
|
|
|
115
133
|
|
|
116
134
|
- **`npx oxe-cc`** ou **`npx oxe-cc install`** — mesma instalação (alias explícito).
|
|
117
135
|
- Instala workflows em `.oxe/` (layout mínimo) ou `oxe/` + `.oxe/` com **`--global`**; integrações em `~/.cursor`, `~/.copilot`, `~/.claude` (e mais destinos com **`--copilot-cli`** / **`--all-agents`**).
|
|
118
|
-
- **`oxe-cc doctor`** — Node, workflows do pacote vs projeto, `config.json`, mapas do codebase, **coerência STATE vs arquivos**, scan antigo (`scan_max_age_days`), compact antigo (`compact_max_age_days`), seções SPEC, ondas do PLAN
|
|
119
|
-
- **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`). Com **`--json`**, uma linha JSON com
|
|
120
|
-
- **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
|
|
121
|
-
- **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
- **`oxe-cc update --
|
|
125
|
-
- **`oxe-cc update
|
|
136
|
+
- **`oxe-cc doctor`** — Node, workflows do pacote vs projeto, `config.json`, bootstrap mínimo de `.oxe/`, mapas do codebase, **coerência STATE vs arquivos**, sessão ativa, autoavaliação do plano, scan antigo (`scan_max_age_days`), compact antigo (`compact_max_age_days`), seções SPEC, ondas do PLAN e **saúde lógica** (`healthy` | `warning` | `broken`).
|
|
137
|
+
- **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`). Com **`--json`**, uma linha JSON com `healthStatus`, `activeSession`, `planSelfEvaluation` e `diagnostics` completos além do próximo passo. Com **`--hints`** em modo texto, bloco **Lembretes (rotina OXE)** (scan/compact antigos quando `scan_max_age_days` / `compact_max_age_days` estão ativos em `config.json`).
|
|
138
|
+
- **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
|
|
139
|
+
- **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
|
|
140
|
+
- **`oxe-cc uninstall --global-cli`** — além da limpeza dos artefatos OXE, executa `npm uninstall -g oxe-cc` para remover o binário global do PATH.
|
|
141
|
+
- **`/oxe-update`** (Cursor; noutras ferramentas use o terminal no projeto) — workflow de atualização: verificar npm, correr `oxe-cc update`, `doctor`.
|
|
142
|
+
- **`oxe-cc update --check`** — só comparar versão em execução com a `latest` no npm (sem instalar).
|
|
143
|
+
- **`oxe-cc update --if-newer`** — só executa o `npx oxe-cc@latest` se houver versão mais nova no npm.
|
|
144
|
+
- **`oxe-cc update` / `npx oxe-cc@latest --force`** — atualizar ficheiros OXE no projeto. Aceita flags extras como `--ide-local`, `--cursor`, `--copilot-cli`, `--global`, `--global-cli`.
|
|
126
145
|
|
|
127
146
|
**CI / sem perguntas:** `OXE_NO_PROMPT=1` — layout mínimo e integrações padrão no HOME, salvo flags (`--global`, `--cursor`, …). Se existir **`.oxe/config.json`** com bloco **`install`** (perfil, `repo_layout`), aplica-se quando **não** há flags IDE explícitas; para ignorar: **`--no-install-config`**. Detalhes: `oxe/templates/CONFIG.md`.
|
|
128
147
|
|
|
@@ -136,8 +155,9 @@ Um pedido → **um** destino (sem gerar contrato). O agente aplica `route.md` ou
|
|
|
136
155
|
|
|
137
156
|
| Se o utilizador disser (exemplos) | Comando / ação |
|
|
138
157
|
|-----------------------------------|----------------|
|
|
139
|
-
| Não sei que passo OXE sou / “o que faço agora?” | `/oxe-next` ou `npx oxe-cc status` |
|
|
140
|
-
|
|
|
158
|
+
| Não sei que passo OXE sou / “o que faço agora?” | `/oxe-next` ou `npx oxe-cc status` |
|
|
159
|
+
| Quero entender rapidamente a situação real da trilha atual | `/oxe-ask [pergunta]` |
|
|
160
|
+
| Acabei de clonar / falta OXE no projeto | `npx oxe-cc@latest` (ou `oxe-cc`) na raiz do repo |
|
|
141
161
|
| Verify falhou várias vezes / doctor estranho / artefatos incoerentes | `/oxe-forensics` |
|
|
142
162
|
| Teste ou erro técnico durante o trabalho (stack, flake) | `/oxe-debug` (com **Tn** se houver) |
|
|
143
163
|
| Revisar diff / PR antes do merge | `oxe/workflows/review-pr.md` em contexto *(Copilot: `/oxe-review-pr`)* |
|
|
@@ -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.
|