oxe-cc 1.6.0 → 1.7.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +5 -3
  3. package/bin/lib/oxe-agent-install.cjs +125 -24
  4. package/bin/lib/oxe-release.cjs +1 -0
  5. package/bin/oxe-cc.js +87 -39
  6. package/commands/oxe/debug.md +6 -1
  7. package/commands/oxe/discuss.md +7 -2
  8. package/commands/oxe/execute.md +7 -2
  9. package/commands/oxe/plan-agent.md +7 -2
  10. package/commands/oxe/plan.md +7 -2
  11. package/commands/oxe/scan.md +6 -1
  12. package/commands/oxe/spec.md +6 -1
  13. package/commands/oxe/verify.md +6 -1
  14. package/docs/CONTENT-MIGRATION-AUDIT.md +49 -0
  15. package/docs/RUNTIME-SMOKE-MATRIX.md +1 -1
  16. package/lib/runtime/compiler/graph-compiler.js +32 -0
  17. package/lib/runtime/context/context-pack-builder.d.ts +15 -0
  18. package/lib/runtime/context/context-pack-builder.js +78 -0
  19. package/lib/runtime/events/catalog.d.ts +1 -1
  20. package/lib/runtime/events/catalog.js +5 -0
  21. package/lib/runtime/executor/action-tool-map.d.ts +3 -0
  22. package/lib/runtime/executor/action-tool-map.js +41 -0
  23. package/lib/runtime/executor/built-in-tools.d.ts +8 -0
  24. package/lib/runtime/executor/built-in-tools.js +267 -0
  25. package/lib/runtime/executor/index.d.ts +6 -0
  26. package/lib/runtime/executor/index.js +12 -0
  27. package/lib/runtime/executor/llm-task-executor.d.ts +29 -0
  28. package/lib/runtime/executor/llm-task-executor.js +138 -0
  29. package/lib/runtime/executor/node-prompt-builder.d.ts +3 -0
  30. package/lib/runtime/executor/node-prompt-builder.js +36 -0
  31. package/lib/runtime/executor/stream-completion.d.ts +38 -0
  32. package/lib/runtime/executor/stream-completion.js +105 -0
  33. package/lib/runtime/index.d.ts +1 -0
  34. package/lib/runtime/index.js +2 -0
  35. package/lib/runtime/models/failure.d.ts +5 -0
  36. package/lib/runtime/models/failure.js +2 -0
  37. package/lib/runtime/plugins/capability-adapter.d.ts +9 -0
  38. package/lib/runtime/plugins/capability-adapter.js +111 -8
  39. package/lib/runtime/plugins/plugin-abi.d.ts +8 -0
  40. package/lib/runtime/plugins/plugin-registry.d.ts +2 -1
  41. package/lib/runtime/plugins/plugin-registry.js +6 -1
  42. package/lib/runtime/reducers/run-state-reducer.js +39 -2
  43. package/lib/runtime/scheduler/scheduler.d.ts +14 -2
  44. package/lib/runtime/scheduler/scheduler.js +131 -11
  45. package/lib/runtime/verification/verification-manifest.d.ts +5 -2
  46. package/oxe/agents/oxe-assumptions-analyzer.md +136 -0
  47. package/oxe/agents/oxe-codebase-mapper.md +142 -0
  48. package/oxe/agents/oxe-debugger.md +145 -0
  49. package/oxe/agents/oxe-executor.md +139 -0
  50. package/oxe/agents/oxe-integration-checker.md +142 -0
  51. package/oxe/agents/oxe-plan-checker.md +143 -0
  52. package/oxe/agents/oxe-planner.md +151 -0
  53. package/oxe/agents/oxe-research-synthesizer.md +146 -0
  54. package/oxe/agents/oxe-researcher.md +163 -0
  55. package/oxe/agents/oxe-ui-auditor.md +151 -0
  56. package/oxe/agents/oxe-ui-checker.md +157 -0
  57. package/oxe/agents/oxe-ui-researcher.md +179 -0
  58. package/oxe/agents/oxe-validation-auditor.md +154 -0
  59. package/oxe/agents/oxe-verifier.md +132 -0
  60. package/oxe/personas/README.md +91 -39
  61. package/oxe/personas/architect.md +149 -37
  62. package/oxe/personas/db-specialist.md +149 -36
  63. package/oxe/personas/debugger.md +155 -38
  64. package/oxe/personas/executor.md +164 -38
  65. package/oxe/personas/planner.md +165 -36
  66. package/oxe/personas/researcher.md +148 -35
  67. package/oxe/personas/ui-specialist.md +164 -36
  68. package/oxe/personas/verifier.md +174 -39
  69. package/oxe/templates/FIXTURE-PACK.template.json +18 -11
  70. package/oxe/templates/FIXTURE-PACK.template.md +19 -10
  71. package/oxe/templates/IMPLEMENTATION-PACK.template.json +26 -10
  72. package/oxe/templates/IMPLEMENTATION-PACK.template.md +32 -20
  73. package/oxe/templates/PLAN.template.md +62 -31
  74. package/oxe/templates/REFERENCE-ANCHORS.template.md +14 -10
  75. package/oxe/templates/SUMMARY.template.md +50 -20
  76. package/oxe/workflows/debug.md +9 -7
  77. package/oxe/workflows/execute.md +11 -8
  78. package/oxe/workflows/forensics.md +5 -3
  79. package/oxe/workflows/plan.md +277 -0
  80. package/oxe/workflows/scan.md +355 -69
  81. package/oxe/workflows/spec.md +302 -9
  82. package/oxe/workflows/ui-review.md +5 -4
  83. package/oxe/workflows/ui-spec.md +4 -3
  84. package/oxe/workflows/verify.md +8 -5
  85. package/package.json +1 -1
  86. package/packages/runtime/package.json +1 -1
  87. package/packages/runtime/src/compiler/graph-compiler.ts +40 -0
  88. package/packages/runtime/src/context/context-pack-builder.ts +80 -0
  89. package/packages/runtime/src/events/catalog.ts +5 -0
  90. package/packages/runtime/src/executor/action-tool-map.ts +46 -0
  91. package/packages/runtime/src/executor/built-in-tools.ts +276 -0
  92. package/packages/runtime/src/executor/index.ts +6 -0
  93. package/packages/runtime/src/executor/llm-task-executor.ts +194 -0
  94. package/packages/runtime/src/executor/node-prompt-builder.ts +45 -0
  95. package/packages/runtime/src/executor/stream-completion.ts +145 -0
  96. package/packages/runtime/src/index.ts +3 -0
  97. package/packages/runtime/src/models/failure.ts +11 -0
  98. package/packages/runtime/src/plugins/capability-adapter.ts +117 -10
  99. package/packages/runtime/src/plugins/plugin-abi.ts +9 -0
  100. package/packages/runtime/src/plugins/plugin-registry.ts +10 -1
  101. package/packages/runtime/src/reducers/run-state-reducer.ts +59 -2
  102. package/packages/runtime/src/scheduler/scheduler.ts +152 -14
  103. package/packages/runtime/src/verification/verification-manifest.ts +12 -8
  104. package/vscode-extension/oxe-agents-1.7.0.vsix +0 -0
  105. package/vscode-extension/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@ Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudança
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.7.0] — 2026-04-23
8
+
9
+ ### OXE-native Agent Catalog
10
+
11
+ - adicionada a fonte canónica `oxe/agents/` com agentes especializados para plan, execute, verify, debug, research, codebase mapping, integração, validação e UI
12
+ - o instalador multi-runtime agora distribui agentes OXE para Claude Code (`.claude/agents`) e Codex/Antigravity (`.agents/skills` / skills compatíveis), além dos comandos já existentes
13
+ - uninstall e smoke matrix passaram a validar e remover os agentes gerados pelo OXE
14
+
15
+ ### Rational Execution Artifacts
16
+
17
+ - templates de `PLAN`, `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS`, `FIXTURE-PACK` e `SUMMARY` foram endurecidos com contratos goal-backward, write-set, símbolos, sequência mínima, rollback, fixtures e evidência
18
+ - `/oxe-plan`, `/oxe-execute`, `/oxe-verify`, `/oxe-debug`, `/oxe-forensics`, `/oxe-ui-spec` e `/oxe-ui-review` agora referenciam explicitamente os agentes e gates racionais compatíveis com runtime enterprise
19
+
20
+ ### Public Surface Hygiene
21
+
22
+ - `scan:assets` agora bloqueia referências públicas a namespaces, paths e nomes de origem legada
23
+ - criado `docs/CONTENT-MIGRATION-AUDIT.md` como trilha interna de incorporação, sem exposição nas superfícies instaladas
24
+
7
25
  ## [1.6.0] — 2026-04-23
