oxe-cc 0.7.1 → 0.9.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 (156) hide show
  1. package/.cursor/commands/oxe-ask.md +34 -0
  2. package/.cursor/commands/oxe-capabilities.md +34 -0
  3. package/.cursor/commands/oxe-checkpoint.md +34 -0
  4. package/.cursor/commands/oxe-compact.md +33 -0
  5. package/.cursor/commands/oxe-dashboard.md +34 -0
  6. package/.cursor/commands/oxe-debug.md +34 -0
  7. package/.cursor/commands/oxe-discuss.md +34 -0
  8. package/.cursor/commands/oxe-execute.md +34 -0
  9. package/.cursor/commands/oxe-forensics.md +34 -0
  10. package/.cursor/commands/oxe-help.md +33 -0
  11. package/.cursor/commands/oxe-loop.md +34 -0
  12. package/.cursor/commands/oxe-milestone.md +34 -0
  13. package/.cursor/commands/oxe-next.md +33 -0
  14. package/.cursor/commands/oxe-obs.md +34 -0
  15. package/.cursor/commands/oxe-plan-agent.md +33 -0
  16. package/.cursor/commands/oxe-plan.md +34 -0
  17. package/.cursor/commands/oxe-project.md +34 -0
  18. package/.cursor/commands/oxe-quick.md +34 -0
  19. package/.cursor/commands/oxe-research.md +34 -0
  20. package/.cursor/commands/oxe-retro.md +34 -0
  21. package/.cursor/commands/oxe-review-pr.md +34 -0
  22. package/.cursor/commands/oxe-route.md +34 -0
  23. package/.cursor/commands/oxe-scan.md +34 -0
  24. package/.cursor/commands/oxe-security.md +34 -0
  25. package/.cursor/commands/oxe-session.md +34 -0
  26. package/.cursor/commands/oxe-skill.md +45 -0
  27. package/.cursor/commands/oxe-spec.md +34 -0
  28. package/.cursor/commands/oxe-ui-review.md +34 -0
  29. package/.cursor/commands/oxe-ui-spec.md +34 -0
  30. package/.cursor/commands/oxe-update.md +33 -0
  31. package/.cursor/commands/oxe-validate-gaps.md +34 -0
  32. package/.cursor/commands/oxe-verify.md +34 -0
  33. package/.cursor/commands/oxe-workstream.md +34 -0
  34. package/.cursor/commands/oxe.md +38 -2
  35. package/.github/copilot-instructions.md +8 -5
  36. package/.github/prompts/oxe-ask.prompt.md +33 -0
  37. package/.github/prompts/oxe-capabilities.prompt.md +33 -0
  38. package/.github/prompts/oxe-checkpoint.prompt.md +45 -12
  39. package/.github/prompts/oxe-compact.prompt.md +44 -11
  40. package/.github/prompts/oxe-dashboard.prompt.md +33 -0
  41. package/.github/prompts/oxe-debug.prompt.md +45 -12
  42. package/.github/prompts/oxe-discuss.prompt.md +33 -0
  43. package/.github/prompts/oxe-execute.prompt.md +45 -12
  44. package/.github/prompts/oxe-forensics.prompt.md +45 -12
  45. package/.github/prompts/oxe-help.prompt.md +42 -9
  46. package/.github/prompts/oxe-loop.prompt.md +45 -12
  47. package/.github/prompts/oxe-milestone.prompt.md +45 -12
  48. package/.github/prompts/oxe-next.prompt.md +42 -9
  49. package/.github/prompts/oxe-obs.prompt.md +45 -12
  50. package/.github/prompts/oxe-plan-agent.prompt.md +43 -10
  51. package/.github/prompts/oxe-plan.prompt.md +45 -12
  52. package/.github/prompts/oxe-project.prompt.md +45 -12
  53. package/.github/prompts/oxe-quick.prompt.md +45 -12
  54. package/.github/prompts/oxe-research.prompt.md +45 -12
  55. package/.github/prompts/oxe-retro.prompt.md +45 -12
  56. package/.github/prompts/oxe-review-pr.prompt.md +45 -12
  57. package/.github/prompts/oxe-route.prompt.md +45 -12
  58. package/.github/prompts/oxe-scan.prompt.md +45 -12
  59. package/.github/prompts/oxe-security.prompt.md +45 -12
  60. package/.github/prompts/oxe-session.prompt.md +33 -0
  61. package/.github/prompts/oxe-skill.prompt.md +45 -0
  62. package/.github/prompts/oxe-spec.prompt.md +45 -12
  63. package/.github/prompts/oxe-ui-review.prompt.md +45 -12
  64. package/.github/prompts/oxe-ui-spec.prompt.md +45 -12
  65. package/.github/prompts/oxe-update.prompt.md +44 -11
  66. package/.github/prompts/oxe-validate-gaps.prompt.md +45 -12
  67. package/.github/prompts/oxe-verify.prompt.md +45 -12
  68. package/.github/prompts/oxe-workstream.prompt.md +45 -12
  69. package/.github/prompts/oxe.prompt.md +45 -12
  70. package/AGENTS.md +6 -4
  71. package/CHANGELOG.md +45 -0
  72. package/README.md +38 -8
  73. package/bin/lib/oxe-agent-install.cjs +69 -55
  74. package/bin/lib/oxe-context-engine.cjs +866 -0
  75. package/bin/lib/oxe-dashboard.cjs +605 -588
  76. package/bin/lib/oxe-operational.cjs +105 -0
  77. package/bin/lib/oxe-plugins.cjs +115 -0
  78. package/bin/lib/oxe-project-health.cjs +1139 -666
  79. package/bin/lib/oxe-runtime-semantics.cjs +459 -0
  80. package/bin/lib/oxe-security.cjs +64 -0
  81. package/bin/oxe-cc.js +615 -46
  82. package/commands/oxe/ask.md +33 -0
  83. package/commands/oxe/capabilities.md +33 -0
  84. package/commands/oxe/checkpoint.md +49 -16
  85. package/commands/oxe/compact.md +43 -10
  86. package/commands/oxe/dashboard.md +33 -0
  87. package/commands/oxe/debug.md +49 -16
  88. package/commands/oxe/discuss.md +33 -0
  89. package/commands/oxe/execute.md +49 -16
  90. package/commands/oxe/forensics.md +49 -16
  91. package/commands/oxe/help.md +44 -11
  92. package/commands/oxe/loop.md +50 -17
  93. package/commands/oxe/milestone.md +49 -16
  94. package/commands/oxe/next.md +45 -12
  95. package/commands/oxe/obs.md +49 -16
  96. package/commands/oxe/oxe.md +49 -16
  97. package/commands/oxe/plan-agent.md +48 -15
  98. package/commands/oxe/plan.md +48 -15
  99. package/commands/oxe/project.md +49 -16
  100. package/commands/oxe/quick.md +49 -16
  101. package/commands/oxe/research.md +49 -16
  102. package/commands/oxe/retro.md +49 -16
  103. package/commands/oxe/review-pr.md +49 -16
  104. package/commands/oxe/route.md +44 -11
  105. package/commands/oxe/scan.md +49 -16
  106. package/commands/oxe/security.md +49 -16
  107. package/commands/oxe/session.md +33 -0
  108. package/commands/oxe/skill.md +49 -0
  109. package/commands/oxe/spec.md +47 -14
  110. package/commands/oxe/ui-review.md +49 -16
  111. package/commands/oxe/ui-spec.md +49 -16
  112. package/commands/oxe/update.md +49 -16
  113. package/commands/oxe/validate-gaps.md +49 -16
  114. package/commands/oxe/verify.md +48 -15
  115. package/commands/oxe/workstream.md +49 -16
  116. package/lib/sdk/index.cjs +140 -7
  117. package/lib/sdk/index.d.ts +266 -1
  118. package/oxe/templates/HYPOTHESES.template.md +33 -0
  119. package/oxe/templates/PLAN.template.md +53 -22
  120. package/oxe/templates/SESSION.template.md +2 -0
  121. package/oxe/templates/SKILL.template.md +26 -0
  122. package/oxe/templates/WORKFLOW_AUTHORING.md +18 -2
  123. package/oxe/templates/config.template.json +16 -14
  124. package/oxe/workflows/ask.md +28 -7
  125. package/oxe/workflows/capabilities.md +2 -0
  126. package/oxe/workflows/dashboard.md +12 -2
  127. package/oxe/workflows/debug.md +9 -4
  128. package/oxe/workflows/discuss.md +12 -6
  129. package/oxe/workflows/execute.md +34 -12
  130. package/oxe/workflows/forensics.md +14 -9
  131. package/oxe/workflows/help.md +20 -9
  132. package/oxe/workflows/loop.md +13 -7
  133. package/oxe/workflows/next.md +6 -4
  134. package/oxe/workflows/plan-agent.md +3 -2
  135. package/oxe/workflows/plan.md +26 -3
  136. package/oxe/workflows/quick.md +10 -3
  137. package/oxe/workflows/references/reasoning-discovery.md +28 -0
  138. package/oxe/workflows/references/reasoning-execution.md +29 -0
  139. package/oxe/workflows/references/reasoning-planning.md +32 -0
  140. package/oxe/workflows/references/reasoning-review.md +29 -0
  141. package/oxe/workflows/references/reasoning-status.md +24 -0
  142. package/oxe/workflows/references/workflow-runtime-contracts.json +879 -0
  143. package/oxe/workflows/research.md +8 -2
  144. package/oxe/workflows/retro.md +7 -2
  145. package/oxe/workflows/review-pr.md +12 -8
  146. package/oxe/workflows/route.md +16 -13
  147. package/oxe/workflows/security.md +3 -2
  148. package/oxe/workflows/session.md +44 -0
  149. package/oxe/workflows/skill.md +44 -0
  150. package/oxe/workflows/spec.md +21 -18
  151. package/oxe/workflows/ui-review.md +13 -7
  152. package/oxe/workflows/update.md +3 -1
  153. package/oxe/workflows/validate-gaps.md +12 -6
  154. package/oxe/workflows/verify-audit.md +73 -0
  155. package/oxe/workflows/verify.md +40 -16
  156. package/package.json +4 -3
