oxe-cc 0.6.5 → 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/.github/prompts/oxe-ask.prompt.md +12 -0
- package/README.md +48 -29
- package/bin/lib/oxe-project-health.cjs +284 -91
- package/bin/oxe-cc.js +305 -123
- package/commands/oxe/ask.md +14 -0
- package/oxe/templates/CONFIG.md +3 -2
- package/oxe/templates/PLAN.template.md +22 -7
- package/oxe/templates/config.template.json +3 -2
- package/oxe/workflows/ask.md +62 -0
- package/oxe/workflows/execute.md +27 -20
- package/oxe/workflows/help.md +19 -16
- package/oxe/workflows/next.md +10 -8
- package/oxe/workflows/plan-agent.md +2 -1
- package/oxe/workflows/plan.md +57 -17
- package/oxe/workflows/quick.md +5 -2
- package/oxe/workflows/references/flow-robustness-contract.md +80 -0
- package/oxe/workflows/spec.md +15 -7
- package/oxe/workflows/verify.md +27 -12
- package/package.json +1 -1
|
@@ -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>
|
package/oxe/workflows/execute.md
CHANGED
|
@@ -89,7 +89,9 @@ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenci
|
|
|
89
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.
|
|
90
90
|
</failure_mode>
|
|
91
91
|
|
|
92
|
-
<context>
|
|
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
|
+
|
|
93
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)`.
|
|
94
96
|
|
|
95
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`.
|
|
@@ -121,26 +123,31 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
|
|
|
121
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`.
|
|
122
124
|
</context>
|
|
123
125
|
|
|
124
|
-
<process>
|
|
126
|
+
<process>
|
|
125
127
|
1. Ler **`.oxe/STATE.md`** global para resolver `active_session`, depois ler **`PLAN.md`** (se existir) e **`QUICK.md`** do escopo resolvido.
|
|
126
|
-
2.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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>
|
|
144
151
|
|
|
145
152
|
<success_criteria>
|
|
146
153
|
- [ ] Modo de execução foi selecionado (ou herdado do STATE) antes de implementar.
|
package/oxe/workflows/help.md
CHANGED
|
@@ -11,11 +11,12 @@ 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-
|
|
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
|
|
19
20
|
/oxe-quick → tarefa pequena, sem cerimônia (com agentes lean quando necessário)
|
|
20
21
|
/oxe-session → criar, alternar, retomar, fechar ou migrar sessões OXE
|
|
21
22
|
/oxe-scan → mapeia o projeto (ou atualiza o mapa se já existir)
|
|
@@ -34,7 +35,7 @@ Tudo o mais é ativado automaticamente por contexto, por config, ou existe como
|
|
|
34
35
|
- `active_session` em `.oxe/STATE.md` define a sessão ativa com path relativo completo (`sessions/sNNN-slug`).
|
|
35
36
|
- Com sessão ativa, workflows de spec/plan/execute/verify e suportes ligados à trilha escrevem em `.oxe/<active_session>/...`.
|
|
36
37
|
- Permanecem globais: `.oxe/STATE.md`, `.oxe/config.json`, `.oxe/codebase/`, `.oxe/SESSIONS.md`, `.oxe/global/LESSONS.md`, `.oxe/global/MILESTONES.md`.
|
|
37
|
-
-
|
|
38
|
+
- `oxe-cc status` / `doctor` devem refletir a sessão ativa, a autoavaliação do plano e a saúde lógica do fluxo.
|
|
38
39
|
|
|
39
40
|
### `/oxe-session`
|
|
40
41
|
|
|
@@ -89,8 +90,8 @@ Com **`compact_max_age_days`** em `.oxe/config.json` (ver `oxe/templates/CONFIG.
|
|
|
89
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.
|
|
90
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.
|
|
91
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`).
|
|
92
|
-
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.
|
|
93
|
-
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.
|
|
94
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.
|
|
95
96
|
7. **→ próximo ciclo** — spec/plan do próximo ciclo lê LESSONS.md automaticamente. Os erros do ciclo anterior não se repetem.
|
|
96
97
|
|
|
@@ -132,14 +133,15 @@ Um único comando para: `milestone new|complete|status|audit`, `workstream new|s
|
|
|
132
133
|
|
|
133
134
|
- **`npx oxe-cc`** ou **`npx oxe-cc install`** — mesma instalação (alias explícito).
|
|
134
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`**).
|
|
135
|
-
- **`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
|
|
136
|
-
- **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`). Com **`--json`**, uma linha JSON com
|
|
137
|
-
- **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
|
|
138
|
-
- **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
- **`oxe-cc update --
|
|
142
|
-
- **`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`.
|
|
143
145
|
|
|
144
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`.
|
|
145
147
|
|
|
@@ -153,8 +155,9 @@ Um pedido → **um** destino (sem gerar contrato). O agente aplica `route.md` ou
|
|
|
153
155
|
|
|
154
156
|
| Se o utilizador disser (exemplos) | Comando / ação |
|
|
155
157
|
|-----------------------------------|----------------|
|
|
156
|
-
| Não sei que passo OXE sou / “o que faço agora?” | `/oxe-next` ou `npx oxe-cc status` |
|
|
157
|
-
|
|
|
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 |
|
|
158
161
|
| Verify falhou várias vezes / doctor estranho / artefatos incoerentes | `/oxe-forensics` |
|
|
159
162
|
| Teste ou erro técnico durante o trabalho (stack, flake) | `/oxe-debug` (com **Tn** se houver) |
|
|
160
163
|
| Revisar diff / PR antes do merge | `oxe/workflows/review-pr.md` em contexto *(Copilot: `/oxe-review-pr`)* |
|
package/oxe/workflows/next.md
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
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
|
-
<context>
|
|
7
|
+
<context>
|
|
8
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
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.
|
|
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.
|
|
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`**.
|
|
12
|
-
|
|
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.
|
|
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`**.
|
|
12
|
+
- Priorizar sempre o passo que **reduz incerteza primeiro**. Se o plano existente não for o melhor plano atual ou estiver abaixo do limiar de confiança, o próximo passo não pode ser `execute`.
|
|
13
|
+
</context>
|
|
13
14
|
|
|
14
15
|
<process>
|
|
15
16
|
1. Se `.oxe/` ou `STATE.md` não existir → **único** passo: **scan** (ou `oxe-cc init-oxe` seguido de scan).
|
|
@@ -20,10 +21,11 @@ Inspecionar `.oxe/STATE.md` global, a sessão ativa quando existir, e a existên
|
|
|
20
21
|
- Senão → **execute** (há passos curtos a implementar).
|
|
21
22
|
4. Se não houver `SPEC.md` no escopo resolvido e não for quick intencional declarado → **spec** (passo único).
|
|
22
23
|
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**.
|
|
23
|
-
6. Se PLAN existe
|
|
24
|
-
7. Se PLAN existe
|
|
25
|
-
8. Se
|
|
26
|
-
9. Se VERIFY
|
|
24
|
+
6. Se PLAN existe mas a seção **Autoavaliação do Plano** disser `Melhor plano atual: não`, ou a `Confiança` estiver abaixo do limiar configurado (padrão 70%), o próximo passo deve ser **plan** (replanejar) ou **discuss/research** se a própria autoavaliação indicar isso.
|
|
25
|
+
7. Se PLAN existe, **VERIFY.md** ainda **não** existe ou está claramente antes da implementação atual → **execute** (onda atual).
|
|
26
|
+
8. Se PLAN existe e VERIFY falta após implementação declarada → **verify**.
|
|
27
|
+
9. Se VERIFY indica falha ou gaps não resolvidos → **plan** (replanejamento) como passo único, com referência a `SUMMARY.md`.
|
|
28
|
+
10. Se VERIFY OK e estado coerente → **spec** ou **quick** para **próxima** entrega, ou mensagem “fluxo da feature atual concluído”.
|
|
27
29
|
|
|
28
30
|
**Saída obrigatória (só isto, nesta ordem):**
|
|
29
31
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<objective>
|
|
4
4
|
Produzir **dois artefactos alinhados**:
|
|
5
5
|
|
|
6
|
-
1. **`.oxe/PLAN.md`** — mesmo contrato que o workflow **`plan.md`** (tarefas `Tn`, **Onda**, **Depende de**, **Verificar**, **Aceite vinculado**), para **`/oxe-execute`**, **`/oxe-verify`** e gates OXE existentes.
|
|
6
|
+
1. **`.oxe/PLAN.md`** — mesmo contrato que o workflow **`plan.md`** (tarefas `Tn`, **Onda**, **Depende de**, **Verificar**, **Aceite vinculado**, **Autoavaliação do Plano** com rubrica e confiança determinística), para **`/oxe-execute`**, **`/oxe-verify`** e gates OXE existentes.
|
|
7
7
|
2. **`.oxe/plan-agents.json`** — **blueprint de execução**: objetivo, **agentes** (papéis, âmbito, entradas/saídas esperadas, dependências entre agentes), **estratégia em ondas** (`execution.waves`), **`runId`** e **`lifecycle`** (schema **2**).
|
|
8
8
|
|
|
9
9
|
O plano **não** é só uma lista de tarefas: cada agente é um **pacote de contexto** (o que ler, o que produzir, que `Tn` cobre). A execução real continua a ser feita pelo utilizador ou por subagentes da IDE, guiados por este blueprint e pelo `PLAN.md`.
|
|
@@ -15,6 +15,7 @@ Se o utilizador pedir **`--replan`**: aplicar a mesma lógica de replanejamento
|
|
|
15
15
|
|
|
16
16
|
<context>
|
|
17
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
|
+
- O `plan-agent` herda integralmente o contrato `oxe/workflows/references/flow-robustness-contract.md`. Não pode emitir percentuais concorrentes por agente; a confiança final do plano é única e visível no `PLAN.md`.
|
|
18
19
|
- **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`**.
|
|
19
20
|
- **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.
|
|
20
21
|
- **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.
|
package/oxe/workflows/plan.md
CHANGED
|
@@ -12,6 +12,7 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
|
|
|
12
12
|
</objective>
|
|
13
13
|
|
|
14
14
|
<context>
|
|
15
|
+
- Seguir `oxe/workflows/references/flow-robustness-contract.md` como contrato canónico de robustez. A ordem obrigatória é: ler artefatos, resolver sessão/paths, validar pré-condições, escrever o plano, autoavaliar o plano, registrar próximo passo único.
|
|
15
16
|
- Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, o plano vive em `.oxe/<active_session>/plan/` e lê a spec em `.oxe/<active_session>/spec/`.
|
|
16
17
|
- Se existir `OBSERVATIONS.md` do escopo resolvido com entradas `pendente` de impacto `plan` ou `all`, incorporar nas tarefas relevantes antes de finalizar o plano (ajustar implementação, verificação ou escopo de Tn) e marcar essas entradas como `incorporada → plan (data)`.
|
|
17
18
|
- Se existir **`.oxe/global/LESSONS.md`**, ler entradas com `Aplicar em: /oxe-plan` e `Status: ativo`. Aplicar como restrições explícitas no planejamento: ajuste de complexidade de tarefas, padrões de verificação, escolha de modo solo vs agentes. Registrar aplicações como comentário no PLAN.md: `<!-- lição C-NN aplicada: ... -->`.
|
|
@@ -30,7 +31,7 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
|
|
|
30
31
|
</context>
|
|
31
32
|
|
|
32
33
|
<format_plan>
|
|
33
|
-
Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de Implementar** (test-first):
|
|
34
|
+
Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de Implementar** (test-first):
|
|
34
35
|
|
|
35
36
|
```markdown
|
|
36
37
|
### Tn — título curto
|
|
@@ -45,10 +46,44 @@ Cada tarefa em PLAN.md deve seguir a ordem abaixo — **Verificar vem ANTES de I
|
|
|
45
46
|
- **Aceite vinculado:** A1, A2 (IDs exatos da tabela de critérios da SPEC)
|
|
46
47
|
- **Decisão vinculada:** D-01, D-02 (IDs de `.oxe/DISCUSS.md` — omitir se não houver DISCUSS)
|
|
47
48
|
<!-- oxe-task: {"id":"Tn","wave":1,"type":"feature","files":[],"done":false,"complexity":"S"} -->
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Depois do resumo e antes das tarefas, o `PLAN.md` deve conter também:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Autoavaliação do Plano
|
|
55
|
+
- **Melhor plano atual:** sim | não
|
|
56
|
+
- **Confiança:** 0–100%
|
|
57
|
+
- **Base da confiança:**
|
|
58
|
+
- Completude dos requisitos: NN/25
|
|
59
|
+
- Dependências conhecidas: NN/15
|
|
60
|
+
- Risco técnico: NN/20
|
|
61
|
+
- Impacto no código existente: NN/15
|
|
62
|
+
- Clareza da validação / testes: NN/15
|
|
63
|
+
- Lacunas externas / decisões pendentes: NN/10
|
|
64
|
+
- **Principais incertezas:** ...
|
|
65
|
+
- **Alternativas descartadas:** ...
|
|
66
|
+
- **Condição para replanejar:** ...
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Rubrica fixa de confiança (determinística):**
|
|
70
|
+
| Dimensão | Peso |
|
|
71
|
+
|----------|------|
|
|
72
|
+
| Completude dos requisitos | 25 |
|
|
73
|
+
| Dependências conhecidas | 15 |
|
|
74
|
+
| Risco técnico | 20 |
|
|
75
|
+
| Impacto no código existente | 15 |
|
|
76
|
+
| Clareza da validação / testes | 15 |
|
|
77
|
+
| Lacunas externas / decisões pendentes | 10 |
|
|
78
|
+
|
|
79
|
+
**Faixas semânticas obrigatórias:**
|
|
80
|
+
- `85–100%` → pronto para executar
|
|
81
|
+
- `70–84%` → executável com risco controlado
|
|
82
|
+
- `50–69%` → precisa refino antes de execução
|
|
83
|
+
- `<50%` → não executar
|
|
84
|
+
|
|
85
|
+
**Escala de Complexidade:**
|
|
86
|
+
| Valor | Esforço estimado | Sinal de alerta |
|
|
52
87
|
|-------|-----------------|-----------------|
|
|
53
88
|
| `S` | < 30 min, 1–2 arquivos | — |
|
|
54
89
|
| `M` | < 2h, 2–5 arquivos | — |
|
|
@@ -72,12 +107,16 @@ Antes de finalizar a resposta ao utilizador, o agente **deve** percorrer este ga
|
|
|
72
107
|
5. **`plan_max_tasks_per_wave`:** se `.oxe/config.json` tiver valor **> 0**, contar tarefas por **Onda**; nenhuma onda excede o limite.
|
|
73
108
|
6. **UI-SPEC:** se existir `UI-SPEC.md` no escopo resolvido, toda tarefa cuja **Implementar** ou **Verificar** toque UI deve citar **secção § do UI-SPEC** ou path explícito.
|
|
74
109
|
7. **Fidelidade de decisões:** se existir `DISCUSS.md` com IDs **D-NN** no escopo resolvido, cada decisão com impacto técnico deve aparecer em **Decisão vinculada:** de alguma tarefa, ou ter nota explícita de gap. Sem cobertura para D-NN técnico = falha do gate.
|
|
75
|
-
8. **Complexidade XL:** toda tarefa com `Complexidade: XL` deve ter sub-tarefas explícitas (ex.: T3.1, T3.2 — como bullets dentro da tarefa) **ou** justificativa na tarefa explicando por que não pode ser quebrada. Tarefa XL sem sub-tarefas e sem justificativa = falha do gate.
|
|
76
|
-
9. **Test-first:** em toda tarefa, `Verificar` deve preceder `Implementar` no texto. Se a ordem estiver invertida, corrigir antes de finalizar.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
110
|
+
8. **Complexidade XL:** toda tarefa com `Complexidade: XL` deve ter sub-tarefas explícitas (ex.: T3.1, T3.2 — como bullets dentro da tarefa) **ou** justificativa na tarefa explicando por que não pode ser quebrada. Tarefa XL sem sub-tarefas e sem justificativa = falha do gate.
|
|
111
|
+
9. **Test-first:** em toda tarefa, `Verificar` deve preceder `Implementar` no texto. Se a ordem estiver invertida, corrigir antes de finalizar.
|
|
112
|
+
10. **Autoavaliação presente:** o `PLAN.md` contém `## Autoavaliação do Plano`, `Melhor plano atual`, `Confiança`, rubrica completa e `Condição para replanejar`.
|
|
113
|
+
11. **Calibração de execução:** se `Melhor plano atual: não` ou `Confiança < limiar configurado`, o plano não pode recomendar execução direta; deve recomendar refino, discuss ou research.
|
|
114
|
+
12. **Rastreabilidade de evidência:** cada tarefa deve ter entrada observável de origem na SPEC, no codebase, em DISCUSS, OBS, RESEARCH ou LESSONS; tarefa sem evidência de entrada explícita = falha do gate.
|
|
115
|
+
13. **Mudanças de risco:** tarefas com risco relevante (migração, auth, schema, contrato público, segurança) devem incluir contenção, rollback, fallback ou verificação reforçada.
|
|
116
|
+
|
|
117
|
+
Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
|
|
118
|
+
|
|
119
|
+
Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N problemas)`.
|
|
81
120
|
</plan_quality_gate>
|
|
82
121
|
|
|
83
122
|
<process>
|
|
@@ -86,12 +125,13 @@ Resumo obrigatório no chat: `Gate do plano: OK` ou `Gate do plano: corrigido (N
|
|
|
86
125
|
3. Se existir **`.oxe/NOTES.md`**, consumir ou explicitamente adiar cada bullet relevante (ver **context**).
|
|
87
126
|
4. Ler `.oxe/codebase/*.md` (incl. CONVENTIONS / CONCERNS) e inspecionar pontos de entrada se a spec exigir.
|
|
88
127
|
5. Escrever ou atualizar `PLAN.md` no escopo resolvido usando `oxe/templates/PLAN.template.md` como cabeçalho; **preservar** YAML inicial (`oxe_doc: plan`, `status`, `inputs`) se já existir e **atualizar** `updated:` (ISO); em **--replan**, preencher a seção **Replanejamento** (data, motivo, lições de VERIFY/SUMMARY, tarefas removidas/alteradas).
|
|
89
|
-
6. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
|
|
90
|
-
7.
|
|
91
|
-
8.
|
|
92
|
-
9.
|
|
93
|
-
10.
|
|
94
|
-
|
|
128
|
+
6. Definir ondas: onda 1 = tarefas sem dependência entre si; onda seguinte = dependentes; respeitar `plan_max_tasks_per_wave` se configurado.
|
|
129
|
+
7. Preencher `## Autoavaliação do Plano` com a rubrica fixa. A confiança é a soma ponderada das seis dimensões; não inventar percentagem sem justificar os pontos.
|
|
130
|
+
8. Aplicar integralmente o bloco **`<plan_quality_gate>`** acima ao `PLAN.md` em disco; corrigir o ficheiro até passar ou documentar gaps explícitos.
|
|
131
|
+
9. Atualizar `.oxe/STATE.md` global: fase `plan_ready`, próximo passo `oxe:execute` apenas se `Melhor plano atual: sim` e a confiança estiver no limiar executável; caso contrário, próximo passo deve reduzir incerteza (`oxe:discuss`, `oxe:research` ou replanejamento).
|
|
132
|
+
10. **Sugestão de agentes (inteligente):** após o gate passar, verificar se o plano tem 3+ domínios distintos (ex.: backend + frontend + DB, ou auth + notificações + UI). Se sim, sugerir proativamente: "Este plano tem N domínios distintos. Quer gerar um blueprint de agentes com `/oxe-plan --agents`?" — não executar automaticamente, apenas oferecer. Se o usuário incluiu `--agents` no input original, executar imediatamente a lógica de `oxe/workflows/plan-agent.md`.
|
|
133
|
+
11. Listar no chat: resultado do gate (OK ou corrigido), ondas, contagem de tarefas, comando de teste guarda-chuva se houver, melhor-plano-atual e confiança.
|
|
134
|
+
</process>
|
|
95
135
|
|
|
96
136
|
<success_criteria>
|
|
97
137
|
- [ ] Cada tarefa tem seção **Verificar** com comando ou checklist explícito.
|
package/oxe/workflows/quick.md
CHANGED
|
@@ -9,6 +9,7 @@ Usar quando: correção pontual, refactor local, feature pequena ou protótipo q
|
|
|
9
9
|
</objective>
|
|
10
10
|
|
|
11
11
|
<context>
|
|
12
|
+
- Seguir `oxe/workflows/references/flow-robustness-contract.md`. Quick continua leve, mas não pode fingir que existe plano formal quando ele não existe.
|
|
12
13
|
- Resolver `active_session` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa, `QUICK.md` e `quick-agents.json` vivem em `.oxe/<active_session>/plan/`; sem sessão ativa, manter `.oxe/`.
|
|
13
14
|
- Ler `.oxe/STATE.md` e, se existirem, `OVERVIEW.md` e `STACK.md` em `.oxe/codebase/` para não contradizer o repo.
|
|
14
15
|
- Não apagar `SPEC.md` / `PLAN.md` se existirem; este fluxo é paralelo ou temporário.
|
|
@@ -120,7 +121,8 @@ Uso **sem** novo slash: é o mesmo `/oxe-quick` com redação mínima.
|
|
|
120
121
|
- **Passos** — lista numerada, **máximo 10**; cada passo acionável numa linha.
|
|
121
122
|
- **Verificar** — um comando de terminal **ou** checklist manual explícito.
|
|
122
123
|
- **Agentes dinâmicos** — seção opcional quando PDDA estiver ativo (ver acima).
|
|
123
|
-
- **Promover para spec/plan?** — preencher sempre; se qualquer gatilho abaixo for verdadeiro, resposta **sim** e parar de acumular trabalho no QUICK — passar a **`/oxe-spec`** (e depois discuss/plan conforme config).
|
|
124
|
+
- **Promover para spec/plan?** — preencher sempre; se qualquer gatilho abaixo for verdadeiro, resposta **sim** e parar de acumular trabalho no QUICK — passar a **`/oxe-spec`** (e depois discuss/plan conforme config).
|
|
125
|
+
- **Confiança formal do plano:** se ainda não houver `PLAN.md`, declarar explicitamente no QUICK que **não houve plano formal**; não inventar percentagem de confiança aqui.
|
|
124
126
|
|
|
125
127
|
O perfil fast **não** é uma segunda trilha: continua sujeito à mesma promoção obrigatória quando o trabalho deixa de ser trivial.
|
|
126
128
|
|
|
@@ -149,7 +151,8 @@ Se **sim**, o próximo passo recomendado no chat é **`/oxe-spec`** (depois disc
|
|
|
149
151
|
- **Passos** — lista numerada, **máximo 10** passos acionáveis; se PDDA ativo, anotar `<!-- agente: id -->` em cada passo.
|
|
150
152
|
- **Agentes dinâmicos** *(somente se PDDA ativo)* — tabela com ID, papel, steps, persona.
|
|
151
153
|
- **Verificar** — pelo menos um: comando de terminal (ex.: `npm test`) **ou** checklist manual explícito. *(Este é o critério de aceite da minispec.)*
|
|
152
|
-
- **Promover para spec/plan?** — conforme seção acima.
|
|
154
|
+
- **Promover para spec/plan?** — conforme seção acima.
|
|
155
|
+
- **Plano formal existente?** — `não`; usar `sim` apenas se este quick estiver ancorado a um `PLAN.md` já aprovado no mesmo escopo.
|
|
153
156
|
4. Se PDDA ativo, criar **`quick-agents.json`** no escopo resolvido usando `oxe/templates/quick-agents.template.json`:
|
|
154
157
|
- Gerar `quickId` novo (`quick-<YYYY-MM-DD>-<6hex>`).
|
|
155
158
|
- `status: "active"`, `since: "<ISO agora>"`.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# OXE — Contrato de Robustez do Fluxo
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Definir um contrato canónico para reduzir alucinação estrutural no OXE. Este ficheiro é consumido por `spec`, `plan`, `quick`, `execute`, `verify`, `next`, `status` e `doctor`.
|
|
5
|
+
</objective>
|
|
6
|
+
|
|
7
|
+
## Ordem determinística do fluxo
|
|
8
|
+
|
|
9
|
+
Todo passo OXE deve seguir esta ordem, sem saltar etapas:
|
|
10
|
+
|
|
11
|
+
1. Ler os artefatos obrigatórios do estado atual.
|
|
12
|
+
2. Resolver `active_session` e os paths do escopo.
|
|
13
|
+
3. Validar pré-condições mínimas antes de prosseguir.
|
|
14
|
+
4. Produzir a saída principal do passo.
|
|
15
|
+
5. Executar autoavaliação ou gate de qualidade do próprio passo.
|
|
16
|
+
6. Registrar um próximo passo único.
|
|
17
|
+
|
|
18
|
+
## Invariantes mínimos
|
|
19
|
+
|
|
20
|
+
Todo workflow deve declarar com clareza:
|
|
21
|
+
|
|
22
|
+
- quais artefatos lê;
|
|
23
|
+
- quais artefatos escreve;
|
|
24
|
+
- quais invariantes valida antes de operar;
|
|
25
|
+
- qual fallback legado é permitido quando não há sessão ativa.
|
|
26
|
+
|
|
27
|
+
## Proibição de saltos sem evidência
|
|
28
|
+
|
|
29
|
+
- `plan` não deve avançar sem `SPEC.md` válido.
|
|
30
|
+
- `execute` não deve avançar sem `PLAN.md` ou `QUICK.md` válido no escopo resolvido.
|
|
31
|
+
- `verify` não deve avançar sem evidência mínima de execução ou de artefatos resultantes.
|
|
32
|
+
- `next` não deve sugerir um passo que viole os gates acima.
|
|
33
|
+
|
|
34
|
+
## Contrato de autoavaliação do plano
|
|
35
|
+
|
|
36
|
+
Todo `PLAN.md` deve conter uma seção visível `## Autoavaliação do Plano` com:
|
|
37
|
+
|
|
38
|
+
- `Melhor plano atual:` `sim` ou `não`
|
|
39
|
+
- `Confiança:` `0–100%`
|
|
40
|
+
- `Base da confiança:` rubrica fixa, não narrativa livre
|
|
41
|
+
- `Principais incertezas:` lista curta
|
|
42
|
+
- `Alternativas descartadas:` resumo curto
|
|
43
|
+
- `Condição para replanejar:` critério objetivo
|
|
44
|
+
|
|
45
|
+
### Rubrica obrigatória
|
|
46
|
+
|
|
47
|
+
| Dimensão | Peso |
|
|
48
|
+
|----------|------|
|
|
49
|
+
| Completude dos requisitos | 25 |
|
|
50
|
+
| Dependências conhecidas | 15 |
|
|
51
|
+
| Risco técnico | 20 |
|
|
52
|
+
| Impacto no código existente | 15 |
|
|
53
|
+
| Clareza da validação / testes | 15 |
|
|
54
|
+
| Lacunas externas / decisões pendentes | 10 |
|
|
55
|
+
|
|
56
|
+
**Total:** 100 pontos
|
|
57
|
+
|
|
58
|
+
### Faixas semânticas
|
|
59
|
+
|
|
60
|
+
- `85–100%` → pronto para executar
|
|
61
|
+
- `70–84%` → executável com risco controlado
|
|
62
|
+
- `50–69%` → precisa refino antes de execução
|
|
63
|
+
- `<50%` → não executar
|
|
64
|
+
|
|
65
|
+
## Calibração pós-execução
|
|
66
|
+
|
|
67
|
+
`verify` deve comparar o resultado real com a autoavaliação do plano:
|
|
68
|
+
|
|
69
|
+
- confiança alta + falha precoce = erro de calibração do plano;
|
|
70
|
+
- confiança baixa + falha em risco previsto = autoavaliação aderente;
|
|
71
|
+
- confiança alta + sucesso consistente = plano calibrado;
|
|
72
|
+
- confiança baixa + sucesso amplo = plano conservador demais.
|
|
73
|
+
|
|
74
|
+
## Uso por `status` e `doctor`
|
|
75
|
+
|
|
76
|
+
`status` e `doctor` devem refletir a saúde lógica do fluxo com categorias determinísticas:
|
|
77
|
+
|
|
78
|
+
- `healthy` — sem bloqueio lógico conhecido;
|
|
79
|
+
- `warning` — fluxo operável, mas com gaps ou drift relevante;
|
|
80
|
+
- `broken` — artefato crítico ausente, incoerência severa ou gate indispensável falhado.
|
package/oxe/workflows/spec.md
CHANGED
|
@@ -16,6 +16,8 @@ Se **`.oxe/config.json`** tiver `discuss_before_plan: true`: mencionar no final
|
|
|
16
16
|
<context>
|
|
17
17
|
**Pré-requisito preferível:** scan executado. Se não existir, mencionar na spec que o mapa está pendente.
|
|
18
18
|
|
|
19
|
+
**Contrato de robustez:** seguir `oxe/workflows/references/flow-robustness-contract.md`. Antes de escrever, resolver artefatos obrigatórios, validar pré-condições e só então produzir a spec. O output desta fase deve deixar evidência estruturada suficiente para o `plan` decidir se o plano é realmente o melhor disponível.
|
|
20
|
+
|
|
19
21
|
**Resolução de sessão:** antes de ler ou escrever artefatos desta trilha, resolver `active_session` em `.oxe/STATE.md` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa:
|
|
20
22
|
- `SPEC.md`, `ROADMAP.md` e `DISCUSS.md` vivem em `.oxe/<active_session>/spec/`
|
|
21
23
|
- `OBSERVATIONS.md`, `RESEARCH.md` e `research/` seguem o escopo da sessão
|
|
@@ -160,13 +162,19 @@ Percorrer esta lista de verificação:
|
|
|
160
162
|
| 5 | **Critérios vagos:** algum A* usa linguagem não-mensurável ("deve ser rápido", "interface amigável") sem métrica? | Refinar: "resposta < 200ms p95", "WCAG 2.1 AA" |
|
|
161
163
|
| 6 | **Dependências implícitas:** algum requisito v1 pressupõe que outro requisito (v2 ou fora) já esteja implementado? | Tornar dependência explícita ou reordenar versioning |
|
|
162
164
|
|
|
163
|
-
**Resultado obrigatório antes de avançar:**
|
|
164
|
-
- **0 problemas** → avançar para Fase 5 normalmente.
|
|
165
|
-
- **1–2 problemas** → corrigir inline na spec, anotar o que foi ajustado em 1 linha.
|
|
166
|
-
- **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
|
|
167
|
-
|
|
168
|
-
O resultado desta reflexão é **invisível ao usuário** — é trabalho interno do agente. Somente os ajustes feitos aparecem na spec final.
|
|
169
|
-
|
|
165
|
+
**Resultado obrigatório antes de avançar:**
|
|
166
|
+
- **0 problemas** → avançar para Fase 5 normalmente.
|
|
167
|
+
- **1–2 problemas** → corrigir inline na spec, anotar o que foi ajustado em 1 linha.
|
|
168
|
+
- **3+ problemas** → apresentar lista ao usuário com a Fase 3 revisada (não reiniciar do zero).
|
|
169
|
+
|
|
170
|
+
O resultado desta reflexão é **invisível ao usuário** — é trabalho interno do agente. Somente os ajustes feitos aparecem na spec final.
|
|
171
|
+
|
|
172
|
+
**Saída estruturada obrigatória para o plan:** após esta reflexão, a SPEC final deve deixar explícitos:
|
|
173
|
+
- requisitos estáveis;
|
|
174
|
+
- ambiguidades restantes;
|
|
175
|
+
- conflitos resolvidos ou ainda abertos;
|
|
176
|
+
- evidências faltantes que podem reduzir a confiança do plano.
|
|
177
|
+
</auto_reflexao>
|
|
170
178
|
|
|
171
179
|
<fase_5_aprovacao>
|
|
172
180
|
## Fase 5 — Aprovação e próximo passo
|