8
26
 
9
27
  ### Product Reconciliation
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![npm](https://img.shields.io/npm/v/oxe-cc.svg?style=flat-square)](https://www.npmjs.com/package/oxe-cc)
8
8
  [![license](https://img.shields.io/npm/l/oxe-cc.svg?style=flat-square)](LICENSE)
9
9
 
10
- **Versão:** `1.6.0` · [package.json](package.json)
10
+ **Versão:** `1.7.0` · [package.json](package.json)
11
11
 
12
12
  **Framework OXE — Orchestrated eXperience Engineering**
13
13
 
@@ -52,7 +52,7 @@ O OXE agora distingue cinco famílias de raciocínio:
52
52
  - `review` — findings primeiro, severidade, evidência e risco residual
53
53
  - `status` — leitura curta do estado, recomendação única e motivo
54
54
 
55
- Essas regras vivem no núcleo canónico em `oxe/workflows/references/reasoning-*.md`, sobem para os workflows em `oxe/workflows/` e são renderizadas para cada runtime em `.github/prompts/`, `.cursor/commands/`, `commands/oxe/`, `.codex/prompts/` e skills multiagente. Nesta linha, `oxe/workflows/**` e `workflow-runtime-contracts.json` voltam a ser o contrato obrigatório da release; superfícies geradas permanecem derivadas e sincronizadas.
55
+ Essas regras vivem no núcleo canónico em `oxe/workflows/references/reasoning-*.md`, sobem para os workflows em `oxe/workflows/` e são renderizadas para cada runtime em `.github/prompts/`, `.cursor/commands/`, `commands/oxe/`, `.codex/prompts/` e skills multiagente. Agentes especializados vivem em `oxe/agents/` e são instalados como agentes/skills OXE-native quando o runtime suporta esse conceito. Nesta linha, `oxe/workflows/**`, `oxe/agents/**` e `workflow-runtime-contracts.json` são contratos obrigatórios da release; superfícies geradas permanecem derivadas e sincronizadas.
56
56
 
57
57
  ---
58
58
 
@@ -536,7 +536,9 @@ npx oxe-cc@latest
536
536
 
537
537
  </details>
538
538
 
539
- GitHub Copilot no VS Code é **workspace-first**: o OXE instala prompt files em `.github/prompts/*.prompt.md` e mescla instruções em `.github/copilot-instructions.md`. `~/.copilot/` fica reservado ao legado detectável e ao runtime do Copilot CLI.
539
+ GitHub Copilot no VS Code é **workspace-first**: o OXE instala prompt files em `.github/prompts/*.prompt.md` e mescla instruções em `.github/copilot-instructions.md`. `~/.copilot/` fica reservado ao legado detectável e ao runtime do Copilot CLI.
540
+
541
+ Claude Code recebe comandos em `.claude/commands` e agentes especializados em `.claude/agents`. Codex recebe prompts em `.codex/prompts` e skills OXE em `.agents/skills`, incluindo os agentes especializados derivados de `oxe/agents/`.
540
542
 
541
543
  <details>
542
544
  <summary><strong>Atualizar e desinstalar</strong></summary>
@@ -34,10 +34,11 @@ function expandTilde(p) {
34
34
  * opencodeCommandDirs: string[],
35
35
  * geminiCommandsBase: string,
36
36
  * windsurfWorkflowsDir: string,
37
- * codexPromptsDir: string,
38
- * codexAgentsSkillsRoot: string,
39
- * antigravitySkillsRoot: string,
40
- * }} AgentInstallPaths
37
+ * codexPromptsDir: string,
38
+ * codexAgentsSkillsRoot: string,
39
+ * antigravitySkillsRoot: string,
40
+ * claudeAgentsDir: string,
41
+ * }} AgentInstallPaths
41
42
  */