@@ -1,12 +1,45 @@
1
- ---
2
- name: oxe-validate-gaps
3
- agent: agent
4
- description: OXE — Gaps de cobertura pós-verify (VALIDATION-GAPS.md)
5
- argument-hint: "[opcional: foco Tn ou A*]"
6
- ---
7
-
8
- Executa o workflow **OXE validate-gaps** no repositório atual. Lê e aplica **integralmente**:
9
-
10
- `oxe/workflows/validate-gaps.md`
11
-
12
- Requer `VERIFY.md` e `PLAN.md` já existentes. Texto adicional: foco opcional em tarefa **Tn** ou critério **A***.
1
+ ---
2
+ name: oxe-validate-gaps
3
+ agent: agent
4
+ description: OXE — Gaps de cobertura pós-verify (VALIDATION-GAPS.md)
5
+ argument-hint: "[opcional: foco Tn ou A*]"
6
+ oxe_workflow_slug: validate-gaps
7
+ oxe_reasoning_mode: review
8
+ oxe_question_policy: none
9
+ oxe_output_contract: findings
10
+ oxe_tool_profile: review_heavy
11
+ oxe_confidence_policy: explicit
12
+ oxe_context_tier: standard
13
+ oxe_contract_version: 2.0.0
14
+ oxe_semantics_hash: 27d51ac144da4c1c
15
+ ---
16
+
17
+ <!-- oxe-reasoning-contract:start -->
18
+
19
+ **Contrato de raciocínio OXE deste comando**
20
+ - **Workflow:** validate-gaps
21
+ - **Modo:** revisão
22
+ - **Perguntas:** nenhuma
23
+ - **Saída esperada:** achados
24
+ - **Perfil de ferramentas:** revisão intensa
25
+ - **Política de confiança:** explícita
26
+ - **Tier de contexto padrão:** padrão
27
+ - **Versão do contrato:** 2.0.0
28
+ - **Checksum semântico:** `27d51ac144da4c1c`
29
+ - **Entrada de contexto prioritária:** `.oxe/context/packs/validate-gaps.md` e `.oxe/context/packs/validate-gaps.json`
30
+ - **Regra pack-first:** ler o context pack primeiro; se estiver stale, incompleto ou ausente, cair para leitura direta com fallback explícito.
31
+ - **Inspeção estruturada:** `oxe-cc context inspect --workflow validate-gaps --json`
32
+ - Apresentar findings primeiro, ordenados por severidade e evidência.
33
+ - Separar bug, risco, regressão e lacuna de teste.
34
+ - Se não houver findings, declarar isso explicitamente e listar riscos residuais.
35
+ - **Seções esperadas:** Findings · Perguntas abertas · Riscos residuais · Resumo
36
+ - **Bloqueios formais:** missing:state
37
+ - **Referência canónica:** `oxe/workflows/references/reasoning-review.md`
38
+
39
+ <!-- oxe-reasoning-contract:end -->
40
+
41
+ Executa o workflow **OXE validate-gaps** no repositório atual. Lê e aplica **integralmente**:
42
+
43
+ `oxe/workflows/validate-gaps.md`
44
+
45
+ Requer `VERIFY.md` e `PLAN.md` já existentes. Texto adicional: foco opcional em tarefa **Tn** ou critério **A***.
@@ -1,12 +1,45 @@
1
- ---
2
- name: oxe-verify
3
- agent: agent
4
- description: OXE — Valida implementação (.oxe/VERIFY.md)
5
- argument-hint: "[opcional: Tn]"
6
- ---
7
-
8
- Executa o workflow **OXE verify**. Lê e aplica **integralmente**:
9
-
10
- `oxe/workflows/verify.md` (na raiz do repositório em contexto)
11
-
12
- Se o utilizador indicar uma tarefa `Tn`, restringe a verificação a essa tarefa.
1
+ ---
2
+ name: oxe-verify
3
+ agent: agent
4
+ description: OXE — Valida implementação (.oxe/VERIFY.md)
5
+ argument-hint: "[opcional: Tn]"
6
+ oxe_workflow_slug: verify
7
+ oxe_reasoning_mode: review
8
+ oxe_question_policy: none
9
+ oxe_output_contract: findings
10
+ oxe_tool_profile: review_heavy
11
+ oxe_confidence_policy: explicit
12
+ oxe_context_tier: standard
13
+ oxe_contract_version: 2.0.0
14
+ oxe_semantics_hash: 442bb4594208d058
15
+ ---
16
+
17
+ <!-- oxe-reasoning-contract:start -->
18
+
19
+ **Contrato de raciocínio OXE deste comando**
20
+ - **Workflow:** verify
21
+ - **Modo:** revisão
22
+ - **Perguntas:** nenhuma
23
+ - **Saída esperada:** achados
24
+ - **Perfil de ferramentas:** revisão intensa
25
+ - **Política de confiança:** explícita
26
+ - **Tier de contexto padrão:** padrão
27
+ - **Versão do contrato:** 2.0.0
28
+ - **Checksum semântico:** `442bb4594208d058`
29
+ - **Entrada de contexto prioritária:** `.oxe/context/packs/verify.md` e `.oxe/context/packs/verify.json`
30
+ - **Regra pack-first:** ler o context pack primeiro; se estiver stale, incompleto ou ausente, cair para leitura direta com fallback explícito.
31
+ - **Inspeção estruturada:** `oxe-cc context inspect --workflow verify --json`
32
+ - Apresentar findings primeiro, ordenados por severidade e evidência.
33
+ - Separar bug, risco, regressão e lacuna de teste.
34
+ - Se não houver findings, declarar isso explicitamente e listar riscos residuais.
35
+ - **Seções esperadas:** Findings · Perguntas abertas · Riscos residuais · Resumo
36
+ - **Bloqueios formais:** missing:state
37
+ - **Referência canónica:** `oxe/workflows/references/reasoning-review.md`
38
+
39
+ <!-- oxe-reasoning-contract:end -->
40
+
41
+ Executa o workflow **OXE verify**. Lê e aplica **integralmente**:
42
+
43
+ `oxe/workflows/verify.md` (na raiz do repositório em contexto)
44
+
45
+ Se o utilizador indicar uma tarefa `Tn`, restringe a verificação a essa tarefa.
@@ -1,12 +1,45 @@
1
- ---
2
- name: oxe-workstream
3
- agent: agent
4
- description: "OXE — Trilhas paralelas: list, new <nome>, switch <nome>, status, close <nome> — cada trilha tem artefatos independentes em .oxe/workstreams/<nome>/"
5
- argument-hint: "list | new <nome> | switch <nome> | status | close <nome>"
6
- ---
7
-
8
- Executa o workflow **OXE workstream** no repositório atual. Lê e aplica **integralmente** o ficheiro no workspace:
9
-
10
- `oxe/workflows/workstream.md`
11
-
12
- Usa o texto adicional desta mensagem como subcomando e contexto.
1
+ ---
2
+ name: oxe-workstream
3
+ agent: agent
4
+ description: "OXE — Trilhas paralelas: list, new <nome>, switch <nome>, status, close <nome> — cada trilha tem artefatos independentes em .oxe/workstreams/<nome>/"
5
+ argument-hint: "list | new <nome> | switch <nome> | status | close <nome>"
6
+ oxe_workflow_slug: workstream
7
+ oxe_reasoning_mode: execution
8
+ oxe_question_policy: ask_high_impact_only
9
+ oxe_output_contract: execution
10
+ oxe_tool_profile: write_bounded
11
+ oxe_confidence_policy: explicit
12
+ oxe_context_tier: standard
13
+ oxe_contract_version: 2.0.0
14
+ oxe_semantics_hash: 82d171363381cc0d
15
+ ---
16
+
17
+ <!-- oxe-reasoning-contract:start -->
18
+
19
+ **Contrato de raciocínio OXE deste comando**
20
+ - **Workflow:** workstream
21
+ - **Modo:** execução
22
+ - **Perguntas:** perguntar só alto impacto
23
+ - **Saída esperada:** execução
24
+ - **Perfil de ferramentas:** mutação limitada
25
+ - **Política de confiança:** explícita
26
+ - **Tier de contexto padrão:** padrão
27
+ - **Versão do contrato:** 2.0.0
28
+ - **Checksum semântico:** `82d171363381cc0d`
29
+ - **Entrada de contexto prioritária:** `.oxe/context/packs/workstream.md` e `.oxe/context/packs/workstream.json`
30
+ - **Regra pack-first:** ler o context pack primeiro; se estiver stale, incompleto ou ausente, cair para leitura direta com fallback explícito.
31
+ - **Inspeção estruturada:** `oxe-cc context inspect --workflow workstream --json`
32
+ - Fazer reconhecimento curto antes de editar ou executar mutações.
33
+ - Trabalhar no menor write set viável e validar após cada fatia relevante.
34
+ - Parar e explicitar o bloqueio quando houver hipótese crítica não verificada.
35
+ - **Seções esperadas:** Contexto lido · Alvo da mudança · Validação executada · Resultado · Próximo passo
36
+ - **Bloqueios formais:** missing:state · missing:plan
37
+ - **Referência canónica:** `oxe/workflows/references/reasoning-execution.md`
38
+
39
+ <!-- oxe-reasoning-contract:end -->
40
+
41
+ Executa o workflow **OXE workstream** no repositório atual. Lê e aplica **integralmente** o ficheiro no workspace:
42
+
43
+ `oxe/workflows/workstream.md`
44
+
45
+ Usa o texto adicional desta mensagem como subcomando e contexto.
@@ -1,12 +1,45 @@
1
- ---
2
- name: oxe
3
- agent: agent
4
- description: OXE — Entrada universal: próximo passo / roteamento / help dos 8 comandos essenciais
5
- argument-hint: "[contexto em linguagem natural | 'help' | vazio para próximo passo]"
6
- ---
7
-
8
- Executa o workflow **OXE** (entrada universal) no repositório atual. Lê e aplica **integralmente**:
9
-
10
- `oxe/workflows/oxe.md`
11
-
12
- `$ARGUMENTS`: vazio → próximo passo; texto → roteamento; "help" → 8 comandos essenciais.
1
+ ---
2
+ name: oxe
3
+ agent: agent
4
+ description: OXE — Entrada universal: próximo passo / roteamento / help dos 8 comandos essenciais
5
+ argument-hint: "[contexto em linguagem natural | 'help' | vazio para próximo passo]"
6
+ oxe_workflow_slug: oxe
7
+ oxe_reasoning_mode: status
8
+ oxe_question_policy: none
9
+ oxe_output_contract: routing
10
+ oxe_tool_profile: read_heavy
11
+ oxe_confidence_policy: explicit
12
+ oxe_context_tier: standard
13
+ oxe_contract_version: 2.0.0
14
+ oxe_semantics_hash: d7f65cd3f77b0abc
15
+ ---
16
+
17
+ <!-- oxe-reasoning-contract:start -->
18
+
19
+ **Contrato de raciocínio OXE deste comando**
20
+ - **Workflow:** oxe
21
+ - **Modo:** estado / roteamento
22
+ - **Perguntas:** nenhuma
23
+ - **Saída esperada:** roteamento
24
+ - **Perfil de ferramentas:** leitura intensa
25
+ - **Política de confiança:** explícita
26
+ - **Tier de contexto padrão:** padrão
27
+ - **Versão do contrato:** 2.0.0
28
+ - **Checksum semântico:** `d7f65cd3f77b0abc`
29
+ - **Entrada de contexto prioritária:** `.oxe/context/packs/oxe.md` e `.oxe/context/packs/oxe.json`
30
+ - **Regra pack-first:** ler o context pack primeiro; se estiver stale, incompleto ou ausente, cair para leitura direta com fallback explícito.
31
+ - **Inspeção estruturada:** `oxe-cc context inspect --workflow oxe --json`
32
+ - Responder com leitura curta e orientada a decisão.
33
+ - Dar uma recomendação única e justificar o motivo.
34
+ - Explicitar a confiança quando o estado estiver incompleto ou ambíguo.
35
+ - **Seções esperadas:** Leitura atual · Recomendação · Motivo · Confiança
36
+ - **Bloqueios formais:** missing:state
37
+ - **Referência canónica:** `oxe/workflows/references/reasoning-status.md`
38
+
39
+ <!-- oxe-reasoning-contract:end -->
40
+
41
+ Executa o workflow **OXE** (entrada universal) no repositório atual. Lê e aplica **integralmente**:
42
+
43
+ `oxe/workflows/oxe.md`
44
+
45
+ `$ARGUMENTS`: vazio → próximo passo; texto → roteamento; "help" → 8 comandos essenciais.
package/AGENTS.md CHANGED
@@ -72,10 +72,12 @@ Blueprints em `.oxe/plan-agents.json` (schema 3). Protocolo inter-agente: `oxe/w
72
72
  ## Integrações IDE
73
73
 
74
74
  - **Cursor:** slash commands em `~/.cursor/commands/` (gerados por `npm run sync:cursor`)
75
- - **GitHub Copilot (VS Code):** prompt files em `~/.copilot/prompts/` + `copilot-instructions.md`
75
+ - **GitHub Copilot (VS Code):** prompt files em `.github/prompts/` + `.github/copilot-instructions.md`
76
76
  - **Claude Code:** commands em `~/.claude/commands/`
77
77
  - **OpenCode / Gemini / Codex / Windsurf / Antigravity:** via `oxe-cc --all-agents`
78
78
 
79
- ## Instruções para agentes de IA
80
-
81
- Quando o utilizador pedir uma etapa OXE por linguagem natural, seguir o ficheiro `oxe/workflows/<passo>.md` correspondente **sem atalhar passos**. Ler os artefatos em `.oxe/` antes de qualquer ação — nunca partir de suposições sobre o estado do projeto.
79
+ ## Instruções para agentes de IA
80
+
81
+ Quando o utilizador pedir uma etapa OXE por linguagem natural, seguir o ficheiro `oxe/workflows/<passo>.md` correspondente **sem atalhar passos**. Ler os artefatos em `.oxe/` antes de qualquer ação — nunca partir de suposições sobre o estado do projeto.
82
+
83
+ Os wrappers por runtime podem carregar metadata cognitiva (`oxe_reasoning_mode`, `oxe_question_policy`, `oxe_output_contract`, `oxe_tool_profile`, `oxe_confidence_policy`), mas o comportamento canónico continua no workflow. Use essa metadata para adaptar a postura do agente sem bifurcar a lógica do OXE por ferramenta.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,51 @@ Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudança
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.8.0] — 2026-04-14
8
+
9
+ ### Adicionado
10
+
11
+ **Session forking + revert**
12
+ - `session fork [nome]` — bifurca a sessão ativa, copiando todos os artefatos para uma nova sessão; rastreia `forked_from` na SESSION.md
13
+ - `session revert <checkpoint-slug>` — restaura STATE.md ao snapshot de um checkpoint, sem apagar artefatos atuais
14
+
15
+ **Skill system**
16
+ - `/oxe-skill` — workflow para descobrir, invocar e gerenciar skills (unificação de personas e capabilities)
17
+ - `@<skill-id>` no chat resolve persona OU capability OU composite como ponto de entrada único
18
+ - Template `SKILL.template.md` para criação de skills de projeto em `.oxe/skills/`
19
+ - Resolução em 3 camadas: project → capabilities → global (personas do pacote)
20
+
21
+ **Sistema de permissões com wildcard**
22
+ - `permissions[]` em `.oxe/config.json` — regras glob+ação que controlam acesso a arquivos durante execute e apply
23
+ - Ações: `allow`, `deny`, `ask` — avaliação first-match wins
24
+ - Scopes: `execute`, `apply`, `all`
25
+ - Gate automático no workflow execute antes de cada onda
26
+
27
+ **Config hierárquico (system → user → project)**
28
+ - `loadOxeConfigMerged()` agora lê 3 níveis: system (`OXE_SYSTEM_CONFIG` ou path OS-default) < user (`~/.oxe/config.json`) < project (`.oxe/config.json`)
29
+ - `status --full` exibe fontes de cada nível de configuração
30
+ - Campo `sources` no retorno do SDK
31
+
32
+ **Event sourcing com replay**
33
+ - `replayEvents()` no SDK — reconstrói timeline de `OXE-EVENTS.ndjson` com deltas, filtros por run/wave/event
34
+ - `oxe-cc runtime replay [--run <id>] [--from <event-id>] [--wave <n>] [--write]` — visualização de timeline no terminal ou `REPLAY-SESSION.md` em disco
35
+ - Integração com `/oxe-forensics` — replay como ferramenta de investigação
36
+
37
+ **Plugin system com carregamento remoto**
38
+ - `plugins[]` em `config.json` aceita `{ source: "npm:<pkg>" }` e `{ source: "path:./file.cjs" }`
39
+ - `oxe-cc plugins list` — lista plugins carregados (local + externos)
40
+ - `oxe-cc plugins install npm:<pkg>` — instala plugin npm em `.oxe/plugins/_npm/`
41
+ - `resolvePluginSources()` e `installNpmPlugin()` expostos no SDK
42
+
43
+ ### Tipos TypeScript
44
+ - `OxePermissionRule`, `PermissionCheckResult`, `ReplayReport`, `PluginSource` adicionados
45
+ - `security.checkFilePermission`, `security.checkPermissions`, `security.globToRegex` declarados
46
+ - `operational.replayEvents` declarado
47
+ - `plugins.resolvePluginSources`, `plugins.installNpmPlugin` declarados
48
+ - `health.loadOxeConfigMerged` retorna `sources: { system, user, project }`
49
+
50
+ ---
51
+
7
52
  ## [0.7.0] — 2026-04-13
8
53
 
9
54
  ### Adicionado
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:** `0.6.4` · [package.json](package.json)
10
+ **Versão:** `0.8.0` · [package.json](package.json)
11
11
 
12
12
  **Framework OXE — Orchestrated eXperience Engineering**
13
13
 
@@ -31,11 +31,26 @@ Ele se apoia em três princípios:
31
31
  - **Context engineering** — o estado do trabalho fica em arquivos pequenos dentro de `.oxe/`, não na memória do chat. O agente lê o que precisa, quando precisa — sem sobrecarregar o contexto com decisões já tomadas.
32
32
  - **Lessons loop** — ao fim de cada ciclo, `/oxe-retro` extrai 3–5 lições prescritivas que o próximo spec/plan lê automaticamente. Depois de alguns ciclos, os planos ficam dramaticamente melhores porque os erros anteriores não se repetem.
33
33
  - **Plan-Driven Dynamic Agents** — quando há múltiplos domínios, o plano cria agentes específicos para *aquela demanda*. Agentes não são reaproveitados entre projetos ou demandas.
34
+ - **Semântica de raciocínio multi-runtime** — discovery, planning, execution, review e status seguem contratos cognitivos explícitos. O mesmo workflow OXE deve gerar respostas exploratórias, decision-complete e auditáveis em Copilot, Cursor, Claude, Codex e demais runtimes suportados.
34
35
 
35
36
  O resultado: **menos requisições**, **mais coerência**, e uma experiência de engenharia orquestrada que funciona do mesmo jeito em qualquer IDE.
36
37
 
37
38
  ---
38
39
 
40
+ ## Semântica de raciocínio do OXE
41
+
42
+ O OXE agora distingue cinco famílias de raciocínio:
43
+
44
+ - `discovery` — explorar antes de perguntar; separar fatos, inferências e lacunas
45
+ - `planning` — produzir plano decision-complete, com riscos, validação e confidence gate
46
+ - `execution` — reconhecimento curto antes de mutar; menor write set viável; validação por fatia
47
+ - `review` — findings primeiro, severidade, evidência e risco residual
48
+ - `status` — leitura curta do estado, recomendação única e motivo
49
+
50
+ 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.
51
+
52
+ ---
53
+
39
54
  ## Modos de uso
40
55
 
41
56
  Escolha a complexidade certa para sua tarefa. Você sempre começa simples e adiciona estrutura quando precisar.
@@ -175,6 +190,7 @@ Cada passo lê o anterior como contexto e escreve seu artefato no escopo correto
175
190
  | `/oxe-session` | Cria, alterna, retoma, fecha e migra sessões OXE sem misturar artefatos de ciclos diferentes. |
176
191
  | `/oxe-ask` | Lê `STATE`, resolve a sessão ativa e responde perguntas situacionais com base nos artefatos reais. |
177
192
  | `/oxe-capabilities` | Gera e mantém o catálogo nativo de capabilities do projeto em `.oxe/CAPABILITIES.md` e `.oxe/capabilities/`, com política, side effects e evidência esperada. |
193
+ | `/oxe-skill` | Descobrir, invocar e gerenciar skills OXE — unificação de personas e capabilities via `@<skill-id>`. Subcomandos: `list`, `explain <id>`, `new <id>`, invocação `@<id>` inline. |
178
194
  | `oxe-cc azure` | Provider Azure nativo via Azure CLI: autenticação corporativa com MFA, inventário via Resource Graph e operações guiadas para Service Bus, Event Grid e Azure SQL, sempre com evidência em `.oxe/cloud/azure/`. |
179
195
  | `/oxe-dashboard` | Consolida `STATE`, `PLAN`, `ACTIVE-RUN`, trace log, runtime, checkpoints e verify numa visão visual de ciclo, artefatos, ondas, handoffs e aprovação antes do execute. |
180
196
 
@@ -198,12 +214,16 @@ Estes não precisam ser decorados — aparecem quando o contexto pede ou quando
198
214
 
199
215
  | Comando | Quando usar |
200
216
  |---------|-------------|
217
+ | `/oxe-debug` | Diagnóstico técnico inline durante execute — stack trace, teste vermelho, flake |
201
218
  | `/oxe-research` | Spike, mapa de sistema, engenharia reversa — antes de spec ou plano |
202
219
  | `/oxe-forensics` | Falha persistente após múltiplas tentativas — diagnóstico profundo |
220
+ | `/oxe-validate-gaps` | Gaps de cobertura pós-verify (Nyquist-lite) |
221
+ | `/oxe-security` | Auditoria OWASP P0/P1/P2 vinculada ao stack |
203
222
  | `/oxe-ui-spec` | Contrato UI/UX derivado da SPEC (quando UI é domínio crítico) |
204
223
  | `/oxe-ui-review` | Auditoria da implementação UI contra o contrato |
205
224
  | `/oxe-review-pr` | Revisão de PR ou diff de branches |
206
225
  | `/oxe-checkpoint` | Snapshot nomeado do estado da sessão |
226
+ | `/oxe-loop` | Iteração automática até verify passar (integrado ao Modo B do execute) |
207
227
 
208
228
  ---
209
229
 
@@ -388,7 +408,8 @@ npx oxe-cc@latest
388
408
 
389
409
  | Flag | Efeito |
390
410
  |------|--------|
391
- | `--cursor` / `--copilot` | Só uma das stacks |
411
+ | `--cursor` / `--copilot` | Só uma das stacks da IDE |
412
+ | `--copilot-cli` | Skills globais do Copilot CLI em `~/.copilot/skills/` |
392
413
  | `--all-agents` | Cursor + Copilot + Claude + OpenCode + Gemini + Codex + Windsurf + Antigravity |
393
414
  | `--global` | Layout clássico: `oxe/` na raiz + `.oxe/` |
394
415
  | `--local` | Layout mínimo: só `.oxe/` (padrão) |
@@ -400,6 +421,8 @@ npx oxe-cc@latest
400
421
 
401
422
  </details>
402
423
 
424
+ 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.
425
+
403
426
  <details>
404
427
  <summary><strong>Atualizar e desinstalar</strong></summary>
405
428
 
@@ -430,15 +453,19 @@ node bin/oxe-cc.js --help
430
453
  | Comando | O que faz |
431
454
  |---------|-----------|
432
455
  | `oxe-cc` / `oxe-cc install` | Instala workflows e integrações |
433
- | `oxe-cc doctor` | Diagnóstico completo: Node, workflows, config, bootstrap `.oxe/`, sessão ativa, autoavaliação do plano e saúde lógica (`healthy` \| `warning` \| `broken`) |
456
+ | `oxe-cc doctor` | Diagnóstico completo: Node, workflows, config, bootstrap `.oxe/`, sessão ativa, autoavaliação do plano, saúde lógica (`healthy` \| `warning` \| `broken`), drift semântico multi-runtime e workflows sem contrato no registry |
434
457
  | `oxe-cc status` | Próximo passo sugerido + saúde lógica do fluxo |
435
458
  | `oxe-cc status --full` | Coverage matrix + readiness gate + active run no terminal (ANSI) |
436
- | `oxe-cc status --json` | Mesmo, em JSON, com `healthStatus`, `activeSession` e `planSelfEvaluation` |
459
+ | `oxe-cc status --json` | Mesmo, em JSON (schema v3), com `healthStatus`, `activeSession`, `planSelfEvaluation`, `contextPacks`, `contextQuality` e `semanticsDrift` |
460
+ | `oxe-cc context build [--workflow <slug>] [--tier <minimal\|standard\|full>]` | Gera context pack(s) em `.oxe/context/packs/` — seleção determinística de artefatos por contrato de workflow |
461
+ | `oxe-cc context inspect [--workflow <slug>]` | Inspeciona um context pack existente ou resolve sob demanda (sem escrita); útil para diagnóstico antes de iniciar um passo |
437
462
  | `oxe-cc update` | Atualiza workflows para a versão mais recente |
438
- | `oxe-cc init-oxe` | Bootstrap do `.oxe/` (STATE, config, codebase/) |
439
- | `oxe-cc dashboard` | Interface web local para revisão, comentários e aprovação do plano |
463
+ | `oxe-cc init-oxe` | Bootstrap do `.oxe/` (STATE, config, codebase/, context/, install/) |
464
+ | `oxe-cc dashboard` | Interface web local para revisão, comentários e aprovação do plano (inclui aba Context com quality score e drift semântico) |
440
465
  | `oxe-cc runtime <status\|start\|pause\|resume\|replay>` | Controla o run ativo, cursor, replay e tracing operacional |
466
+ | `oxe-cc runtime replay [--run <id>] [--from <event-id>] [--wave <n>] [--write]` | Timeline de eventos com deltas; `--write` gera `REPLAY-SESSION.md` |
441
467
  | `oxe-cc capabilities <list\|install\|remove\|update>` | Mantém o catálogo nativo de capabilities em `.oxe/` |
468
+ | `oxe-cc plugins <list\|install\|remove>` | Gerencia plugins de lifecycle; `install npm:<pkg>` instala em `.oxe/plugins/_npm/` |
442
469
  | `oxe-cc uninstall` | Remove integrações OXE do HOME e do repo |
443
470
  | `oxe-cc uninstall --global-cli` | Também remove o pacote npm global do PATH |
444
471
 
@@ -458,7 +485,8 @@ Arquivo `.oxe/config.json`. Principais opções:
458
485
  | `scale_adaptive` | `true` | Scan sugere o profile pelo tamanho do projeto |
459
486
  | `scan_max_age_days` | `0` | Doctor avisa quando o scan estiver velho |
460
487
  | `lessons_max_age_days` | `0` | Doctor avisa quando a última retro estiver velho |
461
- | `plugins` | `[]` | Hooks de lifecycle em `.oxe/plugins/*.cjs` |
488
+ | `plugins` | `[]` | Hooks de lifecycle em `.oxe/plugins/*.cjs`; aceita `{ source: "npm:<pkg>" }` e `{ source: "path:./file.cjs" }` |
489
+ | `permissions` | `[]` | Regras glob+ação para gate de arquivos em execute/apply — `{ pattern, action: allow\|deny\|ask, scope?: execute\|apply\|all }` |
462
490
 
463
491
  ---
464
492
 
@@ -485,7 +513,9 @@ TypeScript: [`lib/sdk/index.d.ts`](lib/sdk/index.d.ts) · Docs: [`lib/sdk/README
485
513
  | Situação | O que tentar |
486
514
  |----------|-------------|
487
515
  | Comandos não aparecem no Cursor | Confirme `~/.cursor/commands/`; reinicie o Cursor |
488
- | `/oxe-*` não aparecem no Copilot | Ative `"chat.promptFiles": true`; confirme `~/.copilot/prompts/` |
516
+ | `/oxe-*` não aparecem no Copilot | Ative `"chat.promptFiles": true`; confirme `.github/prompts/` e `.github/copilot-instructions.md`; se existir legado em `~/.copilot/`, rode `npx oxe-cc uninstall --copilot-legacy-clean` |
517
+ | Copilot responde fora do workflow OXE | Rode `npx oxe-cc doctor`; confirme que o prompt veio de `.github/prompts/` e não do legado em `~/.copilot/`; se houver blocos mistos de outros frameworks no global, limpe o legado |
518
+ | Um runtime responde sem a nova disciplina de raciocínio | Verifique drift entre `oxe/workflows/`, `.github/prompts/`, `commands/oxe/` e os prompts instalados; rode `npm run sync:runtime-metadata` e `npm run sync:cursor` no repo do pacote |
489
519
  | Arquivos não atualizam | Reinstale com `--force` |
490
520
  | `ETARGET` / versão não encontrada | `npm cache clean --force` |
491
521
  | Erro no WSL sobre Node | Use Node instalado dentro do WSL |
@@ -8,9 +8,10 @@
8
8
  * Com `--ide-local`, destinos equivalentes sob a raiz do projeto (ex.: ./.opencode/commands).
9
9
  */
