oxe-cc 1.6.0 → 1.8.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/CHANGELOG.md +61 -0
- package/README.md +36 -34
- package/bin/lib/oxe-agent-install.cjs +149 -32
- package/bin/lib/oxe-operational.cjs +141 -34
- package/bin/lib/oxe-project-health.cjs +150 -42
- package/bin/lib/oxe-release.cjs +1 -0
- package/bin/oxe-cc.js +205 -113
- package/commands/oxe/debug.md +6 -1
- package/commands/oxe/discuss.md +7 -2
- package/commands/oxe/execute.md +7 -2
- package/commands/oxe/plan-agent.md +7 -2
- package/commands/oxe/plan.md +7 -2
- package/commands/oxe/scan.md +6 -1
- package/commands/oxe/spec.md +6 -1
- package/commands/oxe/verify.md +6 -1
- package/docs/CONTENT-MIGRATION-AUDIT.md +49 -0
- package/docs/RUNTIME-SMOKE-MATRIX.md +1 -1
- package/lib/runtime/compiler/graph-compiler.js +32 -0
- package/lib/runtime/context/context-pack-builder.d.ts +15 -0
- package/lib/runtime/context/context-pack-builder.js +78 -0
- package/lib/runtime/events/catalog.d.ts +1 -1
- package/lib/runtime/events/catalog.js +5 -0
- package/lib/runtime/executor/action-tool-map.d.ts +3 -0
- package/lib/runtime/executor/action-tool-map.js +41 -0
- package/lib/runtime/executor/built-in-tools.d.ts +8 -0
- package/lib/runtime/executor/built-in-tools.js +267 -0
- package/lib/runtime/executor/index.d.ts +6 -0
- package/lib/runtime/executor/index.js +12 -0
- package/lib/runtime/executor/llm-task-executor.d.ts +29 -0
- package/lib/runtime/executor/llm-task-executor.js +138 -0
- package/lib/runtime/executor/node-prompt-builder.d.ts +3 -0
- package/lib/runtime/executor/node-prompt-builder.js +36 -0
- package/lib/runtime/executor/stream-completion.d.ts +38 -0
- package/lib/runtime/executor/stream-completion.js +105 -0
- package/lib/runtime/index.d.ts +1 -0
- package/lib/runtime/index.js +2 -0
- package/lib/runtime/models/failure.d.ts +5 -0
- package/lib/runtime/models/failure.js +2 -0
- package/lib/runtime/plugins/capability-adapter.d.ts +9 -0
- package/lib/runtime/plugins/capability-adapter.js +111 -8
- package/lib/runtime/plugins/plugin-abi.d.ts +8 -0
- package/lib/runtime/plugins/plugin-registry.d.ts +2 -1
- package/lib/runtime/plugins/plugin-registry.js +6 -1
- package/lib/runtime/reducers/run-state-reducer.js +39 -2
- package/lib/runtime/scheduler/scheduler.d.ts +14 -2
- package/lib/runtime/scheduler/scheduler.js +131 -11
- package/lib/runtime/verification/verification-manifest.d.ts +5 -2
- package/oxe/agents/oxe-assumptions-analyzer.md +136 -0
- package/oxe/agents/oxe-codebase-mapper.md +142 -0
- package/oxe/agents/oxe-debugger.md +145 -0
- package/oxe/agents/oxe-executor.md +139 -0
- package/oxe/agents/oxe-integration-checker.md +142 -0
- package/oxe/agents/oxe-plan-checker.md +143 -0
- package/oxe/agents/oxe-planner.md +151 -0
- package/oxe/agents/oxe-research-synthesizer.md +146 -0
- package/oxe/agents/oxe-researcher.md +163 -0
- package/oxe/agents/oxe-ui-auditor.md +151 -0
- package/oxe/agents/oxe-ui-checker.md +157 -0
- package/oxe/agents/oxe-ui-researcher.md +179 -0
- package/oxe/agents/oxe-validation-auditor.md +154 -0
- package/oxe/agents/oxe-verifier.md +132 -0
- package/oxe/personas/README.md +91 -39
- package/oxe/personas/architect.md +149 -37
- package/oxe/personas/db-specialist.md +149 -36
- package/oxe/personas/debugger.md +155 -38
- package/oxe/personas/executor.md +164 -38
- package/oxe/personas/planner.md +165 -36
- package/oxe/personas/researcher.md +148 -35
- package/oxe/personas/ui-specialist.md +164 -36
- package/oxe/personas/verifier.md +174 -39
- package/oxe/templates/FIXTURE-PACK.template.json +18 -11
- package/oxe/templates/FIXTURE-PACK.template.md +19 -10
- package/oxe/templates/IMPLEMENTATION-PACK.template.json +26 -10
- package/oxe/templates/IMPLEMENTATION-PACK.template.md +32 -20
- package/oxe/templates/PLAN.template.md +62 -31
- package/oxe/templates/REFERENCE-ANCHORS.template.md +14 -10
- package/oxe/templates/SUMMARY.template.md +50 -20
- package/oxe/workflows/debug.md +9 -7
- package/oxe/workflows/execute.md +11 -8
- package/oxe/workflows/forensics.md +5 -3
- package/oxe/workflows/plan.md +277 -0
- package/oxe/workflows/scan.md +355 -69
- package/oxe/workflows/spec.md +302 -9
- package/oxe/workflows/ui-review.md +5 -4
- package/oxe/workflows/ui-spec.md +4 -3
- package/oxe/workflows/verify.md +8 -5
- package/package.json +26 -26
- package/packages/runtime/package.json +5 -5
- package/packages/runtime/src/compiler/graph-compiler.ts +40 -0
- package/packages/runtime/src/context/context-pack-builder.ts +80 -0
- package/packages/runtime/src/events/catalog.ts +5 -0
- package/packages/runtime/src/executor/action-tool-map.ts +46 -0
- package/packages/runtime/src/executor/built-in-tools.ts +276 -0
- package/packages/runtime/src/executor/index.ts +6 -0
- package/packages/runtime/src/executor/llm-task-executor.ts +194 -0
- package/packages/runtime/src/executor/node-prompt-builder.ts +45 -0
- package/packages/runtime/src/executor/stream-completion.ts +145 -0
- package/packages/runtime/src/index.ts +3 -0
- package/packages/runtime/src/models/failure.ts +11 -0
- package/packages/runtime/src/plugins/capability-adapter.ts +117 -10
- package/packages/runtime/src/plugins/plugin-abi.ts +9 -0
- package/packages/runtime/src/plugins/plugin-registry.ts +10 -1
- package/packages/runtime/src/reducers/run-state-reducer.ts +59 -2
- package/packages/runtime/src/scheduler/scheduler.ts +152 -14
- package/packages/runtime/src/verification/verification-manifest.ts +12 -8
- package/vscode-extension/oxe-agents-1.7.0.vsix +0 -0
- package/vscode-extension/oxe-agents-1.8.0.vsix +0 -0
- package/vscode-extension/package.json +2 -2
package/bin/oxe-cc.js
CHANGED
|
@@ -1527,20 +1527,20 @@ function printOxeHealthDiagnostics(target, c, diagOpts = {}) {
|
|
|
1527
1527
|
if (r.eventsSummary) {
|
|
1528
1528
|
console.log(` ${c ? dim : ''}Tracing:${c ? reset : ''} ${r.eventsSummary.total} evento(s)`);
|
|
1529
1529
|
}
|
|
1530
|
-
if (r.planSelfEvaluation && r.planSelfEvaluation.hasSection) {
|
|
1531
|
-
const best = r.planSelfEvaluation.bestPlan || '—';
|
|
1532
|
-
const conf =
|
|
1533
|
-
typeof r.planSelfEvaluation.confidence === 'number' ? `${r.planSelfEvaluation.confidence}%` : '—';
|
|
1534
|
-
console.log(` ${c ? dim : ''}Plano (autoavaliação):${c ? reset : ''} melhor=${best} | confiança=${conf}`);
|
|
1535
|
-
}
|
|
1536
|
-
if (typeof r.executionRationalityReady === 'boolean') {
|
|
1537
|
-
console.log(
|
|
1538
|
-
` ${c ? dim : ''}Prontidão racional:${c ? reset : ''} implementation=${r.implementationPackReady ? 'ok' : 'pendente'} | anchors=${r.referenceAnchorsReady ? 'ok' : 'pendente'} | fixtures=${r.fixturePackReady ? 'ok' : 'pendente'}`
|
|
1539
|
-
);
|
|
1540
|
-
}
|
|
1541
|
-
if (r.contextQuality) {
|
|
1542
|
-
console.log(
|
|
1543
|
-
` ${c ? dim : ''}Contexto:${c ? reset : ''} score=${r.contextQuality.primaryScore != null ? r.contextQuality.primaryScore : '—'} | workflow=${r.contextQuality.primaryWorkflow || '—'} | status=${r.contextQuality.primaryStatus || '—'}`
|
|
1530
|
+
if (r.planSelfEvaluation && r.planSelfEvaluation.hasSection) {
|
|
1531
|
+
const best = r.planSelfEvaluation.bestPlan || '—';
|
|
1532
|
+
const conf =
|
|
1533
|
+
typeof r.planSelfEvaluation.confidence === 'number' ? `${r.planSelfEvaluation.confidence}%` : '—';
|
|
1534
|
+
console.log(` ${c ? dim : ''}Plano (autoavaliação):${c ? reset : ''} melhor=${best} | confiança=${conf}`);
|
|
1535
|
+
}
|
|
1536
|
+
if (typeof r.executionRationalityReady === 'boolean') {
|
|
1537
|
+
console.log(
|
|
1538
|
+
` ${c ? dim : ''}Prontidão racional:${c ? reset : ''} implementation=${r.implementationPackReady ? 'ok' : 'pendente'} | anchors=${r.referenceAnchorsReady ? 'ok' : 'pendente'} | fixtures=${r.fixturePackReady ? 'ok' : 'pendente'}`
|
|
1539
|
+
);
|
|
1540
|
+
}
|
|
1541
|
+
if (r.contextQuality) {
|
|
1542
|
+
console.log(
|
|
1543
|
+
` ${c ? dim : ''}Contexto:${c ? reset : ''} score=${r.contextQuality.primaryScore != null ? r.contextQuality.primaryScore : '—'} | workflow=${r.contextQuality.primaryWorkflow || '—'} | status=${r.contextQuality.primaryStatus || '—'}`
|
|
1544
1544
|
);
|
|
1545
1545
|
}
|
|
1546
1546
|
if (r.semanticsDrift) {
|
|
@@ -1668,11 +1668,11 @@ function runStatusFull(target) {
|
|
|
1668
1668
|
sp = oxeHealth.scopedOxePaths(target, activeSession);
|
|
1669
1669
|
}
|
|
1670
1670
|
|
|
1671
|
-
printSection('OXE ▸ status --full');
|
|
1672
|
-
console.log(` ${c ? green : ''}Projeto:${c ? reset : ''} ${c ? cyan : ''}${target}${c ? reset : ''}`);
|
|
1673
|
-
console.log(` ${c ? green : ''}Sessão:${c ? reset : ''} ${c ? cyan : ''}${activeSession || 'modo legado'}${c ? reset : ''}`);
|
|
1674
|
-
console.log(` ${c ? green : ''}Workspace mode:${c ? reset : ''} ${report.workspaceMode || 'oxe_project'}`);
|
|
1675
|
-
console.log(` ${c ? green : ''}Fase:${c ? reset : ''} ${report.phase || '—'}`);
|
|
1671
|
+
printSection('OXE ▸ status --full');
|
|
1672
|
+
console.log(` ${c ? green : ''}Projeto:${c ? reset : ''} ${c ? cyan : ''}${target}${c ? reset : ''}`);
|
|
1673
|
+
console.log(` ${c ? green : ''}Sessão:${c ? reset : ''} ${c ? cyan : ''}${activeSession || 'modo legado'}${c ? reset : ''}`);
|
|
1674
|
+
console.log(` ${c ? green : ''}Workspace mode:${c ? reset : ''} ${report.workspaceMode || 'oxe_project'}`);
|
|
1675
|
+
console.log(` ${c ? green : ''}Fase:${c ? reset : ''} ${report.phase || '—'}`);
|
|
1676
1676
|
|
|
1677
1677
|
const healthColor = report.healthStatus === 'healthy' ? green : report.healthStatus === 'warning' ? yellow : red;
|
|
1678
1678
|
console.log(` ${c ? green : ''}Saúde:${c ? reset : ''} ${c ? healthColor : ''}${report.healthStatus}${c ? reset : ''}`);
|
|
@@ -1687,6 +1687,14 @@ function runStatusFull(target) {
|
|
|
1687
1687
|
console.log(` ${c ? yellow : ''} • ${warning}${c ? reset : ''}`);
|
|
1688
1688
|
}
|
|
1689
1689
|
}
|
|
1690
|
+
if (report.codex && (report.codex.detected || report.codex.warnings.length)) {
|
|
1691
|
+
console.log(`\n ${c ? yellow : ''}Codex${c ? reset : ''}`);
|
|
1692
|
+
console.log(` ${c ? dim : ''}Prompts:${c ? reset : ''} ${report.codex.commandsReady ? 'ok' : 'pendente'} · ${displayPathForUser(report.codex.promptsDir)}`);
|
|
1693
|
+
console.log(` ${c ? dim : ''}Skills:${c ? reset : ''} ${report.codex.skillsReady ? 'ok' : 'pendente'} · ${displayPathForUser(report.codex.skillsRoot)}`);
|
|
1694
|
+
for (const warning of report.codexWarn.slice(0, 3)) {
|
|
1695
|
+
console.log(` ${c ? yellow : ''} • ${warning}${c ? reset : ''}`);
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1690
1698
|
|
|
1691
1699
|
// Coverage matrix
|
|
1692
1700
|
const specPath = activeSession && sp.spec ? sp.spec : p.spec;
|
|
@@ -1702,41 +1710,41 @@ function runStatusFull(target) {
|
|
|
1702
1710
|
console.log(` ${coverageCell(codebaseExists, 'codebase scan')} ${coverageCell(specExists, 'SPEC.md')} ${coverageCell(planExists, 'PLAN.md')} ${coverageCell(verifyExists, 'VERIFY.md')} ${coverageCell(lessonsExists, 'LESSONS.md')}`);
|
|
1703
1711
|
|
|
1704
1712
|
// Readiness gate
|
|
1705
|
-
const packageMode = report.workspaceMode === 'product_package';
|
|
1706
|
-
const ready = packageMode
|
|
1707
|
-
? Boolean(report.releaseReadiness && report.releaseReadiness.ok)
|
|
1708
|
-
: specExists
|
|
1709
|
-
&& planExists
|
|
1710
|
-
&& report.executionRationalityReady
|
|
1711
|
-
&& !report.planWarn.length
|
|
1712
|
-
&& !report.runtimeWarn.length;
|
|
1713
|
-
const gateColor = ready ? green : yellow;
|
|
1714
|
-
console.log(`\n ${c ? yellow : ''}Readiness gate${c ? reset : ''}`);
|
|
1715
|
-
console.log(` ${c ? gateColor : ''}${ready ? (packageMode ? '✓ Pronto para publicar' : '✓ Pronto para executar') : (packageMode ? '✗ Não pronto para publicar' : '✗ Não pronto para executar')}${c ? reset : ''}`);
|
|
1716
|
-
if (packageMode) {
|
|
1717
|
-
const releaseReadiness = report.releaseReadiness || { blockers: [], warnings: [] };
|
|
1718
|
-
if (Array.isArray(releaseReadiness.blockers) && releaseReadiness.blockers.length) {
|
|
1719
|
-
for (const blocker of releaseReadiness.blockers) {
|
|
1720
|
-
console.log(` ${c ? red : ''} • ${blocker}${c ? reset : ''}`);
|
|
1721
|
-
}
|
|
1722
|
-
}
|
|
1723
|
-
if (Array.isArray(releaseReadiness.warnings) && releaseReadiness.warnings.length) {
|
|
1724
|
-
for (const warning of releaseReadiness.warnings) {
|
|
1725
|
-
console.log(` ${c ? yellow : ''} • ${warning}${c ? reset : ''}`);
|
|
1726
|
-
}
|
|
1727
|
-
}
|
|
1728
|
-
} else {
|
|
1729
|
-
if (!specExists) console.log(` ${c ? dim : ''} • SPEC.md ausente — rode /oxe-spec${c ? reset : ''}`);
|
|
1730
|
-
if (!planExists) console.log(` ${c ? dim : ''} • PLAN.md ausente — rode /oxe-plan${c ? reset : ''}`);
|
|
1731
|
-
if (report.planWarn.length) {
|
|
1732
|
-
for (const w of report.planWarn) {
|
|
1733
|
-
console.log(` ${c ? yellow : ''} • ${w}${c ? reset : ''}`);
|
|
1734
|
-
}
|
|
1735
|
-
}
|
|
1736
|
-
if (planExists) {
|
|
1737
|
-
console.log(` ${c ? dim : ''} • Artefatos racionais:${c ? reset : ''} implementation=${report.implementationPackReady ? 'ok' : 'pendente'} · anchors=${report.referenceAnchorsReady ? 'ok' : 'pendente'} · fixtures=${report.fixturePackReady ? 'ok' : 'pendente'}`);
|
|
1738
|
-
}
|
|
1739
|
-
}
|
|
1713
|
+
const packageMode = report.workspaceMode === 'product_package';
|
|
1714
|
+
const ready = packageMode
|
|
1715
|
+
? Boolean(report.releaseReadiness && report.releaseReadiness.ok)
|
|
1716
|
+
: specExists
|
|
1717
|
+
&& planExists
|
|
1718
|
+
&& report.executionRationalityReady
|
|
1719
|
+
&& !report.planWarn.length
|
|
1720
|
+
&& !report.runtimeWarn.length;
|
|
1721
|
+
const gateColor = ready ? green : yellow;
|
|
1722
|
+
console.log(`\n ${c ? yellow : ''}Readiness gate${c ? reset : ''}`);
|
|
1723
|
+
console.log(` ${c ? gateColor : ''}${ready ? (packageMode ? '✓ Pronto para publicar' : '✓ Pronto para executar') : (packageMode ? '✗ Não pronto para publicar' : '✗ Não pronto para executar')}${c ? reset : ''}`);
|
|
1724
|
+
if (packageMode) {
|
|
1725
|
+
const releaseReadiness = report.releaseReadiness || { blockers: [], warnings: [] };
|
|
1726
|
+
if (Array.isArray(releaseReadiness.blockers) && releaseReadiness.blockers.length) {
|
|
1727
|
+
for (const blocker of releaseReadiness.blockers) {
|
|
1728
|
+
console.log(` ${c ? red : ''} • ${blocker}${c ? reset : ''}`);
|
|
1729
|
+
}
|
|
1730
|
+
}
|
|
1731
|
+
if (Array.isArray(releaseReadiness.warnings) && releaseReadiness.warnings.length) {
|
|
1732
|
+
for (const warning of releaseReadiness.warnings) {
|
|
1733
|
+
console.log(` ${c ? yellow : ''} • ${warning}${c ? reset : ''}`);
|
|
1734
|
+
}
|
|
1735
|
+
}
|
|
1736
|
+
} else {
|
|
1737
|
+
if (!specExists) console.log(` ${c ? dim : ''} • SPEC.md ausente — rode /oxe-spec${c ? reset : ''}`);
|
|
1738
|
+
if (!planExists) console.log(` ${c ? dim : ''} • PLAN.md ausente — rode /oxe-plan${c ? reset : ''}`);
|
|
1739
|
+
if (report.planWarn.length) {
|
|
1740
|
+
for (const w of report.planWarn) {
|
|
1741
|
+
console.log(` ${c ? yellow : ''} • ${w}${c ? reset : ''}`);
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
if (planExists) {
|
|
1745
|
+
console.log(` ${c ? dim : ''} • Artefatos racionais:${c ? reset : ''} implementation=${report.implementationPackReady ? 'ok' : 'pendente'} · anchors=${report.referenceAnchorsReady ? 'ok' : 'pendente'} · fixtures=${report.fixturePackReady ? 'ok' : 'pendente'}`);
|
|
1746
|
+
}
|
|
1747
|
+
}
|
|
1740
1748
|
|
|
1741
1749
|
// Active run summary
|
|
1742
1750
|
if (report.activeRun) {
|
|
@@ -1822,24 +1830,24 @@ function runStatusFull(target) {
|
|
|
1822
1830
|
}
|
|
1823
1831
|
|
|
1824
1832
|
// Plan self-evaluation
|
|
1825
|
-
if (!packageMode && report.planSelfEvaluation) {
|
|
1826
|
-
const pse = report.planSelfEvaluation;
|
|
1827
|
-
const threshold = report.planConfidenceThreshold || 90;
|
|
1828
|
-
console.log(`\n ${c ? yellow : ''}Autoavaliação do plano${c ? reset : ''}`);
|
|
1829
|
-
if (pse.best_plan_current != null) {
|
|
1830
|
-
const bestColor = pse.best_plan_current ? green : red;
|
|
1831
|
-
console.log(` ${c ? dim : ''}Melhor plano atual:${c ? reset : ''} ${c ? bestColor : ''}${pse.best_plan_current ? 'sim' : 'não'}${c ? reset : ''}`);
|
|
1832
|
-
}
|
|
1833
|
-
if (pse.confidence != null) {
|
|
1834
|
-
const confColor = report.planConfidenceExecutable
|
|
1835
|
-
? green
|
|
1836
|
-
: Number(pse.confidence) >= Math.max(80, threshold - 10)
|
|
1837
|
-
? yellow
|
|
1838
|
-
: red;
|
|
1839
|
-
console.log(` ${c ? dim : ''}Confiança:${c ? reset : ''} ${c ? confColor : ''}${pse.confidence}%${c ? reset : ''}`);
|
|
1840
|
-
console.log(` ${c ? dim : ''}Gate executável:${c ? reset : ''} > ${threshold}%${pse.executable ? ' (atingido)' : ' (ainda não atingido)'}`);
|
|
1841
|
-
}
|
|
1842
|
-
}
|
|
1833
|
+
if (!packageMode && report.planSelfEvaluation) {
|
|
1834
|
+
const pse = report.planSelfEvaluation;
|
|
1835
|
+
const threshold = report.planConfidenceThreshold || 90;
|
|
1836
|
+
console.log(`\n ${c ? yellow : ''}Autoavaliação do plano${c ? reset : ''}`);
|
|
1837
|
+
if (pse.best_plan_current != null) {
|
|
1838
|
+
const bestColor = pse.best_plan_current ? green : red;
|
|
1839
|
+
console.log(` ${c ? dim : ''}Melhor plano atual:${c ? reset : ''} ${c ? bestColor : ''}${pse.best_plan_current ? 'sim' : 'não'}${c ? reset : ''}`);
|
|
1840
|
+
}
|
|
1841
|
+
if (pse.confidence != null) {
|
|
1842
|
+
const confColor = report.planConfidenceExecutable
|
|
1843
|
+
? green
|
|
1844
|
+
: Number(pse.confidence) >= Math.max(80, threshold - 10)
|
|
1845
|
+
? yellow
|
|
1846
|
+
: red;
|
|
1847
|
+
console.log(` ${c ? dim : ''}Confiança:${c ? reset : ''} ${c ? confColor : ''}${pse.confidence}%${c ? reset : ''}`);
|
|
1848
|
+
console.log(` ${c ? dim : ''}Gate executável:${c ? reset : ''} > ${threshold}%${pse.executable ? ' (atingido)' : ' (ainda não atingido)'}`);
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1843
1851
|
|
|
1844
1852
|
console.log(`\n ${c ? dim : ''}Próximo passo:${c ? reset : ''} ${c ? cyan : ''}${report.next && report.next.cursorCmd ? report.next.cursorCmd : '—'}${c ? reset : ''}`);
|
|
1845
1853
|
console.log(` ${c ? dim : ''}Motivo:${c ? reset : ''} ${report.next && report.next.reason ? report.next.reason : '—'}`);
|
|
@@ -1858,13 +1866,13 @@ function runStatus(target, opts = {}) {
|
|
|
1858
1866
|
const next = report.next;
|
|
1859
1867
|
|
|
1860
1868
|
if (opts.json) {
|
|
1861
|
-
/** @type {Record<string, unknown>} */
|
|
1862
|
-
const payload = {
|
|
1863
|
-
oxeStatusSchema: 5,
|
|
1864
|
-
projectRoot: path.resolve(target),
|
|
1865
|
-
workspaceMode: report.workspaceMode || 'oxe_project',
|
|
1866
|
-
releaseReadiness: report.releaseReadiness || null,
|
|
1867
|
-
nextStep: report.next.step,
|
|
1869
|
+
/** @type {Record<string, unknown>} */
|
|
1870
|
+
const payload = {
|
|
1871
|
+
oxeStatusSchema: 5,
|
|
1872
|
+
projectRoot: path.resolve(target),
|
|
1873
|
+
workspaceMode: report.workspaceMode || 'oxe_project',
|
|
1874
|
+
releaseReadiness: report.releaseReadiness || null,
|
|
1875
|
+
nextStep: report.next.step,
|
|
1868
1876
|
cursorCmd: report.next.cursorCmd,
|
|
1869
1877
|
reason: report.next.reason,
|
|
1870
1878
|
artifacts: report.next.artifacts,
|
|
@@ -1873,18 +1881,18 @@ function runStatus(target, opts = {}) {
|
|
|
1873
1881
|
activeSession: report.activeSession,
|
|
1874
1882
|
scanDate: report.scanDate,
|
|
1875
1883
|
staleScan: report.stale,
|
|
1876
|
-
compactDate: report.compactDate,
|
|
1877
|
-
staleCompact: report.staleCompact,
|
|
1878
|
-
planSelfEvaluation: report.planSelfEvaluation,
|
|
1879
|
-
planConfidenceThreshold: report.planConfidenceThreshold,
|
|
1880
|
-
planConfidenceExecutable: report.planConfidenceExecutable,
|
|
1881
|
-
implementationPackReady: report.implementationPackReady,
|
|
1882
|
-
referenceAnchorsReady: report.referenceAnchorsReady,
|
|
1883
|
-
fixturePackReady: report.fixturePackReady,
|
|
1884
|
-
executionRationalityReady: report.executionRationalityReady,
|
|
1885
|
-
criticalExecutionGaps: report.criticalExecutionGaps,
|
|
1886
|
-
executionRationality: report.executionRationality,
|
|
1887
|
-
planReviewStatus: report.planReviewStatus,
|
|
1884
|
+
compactDate: report.compactDate,
|
|
1885
|
+
staleCompact: report.staleCompact,
|
|
1886
|
+
planSelfEvaluation: report.planSelfEvaluation,
|
|
1887
|
+
planConfidenceThreshold: report.planConfidenceThreshold,
|
|
1888
|
+
planConfidenceExecutable: report.planConfidenceExecutable,
|
|
1889
|
+
implementationPackReady: report.implementationPackReady,
|
|
1890
|
+
referenceAnchorsReady: report.referenceAnchorsReady,
|
|
1891
|
+
fixturePackReady: report.fixturePackReady,
|
|
1892
|
+
executionRationalityReady: report.executionRationalityReady,
|
|
1893
|
+
criticalExecutionGaps: report.criticalExecutionGaps,
|
|
1894
|
+
executionRationality: report.executionRationality,
|
|
1895
|
+
planReviewStatus: report.planReviewStatus,
|
|
1888
1896
|
activeRun: report.activeRun,
|
|
1889
1897
|
eventsSummary: report.eventsSummary,
|
|
1890
1898
|
runtimeMode: report.runtimeMode,
|
|
@@ -1909,6 +1917,7 @@ function runStatus(target, opts = {}) {
|
|
|
1909
1917
|
azureActive: report.azureActive,
|
|
1910
1918
|
azure: report.azure,
|
|
1911
1919
|
copilot: report.copilot,
|
|
1920
|
+
codex: report.codex,
|
|
1912
1921
|
contextPacks: report.contextPacks,
|
|
1913
1922
|
contextQuality: report.contextQuality,
|
|
1914
1923
|
semanticsDrift: report.semanticsDrift,
|
|
@@ -1927,6 +1936,7 @@ function runStatus(target, opts = {}) {
|
|
|
1927
1936
|
sessionWarnings: report.sessionWarn,
|
|
1928
1937
|
installWarnings: report.installWarn,
|
|
1929
1938
|
copilotWarnings: report.copilotWarn,
|
|
1939
|
+
codexWarnings: report.codexWarn,
|
|
1930
1940
|
contextWarnings: report.contextWarn,
|
|
1931
1941
|
semanticsWarnings: report.semanticsWarn,
|
|
1932
1942
|
summaryGapWarning: report.summaryGapWarn,
|
|
@@ -1941,10 +1951,10 @@ function runStatus(target, opts = {}) {
|
|
|
1941
1951
|
return;
|
|
1942
1952
|
}
|
|
1943
1953
|
|
|
1944
|
-
printSection('OXE ▸ status');
|
|
1945
|
-
const c = useAnsiColors();
|
|
1946
|
-
console.log(` ${c ? green : ''}Projeto:${c ? reset : ''} ${c ? cyan : ''}${target}${c ? reset : ''}`);
|
|
1947
|
-
console.log(` ${c ? dim : ''}Workspace mode:${c ? reset : ''} ${report.workspaceMode || 'oxe_project'}`);
|
|
1954
|
+
printSection('OXE ▸ status');
|
|
1955
|
+
const c = useAnsiColors();
|
|
1956
|
+
console.log(` ${c ? green : ''}Projeto:${c ? reset : ''} ${c ? cyan : ''}${target}${c ? reset : ''}`);
|
|
1957
|
+
console.log(` ${c ? dim : ''}Workspace mode:${c ? reset : ''} ${report.workspaceMode || 'oxe_project'}`);
|
|
1948
1958
|
|
|
1949
1959
|
const wfTgt = oxeWorkflows.resolveWorkflowsDir(target);
|
|
1950
1960
|
if (!wfTgt) {
|
|
@@ -1962,6 +1972,8 @@ function runStatus(target, opts = {}) {
|
|
|
1962
1972
|
const _claudeLocal = path.join(target, 'commands', 'oxe');
|
|
1963
1973
|
const _claudeGlobal = path.join(require('os').homedir(), '.claude', 'commands');
|
|
1964
1974
|
ideStatusLines.push(`Claude Code ${fs.existsSync(_claudeLocal) || fs.existsSync(_claudeGlobal) ? (c ? green + '✓' + reset : '✓') : (c ? dim + '✗' + reset : '✗')}`);
|
|
1975
|
+
const _codex = report.codex || oxeHealth.codexIntegrationReport(target);
|
|
1976
|
+
ideStatusLines.push(`Codex ${_codex.commandsReady ? (c ? green + '✓' + reset : '✓') : (c ? dim + '✗' + reset : '✗')}`);
|
|
1965
1977
|
console.log(`\n ${c ? dim : ''}IDEs:${c ? reset : ''} ${ideStatusLines.join(' ')}`);
|
|
1966
1978
|
|
|
1967
1979
|
// Gates pending in default view
|
|
@@ -1975,24 +1987,24 @@ function runStatus(target, opts = {}) {
|
|
|
1975
1987
|
}
|
|
1976
1988
|
|
|
1977
1989
|
// Explicit blockage diagnosis
|
|
1978
|
-
const packageMode = report.workspaceMode === 'product_package';
|
|
1979
|
-
const specMissing = !fs.existsSync(path.join(target, '.oxe', 'SPEC.md'));
|
|
1980
|
-
const planMissing = !fs.existsSync(path.join(target, '.oxe', 'PLAN.md'));
|
|
1981
|
-
const verifyMissing = !fs.existsSync(path.join(target, '.oxe', 'VERIFY.md'));
|
|
1982
|
-
if (packageMode) {
|
|
1983
|
-
const releaseReadiness = report.releaseReadiness || { ok: false, blockers: [], warnings: [] };
|
|
1984
|
-
if (!releaseReadiness.ok && Array.isArray(releaseReadiness.blockers) && releaseReadiness.blockers.length) {
|
|
1985
|
-
console.log(` ${c ? yellow : ''}⚠ Release blockers:${c ? reset : ''} ${releaseReadiness.blockers[0]}`);
|
|
1986
|
-
} else if (Array.isArray(releaseReadiness.warnings) && releaseReadiness.warnings.length) {
|
|
1987
|
-
console.log(` ${c ? dim : ''}Obs.:${c ? reset : ''} release warnings ativas — ${releaseReadiness.warnings[0]}`);
|
|
1988
|
-
}
|
|
1989
|
-
} else if (specMissing) {
|
|
1990
|
-
console.log(` ${c ? yellow : ''}⚠ Bloqueio:${c ? reset : ''} SPEC.md ausente — rode ${c ? cyan : ''}/oxe-spec${c ? reset : ''} antes de planejar`);
|
|
1991
|
-
} else if (planMissing) {
|
|
1992
|
-
console.log(` ${c ? yellow : ''}⚠ Bloqueio:${c ? reset : ''} PLAN.md ausente — rode ${c ? cyan : ''}/oxe-plan${c ? reset : ''}`);
|
|
1993
|
-
} else if (verifyMissing && !planMissing) {
|
|
1994
|
-
console.log(` ${c ? dim : ''}Obs.:${c ? reset : ''} VERIFY.md ainda não gerado — rode ${c ? cyan : ''}/oxe-verify${c ? reset : ''} após executar`);
|
|
1995
|
-
}
|
|
1990
|
+
const packageMode = report.workspaceMode === 'product_package';
|
|
1991
|
+
const specMissing = !fs.existsSync(path.join(target, '.oxe', 'SPEC.md'));
|
|
1992
|
+
const planMissing = !fs.existsSync(path.join(target, '.oxe', 'PLAN.md'));
|
|
1993
|
+
const verifyMissing = !fs.existsSync(path.join(target, '.oxe', 'VERIFY.md'));
|
|
1994
|
+
if (packageMode) {
|
|
1995
|
+
const releaseReadiness = report.releaseReadiness || { ok: false, blockers: [], warnings: [] };
|
|
1996
|
+
if (!releaseReadiness.ok && Array.isArray(releaseReadiness.blockers) && releaseReadiness.blockers.length) {
|
|
1997
|
+
console.log(` ${c ? yellow : ''}⚠ Release blockers:${c ? reset : ''} ${releaseReadiness.blockers[0]}`);
|
|
1998
|
+
} else if (Array.isArray(releaseReadiness.warnings) && releaseReadiness.warnings.length) {
|
|
1999
|
+
console.log(` ${c ? dim : ''}Obs.:${c ? reset : ''} release warnings ativas — ${releaseReadiness.warnings[0]}`);
|
|
2000
|
+
}
|
|
2001
|
+
} else if (specMissing) {
|
|
2002
|
+
console.log(` ${c ? yellow : ''}⚠ Bloqueio:${c ? reset : ''} SPEC.md ausente — rode ${c ? cyan : ''}/oxe-spec${c ? reset : ''} antes de planejar`);
|
|
2003
|
+
} else if (planMissing) {
|
|
2004
|
+
console.log(` ${c ? yellow : ''}⚠ Bloqueio:${c ? reset : ''} PLAN.md ausente — rode ${c ? cyan : ''}/oxe-plan${c ? reset : ''}`);
|
|
2005
|
+
} else if (verifyMissing && !planMissing) {
|
|
2006
|
+
console.log(` ${c ? dim : ''}Obs.:${c ? reset : ''} VERIFY.md ainda não gerado — rode ${c ? cyan : ''}/oxe-verify${c ? reset : ''} após executar`);
|
|
2007
|
+
}
|
|
1996
2008
|
|
|
1997
2009
|
if (opts.hints) {
|
|
1998
2010
|
console.log(`\n ${c ? cyan : ''}Lembretes (rotina OXE)${reset}`);
|
|
@@ -2195,6 +2207,9 @@ function runDoctor(target, options = {}) {
|
|
|
2195
2207
|
const claudeReady = fs.existsSync(claudeLocalDir) || fs.existsSync(claudeGlobalDir);
|
|
2196
2208
|
ideChecks.push({ label: 'Claude Code', ready: claudeReady, hint: 'commands/oxe/ ou ~/.claude/commands/' });
|
|
2197
2209
|
|
|
2210
|
+
const codexReport = oxeHealth.codexIntegrationReport(target);
|
|
2211
|
+
ideChecks.push({ label: 'Codex', ready: codexReport.commandsReady, hint: '~/.codex/prompts/oxe.md' });
|
|
2212
|
+
|
|
2198
2213
|
for (const ide of ideChecks) {
|
|
2199
2214
|
if (ide.ready) {
|
|
2200
2215
|
console.log(`${c ? green : ''}OK${c ? reset : ''} ${ide.label} pronto (${ide.hint})`);
|
|
@@ -2733,6 +2748,10 @@ function runInstall(opts) {
|
|
|
2733
2748
|
if (fs.existsSync(personasSrc)) {
|
|
2734
2749
|
copyDir(personasSrc, path.join(nested, 'personas'), copyOpts, false);
|
|
2735
2750
|
}
|
|
2751
|
+
const agentsSrc = path.join(PKG_ROOT, 'oxe', 'agents');
|
|
2752
|
+
if (fs.existsSync(agentsSrc)) {
|
|
2753
|
+
copyDir(agentsSrc, path.join(nested, 'agents'), copyOpts, false);
|
|
2754
|
+
}
|
|
2736
2755
|
// Schemas: copiar para .oxe/schemas/ (ex.: plan-agents.schema.json para validação local)
|
|
2737
2756
|
const schemasSrc = path.join(PKG_ROOT, 'oxe', 'schemas');
|
|
2738
2757
|
if (fs.existsSync(schemasSrc)) {
|
|
@@ -2751,6 +2770,7 @@ function runInstall(opts) {
|
|
|
2751
2770
|
const doAgentClis = opts.copilotCli || opts.allAgents;
|
|
2752
2771
|
if (doAgentClis) {
|
|
2753
2772
|
const cCmd = path.join(PKG_ROOT, '.cursor', 'commands');
|
|
2773
|
+
const canonicalAgents = path.join(PKG_ROOT, 'oxe', 'agents');
|
|
2754
2774
|
const clBase = installClaudeBase(opts);
|
|
2755
2775
|
const cpHome = installCopilotCliHome(opts);
|
|
2756
2776
|
const clDest = path.join(clBase, 'commands');
|
|
@@ -2763,12 +2783,20 @@ function runInstall(opts) {
|
|
|
2763
2783
|
installOxeCopilotCliSkills(cCmd, cpHome, copyOpts, idePathRewrite);
|
|
2764
2784
|
copyDir(cCmd, clDest, copyOpts, idePathRewrite);
|
|
2765
2785
|
copyDir(cCmd, cpCmdDest, copyOpts, idePathRewrite);
|
|
2786
|
+
if (fs.existsSync(canonicalAgents)) {
|
|
2787
|
+
oxeAgentInstall.installCanonicalAgentMarkdowns(
|
|
2788
|
+
canonicalAgents,
|
|
2789
|
+
agentPaths.claudeAgentsDir,
|
|
2790
|
+
copyOpts
|
|
2791
|
+
);
|
|
2792
|
+
}
|
|
2766
2793
|
} else {
|
|
2767
2794
|
console.warn(`${yellow}aviso:${reset} pasta ausente ${cCmd} — ignorando comandos CLI`);
|
|
2768
2795
|
}
|
|
2769
2796
|
}
|
|
2770
2797
|
|
|
2771
2798
|
const cCmdAgents = path.join(PKG_ROOT, '.cursor', 'commands');
|
|
2799
|
+
const canonicalAgents = path.join(PKG_ROOT, 'oxe', 'agents');
|
|
2772
2800
|
if (fs.existsSync(cCmdAgents) && (opts.allAgents || anyGranularAgent(opts))) {
|
|
2773
2801
|
const logO = (d) => console.log(`${dim}omitido${reset} ${d} (já existe — use --force)`);
|
|
2774
2802
|
const logW = (msg) => console.log(`${dim}agents${reset} ${msg}`);
|
|
@@ -2796,6 +2824,13 @@ function runInstall(opts) {
|
|
|
2796
2824
|
logO,
|
|
2797
2825
|
logW
|
|
2798
2826
|
);
|
|
2827
|
+
oxeAgentInstall.installCanonicalAgentSkills(
|
|
2828
|
+
canonicalAgents,
|
|
2829
|
+
agentPaths.antigravitySkillsRoot,
|
|
2830
|
+
copyOpts,
|
|
2831
|
+
logO,
|
|
2832
|
+
logW
|
|
2833
|
+
);
|
|
2799
2834
|
}
|
|
2800
2835
|
if (opts.agentCodex || opts.allAgents) {
|
|
2801
2836
|
oxeAgentInstall.installSkillTreeFromCursorCommands(
|
|
@@ -2806,6 +2841,13 @@ function runInstall(opts) {
|
|
|
2806
2841
|
logO,
|
|
2807
2842
|
logW
|
|
2808
2843
|
);
|
|
2844
|
+
oxeAgentInstall.installCanonicalAgentSkills(
|
|
2845
|
+
canonicalAgents,
|
|
2846
|
+
agentPaths.codexAgentsSkillsRoot,
|
|
2847
|
+
copyOpts,
|
|
2848
|
+
logO,
|
|
2849
|
+
logW
|
|
2850
|
+
);
|
|
2809
2851
|
}
|
|
2810
2852
|
}
|
|
2811
2853
|
|
|
@@ -2900,6 +2942,7 @@ function runInstall(opts) {
|
|
|
2900
2942
|
trackFile(runtimeSemanticsManifestPath(opts));
|
|
2901
2943
|
if (opts.copilotCli || opts.allAgents) {
|
|
2902
2944
|
addTracked(path.join(installClaudeBase(opts), 'commands'), (n) => oxeAgentInstall.isOxeCommandMarkdownName(n));
|
|
2945
|
+
addTracked(agentPaths.claudeAgentsDir, (n) => oxeAgentInstall.isOxeAgentMarkdownName(n));
|
|
2903
2946
|
addTracked(path.join(cpCliHome, 'commands'), (n) => oxeAgentInstall.isOxeCommandMarkdownName(n));
|
|
2904
2947
|
const skRoot = path.join(cpCliHome, 'skills');
|
|
2905
2948
|
if (fs.existsSync(skRoot)) {
|
|
@@ -3048,6 +3091,16 @@ function uninstallLocalIdeFromProject(u, removedPaths) {
|
|
|
3048
3091
|
}
|
|
3049
3092
|
}
|
|
3050
3093
|
}
|
|
3094
|
+
const claudeAgentsDir = path.join(proj, '.claude', 'agents');
|
|
3095
|
+
if (fs.existsSync(claudeAgentsDir)) {
|
|
3096
|
+
for (const name of fs.readdirSync(claudeAgentsDir)) {
|
|
3097
|
+
if (oxeAgentInstall.isOxeAgentMarkdownName(name)) {
|
|
3098
|
+
const p = path.join(claudeAgentsDir, name);
|
|
3099
|
+
unlinkQuiet(p, u);
|
|
3100
|
+
track(p);
|
|
3101
|
+
}
|
|
3102
|
+
}
|
|
3103
|
+
}
|
|
3051
3104
|
const skillsRoot = path.join(proj, '.copilot', 'skills');
|
|
3052
3105
|
if (fs.existsSync(skillsRoot)) {
|
|
3053
3106
|
for (const ent of fs.readdirSync(skillsRoot, { withFileTypes: true })) {
|
|
@@ -3383,6 +3436,16 @@ function runUninstall(u) {
|
|
|
3383
3436
|
}
|
|
3384
3437
|
}
|
|
3385
3438
|
}
|
|
3439
|
+
const claudeAgentsDir = path.join(claudeUserDir(ideOpts), 'agents');
|
|
3440
|
+
if (fs.existsSync(claudeAgentsDir)) {
|
|
3441
|
+
for (const name of fs.readdirSync(claudeAgentsDir)) {
|
|
3442
|
+
if (oxeAgentInstall.isOxeAgentMarkdownName(name)) {
|
|
3443
|
+
const p = path.join(claudeAgentsDir, name);
|
|
3444
|
+
unlinkQuiet(p, u);
|
|
3445
|
+
removedPaths.push(p);
|
|
3446
|
+
}
|
|
3447
|
+
}
|
|
3448
|
+
}
|
|
3386
3449
|
const skillsRoot = path.join(copilotUserDir(ideOpts), 'skills');
|
|
3387
3450
|
if (fs.existsSync(skillsRoot)) {
|
|
3388
3451
|
for (const ent of fs.readdirSync(skillsRoot, { withFileTypes: true })) {
|
|
@@ -4533,6 +4596,35 @@ async function runRuntime(opts) {
|
|
|
4533
4596
|
}
|
|
4534
4597
|
}
|
|
4535
4598
|
|
|
4599
|
+
if (opts.action === 'execute') {
|
|
4600
|
+
try {
|
|
4601
|
+
const result = await oxeOperational.runRuntimeExecute(opts.dir, activeSession, {
|
|
4602
|
+
runId: opts.runId || undefined,
|
|
4603
|
+
heartbeatTimeoutMs: opts.heartbeatTimeoutMs || undefined,
|
|
4604
|
+
});
|
|
4605
|
+
if (opts.jsonOutput) {
|
|
4606
|
+
console.log(JSON.stringify(result, null, 2));
|
|
4607
|
+
if (result.result && result.result.failed && result.result.failed.length > 0) process.exitCode = 1;
|
|
4608
|
+
return;
|
|
4609
|
+
}
|
|
4610
|
+
const r = result.result || {};
|
|
4611
|
+
const completed = Array.isArray(r.completed) ? r.completed : [];
|
|
4612
|
+
const failed = Array.isArray(r.failed) ? r.failed : [];
|
|
4613
|
+
const blocked = Array.isArray(r.blocked) ? r.blocked : [];
|
|
4614
|
+
console.log(` ${c ? green : ''}✓${c ? reset : ''} Runtime execute concluído (modo: ${result.mode})`);
|
|
4615
|
+
console.log(` ${c ? green : ''}Completados:${c ? reset : ''} ${completed.length}`);
|
|
4616
|
+
if (failed.length > 0)
|
|
4617
|
+
console.log(` ${c ? red : ''}Falhos:${c ? reset : ''} ${failed.length} — ${failed.join(', ')}`);
|
|
4618
|
+
if (blocked.length > 0)
|
|
4619
|
+
console.log(` ${c ? '\x1b[33m' : ''}Bloqueados:${c ? reset : ''} ${blocked.length} — ${blocked.join(', ')}`);
|
|
4620
|
+
if (failed.length > 0) process.exitCode = 1;
|
|
4621
|
+
return;
|
|
4622
|
+
} catch (err) {
|
|
4623
|
+
console.error(`${red}${err && err.message ? err.message : 'Falha ao executar runtime.'}${reset}`);
|
|
4624
|
+
process.exit(1);
|
|
4625
|
+
}
|
|
4626
|
+
}
|
|
4627
|
+
|
|
4536
4628
|
if (opts.action === 'ci') {
|
|
4537
4629
|
try {
|
|
4538
4630
|
const report = await oxeOperational.runRuntimeCiChecks(opts.dir, activeSession, {
|
package/commands/oxe/debug.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:debug
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Diagnóstica falhas com metodologia RCA: hipóteses explícitas → evidência → reprodução controlada
|
|
5
|
+
→ causa raiz → hotfix mínimo. Não corrige sintomas — rasteia até a causa raiz antes de propor
|
|
6
|
+
qualquer mudança. Documenta o diagnóstico completo em DEBUG.md (sintoma, hipóteses testadas,
|
|
7
|
+
root cause, hotfix aplicado, evidência de resolução). Após o hotfix, orienta execução de
|
|
8
|
+
/oxe-verify para confirmar que os critérios A* afetados ainda passam.
|
|
4
9
|
argument-hint: "[Tn ou erro/stack]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
package/commands/oxe/discuss.md
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:discuss
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Conduz sessão estruturada de resolução de decisões técnicas antes do planejamento. Identifica
|
|
5
|
+
trade-offs relevantes, apresenta alternativas com critérios objetivos, registra a decisão
|
|
6
|
+
escolhida com motivo e impacto em DISCUSS.md como D-NN. Cada D-NN fechado aqui é vinculado a
|
|
7
|
+
tarefas Tn no PLAN.md e verificado pelo Verificador após execução. Usar quando: `discuss_before_plan`
|
|
8
|
+
está ativo no config, há decisão arquitetural aberta, ou o Arquiteto sinalizou bloqueio.
|
|
9
|
+
argument-hint: "[decisão a tomar | contexto do trade-off | D-NN a reabrir]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
|
7
12
|
- Bash
|
package/commands/oxe/execute.md
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:execute
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Executa as tarefas do PLAN.md onda por onda, com write set mínimo e verificação obrigatória
|
|
5
|
+
antes de avançar. Compila o grafo de execução via LlmTaskExecutor, respeita dependências entre
|
|
6
|
+
tarefas, particiona tools idempotentes (paralelas) e mutáveis (seriais), e registra evidência
|
|
7
|
+
auditável por Tn. Modo --debug ativa diagnóstico de falha inline. --checkpoint '<nome>' cria
|
|
8
|
+
ponto de restauração antes de ondas de alto risco.
|
|
9
|
+
argument-hint: "[onda|Tn | --debug | --deep-diagnosis | --checkpoint '<nome>' | --note 'texto' | --iterative]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
|
7
12
|
- Bash
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:plan-agent
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Gera PLAN.md e plan-agents.json — blueprint de execução multi-agente com ondas paralelas.
|
|
5
|
+
Cada agente recebe persona (executor, db-specialist, ui-specialist, etc.), escopo de tarefas,
|
|
6
|
+
dependências entre agentes e lifecycle state rastreável. Ideal para planos com 3+ domínios
|
|
7
|
+
distintos (backend, frontend, banco) onde paralelismo real de agentes é possível. --replan
|
|
8
|
+
regenera o runId, preserva tarefas concluídas e alinha STATE.md.
|
|
9
|
+
argument-hint: "[--replan | <contexto adicional de domínios>]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
|
7
12
|
- Write
|
package/commands/oxe/plan.md
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:plan
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Decompõe os critérios A* da SPEC em tarefas GraphNode com mutation_scope explícito, action_type
|
|
5
|
+
correto e verify command determinístico. Projeta ondas que maximizam paralelismo respeitando
|
|
6
|
+
dependências e mutation_scope disjunto. Aplica rubrica de confiança em 6 dimensões e quality gate
|
|
7
|
+
de 19 itens. Gera IMPLEMENTATION-PACK, REFERENCE-ANCHORS e FIXTURE-PACK junto com o PLAN.md.
|
|
8
|
+
--replan preserva histórico e atualiza tarefas sem apagar o trabalho anterior.
|
|
9
|
+
argument-hint: "[--replan | --agents (gera blueprint de agentes junto)]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
|
7
12
|
- Write
|
package/commands/oxe/scan.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:scan
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Analisa o codebase e produz os sete documentos em .oxe/codebase/ (OVERVIEW, STACK, STRUCTURE,
|
|
5
|
+
TESTING, INTEGRATIONS, CONVENTIONS, CONCERNS). Detecta padrão arquitetural dominante, domínios
|
|
6
|
+
funcionais e sugere profile scale-adaptive. Modo bootstrap (do zero) ou refresh (incremental).
|
|
7
|
+
Cada documento passa por gate de qualidade com critérios e anti-padrões por tipo. O mapa
|
|
8
|
+
resultante alimenta spec, plan e o contexto do LlmTaskExecutor.
|
|
4
9
|
argument-hint: "[área opcional, ex. auth, api]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
package/commands/oxe/spec.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:spec
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Conduz as 5 fases do processo de especificação: perguntas (blocos coesos por domínio), pesquisa
|
|
5
|
+
(investigação de incertezas técnicas), requisitos (tabela R-ID com v1/v2/fora e critérios A*
|
|
6
|
+
verificáveis), elevação de robustez (checklist de segurança por domínio AUTH/API/DB/FRONTEND/FILE),
|
|
7
|
+
e aprovação com roteiro ROADMAP.md. Flags: --refresh (atualiza codebase/ antes), --full (scan
|
|
8
|
+
completo), --research (Fase 2 explícita), --ui (gera UI-SPEC.md ao final).
|
|
4
9
|
argument-hint: "[descrição da feature | --refresh | --full | --research | --ui]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
package/commands/oxe/verify.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oxe:verify
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Audita a implementação em quatro camadas: pré-execução (ambiente e commits), por tarefa Tn
|
|
5
|
+
(verify command de cada task), por critério A* (cobertura completa da SPEC), e fidelidade de
|
|
6
|
+
decisões D-NN. Produz VERIFY.md com evidência observável por critério, classifica findings por
|
|
7
|
+
severidade, gera checklist UAT para validação humana, e fecha o ciclo com retro automática.
|
|
8
|
+
--security adiciona auditoria de segurança baseline. --gaps foca em A* sem cobertura.
|
|
4
9
|
argument-hint: "[Tn | --gaps | --security | --ui | --pr | --diff branchA...branchB | --skip-retro]"
|
|
5
10
|
allowed-tools:
|
|
6
11
|
- Read
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Content Migration Audit
|
|
2
|
+
|
|
3
|
+
Este documento registra a triagem interna de conteúdo usado como insumo para fortalecer o OXE. Ele não é instalado em projetos de usuário e não deve ser referenciado por templates, workflows, comandos, README ou agentes finais.
|
|
4
|
+
|
|
5
|
+
## Rules
|
|
6
|
+
|
|
7
|
+
- Public artifacts must use OXE naming, paths, commands and runtime contracts only.
|
|
8
|
+
- No public template/workflow/command/agent may reference legacy product names, paths, tool commands or command namespaces.
|
|
9
|
+
- Source material is reauthored, not copied literally.
|
|
10
|
+
|
|
11
|
+
## Templates
|
|
12
|
+
|
|
13
|
+
| Source theme | Decision | OXE target |
|
|
14
|
+
|--------------|----------|------------|
|
|
15
|
+
| Detailed phase plan contract | merge | `PLAN.template.md`, `IMPLEMENTATION-PACK.*`, `/oxe-plan` |
|
|
16
|
+
| Context and discovery templates | merge | context packs, `RESEARCH.template.md`, `INVESTIGATION.template.md`, `REFERENCE-ANCHORS.template.md` |
|
|
17
|
+
| Requirements, project, roadmap, state | merge | `SPEC.template.md`, `ROADMAP.template.md`, `STATE.md` |
|
|
18
|
+
| Validation, verification and UAT | merge | `/oxe-verify`, runtime evidence, `VERIFY.md` projection |
|
|
19
|
+
| UI contract | merge | `/oxe-spec --ui`, `/oxe-ui-spec`, `/oxe-ui-review` |
|
|
20
|
+
| Debug templates | merge | `/oxe-debug`, `/oxe-forensics`, `oxe-debugger` |
|
|
21
|
+
| Session summaries and setup | merge | `SUMMARY.template.md`, `RESUME.template.md`, checkpoints |
|
|
22
|
+
| Runtime-specific instruction files | inspiration_only | OXE multi-runtime generators |
|
|
23
|
+
| Developer profile/preferences | reject | future consented profile feature only |
|
|
24
|
+
|
|
25
|
+
## Workflows
|
|
26
|
+
|
|
27
|
+
| Source theme | Decision | OXE target |
|
|
28
|
+
|--------------|----------|------------|
|
|
29
|
+
| New project and milestone discovery | merge | `/oxe-spec`, `/oxe-plan` |
|
|
30
|
+
| Phase planning and review loop | merge | `/oxe-plan`, rationality gate |
|
|
31
|
+
| Plan execution by wave/task | merge | `/oxe-execute` |
|
|
32
|
+
| Verification, validation gaps and UAT | merge | `/oxe-verify` |
|
|
33
|
+
| Codebase mapping and research | merge | `/oxe-scan`, `/oxe-spec --research` |
|
|
34
|
+
| Debug and incident diagnosis | merge | `/oxe-debug`, `/oxe-forensics` |
|
|
35
|
+
| UI design and review | merge | `/oxe-spec --ui`, `/oxe-ui-review` |
|
|
36
|
+
| Progress, next, pause and resume | merge | `/oxe`, `/oxe-next`, `/oxe-session` |
|
|
37
|
+
| Workstreams and isolated workspace concepts | merge | `/oxe-workstream`, runtime agents |
|
|
38
|
+
| Autonomous workflow | reject | OXE keeps governed execution |
|
|
39
|
+
| PR branch/ship workflow | inspiration_only | OXE keeps local commit and separate `runtime promote` |
|
|
40
|
+
| Community/settings/update flows | reject | OXE already has administrative UX |
|
|
41
|
+
|
|
42
|
+
## Commands
|
|
43
|
+
|
|
44
|
+
Legacy command wrappers are not copied. They are used only as intent inventory and mapped into canonical OXE workflows before generated surfaces are regenerated.
|
|
45
|
+
|
|
46
|
+
## Agents
|
|
47
|
+
|
|
48
|
+
Specialized agents were reauthored as OXE-native contracts in `oxe/agents/`. They use `.oxe/`, OXE workflows, runtime enterprise, evidence store, personas and `plan-agents.json` only.
|
|
49
|
+
|