oxe-cc 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/commands/oxe-ask.md +4 -2
- package/.cursor/commands/oxe-capabilities.md +4 -2
- package/.cursor/commands/oxe-checkpoint.md +4 -2
- package/.cursor/commands/oxe-compact.md +4 -2
- package/.cursor/commands/oxe-dashboard.md +4 -2
- package/.cursor/commands/oxe-debug.md +4 -2
- package/.cursor/commands/oxe-discuss.md +4 -2
- package/.cursor/commands/oxe-execute.md +5 -3
- package/.cursor/commands/oxe-forensics.md +4 -2
- package/.cursor/commands/oxe-help.md +4 -2
- package/.cursor/commands/oxe-loop.md +4 -2
- package/.cursor/commands/oxe-milestone.md +4 -2
- package/.cursor/commands/oxe-next.md +4 -2
- package/.cursor/commands/oxe-obs.md +4 -2
- package/.cursor/commands/oxe-plan-agent.md +4 -2
- package/.cursor/commands/oxe-plan.md +4 -2
- package/.cursor/commands/oxe-project.md +4 -2
- package/.cursor/commands/oxe-quick.md +4 -2
- package/.cursor/commands/oxe-research.md +4 -2
- package/.cursor/commands/oxe-retro.md +4 -2
- package/.cursor/commands/oxe-review-pr.md +4 -2
- package/.cursor/commands/oxe-route.md +4 -2
- package/.cursor/commands/oxe-scan.md +4 -2
- package/.cursor/commands/oxe-security.md +4 -2
- package/.cursor/commands/oxe-session.md +5 -3
- package/.cursor/commands/oxe-ship.md +4 -2
- package/.cursor/commands/oxe-skill.md +4 -2
- package/.cursor/commands/oxe-spec.md +4 -2
- package/.cursor/commands/oxe-ui-review.md +4 -2
- package/.cursor/commands/oxe-ui-spec.md +4 -2
- package/.cursor/commands/oxe-update.md +4 -2
- package/.cursor/commands/oxe-validate-gaps.md +4 -2
- package/.cursor/commands/oxe-verify-audit.md +46 -0
- package/.cursor/commands/oxe-verify.md +4 -2
- package/.cursor/commands/oxe-workflow-authoring.md +47 -0
- package/.cursor/commands/oxe-workstream.md +4 -2
- package/.cursor/commands/oxe.md +6 -2
- package/.github/prompts/oxe-ask.prompt.md +4 -2
- package/.github/prompts/oxe-capabilities.prompt.md +4 -2
- package/.github/prompts/oxe-checkpoint.prompt.md +4 -2
- package/.github/prompts/oxe-compact.prompt.md +5 -3
- package/.github/prompts/oxe-dashboard.prompt.md +4 -2
- package/.github/prompts/oxe-debug.prompt.md +4 -2
- package/.github/prompts/oxe-discuss.prompt.md +6 -2
- package/.github/prompts/oxe-execute.prompt.md +5 -3
- package/.github/prompts/oxe-forensics.prompt.md +4 -2
- package/.github/prompts/oxe-help.prompt.md +6 -2
- package/.github/prompts/oxe-loop.prompt.md +4 -2
- package/.github/prompts/oxe-milestone.prompt.md +4 -2
- package/.github/prompts/oxe-next.prompt.md +6 -2
- package/.github/prompts/oxe-obs.prompt.md +4 -2
- package/.github/prompts/oxe-plan-agent.prompt.md +5 -2
- package/.github/prompts/oxe-plan.prompt.md +4 -2
- package/.github/prompts/oxe-project.prompt.md +4 -2
- package/.github/prompts/oxe-quick.prompt.md +4 -2
- package/.github/prompts/oxe-research.prompt.md +4 -2
- package/.github/prompts/oxe-retro.prompt.md +4 -2
- package/.github/prompts/oxe-review-pr.prompt.md +4 -2
- package/.github/prompts/oxe-route.prompt.md +4 -2
- package/.github/prompts/oxe-scan.prompt.md +4 -2
- package/.github/prompts/oxe-security.prompt.md +4 -2
- package/.github/prompts/oxe-session.prompt.md +5 -3
- package/.github/prompts/oxe-ship.prompt.md +4 -2
- package/.github/prompts/oxe-skill.prompt.md +4 -2
- package/.github/prompts/oxe-spec.prompt.md +4 -2
- package/.github/prompts/oxe-ui-review.prompt.md +4 -2
- package/.github/prompts/oxe-ui-spec.prompt.md +4 -2
- package/.github/prompts/oxe-update.prompt.md +4 -2
- package/.github/prompts/oxe-validate-gaps.prompt.md +4 -2
- package/.github/prompts/oxe-verify-audit.prompt.md +46 -0
- package/.github/prompts/oxe-verify.prompt.md +4 -2
- package/.github/prompts/oxe-workflow-authoring.prompt.md +47 -0
- package/.github/prompts/oxe-workstream.prompt.md +4 -2
- package/.github/prompts/oxe.prompt.md +6 -2
- package/.github/workflows/ci.yml +57 -20
- package/.github/workflows/release.yml +94 -0
- package/AGENTS.md +3 -1
- package/CHANGELOG.md +383 -342
- package/QUICKSTART.md +99 -0
- package/README.md +89 -65
- package/bin/lib/oxe-agent-install.cjs +127 -107
- package/bin/lib/oxe-install-resolve.cjs +10 -0
- package/bin/lib/oxe-operational.cjs +34 -28
- package/bin/lib/oxe-project-health.cjs +38 -6
- package/bin/lib/oxe-release.cjs +423 -0
- package/bin/lib/oxe-runtime-semantics.cjs +68 -24
- package/bin/oxe-cc.js +388 -55
- package/commands/oxe/ask.md +7 -3
- package/commands/oxe/capabilities.md +6 -2
- package/commands/oxe/checkpoint.md +5 -1
- package/commands/oxe/compact.md +6 -2
- package/commands/oxe/dashboard.md +6 -2
- package/commands/oxe/debug.md +6 -2
- package/commands/oxe/discuss.md +6 -2
- package/commands/oxe/execute.md +6 -2
- package/commands/oxe/forensics.md +6 -2
- package/commands/oxe/help.md +6 -2
- package/commands/oxe/loop.md +6 -2
- package/commands/oxe/milestone.md +6 -2
- package/commands/oxe/next.md +6 -2
- package/commands/oxe/obs.md +6 -2
- package/commands/oxe/oxe.md +6 -2
- package/commands/oxe/plan-agent.md +6 -2
- package/commands/oxe/plan.md +6 -2
- package/commands/oxe/project.md +6 -2
- package/commands/oxe/quick.md +6 -2
- package/commands/oxe/research.md +6 -2
- package/commands/oxe/retro.md +6 -2
- package/commands/oxe/review-pr.md +6 -2
- package/commands/oxe/route.md +6 -2
- package/commands/oxe/scan.md +6 -2
- package/commands/oxe/security.md +6 -2
- package/commands/oxe/session.md +6 -2
- package/commands/oxe/ship.md +6 -2
- package/commands/oxe/skill.md +6 -2
- package/commands/oxe/spec.md +6 -2
- package/commands/oxe/ui-review.md +6 -2
- package/commands/oxe/ui-spec.md +6 -2
- package/commands/oxe/update.md +6 -2
- package/commands/oxe/validate-gaps.md +6 -2
- package/commands/oxe/verify-audit.md +50 -0
- package/commands/oxe/verify.md +6 -2
- package/commands/oxe/workflow-authoring.md +50 -0
- package/commands/oxe/workstream.md +6 -2
- package/docs/INCIDENT-PLAYBOOK.md +181 -0
- package/docs/RELEASE-READINESS.md +46 -0
- package/docs/ROLES.md +129 -0
- package/docs/RUNTIME-SMOKE-MATRIX.md +128 -0
- package/docs/TEAM-ADOPTION.md +153 -0
- package/docs/WALKTHROUGH.md +241 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +28 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.js +152 -26
- package/lib/sdk/README.md +2 -0
- package/lib/sdk/index.cjs +22 -8
- package/lib/sdk/index.d.ts +60 -16
- package/oxe/templates/config.template.json +1 -0
- package/package.json +30 -22
- package/packages/runtime/package.json +1 -1
- package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +357 -193
- package/vscode-extension/oxe-agents-1.4.0.vsix +0 -0
- package/vscode-extension/oxe-agents-1.5.0.vsix +0 -0
- package/vscode-extension/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
# Changelog — OXE CLI (`oxe-cc`)
|
|
2
|
-
|
|
3
|
-
Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudanças mais recentes aparecem primeiro.
|
|
4
|
-
|
|
1
|
+
# Changelog — OXE CLI (`oxe-cc`)
|
|
2
|
+
|
|
3
|
+
Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudanças mais recentes aparecem primeiro.
|
|
4
|
+
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [1.5.0] — 2026-04-21
|
|
8
|
+
|
|
9
|
+
### Release Readiness 5/5
|
|
10
|
+
|
|
11
|
+
- `doctor --release --write-manifest` virou gate formal de publicação, com verificação bloqueante de versões, topo do `CHANGELOG`, runtime compilado, wrapper sync e relatórios obrigatórios
|
|
12
|
+
- a release agora persiste `release-manifest.json`, `runtime-smoke-report.json`, `recovery-fixture-report.json` e `multi-agent-soak-report.json` em `.oxe/release/`
|
|
13
|
+
- `npm test` passou a incluir smoke matrix multi-runtime, fixtures reproduzíveis de recovery/incidente e soak multi-agent
|
|
14
|
+
|
|
15
|
+
### Operational Proof
|
|
16
|
+
|
|
17
|
+
- nova smoke matrix obrigatória para Cursor, Copilot VS Code, Claude Code, Codex, OpenCode, Gemini, Windsurf e Antigravity, cobrindo install, entrypoint `oxe`, resolução de workflow e uninstall granular
|
|
18
|
+
- novo corpus de incidentes em `tests/fixtures/runtime-incidents/` para provar `runtime replay` e `runtime recover` fora do caminho feliz
|
|
19
|
+
- multi-agent passou a gerar e auditar `multi-agent-summary.json`, incluindo timeouts e reassignments
|
|
20
|
+
|
|
21
|
+
### Publication Contract
|
|
22
|
+
|
|
23
|
+
- versão alinhada para `1.5.0` em pacote raiz, runtime package, extensão VS Code, README e lockfile
|
|
24
|
+
- README, AGENTS e SDK docs atualizados para refletir o gate de release, os relatórios obrigatórios e o contrato estável desta publicação
|
|
25
|
+
|
|
26
|
+
### Validation
|
|
27
|
+
|
|
28
|
+
- `npm test`
|
|
29
|
+
- `npm run scan:assets`
|
|
30
|
+
- `npm run release:doctor`
|
|
31
|
+
|
|
7
32
|
## [1.4.0] — 2026-04-20
|
|
8
33
|
|
|
9
34
|
### Runtime Publication Stabilization
|
|
@@ -24,6 +49,22 @@ Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudança
|
|
|
24
49
|
- README atualizado para refletir o momento atual do produto, o contrato estável de publicação e a superfície enterprise do CLI/runtime
|
|
25
50
|
- `lib/sdk/README.md` e `AGENTS.md` atualizados para refletir os bridges do runtime enterprise e o comportamento `runtime-first`
|
|
26
51
|
|
|
52
|
+
### Adoção em Times (v1.4.0 final)
|
|
53
|
+
|
|
54
|
+
- `QUICKSTART.md` — guia de onboarding "primeiros 15 minutos": install, primeiro ciclo (6 comandos), runtime-first, validação dos 5 minutos
|
|
55
|
+
- `docs/ROLES.md` — guia por papel: executor, reviewer, operador de gate, mantenedor do pacote; cada papel com o que lê, decide e pode ignorar
|
|
56
|
+
- `docs/TEAM-ADOPTION.md` — fluxo branch/PR recomendado, ship local vs. promote remoto, sessões e workstreams, governança mínima
|
|
57
|
+
- `docs/WALKTHROUGH.md` — walkthrough completo reproduzível: spec → plan → execute → verify → gate → promotion com outputs esperados
|
|
58
|
+
- `docs/INCIDENT-PLAYBOOK.md` — gate stale, run bloqueada, RECOVERY-SUMMARY, dashboard como painel operacional
|
|
59
|
+
- `docs/RUNTIME-SMOKE-MATRIX.md` — matriz 8 runtimes × 6 operações com pressupostos e comportamentos por runtime
|
|
60
|
+
- `oxe-cc doctor` — health gates para IDEs (Copilot, Cursor, Claude Code), detecção de runtime compilado, readiness gate summary com próximo passo derivado da fase atual
|
|
61
|
+
- `oxe-cc status` — IDE readiness summary inline, gates pendentes no modo padrão (sem `--full`), diagnóstico de bloqueio explícito (SPEC/PLAN/VERIFY ausentes)
|
|
62
|
+
- `runtime gates list` — ícones visuais `⏳ pending` / `⚠ stale (>Nh)` / `✓ resolved`, ação sugerida e impacto no ciclo por gate
|
|
63
|
+
- `runtime gates resolve` — mensagem de impacto pós-resolução: "Run pode avançar" ou "N gates restantes"
|
|
64
|
+
- `.github/workflows/release.yml` — pipeline de publicação: validate → publish-npm (com provenance) → build-vsix → create-release com extração automática do CHANGELOG
|
|
65
|
+
- `.github/workflows/ci.yml` — novos jobs `doctor` (gate de qualidade operacional) e `wrapper-audit` (sync entre wrappers e contrato canônico)
|
|
66
|
+
- `README.md` — seção `## Para times` com links para todos os novos docs; link `→ Guia por papel` na seção "Momento atual do produto"
|
|
67
|
+
|
|
27
68
|
### Validation
|
|
28
69
|
|
|
29
70
|
- suíte root + runtime continua verde
|
|
@@ -32,341 +73,341 @@ Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudança
|
|
|
32
73
|
---
|
|
33
74
|
|
|
34
75
|
## [1.3.0] — 2026-04-20
|
|
35
|
-
|
|
36
|
-
### Reasoning Contracts & Semântica Multi-Runtime
|
|
37
|
-
|
|
38
|
-
- Contratos de raciocínio v2.0.0 (`oxe_contract_version: 2.0.0`) em todos os workflows e wrappers de runtime
|
|
39
|
-
- Novos campos de metadata: `oxe_reasoning_mode`, `oxe_question_policy`, `oxe_output_contract`, `oxe_tool_profile`, `oxe_confidence_policy`, `oxe_context_tier`
|
|
40
|
-
- `oxe_semantics_hash` (SHA-256 16 chars) para detecção de drift semântico entre IDEs
|
|
41
|
-
- Módulo `bin/lib/oxe-runtime-semantics.cjs` gerencia o contrato canônico: `buildReasoningContractBlock()`, `buildContextTiers()`, `auditRuntimeTargets()`, `computeSemanticsHash()`
|
|
42
|
-
- `auditRuntimeTargets()` varre Copilot prompts, commands e Cursor commands e reporta divergências entre wrappers e o contrato canônico
|
|
43
|
-
- Prompts e commands sincronizados para todos os runtimes: Cursor, GitHub Copilot, Claude Code, OpenCode, Codex, Gemini CLI, Windsurf, Antigravity
|
|
44
|
-
|
|
45
|
-
### Novos Módulos bin/lib
|
|
46
|
-
|
|
47
|
-
- **`oxe-dashboard.cjs`** — servidor HTTP local (porta 9000), `loadDashboardContext()`, API REST com `/api/health/status`, `/api/plan/info`, `/api/runtime/gates/{id}/status`, `/api/runtime/gates/resolve`; suporte a PLAN-REVIEW.md com comentários e status de aprovação
|
|
48
|
-
- **`oxe-runtime-semantics.cjs`** — gestão de metadados de workflow e contratos de raciocínio: `getWorkflowContract()`, `getAllWorkflowContracts()`, `validateWorkflowContractsRegistry()`, `buildContextPackPaths()`, `buildReasoningContractBlock()`, `splitFrontmatter()`, `parseFrontmatterMap()`
|
|
49
|
-
- **`oxe-operational.cjs`** expandido — monitoramento de agents, gates, evidências e estado de run com maior granularidade
|
|
50
|
-
- **`oxe-project-health.cjs`** expandido — métricas de saúde: test scores, coverage, violations, integração Copilot
|
|
51
|
-
|
|
52
|
-
### Comandos e Superfície
|
|
53
|
-
|
|
54
|
-
- **`oxe-ship`** — cria commit local guiado por `SPEC.md`, `PLAN.md` e `VERIFY.md`; disponível em todos os runtimes suportados
|
|
55
|
-
- **`oxe-skill`** — gestão e composição de skills com roles `@executor` e `@researcher`
|
|
56
|
-
- Contrato de raciocínio declarado em todos os workflows: `discovery`, `planning`, `execution`, `review`, `status`
|
|
57
|
-
- Regra pack-first em todos os wrappers: lê `.oxe/context/packs/<slug>.md` antes de cair para leitura direta
|
|
58
|
-
|
|
59
|
-
### Testes e Cobertura
|
|
60
|
-
|
|
61
|
-
- Novos testes unitários para `oxe-runtime-semantics.cjs`: 31 testes cobrindo todas as 19 funções exportadas
|
|
62
|
-
- Novos testes para `oxe-plugins.cjs`: 28 testes para `loadPlugins`, `runHook`, `validatePlugins`, `initPluginsDir`, `resolvePluginSources`
|
|
63
|
-
- Novos testes para `oxe-security.cjs`: `checkPathSafety`, `scanFileForSecrets`, `scanDirForSecretFiles`, `validatePlanPaths`
|
|
64
|
-
- Cobertura de linhas: **80.28% → 82.28%** (superando threshold de 82%)
|
|
65
|
-
- Total: **383 testes** passando (root + runtime)
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## [1.2.1] — 2026-04-18
|
|
70
|
-
|
|
71
|
-
### Branding, Semântica e Empacotamento
|
|
72
|
-
|
|
73
|
-
- remove referências remanescentes ao framework legado dos workflows e do diagnóstico de integração Copilot
|
|
74
|
-
- alinha `package.json`, `package-lock.json`, banner CLI e README para `1.2.1`
|
|
75
|
-
- corrige deriva semântica do workflow `ship`, registrando-o no contrato canônico multi-runtime
|
|
76
|
-
- adiciona prompt files de `ship` para Copilot/Cursor
|
|
77
|
-
- remove o comando `auto` da superfície pública do OXE
|
|
78
|
-
- remove o comando `intel` da superfície pública do OXE
|
|
79
|
-
- reposiciona `ship` para fechar o ciclo com commit local guiado por `SPEC.md`, `PLAN.md` e `VERIFY.md`
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## [1.2.0] — 2026-04-18
|
|
84
|
-
|
|
85
|
-
### Runtime Hardening & Robustez (Fases 1–9)
|
|
86
|
-
|
|
87
|
-
**Fase 1 — Runtime Hardening**
|
|
88
|
-
|
|
89
|
-
- `RunJournal` persistido em `.oxe/runs/{runId}/journal.json`: gravado a cada onda, atualizado no pause/cancel
|
|
90
|
-
- `Scheduler.pause()` agora grava journal e retorna `status: 'paused'` em vez de apenas setar flag in-memory
|
|
91
|
-
- `Scheduler.recover(runId, ctx, graph)` — retoma run pausado pelo journal; pula nós já completados
|
|
92
|
-
- `Scheduler.getJournal()` e `Scheduler.loadJournal(projectRoot, runId)` para inspeção
|
|
93
|
-
- `RunState` expandido: `retryCounts`, `policyDecisions`, `pendingGates`, `resolvedGates`, `verificationStatus`, `evidenceRefs`, `toolFailures`
|
|
94
|
-
- Reducer: handlers para `RetryScheduled`, `PolicyEvaluated`, `GateRequested`, `GateResolved`, `VerificationStarted`, `VerificationCompleted`, `ToolFailed`, `EvidenceCollected`
|
|
95
|
-
- Helpers: `getRetryCount`, `getPolicyDecision`, `getVerificationStatus`, `getEvidenceRefs`, `getToolFailures`
|
|
96
|
-
|
|
97
|
-
**Fase 2 — Policy, Side Effects e Security**
|
|
98
|
-
|
|
99
|
-
- `SideEffectClass` enum: `read_fs|write_fs|spawn_process|network_call|git_mutation|db_change|secret_access|infra_operation`
|
|
100
|
-
- `AutonomyTier` type: `L0|L1|L2|L3` — tier controla quais side effects são permitidos automaticamente
|
|
101
|
-
- `NodePolicyConfig` com `mutation_budget` e `autonomy_tier`
|
|
102
|
-
- `EnvironmentGuardrail` com `protected_paths`, `protected_branches`, `require_human_gate_on`
|
|
103
|
-
- Guardrails default: paths `.env`, `package.json`, `.oxe/config.json`; gate automático para `infra_operation`, `db_change`, `secret_access`
|
|
104
|
-
- `PolicyEngine.withGuardrail(g)` para customizar guardrails por projeto
|
|
105
|
-
- `side_effect_class` e `autonomy_tier` em `PolicyWhenClause` para regras direcionadas
|
|
106
|
-
|
|
107
|
-
**Fase 3 — Verify Operational**
|
|
108
|
-
|
|
109
|
-
- `VerificationManifest` formal: persistido em `.oxe/runs/{runId}/verification-manifest.json`
|
|
110
|
-
- `VerificationProfile`: `quick|standard|critical` — controla quais `FailureClass` geram riscos residuais
|
|
111
|
-
- `FailureClass` taxonomy: `deterministic|flaky|timeout|env_setup|policy_failure|evidence_missing`
|
|
112
|
-
- `classifyFailure(result)` — classifica automaticamente cada `CheckResult`
|
|
113
|
-
- `buildManifest(runId, results, options)` — compila manifest por work item, onda ou run
|
|
114
|
-
- `ResidualRiskLedger` persistido em `.oxe/runs/{runId}/residual-risks.json`
|
|
115
|
-
- `buildRiskLedger(runId, manifest)` — gera ledger de riscos residuais a partir do manifest
|
|
116
|
-
|
|
117
|
-
**Fase 4 — Delivery Native**
|
|
118
|
-
|
|
119
|
-
- `MergeGateEvaluator.evaluate(runResult, manifest, ledger)` — avalia se run está pronto para merge
|
|
120
|
-
- Bloqueios: tarefas failed/blocked, verificação falha, riscos `high`/`critical`
|
|
121
|
-
- `PromotionPipeline.promote(runResult, manifest, ledger, opts)` — cria PR draft via `gh`, persiste `RunPRLink`
|
|
122
|
-
- `PromotionPipeline.buildPRBody(...)` — corpo do PR com resumo, verificação e riscos residuais
|
|
123
|
-
- `RunPRLink` persistido em `.oxe/runs/{runId}/pr-link.json`
|
|
124
|
-
|
|
125
|
-
**Fase 5 — Context Engineering Avançado**
|
|
126
|
-
|
|
127
|
-
- `ContextPackStore`: `savePack`, `loadPack`, `markStale`, `isStale`, `listPackMeta` — packs persistidos em `.oxe/runs/{runId}/context-pack-{workItemId}.json`
|
|
128
|
-
- `ContextPackMeta` com `estimated_tokens`, `stale`, `stale_reason`
|
|
129
|
-
- `diffPacks(before, after)` — detecta added/removed/score_changed entre versões de pack
|
|
130
|
-
- Índice global por run em `context-packs.index.json`
|
|
131
|
-
|
|
132
|
-
**Fase 6 — Decision Engine / Seniority**
|
|
133
|
-
|
|
134
|
-
- `DecisionEngine.evaluate(input)` — avalia policy, gate, retry budget, risk, lesson match e retorna `DecisionRecord` com `type`, `seniority`, `confidence` e `rationale`
|
|
135
|
-
- Tipos de decisão: `proceed|retry|escalate_gate|skip|abort|promote_lesson`
|
|
136
|
-
- `SeniorityLevel`: `junior|standard|senior|expert` derivado da confidence
|
|
137
|
-
- `appendDecision`, `loadDecisionLog`, `queryDecisions` — log persistido em `.oxe/runs/{runId}/decisions.json`
|
|
138
|
-
|
|
139
|
-
**Fase 7 — Multi-Agent Robusto**
|
|
140
|
-
|
|
141
|
-
- `AgentRegistry` com heartbeat tracking por agente
|
|
142
|
-
- `registry.beat(id, currentTask)` — atualiza last_seen e status
|
|
143
|
-
- `registry.isAlive(id)` — detecta timeout configurável por instância
|
|
144
|
-
- `registry.timedOut()` / `registry.liveAgents()` — filtragem por liveness
|
|
145
|
-
- `registry.failover(fallbackAgentId)` — reassigna tasks de agentes expirados para fallback
|
|
146
|
-
- `registry.setStatus(id, status)` — transições manuais de estado
|
|
147
|
-
|
|
148
|
-
**Fase 8 — ABI Estável de Plugins**
|
|
149
|
-
|
|
150
|
-
- `PluginManifest` com `abi_version`, `capabilities`, declared providers
|
|
151
|
-
- `extractManifest(plugin)` — extrai manifest de qualquer `OxePlugin`
|
|
152
|
-
- `validatePlugin(plugin)` — retorna `{ valid, errors, warnings }` com checagem de nome, semver, providers
|
|
153
|
-
- `isAbiCompatible(version)` — garante compatibilidade de major version
|
|
154
|
-
- `sandboxInvoke(fn, timeoutMs)` — execução com timeout e isolamento de erro para plugins
|
|
155
|
-
|
|
156
|
-
**Fase 9 — Enterprise Operations**
|
|
157
|
-
|
|
158
|
-
- `AuditTrail` — registro imutável NDJSON em `.oxe/AUDIT-TRAIL.ndjson`
|
|
159
|
-
- 14 tipos de ação auditáveis: `run_started`, `secret_accessed`, `infra_mutation`, `merge_approved`, etc.
|
|
160
|
-
- Severity automática por ação (`info|warn|critical`)
|
|
161
|
-
- `AuditTrail.query(filter)` — filtra por action/severity/runId/since
|
|
162
|
-
- `RunQuota` — `createQuota`, `consumeQuota`, `checkQuota` para limitar work_items, mutations e retries por run
|
|
163
|
-
|
|
164
|
-
### Testes
|
|
165
|
-
|
|
166
|
-
- Runtime: **266 testes** (↑ de 145 pré-robustez)
|
|
167
|
-
- Root: 321 testes (sem regressões)
|
|
168
|
-
- Total: **587 testes** passando
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## [1.1.0] — 2026-04-18
|
|
173
|
-
|
|
174
|
-
### Mudança de superfície (simplificação estratégica de produto)
|
|
175
|
-
|
|
176
|
-
**Trilha principal reduzida a 6 comandos**
|
|
177
|
-
|
|
178
|
-
O OXE agora se comporta como um framework guiado por etapas. A superfície pública foi reorganizada em três níveis:
|
|
179
|
-
|
|
180
|
-
**Trilha principal (6 comandos):**
|
|
181
|
-
- `/oxe` — entrada universal (absorve ask, next, route, help)
|
|
182
|
-
- `/oxe-quick` — modo nano sem cerimônia
|
|
183
|
-
- `/oxe-spec` — spec com flags: `--refresh`, `--full`, `--research`, `--ui`
|
|
184
|
-
- `/oxe-plan` — planejamento test-first
|
|
185
|
-
- `/oxe-execute` — implementação com flags: `--note`, `--debug`, `--deep-diagnosis`, `--checkpoint`, `--iterative`
|
|
186
|
-
- `/oxe-verify` — validação e fechamento com flags: `--gaps`, `--security`, `--ui`, `--pr`, `--diff`, `--skip-retro`
|
|
187
|
-
|
|
188
|
-
**Trilha avançada:** `/oxe-session` (absorve project, milestone, workstream), `/oxe-dashboard`
|
|
189
|
-
|
|
190
|
-
**Administrativa:** `/oxe-capabilities`, `/oxe-skill`, `oxe-cc azure`
|
|
191
|
-
|
|
192
|
-
### Depreciado (v1.1.0)
|
|
193
|
-
|
|
194
|
-
Os seguintes comandos foram incorporados por estágios principais e continuam funcionando com aviso de migração:
|
|
195
|
-
|
|
196
|
-
| Comando | Novo destino |
|
|
197
|
-
|---------|-------------|
|
|
198
|
-
| `/oxe-ask` | `/oxe "pergunta"` |
|
|
199
|
-
| `/oxe-scan` | `/oxe-spec --refresh` |
|
|
200
|
-
| `/oxe-research` | `/oxe-spec --research` |
|
|
201
|
-
| `/oxe-ui-spec` | `/oxe-spec --ui` |
|
|
202
|
-
| `/oxe-obs` | `/oxe-execute --note` |
|
|
203
|
-
| `/oxe-debug` | `/oxe-execute --debug` |
|
|
204
|
-
| `/oxe-forensics` | `/oxe-execute --deep-diagnosis` |
|
|
205
|
-
| `/oxe-checkpoint` | `/oxe-execute --checkpoint` |
|
|
206
|
-
| `/oxe-loop` | `/oxe-execute --iterative` |
|
|
207
|
-
| `/oxe-validate-gaps` | `/oxe-verify --gaps` |
|
|
208
|
-
| `/oxe-security` | `/oxe-verify --security` |
|
|
209
|
-
| `/oxe-ui-review` | `/oxe-verify --ui` |
|
|
210
|
-
| `/oxe-review-pr` | `/oxe-verify --pr` |
|
|
211
|
-
| `/oxe-retro` | `/oxe-verify` (retro automática) |
|
|
212
|
-
| `/oxe-project` | `/oxe-session milestone\|workstream` |
|
|
213
|
-
| `/oxe-compact` | `/oxe-spec --refresh` |
|
|
214
|
-
| `/oxe-next` | `/oxe` (sem argumento) |
|
|
215
|
-
| `/oxe-route` | `/oxe "intenção"` |
|
|
216
|
-
| `/oxe-milestone` | `/oxe-session milestone` |
|
|
217
|
-
| `/oxe-workstream` | `/oxe-session workstream` |
|
|
218
|
-
|
|
219
|
-
### Novos comportamentos
|
|
220
|
-
|
|
221
|
-
- **Retro automática:** `/oxe-verify` executa automaticamente retrospectiva ao fechar (`--skip-retro` para desativar)
|
|
222
|
-
- **Pergunta situacional inline:** `/oxe "pergunta"` substitui `/oxe-ask`
|
|
223
|
-
- `/oxe-session` agora suporta `milestone` e `workstream` como subcomandos
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## [0.8.0] — 2026-04-14
|
|
228
|
-
|
|
229
|
-
### Adicionado
|
|
230
|
-
|
|
231
|
-
**Session forking + revert**
|
|
232
|
-
- `session fork [nome]` — bifurca a sessão ativa, copiando todos os artefatos para uma nova sessão; rastreia `forked_from` na SESSION.md
|
|
233
|
-
- `session revert <checkpoint-slug>` — restaura STATE.md ao snapshot de um checkpoint, sem apagar artefatos atuais
|
|
234
|
-
|
|
235
|
-
**Skill system**
|
|
236
|
-
- `/oxe-skill` — workflow para descobrir, invocar e gerenciar skills (unificação de personas e capabilities)
|
|
237
|
-
- `@<skill-id>` no chat resolve persona OU capability OU composite como ponto de entrada único
|
|
238
|
-
- Template `SKILL.template.md` para criação de skills de projeto em `.oxe/skills/`
|
|
239
|
-
- Resolução em 3 camadas: project → capabilities → global (personas do pacote)
|
|
240
|
-
|
|
241
|
-
**Sistema de permissões com wildcard**
|
|
242
|
-
- `permissions[]` em `.oxe/config.json` — regras glob+ação que controlam acesso a arquivos durante execute e apply
|
|
243
|
-
- Ações: `allow`, `deny`, `ask` — avaliação first-match wins
|
|
244
|
-
- Scopes: `execute`, `apply`, `all`
|
|
245
|
-
- Gate automático no workflow execute antes de cada onda
|
|
246
|
-
|
|
247
|
-
**Config hierárquico (system → user → project)**
|
|
248
|
-
- `loadOxeConfigMerged()` agora lê 3 níveis: system (`OXE_SYSTEM_CONFIG` ou path OS-default) < user (`~/.oxe/config.json`) < project (`.oxe/config.json`)
|
|
249
|
-
- `status --full` exibe fontes de cada nível de configuração
|
|
250
|
-
- Campo `sources` no retorno do SDK
|
|
251
|
-
|
|
252
|
-
**Event sourcing com replay**
|
|
253
|
-
- `replayEvents()` no SDK — reconstrói timeline de `OXE-EVENTS.ndjson` com deltas, filtros por run/wave/event
|
|
254
|
-
- `oxe-cc runtime replay [--run <id>] [--from <event-id>] [--wave <n>] [--write]` — visualização de timeline no terminal ou `REPLAY-SESSION.md` em disco
|
|
255
|
-
- Integração com `/oxe-forensics` — replay como ferramenta de investigação
|
|
256
|
-
|
|
257
|
-
**Plugin system com carregamento remoto**
|
|
258
|
-
- `plugins[]` em `config.json` aceita `{ source: "npm:<pkg>" }` e `{ source: "path:./file.cjs" }`
|
|
259
|
-
- `oxe-cc plugins list` — lista plugins carregados (local + externos)
|
|
260
|
-
- `oxe-cc plugins install npm:<pkg>` — instala plugin npm em `.oxe/plugins/_npm/`
|
|
261
|
-
- `resolvePluginSources()` e `installNpmPlugin()` expostos no SDK
|
|
262
|
-
|
|
263
|
-
### Tipos TypeScript
|
|
264
|
-
- `OxePermissionRule`, `PermissionCheckResult`, `ReplayReport`, `PluginSource` adicionados
|
|
265
|
-
- `security.checkFilePermission`, `security.checkPermissions`, `security.globToRegex` declarados
|
|
266
|
-
- `operational.replayEvents` declarado
|
|
267
|
-
- `plugins.resolvePluginSources`, `plugins.installNpmPlugin` declarados
|
|
268
|
-
- `health.loadOxeConfigMerged` retorna `sources: { system, user, project }`
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## [0.7.0] — 2026-04-13
|
|
273
|
-
|
|
274
|
-
### Adicionado
|
|
275
|
-
|
|
276
|
-
**Provider Azure nativo (`oxe-cc azure`)**
|
|
277
|
-
- `azure status` — estado compacto read-only: CLI, login, subscription, inventário, pendências, alerta VPN
|
|
278
|
-
- `azure operations list` — histórico colorido de operações (planned/applied/pending)
|
|
279
|
-
- `azure find --type <serviço>` — filtro por família de serviço (servicebus, eventgrid, sql)
|
|
280
|
-
- `azure find --filter-rg <rg>` — filtro por resource group
|
|
281
|
-
- `azure sync --diff` — mostra recursos adicionados/removidos em relação ao snapshot anterior
|
|
282
|
-
- `azure apply --dry-run` — pré-visualiza comando `az` sem executar nem criar artefatos
|
|
283
|
-
- `azure auth login --tenant <id>` — suporte a Entra ID corporativo; passa `--tenant` ao `az login`
|
|
284
|
-
- `azure apply --vpn-confirmed` — confirma conexão VPN quando `vpn_required: true` está configurado
|
|
285
|
-
|
|
286
|
-
**SDK**
|
|
287
|
-
- `azure.diffInventory(previousItems, currentItems)` — compara snapshots de inventário (adicionados/removidos/unchanged)
|
|
288
|
-
- `azure.statusAzure(projectRoot, config?, options?)` — status compacto sem writes
|
|
289
|
-
|
|
290
|
-
**Workflows (guardrails)**
|
|
291
|
-
- `scan.md`: detecção Azure é informativa — não altera fluxo canônico OXE nem aciona steps Azure automaticamente
|
|
292
|
-
- `plan.md`: pré-check Azure só ativa quando Azure é mencionado **explicitamente** na SPEC ou `.oxe/cloud/azure/` existe
|
|
293
|
-
- `discuss.md`: perguntas Azure só ativam quando SPEC menciona Azure explicitamente — SQL genérico (PostgreSQL, MySQL, on-prem) não aciona o bloco
|
|
294
|
-
|
|
295
|
-
### Corrigido
|
|
296
|
-
- `loginAzure()` com `inherit: true` não passava mais `inherit` para `getAzureContext`, evitando crash ao tentar ler `account.id` de stdout null
|
|
297
|
-
|
|
298
|
-
### Tipos TypeScript
|
|
299
|
-
- `azure.searchAzureInventory` inclui parâmetro opcional `filters?: { type?, resourceGroup? }`
|
|
300
|
-
- `azure.diffInventory` declarado
|
|
301
|
-
- `azure.statusAzure` declarado
|
|
302
|
-
|
|
303
|
-
---
|
|
304
|
-
|
|
305
|
-
## [0.6.3] — 2026-04-04
|
|
306
|
-
|
|
307
|
-
### Corrigido
|
|
308
|
-
- `security_in_verify` agora é reconhecido como chave válida em `.oxe/config.json` (não mais rejeitado pelo doctor como "unknown key")
|
|
309
|
-
- `plan-agents.schema.json`: enum atualizado de `[1, 2]` para `[2, 3]`; campos `persona` e `model_hint` adicionados ao schema dos agentes
|
|
310
|
-
|
|
311
|
-
### Adicionado
|
|
312
|
-
- **`/oxe-retro` sugerido automaticamente** pelo `oxe-cc status` quando `phase: verify_complete` e `.oxe/LESSONS.md` ainda não existe
|
|
313
|
-
- **`health.parseLastRetroDate(stateText)`** — parseia campo `last_retro: YYYY-MM-DD` do STATE.md
|
|
314
|
-
- **`health.isStaleLessons(retroDate, maxDays)`** — detecta se LESSONS.md está desatualizado (par de `isStaleScan`)
|
|
315
|
-
- **`health.planAgentsWarnings(target)`** — avisa sobre schema 1 (legado) e `model_hint` inválido em `plan-agents.json`
|
|
316
|
-
- **`parseState()`** retorna novo campo `lastRetroDate: string | null`
|
|
317
|
-
- `OxeHealthReport` inclui `retroDate: Date | null`
|
|
318
|
-
- `config.template.json` inclui `security_in_verify: false` por padrão
|
|
319
|
-
- `plan-agents.template.json` inclui campo `persona` no agente-exemplo
|
|
320
|
-
- Melhorias de workflow: `obs.md` (tabela de classificação de impacto), `verify.md` (success_criteria camadas 5+6), `next.md` (flag de promoção QUICK→spec), `quick.md` (incorporação de OBSERVATIONS), `plan.md` (nota de replan + plan-agents sync)
|
|
321
|
-
- `AGENTS.md` atualizado para v0.6.x
|
|
322
|
-
|
|
323
|
-
### Tipos TypeScript
|
|
324
|
-
- `ParsedState` inclui `lastRetroDate: string | null`
|
|
325
|
-
- `OxeHealthReport` inclui `retroDate: Date | null`
|
|
326
|
-
- `health.*` expõe `parseLastRetroDate`, `isStaleLessons`, `planAgentsWarnings`
|
|
327
|
-
|
|
328
|
-
---
|
|
329
|
-
|
|
330
|
-
## [0.6.2] — 2026-04-04
|
|
331
|
-
|
|
332
|
-
### Adicionado
|
|
333
|
-
- **`/oxe-retro`** — workflow de retrospectiva de ciclo; sintetiza 3–5 lições prescritivas em `.oxe/LESSONS.md`
|
|
334
|
-
- `oxe/templates/LESSONS.template.md`
|
|
335
|
-
- Correções de consistência de schema (plan-agent.md, verify.md): referências atualizadas para schema v3
|
|
336
|
-
|
|
337
|
-
### Alterado
|
|
338
|
-
- README: tabela "Como cada comando fica mais inteligente" expandida com loop, security, research thinking_depth, model_hint
|
|
339
|
-
- Cadeia de help (`oxe.md`) atualizada para incluir `/oxe-retro` após verify
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## [0.6.1] — 2026-04-04
|
|
344
|
-
|
|
345
|
-
### Adicionado
|
|
346
|
-
- **`/oxe-security`** — auditoria OWASP Top 10 filtrada pelo stack; produz `.oxe/SECURITY.md` com achados P0/P1/P2
|
|
347
|
-
- **`/oxe-loop`** — execução iterativa de onda com retries automáticos e diagnóstico inline
|
|
348
|
-
- **Model hints** em `plan-agents.json` schema v3: campo `model_hint` (`fast | balanced | powerful`) por agente
|
|
349
|
-
- **Thinking depth** em `/oxe-research`: classificação `surface | standard | deep` com raciocínio estendido para `deep`
|
|
350
|
-
- Integração automática de security no verify via `security_in_verify: true` (Camada 6)
|
|
351
|
-
- `oxe/templates/SECURITY.template.md`
|
|
352
|
-
|
|
353
|
-
---
|
|
354
|
-
|
|
355
|
-
## [0.6.0] — 2026-04-04
|
|
356
|
-
|
|
357
|
-
### Adicionado
|
|
358
|
-
- Workflow `/oxe-project` unificando `milestone`, `workstream`, `checkpoint`
|
|
359
|
-
- `/oxe-obs` com propagação automática para R-IDs e Tns afetados
|
|
360
|
-
- Auto-reflexão semântica em `/oxe-spec` (Fase 4b): detecta contradições e escopo creep antes da aprovação
|
|
361
|
-
- Modo de execução A/B/C em `/oxe-execute` (Completo / Por onda / Por tarefa)
|
|
362
|
-
- Debug inline automático em falhas de execute
|
|
363
|
-
- 4 profiles de execução: `balanced`, `strict`, `fast`, `legacy`
|
|
364
|
-
- Sistema de personas para agentes (`oxe/personas/`)
|
|
365
|
-
- Plugin lifecycle (`.oxe/plugins/*.cjs`)
|
|
366
|
-
- `scale_adaptive`: scan sugere profile pelo tamanho do projeto
|
|
367
|
-
|
|
368
|
-
---
|
|
369
|
-
|
|
370
|
-
## [0.5.0] — anterior
|
|
371
|
-
|
|
372
|
-
Versões anteriores não documentadas neste arquivo.
|
|
76
|
+
|
|
77
|
+
### Reasoning Contracts & Semântica Multi-Runtime
|
|
78
|
+
|
|
79
|
+
- Contratos de raciocínio v2.0.0 (`oxe_contract_version: 2.0.0`) em todos os workflows e wrappers de runtime
|
|
80
|
+
- Novos campos de metadata: `oxe_reasoning_mode`, `oxe_question_policy`, `oxe_output_contract`, `oxe_tool_profile`, `oxe_confidence_policy`, `oxe_context_tier`
|
|
81
|
+
- `oxe_semantics_hash` (SHA-256 16 chars) para detecção de drift semântico entre IDEs
|
|
82
|
+
- Módulo `bin/lib/oxe-runtime-semantics.cjs` gerencia o contrato canônico: `buildReasoningContractBlock()`, `buildContextTiers()`, `auditRuntimeTargets()`, `computeSemanticsHash()`
|
|
83
|
+
- `auditRuntimeTargets()` varre Copilot prompts, commands e Cursor commands e reporta divergências entre wrappers e o contrato canônico
|
|
84
|
+
- Prompts e commands sincronizados para todos os runtimes: Cursor, GitHub Copilot, Claude Code, OpenCode, Codex, Gemini CLI, Windsurf, Antigravity
|
|
85
|
+
|
|
86
|
+
### Novos Módulos bin/lib
|
|
87
|
+
|
|
88
|
+
- **`oxe-dashboard.cjs`** — servidor HTTP local (porta 9000), `loadDashboardContext()`, API REST com `/api/health/status`, `/api/plan/info`, `/api/runtime/gates/{id}/status`, `/api/runtime/gates/resolve`; suporte a PLAN-REVIEW.md com comentários e status de aprovação
|
|
89
|
+
- **`oxe-runtime-semantics.cjs`** — gestão de metadados de workflow e contratos de raciocínio: `getWorkflowContract()`, `getAllWorkflowContracts()`, `validateWorkflowContractsRegistry()`, `buildContextPackPaths()`, `buildReasoningContractBlock()`, `splitFrontmatter()`, `parseFrontmatterMap()`
|
|
90
|
+
- **`oxe-operational.cjs`** expandido — monitoramento de agents, gates, evidências e estado de run com maior granularidade
|
|
91
|
+
- **`oxe-project-health.cjs`** expandido — métricas de saúde: test scores, coverage, violations, integração Copilot
|
|
92
|
+
|
|
93
|
+
### Comandos e Superfície
|
|
94
|
+
|
|
95
|
+
- **`oxe-ship`** — cria commit local guiado por `SPEC.md`, `PLAN.md` e `VERIFY.md`; disponível em todos os runtimes suportados
|
|
96
|
+
- **`oxe-skill`** — gestão e composição de skills com roles `@executor` e `@researcher`
|
|
97
|
+
- Contrato de raciocínio declarado em todos os workflows: `discovery`, `planning`, `execution`, `review`, `status`
|
|
98
|
+
- Regra pack-first em todos os wrappers: lê `.oxe/context/packs/<slug>.md` antes de cair para leitura direta
|
|
99
|
+
|
|
100
|
+
### Testes e Cobertura
|
|
101
|
+
|
|
102
|
+
- Novos testes unitários para `oxe-runtime-semantics.cjs`: 31 testes cobrindo todas as 19 funções exportadas
|
|
103
|
+
- Novos testes para `oxe-plugins.cjs`: 28 testes para `loadPlugins`, `runHook`, `validatePlugins`, `initPluginsDir`, `resolvePluginSources`
|
|
104
|
+
- Novos testes para `oxe-security.cjs`: `checkPathSafety`, `scanFileForSecrets`, `scanDirForSecretFiles`, `validatePlanPaths`
|
|
105
|
+
- Cobertura de linhas: **80.28% → 82.28%** (superando threshold de 82%)
|
|
106
|
+
- Total: **383 testes** passando (root + runtime)
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## [1.2.1] — 2026-04-18
|
|
111
|
+
|
|
112
|
+
### Branding, Semântica e Empacotamento
|
|
113
|
+
|
|
114
|
+
- remove referências remanescentes ao framework legado dos workflows e do diagnóstico de integração Copilot
|
|
115
|
+
- alinha `package.json`, `package-lock.json`, banner CLI e README para `1.2.1`
|
|
116
|
+
- corrige deriva semântica do workflow `ship`, registrando-o no contrato canônico multi-runtime
|
|
117
|
+
- adiciona prompt files de `ship` para Copilot/Cursor
|
|
118
|
+
- remove o comando `auto` da superfície pública do OXE
|
|
119
|
+
- remove o comando `intel` da superfície pública do OXE
|
|
120
|
+
- reposiciona `ship` para fechar o ciclo com commit local guiado por `SPEC.md`, `PLAN.md` e `VERIFY.md`
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## [1.2.0] — 2026-04-18
|
|
125
|
+
|
|
126
|
+
### Runtime Hardening & Robustez (Fases 1–9)
|
|
127
|
+
|
|
128
|
+
**Fase 1 — Runtime Hardening**
|
|
129
|
+
|
|
130
|
+
- `RunJournal` persistido em `.oxe/runs/{runId}/journal.json`: gravado a cada onda, atualizado no pause/cancel
|
|
131
|
+
- `Scheduler.pause()` agora grava journal e retorna `status: 'paused'` em vez de apenas setar flag in-memory
|
|
132
|
+
- `Scheduler.recover(runId, ctx, graph)` — retoma run pausado pelo journal; pula nós já completados
|
|
133
|
+
- `Scheduler.getJournal()` e `Scheduler.loadJournal(projectRoot, runId)` para inspeção
|
|
134
|
+
- `RunState` expandido: `retryCounts`, `policyDecisions`, `pendingGates`, `resolvedGates`, `verificationStatus`, `evidenceRefs`, `toolFailures`
|
|
135
|
+
- Reducer: handlers para `RetryScheduled`, `PolicyEvaluated`, `GateRequested`, `GateResolved`, `VerificationStarted`, `VerificationCompleted`, `ToolFailed`, `EvidenceCollected`
|
|
136
|
+
- Helpers: `getRetryCount`, `getPolicyDecision`, `getVerificationStatus`, `getEvidenceRefs`, `getToolFailures`
|
|
137
|
+
|
|
138
|
+
**Fase 2 — Policy, Side Effects e Security**
|
|
139
|
+
|
|
140
|
+
- `SideEffectClass` enum: `read_fs|write_fs|spawn_process|network_call|git_mutation|db_change|secret_access|infra_operation`
|
|
141
|
+
- `AutonomyTier` type: `L0|L1|L2|L3` — tier controla quais side effects são permitidos automaticamente
|
|
142
|
+
- `NodePolicyConfig` com `mutation_budget` e `autonomy_tier`
|
|
143
|
+
- `EnvironmentGuardrail` com `protected_paths`, `protected_branches`, `require_human_gate_on`
|
|
144
|
+
- Guardrails default: paths `.env`, `package.json`, `.oxe/config.json`; gate automático para `infra_operation`, `db_change`, `secret_access`
|
|
145
|
+
- `PolicyEngine.withGuardrail(g)` para customizar guardrails por projeto
|
|
146
|
+
- `side_effect_class` e `autonomy_tier` em `PolicyWhenClause` para regras direcionadas
|
|
147
|
+
|
|
148
|
+
**Fase 3 — Verify Operational**
|
|
149
|
+
|
|
150
|
+
- `VerificationManifest` formal: persistido em `.oxe/runs/{runId}/verification-manifest.json`
|
|
151
|
+
- `VerificationProfile`: `quick|standard|critical` — controla quais `FailureClass` geram riscos residuais
|
|
152
|
+
- `FailureClass` taxonomy: `deterministic|flaky|timeout|env_setup|policy_failure|evidence_missing`
|
|
153
|
+
- `classifyFailure(result)` — classifica automaticamente cada `CheckResult`
|
|
154
|
+
- `buildManifest(runId, results, options)` — compila manifest por work item, onda ou run
|
|
155
|
+
- `ResidualRiskLedger` persistido em `.oxe/runs/{runId}/residual-risks.json`
|
|
156
|
+
- `buildRiskLedger(runId, manifest)` — gera ledger de riscos residuais a partir do manifest
|
|
157
|
+
|
|
158
|
+
**Fase 4 — Delivery Native**
|
|
159
|
+
|
|
160
|
+
- `MergeGateEvaluator.evaluate(runResult, manifest, ledger)` — avalia se run está pronto para merge
|
|
161
|
+
- Bloqueios: tarefas failed/blocked, verificação falha, riscos `high`/`critical`
|
|
162
|
+
- `PromotionPipeline.promote(runResult, manifest, ledger, opts)` — cria PR draft via `gh`, persiste `RunPRLink`
|
|
163
|
+
- `PromotionPipeline.buildPRBody(...)` — corpo do PR com resumo, verificação e riscos residuais
|
|
164
|
+
- `RunPRLink` persistido em `.oxe/runs/{runId}/pr-link.json`
|
|
165
|
+
|
|
166
|
+
**Fase 5 — Context Engineering Avançado**
|
|
167
|
+
|
|
168
|
+
- `ContextPackStore`: `savePack`, `loadPack`, `markStale`, `isStale`, `listPackMeta` — packs persistidos em `.oxe/runs/{runId}/context-pack-{workItemId}.json`
|
|
169
|
+
- `ContextPackMeta` com `estimated_tokens`, `stale`, `stale_reason`
|
|
170
|
+
- `diffPacks(before, after)` — detecta added/removed/score_changed entre versões de pack
|
|
171
|
+
- Índice global por run em `context-packs.index.json`
|
|
172
|
+
|
|
173
|
+
**Fase 6 — Decision Engine / Seniority**
|
|
174
|
+
|
|
175
|
+
- `DecisionEngine.evaluate(input)` — avalia policy, gate, retry budget, risk, lesson match e retorna `DecisionRecord` com `type`, `seniority`, `confidence` e `rationale`
|
|
176
|
+
- Tipos de decisão: `proceed|retry|escalate_gate|skip|abort|promote_lesson`
|
|
177
|
+
- `SeniorityLevel`: `junior|standard|senior|expert` derivado da confidence
|
|
178
|
+
- `appendDecision`, `loadDecisionLog`, `queryDecisions` — log persistido em `.oxe/runs/{runId}/decisions.json`
|
|
179
|
+
|
|
180
|
+
**Fase 7 — Multi-Agent Robusto**
|
|
181
|
+
|
|
182
|
+
- `AgentRegistry` com heartbeat tracking por agente
|
|
183
|
+
- `registry.beat(id, currentTask)` — atualiza last_seen e status
|
|
184
|
+
- `registry.isAlive(id)` — detecta timeout configurável por instância
|
|
185
|
+
- `registry.timedOut()` / `registry.liveAgents()` — filtragem por liveness
|
|
186
|
+
- `registry.failover(fallbackAgentId)` — reassigna tasks de agentes expirados para fallback
|
|
187
|
+
- `registry.setStatus(id, status)` — transições manuais de estado
|
|
188
|
+
|
|
189
|
+
**Fase 8 — ABI Estável de Plugins**
|
|
190
|
+
|
|
191
|
+
- `PluginManifest` com `abi_version`, `capabilities`, declared providers
|
|
192
|
+
- `extractManifest(plugin)` — extrai manifest de qualquer `OxePlugin`
|
|
193
|
+
- `validatePlugin(plugin)` — retorna `{ valid, errors, warnings }` com checagem de nome, semver, providers
|
|
194
|
+
- `isAbiCompatible(version)` — garante compatibilidade de major version
|
|
195
|
+
- `sandboxInvoke(fn, timeoutMs)` — execução com timeout e isolamento de erro para plugins
|
|
196
|
+
|
|
197
|
+
**Fase 9 — Enterprise Operations**
|
|
198
|
+
|
|
199
|
+
- `AuditTrail` — registro imutável NDJSON em `.oxe/AUDIT-TRAIL.ndjson`
|
|
200
|
+
- 14 tipos de ação auditáveis: `run_started`, `secret_accessed`, `infra_mutation`, `merge_approved`, etc.
|
|
201
|
+
- Severity automática por ação (`info|warn|critical`)
|
|
202
|
+
- `AuditTrail.query(filter)` — filtra por action/severity/runId/since
|
|
203
|
+
- `RunQuota` — `createQuota`, `consumeQuota`, `checkQuota` para limitar work_items, mutations e retries por run
|
|
204
|
+
|
|
205
|
+
### Testes
|
|
206
|
+
|
|
207
|
+
- Runtime: **266 testes** (↑ de 145 pré-robustez)
|
|
208
|
+
- Root: 321 testes (sem regressões)
|
|
209
|
+
- Total: **587 testes** passando
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## [1.1.0] — 2026-04-18
|
|
214
|
+
|
|
215
|
+
### Mudança de superfície (simplificação estratégica de produto)
|
|
216
|
+
|
|
217
|
+
**Trilha principal reduzida a 6 comandos**
|
|
218
|
+
|
|
219
|
+
O OXE agora se comporta como um framework guiado por etapas. A superfície pública foi reorganizada em três níveis:
|
|
220
|
+
|
|
221
|
+
**Trilha principal (6 comandos):**
|
|
222
|
+
- `/oxe` — entrada universal (absorve ask, next, route, help)
|
|
223
|
+
- `/oxe-quick` — modo nano sem cerimônia
|
|
224
|
+
- `/oxe-spec` — spec com flags: `--refresh`, `--full`, `--research`, `--ui`
|
|
225
|
+
- `/oxe-plan` — planejamento test-first
|
|
226
|
+
- `/oxe-execute` — implementação com flags: `--note`, `--debug`, `--deep-diagnosis`, `--checkpoint`, `--iterative`
|
|
227
|
+
- `/oxe-verify` — validação e fechamento com flags: `--gaps`, `--security`, `--ui`, `--pr`, `--diff`, `--skip-retro`
|
|
228
|
+
|
|
229
|
+
**Trilha avançada:** `/oxe-session` (absorve project, milestone, workstream), `/oxe-dashboard`
|
|
230
|
+
|
|
231
|
+
**Administrativa:** `/oxe-capabilities`, `/oxe-skill`, `oxe-cc azure`
|
|
232
|
+
|
|
233
|
+
### Depreciado (v1.1.0)
|
|
234
|
+
|
|
235
|
+
Os seguintes comandos foram incorporados por estágios principais e continuam funcionando com aviso de migração:
|
|
236
|
+
|
|
237
|
+
| Comando | Novo destino |
|
|
238
|
+
|---------|-------------|
|
|
239
|
+
| `/oxe-ask` | `/oxe "pergunta"` |
|
|
240
|
+
| `/oxe-scan` | `/oxe-spec --refresh` |
|
|
241
|
+
| `/oxe-research` | `/oxe-spec --research` |
|
|
242
|
+
| `/oxe-ui-spec` | `/oxe-spec --ui` |
|
|
243
|
+
| `/oxe-obs` | `/oxe-execute --note` |
|
|
244
|
+
| `/oxe-debug` | `/oxe-execute --debug` |
|
|
245
|
+
| `/oxe-forensics` | `/oxe-execute --deep-diagnosis` |
|
|
246
|
+
| `/oxe-checkpoint` | `/oxe-execute --checkpoint` |
|
|
247
|
+
| `/oxe-loop` | `/oxe-execute --iterative` |
|
|
248
|
+
| `/oxe-validate-gaps` | `/oxe-verify --gaps` |
|
|
249
|
+
| `/oxe-security` | `/oxe-verify --security` |
|
|
250
|
+
| `/oxe-ui-review` | `/oxe-verify --ui` |
|
|
251
|
+
| `/oxe-review-pr` | `/oxe-verify --pr` |
|
|
252
|
+
| `/oxe-retro` | `/oxe-verify` (retro automática) |
|
|
253
|
+
| `/oxe-project` | `/oxe-session milestone\|workstream` |
|
|
254
|
+
| `/oxe-compact` | `/oxe-spec --refresh` |
|
|
255
|
+
| `/oxe-next` | `/oxe` (sem argumento) |
|
|
256
|
+
| `/oxe-route` | `/oxe "intenção"` |
|
|
257
|
+
| `/oxe-milestone` | `/oxe-session milestone` |
|
|
258
|
+
| `/oxe-workstream` | `/oxe-session workstream` |
|
|
259
|
+
|
|
260
|
+
### Novos comportamentos
|
|
261
|
+
|
|
262
|
+
- **Retro automática:** `/oxe-verify` executa automaticamente retrospectiva ao fechar (`--skip-retro` para desativar)
|
|
263
|
+
- **Pergunta situacional inline:** `/oxe "pergunta"` substitui `/oxe-ask`
|
|
264
|
+
- `/oxe-session` agora suporta `milestone` e `workstream` como subcomandos
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## [0.8.0] — 2026-04-14
|
|
269
|
+
|
|
270
|
+
### Adicionado
|
|
271
|
+
|
|
272
|
+
**Session forking + revert**
|
|
273
|
+
- `session fork [nome]` — bifurca a sessão ativa, copiando todos os artefatos para uma nova sessão; rastreia `forked_from` na SESSION.md
|
|
274
|
+
- `session revert <checkpoint-slug>` — restaura STATE.md ao snapshot de um checkpoint, sem apagar artefatos atuais
|
|
275
|
+
|
|
276
|
+
**Skill system**
|
|
277
|
+
- `/oxe-skill` — workflow para descobrir, invocar e gerenciar skills (unificação de personas e capabilities)
|
|
278
|
+
- `@<skill-id>` no chat resolve persona OU capability OU composite como ponto de entrada único
|
|
279
|
+
- Template `SKILL.template.md` para criação de skills de projeto em `.oxe/skills/`
|
|
280
|
+
- Resolução em 3 camadas: project → capabilities → global (personas do pacote)
|
|
281
|
+
|
|
282
|
+
**Sistema de permissões com wildcard**
|
|
283
|
+
- `permissions[]` em `.oxe/config.json` — regras glob+ação que controlam acesso a arquivos durante execute e apply
|
|
284
|
+
- Ações: `allow`, `deny`, `ask` — avaliação first-match wins
|
|
285
|
+
- Scopes: `execute`, `apply`, `all`
|
|
286
|
+
- Gate automático no workflow execute antes de cada onda
|
|
287
|
+
|
|
288
|
+
**Config hierárquico (system → user → project)**
|
|
289
|
+
- `loadOxeConfigMerged()` agora lê 3 níveis: system (`OXE_SYSTEM_CONFIG` ou path OS-default) < user (`~/.oxe/config.json`) < project (`.oxe/config.json`)
|
|
290
|
+
- `status --full` exibe fontes de cada nível de configuração
|
|
291
|
+
- Campo `sources` no retorno do SDK
|
|
292
|
+
|
|
293
|
+
**Event sourcing com replay**
|
|
294
|
+
- `replayEvents()` no SDK — reconstrói timeline de `OXE-EVENTS.ndjson` com deltas, filtros por run/wave/event
|
|
295
|
+
- `oxe-cc runtime replay [--run <id>] [--from <event-id>] [--wave <n>] [--write]` — visualização de timeline no terminal ou `REPLAY-SESSION.md` em disco
|
|
296
|
+
- Integração com `/oxe-forensics` — replay como ferramenta de investigação
|
|
297
|
+
|
|
298
|
+
**Plugin system com carregamento remoto**
|
|
299
|
+
- `plugins[]` em `config.json` aceita `{ source: "npm:<pkg>" }` e `{ source: "path:./file.cjs" }`
|
|
300
|
+
- `oxe-cc plugins list` — lista plugins carregados (local + externos)
|
|
301
|
+
- `oxe-cc plugins install npm:<pkg>` — instala plugin npm em `.oxe/plugins/_npm/`
|
|
302
|
+
- `resolvePluginSources()` e `installNpmPlugin()` expostos no SDK
|
|
303
|
+
|
|
304
|
+
### Tipos TypeScript
|
|
305
|
+
- `OxePermissionRule`, `PermissionCheckResult`, `ReplayReport`, `PluginSource` adicionados
|
|
306
|
+
- `security.checkFilePermission`, `security.checkPermissions`, `security.globToRegex` declarados
|
|
307
|
+
- `operational.replayEvents` declarado
|
|
308
|
+
- `plugins.resolvePluginSources`, `plugins.installNpmPlugin` declarados
|
|
309
|
+
- `health.loadOxeConfigMerged` retorna `sources: { system, user, project }`
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## [0.7.0] — 2026-04-13
|
|
314
|
+
|
|
315
|
+
### Adicionado
|
|
316
|
+
|
|
317
|
+
**Provider Azure nativo (`oxe-cc azure`)**
|
|
318
|
+
- `azure status` — estado compacto read-only: CLI, login, subscription, inventário, pendências, alerta VPN
|
|
319
|
+
- `azure operations list` — histórico colorido de operações (planned/applied/pending)
|
|
320
|
+
- `azure find --type <serviço>` — filtro por família de serviço (servicebus, eventgrid, sql)
|
|
321
|
+
- `azure find --filter-rg <rg>` — filtro por resource group
|
|
322
|
+
- `azure sync --diff` — mostra recursos adicionados/removidos em relação ao snapshot anterior
|
|
323
|
+
- `azure apply --dry-run` — pré-visualiza comando `az` sem executar nem criar artefatos
|
|
324
|
+
- `azure auth login --tenant <id>` — suporte a Entra ID corporativo; passa `--tenant` ao `az login`
|
|
325
|
+
- `azure apply --vpn-confirmed` — confirma conexão VPN quando `vpn_required: true` está configurado
|
|
326
|
+
|
|
327
|
+
**SDK**
|
|
328
|
+
- `azure.diffInventory(previousItems, currentItems)` — compara snapshots de inventário (adicionados/removidos/unchanged)
|
|
329
|
+
- `azure.statusAzure(projectRoot, config?, options?)` — status compacto sem writes
|
|
330
|
+
|
|
331
|
+
**Workflows (guardrails)**
|
|
332
|
+
- `scan.md`: detecção Azure é informativa — não altera fluxo canônico OXE nem aciona steps Azure automaticamente
|
|
333
|
+
- `plan.md`: pré-check Azure só ativa quando Azure é mencionado **explicitamente** na SPEC ou `.oxe/cloud/azure/` existe
|
|
334
|
+
- `discuss.md`: perguntas Azure só ativam quando SPEC menciona Azure explicitamente — SQL genérico (PostgreSQL, MySQL, on-prem) não aciona o bloco
|
|
335
|
+
|
|
336
|
+
### Corrigido
|
|
337
|
+
- `loginAzure()` com `inherit: true` não passava mais `inherit` para `getAzureContext`, evitando crash ao tentar ler `account.id` de stdout null
|
|
338
|
+
|
|
339
|
+
### Tipos TypeScript
|
|
340
|
+
- `azure.searchAzureInventory` inclui parâmetro opcional `filters?: { type?, resourceGroup? }`
|
|
341
|
+
- `azure.diffInventory` declarado
|
|
342
|
+
- `azure.statusAzure` declarado
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## [0.6.3] — 2026-04-04
|
|
347
|
+
|
|
348
|
+
### Corrigido
|
|
349
|
+
- `security_in_verify` agora é reconhecido como chave válida em `.oxe/config.json` (não mais rejeitado pelo doctor como "unknown key")
|
|
350
|
+
- `plan-agents.schema.json`: enum atualizado de `[1, 2]` para `[2, 3]`; campos `persona` e `model_hint` adicionados ao schema dos agentes
|
|
351
|
+
|
|
352
|
+
### Adicionado
|
|
353
|
+
- **`/oxe-retro` sugerido automaticamente** pelo `oxe-cc status` quando `phase: verify_complete` e `.oxe/LESSONS.md` ainda não existe
|
|
354
|
+
- **`health.parseLastRetroDate(stateText)`** — parseia campo `last_retro: YYYY-MM-DD` do STATE.md
|
|
355
|
+
- **`health.isStaleLessons(retroDate, maxDays)`** — detecta se LESSONS.md está desatualizado (par de `isStaleScan`)
|
|
356
|
+
- **`health.planAgentsWarnings(target)`** — avisa sobre schema 1 (legado) e `model_hint` inválido em `plan-agents.json`
|
|
357
|
+
- **`parseState()`** retorna novo campo `lastRetroDate: string | null`
|
|
358
|
+
- `OxeHealthReport` inclui `retroDate: Date | null`
|
|
359
|
+
- `config.template.json` inclui `security_in_verify: false` por padrão
|
|
360
|
+
- `plan-agents.template.json` inclui campo `persona` no agente-exemplo
|
|
361
|
+
- Melhorias de workflow: `obs.md` (tabela de classificação de impacto), `verify.md` (success_criteria camadas 5+6), `next.md` (flag de promoção QUICK→spec), `quick.md` (incorporação de OBSERVATIONS), `plan.md` (nota de replan + plan-agents sync)
|
|
362
|
+
- `AGENTS.md` atualizado para v0.6.x
|
|
363
|
+
|
|
364
|
+
### Tipos TypeScript
|
|
365
|
+
- `ParsedState` inclui `lastRetroDate: string | null`
|
|
366
|
+
- `OxeHealthReport` inclui `retroDate: Date | null`
|
|
367
|
+
- `health.*` expõe `parseLastRetroDate`, `isStaleLessons`, `planAgentsWarnings`
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## [0.6.2] — 2026-04-04
|
|
372
|
+
|
|
373
|
+
### Adicionado
|
|
374
|
+
- **`/oxe-retro`** — workflow de retrospectiva de ciclo; sintetiza 3–5 lições prescritivas em `.oxe/LESSONS.md`
|
|
375
|
+
- `oxe/templates/LESSONS.template.md`
|
|
376
|
+
- Correções de consistência de schema (plan-agent.md, verify.md): referências atualizadas para schema v3
|
|
377
|
+
|
|
378
|
+
### Alterado
|
|
379
|
+
- README: tabela "Como cada comando fica mais inteligente" expandida com loop, security, research thinking_depth, model_hint
|
|
380
|
+
- Cadeia de help (`oxe.md`) atualizada para incluir `/oxe-retro` após verify
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## [0.6.1] — 2026-04-04
|
|
385
|
+
|
|
386
|
+
### Adicionado
|
|
387
|
+
- **`/oxe-security`** — auditoria OWASP Top 10 filtrada pelo stack; produz `.oxe/SECURITY.md` com achados P0/P1/P2
|
|
388
|
+
- **`/oxe-loop`** — execução iterativa de onda com retries automáticos e diagnóstico inline
|
|
389
|
+
- **Model hints** em `plan-agents.json` schema v3: campo `model_hint` (`fast | balanced | powerful`) por agente
|
|
390
|
+
- **Thinking depth** em `/oxe-research`: classificação `surface | standard | deep` com raciocínio estendido para `deep`
|
|
391
|
+
- Integração automática de security no verify via `security_in_verify: true` (Camada 6)
|
|
392
|
+
- `oxe/templates/SECURITY.template.md`
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## [0.6.0] — 2026-04-04
|
|
397
|
+
|
|
398
|
+
### Adicionado
|
|
399
|
+
- Workflow `/oxe-project` unificando `milestone`, `workstream`, `checkpoint`
|
|
400
|
+
- `/oxe-obs` com propagação automática para R-IDs e Tns afetados
|
|
401
|
+
- Auto-reflexão semântica em `/oxe-spec` (Fase 4b): detecta contradições e escopo creep antes da aprovação
|
|
402
|
+
- Modo de execução A/B/C em `/oxe-execute` (Completo / Por onda / Por tarefa)
|
|
403
|
+
- Debug inline automático em falhas de execute
|
|
404
|
+
- 4 profiles de execução: `balanced`, `strict`, `fast`, `legacy`
|
|
405
|
+
- Sistema de personas para agentes (`oxe/personas/`)
|
|
406
|
+
- Plugin lifecycle (`.oxe/plugins/*.cjs`)
|
|
407
|
+
- `scale_adaptive`: scan sugere profile pelo tamanho do projeto
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## [0.5.0] — anterior
|
|
412
|
+
|
|
413
|
+
Versões anteriores não documentadas neste arquivo.
|