10
10
 
11
- const fs = require('fs');
12
- const path = require('path');
13
- const os = require('os');
11
+ const fs = require('fs');
12
+ const path = require('path');
13
+ const os = require('os');
14
+ const runtimeSemantics = require('./oxe-runtime-semantics.cjs');
14
15
 
15
16
  const OXE_MANAGED_HTML = '<!-- oxe-cc managed -->';
16
17
  const OXE_MANAGED_TOML = '# oxe-cc managed';
@@ -75,47 +76,55 @@ function adjustWorkflowPathsForNestedLayout(content) {
75
76
 
76
77
  /**
77
78
  * @param {string} text
78
- * @returns {{ description: string, body: string }}
79
- */
80
- function parseCursorCommandFrontmatter(text) {
81
- const normalized = text.replace(/\r\n/g, '\n');
82
- if (!normalized.startsWith('---\n')) {
83
- return { description: '', body: normalized.trim() };
84
- }
85
- const end = normalized.indexOf('\n---\n', 4);
86
- if (end === -1) {
87
- return { description: '', body: normalized.trim() };
88
- }
89
- const yamlBlock = normalized.slice(4, end);
90
- let description = '';
91
- for (const line of yamlBlock.split('\n')) {
92
- const m = line.match(/^description:\s*(.+)$/);
93
- if (m) {
94
- description = m[1].trim().replace(/^["']|["']$/g, '');
95
- break;
96
- }
97
- }
98
- const body = normalized.slice(end + 5).trim();
99
- return { description, body };
100
- }
79
+ * @returns {{ description: string, body: string, frontmatter: Record<string, string> }}
80
+ */
81
+ function parseCursorCommandFrontmatter(text) {
82
+ const normalized = text.replace(/\r\n/g, '\n');
83
+ if (!normalized.startsWith('---\n')) {
84
+ return { description: '', body: normalized.trim(), frontmatter: {} };
85
+ }
86
+ const end = normalized.indexOf('\n---\n', 4);
87
+ if (end === -1) {
88
+ return { description: '', body: normalized.trim(), frontmatter: {} };
89
+ }
90
+ const yamlBlock = normalized.slice(4, end);
91
+ const frontmatter = {};
92
+ let description = '';
93
+ for (const line of yamlBlock.split('\n')) {
94
+ const m = line.match(/^description:\s*(.+)$/);
95
+ if (m) {
96
+ description = m[1].trim().replace(/^["']|["']$/g, '');
97
+ }
98
+ const kv = line.match(/^([A-Za-z0-9_-]+):\s*(.+)$/);
99
+ if (kv) frontmatter[kv[1]] = kv[2].trim().replace(/^["']|["']$/g, '');
100
+ }
101
+ const body = normalized.slice(end + 5).trim();
102
+ return { description, body, frontmatter };
103
+ }
101
104
 
102
105
  /**
103
106
  * @param {string} skillName
104
107
  * @param {string} description
105
- * @param {string} body
106
- */
107
- function buildAgentSkillMarkdown(skillName, description, body) {
108
- const desc = description.trim() || `Comando OXE — ${skillName}`;
109
- return (
110
- `---\n` +
111
- `name: ${skillName}\n` +
112
- `description: ${JSON.stringify(desc)}\n` +
113
- `user-invocable: true\n` +
114
- `---\n\n` +
115
- `${OXE_MANAGED_HTML}\n\n` +
116
- `${body}\n`
117
- );
118
- }
108
+ * @param {string} body
109
+ * @param {Record<string, string>} [metadata]
110
+ */
111
+ function buildAgentSkillMarkdown(skillName, description, body, metadata) {
112
+ const desc = description.trim() || `Comando OXE — ${skillName}`;
113
+ const meta = metadata ? runtimeSemantics.pickRuntimeMetadata(metadata) : {};
114
+ const metaLines = Object.keys(meta).length
115
+ ? `${runtimeSemantics.renderRuntimeMetadataLines(meta).join('\n')}\n`
116
+ : '';
117
+ return (
118
+ `---\n` +
119
+ `name: ${skillName}\n` +
120
+ `description: ${JSON.stringify(desc)}\n` +
121
+ `user-invocable: true\n` +
122
+ metaLines +
123
+ `---\n\n` +
124
+ `${OXE_MANAGED_HTML}\n\n` +
125
+ `${body}\n`
126
+ );
127
+ }
119
128
 
120
129
  /**
121
130
  * @returns {string[]}
@@ -181,9 +190,9 @@ function installSkillTreeFromCursorCommands(cCmdSrc, skillsRoot, opts, pathRewri
181
190
  const writeOne = (skillName, srcPath, descSuffix) => {
182
191
  let raw = fs.readFileSync(srcPath, 'utf8');
183
192
  if (pathRewriteNested) raw = adjustWorkflowPathsForNestedLayout(raw);
184
- const { description, body } = parseCursorCommandFrontmatter(raw);
185
- const desc = descSuffix ? `${description.trim()} ${descSuffix}`.trim() : description.trim();
186
- const md = buildAgentSkillMarkdown(skillName, desc, body);
193
+ const { description, body, frontmatter } = parseCursorCommandFrontmatter(raw);
194
+ const desc = descSuffix ? `${description.trim()} ${descSuffix}`.trim() : description.trim();
195
+ const md = buildAgentSkillMarkdown(skillName, desc, body, frontmatter);
187
196
  const destDir = path.join(skillsRoot, skillName);
188
197
  const dest = path.join(destDir, 'SKILL.md');
189
198
  if (opts.dryRun) {
@@ -248,8 +257,8 @@ function installGeminiTomlCommands(cCmdSrc, paths, opts, pathRewriteNested, logO
248
257
  const writeToml = (relPath, srcPath, descSuffix) => {
249
258
  let raw = fs.readFileSync(srcPath, 'utf8');
250
259
  if (pathRewriteNested) raw = adjustWorkflowPathsForNestedLayout(raw);
251
- const { description, body } = parseCursorCommandFrontmatter(raw);
252
- const desc = descSuffix ? `${description} ${descSuffix}`.trim() : description;
260
+ const { description, body } = parseCursorCommandFrontmatter(raw);
261
+ const desc = descSuffix ? `${description} ${descSuffix}`.trim() : description;
253
262
  const toml = buildGeminiToml(desc, body);
254
263
  const dest = path.join(base, relPath);
255
264
  if (opts.dryRun) {
@@ -298,8 +307,8 @@ function installWindsurfGlobalWorkflows(cCmdSrc, paths, opts, pathRewriteNested,
298
307
  }
299
308
  let raw = fs.readFileSync(src, 'utf8');
300
309
  if (pathRewriteNested) raw = adjustWorkflowPathsForNestedLayout(raw);
301
- const { description, body } = parseCursorCommandFrontmatter(raw);
302
- const title = description || name.replace(/\.md$/i, '');
310
+ const { description, body } = parseCursorCommandFrontmatter(raw);
311
+ const title = description || name.replace(/\.md$/i, '');
303
312
  const out =
304
313
  `---\n` +
305
314
  `description: ${JSON.stringify(title)}\n` +
@@ -353,14 +362,19 @@ function installCodexPrompts(cCmdSrc, paths, opts, pathRewriteNested, logOmitido
353
362
  }
354
363
  let raw = fs.readFileSync(src, 'utf8');
355
364
  if (pathRewriteNested) raw = adjustWorkflowPathsForNestedLayout(raw);
356
- const { description, body } = parseCursorCommandFrontmatter(raw);
357
- const out =
358
- `---\n` +
359
- `description: ${JSON.stringify(description || 'OXE')}\n` +
360
- `argument-hint: [texto livre opcional]\n` +
361
- `---\n\n` +
362
- `${OXE_MANAGED_HTML}\n\n` +
363
- `${body}\n`;
365
+ const { description, body, frontmatter } = parseCursorCommandFrontmatter(raw);
366
+ const meta = runtimeSemantics.pickRuntimeMetadata(frontmatter);
367
+ const metaLines = Object.keys(meta).length
368
+ ? `${runtimeSemantics.renderRuntimeMetadataLines(meta).join('\n')}\n`
369
+ : '';
370
+ const out =
371
+ `---\n` +
372
+ `description: ${JSON.stringify(description || 'OXE')}\n` +
373
+ `argument-hint: [texto livre opcional]\n` +
374
+ metaLines +
375
+ `---\n\n` +
376
+ `${OXE_MANAGED_HTML}\n\n` +
377
+ `${body}\n`;
364
378
  fs.mkdirSync(destDir, { recursive: true });
365
379
  fs.writeFileSync(dest, out, 'utf8');
366
380
  }