42
43
 
43
44
  /**
@@ -56,21 +57,23 @@ function buildAgentInstallPaths(ideGlobal, projectRoot) {
56
57
  opencodeCommandDirs: [path.join(xdg, 'opencode', 'commands'), path.join(home, '.opencode', 'commands')],
57
58
  geminiCommandsBase: path.join(home, '.gemini', 'commands'),
58
59
  windsurfWorkflowsDir: path.join(home, '.codeium', 'windsurf', 'global_workflows'),
59
- codexPromptsDir: path.join(codexHome, 'prompts'),
60
- codexAgentsSkillsRoot: path.join(home, '.agents', 'skills'),
61
- antigravitySkillsRoot: path.join(home, '.gemini', 'antigravity', 'skills'),
62
- };
63
- }
60
+ codexPromptsDir: path.join(codexHome, 'prompts'),
61
+ codexAgentsSkillsRoot: path.join(home, '.agents', 'skills'),
62
+ antigravitySkillsRoot: path.join(home, '.gemini', 'antigravity', 'skills'),
63
+ claudeAgentsDir: path.join(home, '.claude', 'agents'),
64
+ };
65
+ }
64
66
  return {
65
67
  ideGlobal: false,
66
68
  opencodeCommandDirs: [path.join(root, '.opencode', 'commands')],
67
69
  geminiCommandsBase: path.join(root, '.gemini', 'commands'),
68
70
  windsurfWorkflowsDir: path.join(root, '.windsurf', 'global_workflows'),
69
- codexPromptsDir: path.join(root, '.codex', 'prompts'),
70
- codexAgentsSkillsRoot: path.join(root, '.agents', 'skills'),
71
- antigravitySkillsRoot: path.join(root, '.gemini', 'antigravity', 'skills'),
72
- };
73
- }
71
+ codexPromptsDir: path.join(root, '.codex', 'prompts'),
72
+ codexAgentsSkillsRoot: path.join(root, '.agents', 'skills'),
73
+ antigravitySkillsRoot: path.join(root, '.gemini', 'antigravity', 'skills'),
74
+ claudeAgentsDir: path.join(root, '.claude', 'agents'),
75
+ };
76
+ }
74
77
 
75
78
  /** @param {string} content */
76
79
  function adjustWorkflowPathsForNestedLayout(content) {
@@ -113,7 +116,7 @@ function parseCursorCommandFrontmatter(text) {
113
116
  * @param {string} body
114
117
  * @param {Record<string, string>} [metadata]
115
118
  */
116
- function buildAgentSkillMarkdown(skillName, description, body, metadata) {
119
+ function buildAgentSkillMarkdown(skillName, description, body, metadata) {
117
120
  const desc = description.trim() || `Comando OXE — ${skillName}`;
118
121
  const meta = metadata ? runtimeSemantics.pickRuntimeMetadata(metadata) : {};
119
122
  const metaLines = Object.keys(meta).length
@@ -128,11 +131,91 @@ function buildAgentSkillMarkdown(skillName, description, body, metadata) {
128
131
  `---\n\n` +
129
132
  `${OXE_MANAGED_HTML}\n\n` +
130
133
  `${body}\n`
131
- );
132
- }
133
-
134
- /**
135
- * @returns {string[]}
134
+ );
135
+ }
136
+
137
+ /** @param {string} name */
138
+ function isOxeAgentMarkdownName(name) {
139
+ return name.startsWith('oxe-') && name.endsWith('.md');
140
+ }
141
+
142
+ /**
143
+ * @param {string} text
144
+ * @returns {{ name: string, description: string, body: string, frontmatter: Record<string, string> }}
145
+ */
146
+ function parseCanonicalAgentMarkdown(text) {
147
+ const parsed = parseCursorCommandFrontmatter(text);
148
+ return {
149
+ name: parsed.frontmatter.name || '',
150
+ description: parsed.description || parsed.frontmatter.description || '',
151
+ body: parsed.body,
152
+ frontmatter: parsed.frontmatter,
153
+ };
154
+ }
155
+
156
+ /**
157
+ * Instala agentes especializados OXE como markdown nativo para runtimes que suportam agentes.
158
+ * @param {string} agentsSrc
159
+ * @param {string} destDir
160
+ * @param {{ dryRun: boolean, force: boolean }} opts
161
+ * @param {(s: string) => void} [logOmitido]
162
+ * @param {(s: string) => void} [logWrite]
163
+ */
164
+ function installCanonicalAgentMarkdowns(agentsSrc, destDir, opts, logOmitido, logWrite) {
165
+ if (!fs.existsSync(agentsSrc)) return;
166
+ for (const name of fs.readdirSync(agentsSrc)) {
167
+ if (!isOxeAgentMarkdownName(name)) continue;
168
+ const src = path.join(agentsSrc, name);
169
+ const dest = path.join(destDir, name);
170
+ if (opts.dryRun) {
171
+ if (logWrite) logWrite(`${src} → ${dest}`);
172
+ continue;
173
+ }
174
+ if (fs.existsSync(dest) && !opts.force) {
175
+ if (logOmitido) logOmitido(dest);
176
+ continue;
177
+ }
178
+ const raw = fs.readFileSync(src, 'utf8');
179
+ const out = raw.includes(OXE_MANAGED_HTML) ? raw : raw.replace(/\n?$/, `\n\n${OXE_MANAGED_HTML}\n`);
180
+ fs.mkdirSync(destDir, { recursive: true });
181
+ fs.writeFileSync(dest, out, 'utf8');
182
+ }
183
+ }
184
+
185
+ /**
186
+ * Instala agentes especializados OXE como skills Codex/Antigravity.
187
+ * @param {string} agentsSrc
188
+ * @param {string} skillsRoot
189
+ * @param {{ dryRun: boolean, force: boolean }} opts
190
+ * @param {(s: string) => void} [logOmitido]
191
+ * @param {(s: string) => void} [logWrite]
192
+ */
193
+ function installCanonicalAgentSkills(agentsSrc, skillsRoot, opts, logOmitido, logWrite) {
194
+ if (!fs.existsSync(agentsSrc)) return;
195
+ for (const name of fs.readdirSync(agentsSrc)) {
196
+ if (!isOxeAgentMarkdownName(name)) continue;
197
+ const src = path.join(agentsSrc, name);
198
+ const raw = fs.readFileSync(src, 'utf8');
199
+ const parsed = parseCanonicalAgentMarkdown(raw);
200
+ const skillName = parsed.name || name.replace(/\.md$/i, '');
201
+ const md = buildAgentSkillMarkdown(skillName, parsed.description, parsed.body, parsed.frontmatter);
202
+ const destDir = path.join(skillsRoot, skillName);
203
+ const dest = path.join(destDir, 'SKILL.md');
204
+ if (opts.dryRun) {
205
+ if (logWrite) logWrite(`${src} → ${dest}`);
206
+ continue;
207
+ }
208
+ if (fs.existsSync(dest) && !opts.force) {
209
+ if (logOmitido) logOmitido(dest);
210
+ continue;
211
+ }
212
+ fs.mkdirSync(destDir, { recursive: true });
213
+ fs.writeFileSync(dest, md, 'utf8');
214
+ }
215
+ }
216
+
217
+ /**
218
+ * @returns {string[]}
136
219
  */
137
220
  function opencodeCommandDirs() {
138
221
  return buildAgentInstallPaths(true, process.cwd()).opencodeCommandDirs;
@@ -499,6 +582,21 @@ function cleanupMarkedUnifiedArtifacts(u, paths) {
499
582
  }
500
583
  }
501
584
 
585
+ if (shouldClean('claude')) {
586
+ const clAgents = p.claudeAgentsDir;
587
+ if (fs.existsSync(clAgents)) {
588
+ for (const name of fs.readdirSync(clAgents)) {
589
+ if (!isOxeAgentMarkdownName(name)) continue;
590
+ const filePath = path.join(clAgents, name);
591
+ try {
592
+ if (fs.readFileSync(filePath, 'utf8').includes(OXE_MANAGED_HTML)) unlinkQuiet(filePath);
593
+ } catch {
594
+ /* ignore */
595
+ }
596
+ }
597
+ }
598
+ }
599
+
502
600
  if (shouldClean('antigravity')) {
503
601
  const agRoot = p.antigravitySkillsRoot;
504
602
  if (fs.existsSync(agRoot)) {
@@ -531,15 +629,18 @@ module.exports = {
531
629
  buildAgentSkillMarkdown,
532
630
  installSkillTreeFromCursorCommands,
533
631
  installOpenCodeCommands,
534
- installGeminiTomlCommands,
535
- installWindsurfGlobalWorkflows,
536
- installCodexPrompts,
537
- opencodeCommandDirs,
632
+ installGeminiTomlCommands,
633
+ installWindsurfGlobalWorkflows,
634
+ installCodexPrompts,
635
+ installCanonicalAgentMarkdowns,
636
+ installCanonicalAgentSkills,
637
+ opencodeCommandDirs,
538
638
  windsurfGlobalWorkflowsDir,
539
639
  geminiUserDir,
540
640
  codexAgentsSkillsRoot,
541
641
  codexPromptsDir,
542
642
  antigravitySkillsRoot,
543
643
  isOxeCommandMarkdownName,
644
+ isOxeAgentMarkdownName,
544
645
  cleanupMarkedUnifiedArtifacts,
545
646
  };
@@ -271,6 +271,7 @@ function loadRuntimeSmokeReport(projectRoot) {
271
271
  && item.workflow_resolution_ok
272
272
  && item.wrapper_drift_ok !== false
273
273
  && item.extra_checks_ok !== false
274
+ && item.agent_checks_ok !== false
274
275
  && item.uninstall_ok
275
276
  );
276
277
  });
package/bin/oxe-cc.js CHANGED
@@ -2730,10 +2730,14 @@ function runInstall(opts) {
2730
2730
  copyDir(path.join(PKG_ROOT, 'oxe', 'templates'), path.join(nested, 'templates'), copyOpts, true);
2731
2731
  // Personas: copiar para .oxe/personas/ (não sobrescreve personalizações do projeto)
2732
2732
  const personasSrc = path.join(PKG_ROOT, 'oxe', 'personas');
2733
- if (fs.existsSync(personasSrc)) {
2734
- copyDir(personasSrc, path.join(nested, 'personas'), copyOpts, false);
2735
- }
2736
- // Schemas: copiar para .oxe/schemas/ (ex.: plan-agents.schema.json para validação local)
2733
+ if (fs.existsSync(personasSrc)) {
2734
+ copyDir(personasSrc, path.join(nested, 'personas'), copyOpts, false);
2735
+ }
2736
+ const agentsSrc = path.join(PKG_ROOT, 'oxe', 'agents');
2737
+ if (fs.existsSync(agentsSrc)) {
2738
+ copyDir(agentsSrc, path.join(nested, 'agents'), copyOpts, false);
2739
+ }
2740
+ // Schemas: copiar para .oxe/schemas/ (ex.: plan-agents.schema.json para validação local)
2737
2741
  const schemasSrc = path.join(PKG_ROOT, 'oxe', 'schemas');
2738
2742
  if (fs.existsSync(schemasSrc)) {
2739
2743
  copyDir(schemasSrc, path.join(nested, 'schemas'), copyOpts, false);
@@ -2748,10 +2752,11 @@ function runInstall(opts) {
2748
2752
  if (fs.existsSync(cRules)) copyDir(cRules, path.join(cursorBase, 'rules'), copyOpts, idePathRewrite);
2749
2753
  }
2750
2754
 
2751
- const doAgentClis = opts.copilotCli || opts.allAgents;
2752
- if (doAgentClis) {
2753
- const cCmd = path.join(PKG_ROOT, '.cursor', 'commands');
2754
- const clBase = installClaudeBase(opts);
2755
+ const doAgentClis = opts.copilotCli || opts.allAgents;
2756
+ if (doAgentClis) {
2757
+ const cCmd = path.join(PKG_ROOT, '.cursor', 'commands');
2758
+ const canonicalAgents = path.join(PKG_ROOT, 'oxe', 'agents');
2759
+ const clBase = installClaudeBase(opts);
2755
2760
  const cpHome = installCopilotCliHome(opts);
2756
2761
  const clDest = path.join(clBase, 'commands');
2757
2762
  const cpCmdDest = path.join(cpHome, 'commands');
@@ -2760,16 +2765,24 @@ function runInstall(opts) {
2760
2765
  console.log(
2761
2766
  ` ${c ? green : ''}cli${c ? reset : ''} ${c ? dim : ''}Claude/Copilot: skills em${c ? reset : ''} ${c ? cyan : ''}${cpSkills}${c ? reset : ''} ${c ? dim : ''}(/oxe, /oxe-scan, …); comandos .md:${c ? reset : ''} ${c ? cyan : ''}${clDest}${c ? reset : ''} ${c ? dim : ''}+${c ? reset : ''} ${c ? cyan : ''}${cpCmdDest}${c ? reset : ''}`
2762
2767
  );
2763
- installOxeCopilotCliSkills(cCmd, cpHome, copyOpts, idePathRewrite);
2764
- copyDir(cCmd, clDest, copyOpts, idePathRewrite);
2765
- copyDir(cCmd, cpCmdDest, copyOpts, idePathRewrite);
2766
- } else {
2768
+ installOxeCopilotCliSkills(cCmd, cpHome, copyOpts, idePathRewrite);
2769
+ copyDir(cCmd, clDest, copyOpts, idePathRewrite);
2770
+ copyDir(cCmd, cpCmdDest, copyOpts, idePathRewrite);
2771
+ if (fs.existsSync(canonicalAgents)) {
2772
+ oxeAgentInstall.installCanonicalAgentMarkdowns(
2773
+ canonicalAgents,
2774
+ agentPaths.claudeAgentsDir,
2775
+ copyOpts
2776
+ );
2777
+ }
2778
+ } else {
2767
2779
  console.warn(`${yellow}aviso:${reset} pasta ausente ${cCmd} — ignorando comandos CLI`);
2768
2780
  }
2769
2781
  }
2770
2782
 
2771
- const cCmdAgents = path.join(PKG_ROOT, '.cursor', 'commands');
2772
- if (fs.existsSync(cCmdAgents) && (opts.allAgents || anyGranularAgent(opts))) {
2783
+ const cCmdAgents = path.join(PKG_ROOT, '.cursor', 'commands');
2784
+ const canonicalAgents = path.join(PKG_ROOT, 'oxe', 'agents');
2785
+ if (fs.existsSync(cCmdAgents) && (opts.allAgents || anyGranularAgent(opts))) {
2773
2786
  const logO = (d) => console.log(`${dim}omitido${reset} ${d} (já existe — use --force)`);
2774
2787
  const logW = (msg) => console.log(`${dim}agents${reset} ${msg}`);
2775
2788
  console.log(
@@ -2787,27 +2800,41 @@ function runInstall(opts) {
2787
2800
  if (opts.agentCodex || opts.allAgents) {
2788
2801
  oxeAgentInstall.installCodexPrompts(cCmdAgents, agentPaths, copyOpts, idePathRewrite, logO, logW);
2789
2802
  }
2790
- if (opts.agentAntigravity || opts.allAgents) {
2791
- oxeAgentInstall.installSkillTreeFromCursorCommands(
2803
+ if (opts.agentAntigravity || opts.allAgents) {
2804
+ oxeAgentInstall.installSkillTreeFromCursorCommands(
2792
2805
  cCmdAgents,
2793
2806
  agentPaths.antigravitySkillsRoot,
2794
2807
  copyOpts,
2795
2808
  idePathRewrite,
2796
2809
  logO,
2797
- logW
2798
- );
2799
- }
2800
- if (opts.agentCodex || opts.allAgents) {
2801
- oxeAgentInstall.installSkillTreeFromCursorCommands(
2810
+ logW
2811
+ );
2812
+ oxeAgentInstall.installCanonicalAgentSkills(
2813
+ canonicalAgents,
2814
+ agentPaths.antigravitySkillsRoot,
2815
+ copyOpts,
2816
+ logO,
2817
+ logW
2818
+ );
2819
+ }
2820
+ if (opts.agentCodex || opts.allAgents) {
2821
+ oxeAgentInstall.installSkillTreeFromCursorCommands(
2802
2822
  cCmdAgents,
2803
2823
  agentPaths.codexAgentsSkillsRoot,
2804
2824
  copyOpts,
2805
2825
  idePathRewrite,
2806
2826
  logO,
2807
- logW
2808
- );
2809
- }
2810
- }
2827
+ logW
2828
+ );
2829
+ oxeAgentInstall.installCanonicalAgentSkills(
2830
+ canonicalAgents,
2831
+ agentPaths.codexAgentsSkillsRoot,
2832
+ copyOpts,
2833
+ logO,
2834
+ logW
2835
+ );
2836
+ }
2837
+ }
2811
2838
 
2812
2839
  if (opts.copilot) {
2813
2840
  const gh = path.join(PKG_ROOT, '.github');
@@ -2897,10 +2924,11 @@ function runInstall(opts) {
2897
2924
  addTracked(copilotPromptsDirPath(opts), (n) => n.startsWith('oxe-'));
2898
2925
  trackFile(copilotWorkspaceManifestPath(opts));
2899
2926
  }
2900
- trackFile(runtimeSemanticsManifestPath(opts));
2901
- if (opts.copilotCli || opts.allAgents) {
2902
- addTracked(path.join(installClaudeBase(opts), 'commands'), (n) => oxeAgentInstall.isOxeCommandMarkdownName(n));
2903
- addTracked(path.join(cpCliHome, 'commands'), (n) => oxeAgentInstall.isOxeCommandMarkdownName(n));
2927
+ trackFile(runtimeSemanticsManifestPath(opts));
2928
+ if (opts.copilotCli || opts.allAgents) {
2929
+ addTracked(path.join(installClaudeBase(opts), 'commands'), (n) => oxeAgentInstall.isOxeCommandMarkdownName(n));
2930
+ addTracked(agentPaths.claudeAgentsDir, (n) => oxeAgentInstall.isOxeAgentMarkdownName(n));
2931
+ addTracked(path.join(cpCliHome, 'commands'), (n) => oxeAgentInstall.isOxeCommandMarkdownName(n));
2904
2932
  const skRoot = path.join(cpCliHome, 'skills');
2905
2933
  if (fs.existsSync(skRoot)) {
2906
2934
  for (const sub of fs.readdirSync(skRoot, { withFileTypes: true })) {
@@ -3036,8 +3064,8 @@ function uninstallLocalIdeFromProject(u, removedPaths) {
3036
3064
  track(manifest);
3037
3065
  }
3038
3066
 
3039
- if (u.copilotCli || u.allAgents) {
3040
- for (const base of [path.join(proj, '.claude'), path.join(proj, '.copilot')]) {
3067
+ if (u.copilotCli || u.allAgents) {
3068
+ for (const base of [path.join(proj, '.claude'), path.join(proj, '.copilot')]) {
3041
3069
  const cmdDir = path.join(base, 'commands');
3042
3070
  if (!fs.existsSync(cmdDir)) continue;
3043
3071
  for (const name of fs.readdirSync(cmdDir)) {
@@ -3046,9 +3074,19 @@ function uninstallLocalIdeFromProject(u, removedPaths) {
3046
3074
  unlinkQuiet(p, u);
3047
3075
  track(p);
3048
3076
  }
3049
- }
3050
- }
3051
- const skillsRoot = path.join(proj, '.copilot', 'skills');
3077
+ }
3078
+ }
3079
+ const claudeAgentsDir = path.join(proj, '.claude', 'agents');
3080
+ if (fs.existsSync(claudeAgentsDir)) {
3081
+ for (const name of fs.readdirSync(claudeAgentsDir)) {
3082
+ if (oxeAgentInstall.isOxeAgentMarkdownName(name)) {
3083
+ const p = path.join(claudeAgentsDir, name);
3084
+ unlinkQuiet(p, u);
3085
+ track(p);
3086
+ }
3087
+ }
3088
+ }
3089
+ const skillsRoot = path.join(proj, '.copilot', 'skills');
3052
3090
  if (fs.existsSync(skillsRoot)) {
3053
3091
  for (const ent of fs.readdirSync(skillsRoot, { withFileTypes: true })) {
3054
3092
  if (!ent.isDirectory() || !/^oxe($|-)/.test(ent.name)) continue;
@@ -3371,8 +3409,8 @@ function runUninstall(u) {
3371
3409
  cleanupLegacyCopilotVsCode(ideOpts, u, removedPaths);
3372
3410
  }
3373
3411
 
3374
- if (u.copilotCli) {
3375
- for (const base of [claudeUserDir(ideOpts), copilotUserDir(ideOpts)]) {
3412
+ if (u.copilotCli) {
3413
+ for (const base of [claudeUserDir(ideOpts), copilotUserDir(ideOpts)]) {
3376
3414
  const cmdDir = path.join(base, 'commands');
3377
3415
  if (!fs.existsSync(cmdDir)) continue;
3378
3416
  for (const name of fs.readdirSync(cmdDir)) {
@@ -3381,9 +3419,19 @@ function runUninstall(u) {
3381
3419
  unlinkQuiet(p, u);
3382
3420
  removedPaths.push(p);
3383
3421
  }
3384
- }
3385
- }
3386
- const skillsRoot = path.join(copilotUserDir(ideOpts), 'skills');
3422
+ }
3423
+ }
3424
+ const claudeAgentsDir = path.join(claudeUserDir(ideOpts), 'agents');
3425
+ if (fs.existsSync(claudeAgentsDir)) {
3426
+ for (const name of fs.readdirSync(claudeAgentsDir)) {
3427
+ if (oxeAgentInstall.isOxeAgentMarkdownName(name)) {
3428
+ const p = path.join(claudeAgentsDir, name);
3429
+ unlinkQuiet(p, u);
3430
+ removedPaths.push(p);
3431
+ }
3432
+ }
3433
+ }
3434
+ const skillsRoot = path.join(copilotUserDir(ideOpts), 'skills');
3387
3435
  if (fs.existsSync(skillsRoot)) {
3388
3436
  for (const ent of fs.readdirSync(skillsRoot, { withFileTypes: true })) {
3389
3437
  if (!ent.isDirectory() || !/^oxe($|-)/.test(ent.name)) continue;
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: oxe:debug
3
- description: "[DEPRECATED v1.1.0] Incorporado por /oxe-execute. Use: /oxe-execute --debug"
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
@@ -1,7 +1,12 @@
1
1
  ---
2
2
  name: oxe:discuss
3
- description: Perguntas objetivas antes do plano — .oxe/DISCUSS.md
4
- argument-hint: "[contexto ou respostas]"
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
@@ -1,7 +1,12 @@
1
1
  ---
2
2
  name: oxe:execute
3
- description: "Executar plano A/B/C. Flags: --note (obs), --debug, --deep-diagnosis, --checkpoint '<nome>', --iterative"
4
- argument-hint: "[A|B|C | --note 'texto' | --debug | --deep-diagnosis | --checkpoint '<nome>' | --iterative]"
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: Gera PLAN.md e plan-agents.json (blueprint de agentes e ondas)
4
- argument-hint: "[--replan se existe PLAN.md]"
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
@@ -1,7 +1,12 @@
1
1
  ---
2
2
  name: oxe:plan
3
- description: Gera PLAN.md a partir da SPEC com tarefas atômicas e verificação por item
4
- argument-hint: "[--replan se existe PLAN.md]"
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
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: oxe:scan
3
- description: "[DEPRECATED v1.1.0] Incorporado por /oxe-spec. Use: /oxe-spec --refresh (incremental) ou /oxe-spec --full (completo)"
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
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: oxe:spec
3
- description: "Spec em 5 fases. Flags: --refresh (scan incremental), --full (scan completo), --research (spike), --ui (gera UI-SPEC)"
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
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: oxe:verify
3
- description: "Valida e fecha o ciclo (retro automática). Flags: --gaps, --security, --ui, --pr, --diff, --skip-retro"
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
+
@@ -1,6 +1,6 @@
1
1
  # OXE — Runtime Smoke Matrix
2
2
 
3
- > Estado de suporte por runtime de IA. Atualizado em v1.6.0.
3
+ > Estado de suporte por runtime de IA. Atualizado em v1.7.0.
4
4
  >
5
5
  > `✓` = suportado e testado | `~` = suportado parcialmente | `✗` = não suportado | `?` = não testado
6
6