ostacky 0.9.3 → 0.9.5

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 (113) hide show
  1. package/README.md +27 -25
  2. package/assets/agents/ostacky.md +5 -4
  3. package/assets/commands/install-stack.md +2 -2
  4. package/assets/mcp/ostacky-controller/bun.lock +20 -0
  5. package/assets/mcp/ostacky-controller/index.js +185 -29
  6. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/{auth-B2Q9_Vxp.d.cts → auth--n_Yzytt.d.cts} +14 -9
  7. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/{auth-CVhIKulL.d.mts.map → auth--n_Yzytt.d.cts.map} +1 -1
  8. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/{auth-CfDMXiII.cjs → auth-4-zilcqg.cjs} +3 -2
  9. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-4-zilcqg.cjs.map +1 -0
  10. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/{auth-CUe6YdwF.mjs → auth-CGP0BDVq.mjs} +3 -2
  11. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CGP0BDVq.mjs.map +1 -0
  12. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/{auth-CVhIKulL.d.mts → auth-YUQV3RRv.d.mts} +14 -9
  13. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/{auth-B2Q9_Vxp.d.cts.map → auth-YUQV3RRv.d.mts.map} +1 -1
  14. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.cjs +1 -1
  15. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.d.cts +1 -1
  16. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.d.mts +1 -1
  17. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.mjs +1 -1
  18. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.cjs +1 -1
  19. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +1 -1
  20. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +1 -1
  21. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.mjs +1 -1
  22. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/package.json +1 -1
  23. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/README.md +3 -3
  24. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{ajvProvider-CplOkyLC.mjs → ajvProvider-CEoC__sr.mjs} +483 -38
  25. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CEoC__sr.mjs.map +1 -0
  26. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{ajvProvider-BdSo9BII.d.mts → ajvProvider-CgI-5L6O.d.mts} +25 -8
  27. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{ajvProvider-BdSo9BII.d.mts.map → ajvProvider-CgI-5L6O.d.mts.map} +1 -1
  28. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{ajvProvider-B_4czhCS.d.cts → ajvProvider-FOQRM7up.d.cts} +24 -7
  29. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{ajvProvider-B_4czhCS.d.cts.map → ajvProvider-FOQRM7up.d.cts.map} +1 -1
  30. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{ajvProvider-Brn-Q2J_.cjs → ajvProvider-ZaoO9afR.cjs} +483 -38
  31. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-ZaoO9afR.cjs.map +1 -0
  32. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{cfWorkerProvider-ojcZaap3.cjs → cfWorkerProvider-BwbPzsdI.cjs} +25 -15
  33. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BwbPzsdI.cjs.map +1 -0
  34. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{cfWorkerProvider-BYRW5af5.d.mts → cfWorkerProvider-C03CSigr.d.mts} +21 -6
  35. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-C03CSigr.d.mts.map +1 -0
  36. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{cfWorkerProvider-D9GAttn8.d.cts → cfWorkerProvider-doTkZbTr.d.cts} +20 -5
  37. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-doTkZbTr.d.cts.map +1 -0
  38. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{cfWorkerProvider-Bd-iTHAF.mjs → cfWorkerProvider-p3WaZPqB.mjs} +26 -15
  39. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-p3WaZPqB.mjs.map +1 -0
  40. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-DzBzpE4_.d.cts → createMcpHandler-BLVe3qmU.d.cts} +137 -32
  41. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BLVe3qmU.d.cts.map +1 -0
  42. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-CEckaSEs.d.mts → createMcpHandler-Bt6U_Fqb.d.mts} +138 -33
  43. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-Bt6U_Fqb.d.mts.map +1 -0
  44. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/dialects-D8eXzoGv.cjs +46 -0
  45. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/dialects-D8eXzoGv.cjs.map +1 -0
  46. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs +34 -0
  47. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs.map +1 -0
  48. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.cjs +209 -257
  49. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -1
  50. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.cts +45 -3
  51. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -1
  52. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.mts +46 -4
  53. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -1
  54. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.mjs +201 -252
  55. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -1
  56. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{mcp-DM1iHYFo.cjs → mcp-DUcCQSTW.cjs} +458 -35
  57. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-DUcCQSTW.cjs.map +1 -0
  58. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{mcp-IJurDZVN.mjs → mcp-Dw2OlZ1f.mjs} +389 -32
  59. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-Dw2OlZ1f.mjs.map +1 -0
  60. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs +1 -1
  61. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts +1 -1
  62. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts +1 -1
  63. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs +1 -1
  64. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.cjs +1 -1
  65. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.cts +1 -1
  66. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.mts +1 -1
  67. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs +1 -1
  68. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +2 -2
  69. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts +1 -1
  70. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts +1 -1
  71. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +2 -2
  72. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{src-BX_fm-dB.cjs → src-CgFsfg3E.cjs} +161 -48
  73. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-CgFsfg3E.cjs.map +1 -0
  74. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{src-D86MbS1I.mjs → src-D-y6h4N7.mjs} +161 -48
  75. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D-y6h4N7.mjs.map +1 -0
  76. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +30 -3
  77. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +1 -1
  78. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +9 -1
  79. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts.map +1 -1
  80. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +9 -1
  81. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts.map +1 -1
  82. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +30 -3
  83. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +1 -1
  84. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{types-mS0yxCL0.d.mts → types-DUs7mGBv.d.mts} +1 -1
  85. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/{types-mS0yxCL0.d.mts.map → types-DUs7mGBv.d.mts.map} +1 -1
  86. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.cjs +1 -1
  87. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.cts +1 -1
  88. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.mts +1 -1
  89. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.mjs +1 -1
  90. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.cjs +1 -1
  91. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.cts +1 -1
  92. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.mts +1 -1
  93. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.mjs +1 -1
  94. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/package.json +4 -4
  95. package/assets/mcp/ostacky-controller/package.json +1 -1
  96. package/assets/plugins/ostacky-controller/index.ts +53 -11
  97. package/dist/cli.js +93 -53
  98. package/manifest.json +28 -28
  99. package/package.json +5 -1
  100. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs.map +0 -1
  101. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs.map +0 -1
  102. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs.map +0 -1
  103. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs.map +0 -1
  104. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts.map +0 -1
  105. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs.map +0 -1
  106. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts.map +0 -1
  107. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs.map +0 -1
  108. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CEckaSEs.d.mts.map +0 -1
  109. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DzBzpE4_.d.cts.map +0 -1
  110. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-DM1iHYFo.cjs.map +0 -1
  111. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-IJurDZVN.mjs.map +0 -1
  112. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-BX_fm-dB.cjs.map +0 -1
  113. package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D86MbS1I.mjs.map +0 -1
package/dist/cli.js CHANGED
@@ -255,6 +255,18 @@ function findProjectRoot(startDir = process.cwd()) {
255
255
  current = parent;
256
256
  }
257
257
  }
258
+ function isGitRepo(dir = process.cwd()) {
259
+ try {
260
+ const out = execFileSync("git", ["rev-parse", "--is-inside-work-tree"], {
261
+ encoding: "utf-8",
262
+ cwd: dir,
263
+ stdio: ["pipe", "pipe", "pipe"]
264
+ }).trim();
265
+ return out === "true";
266
+ } catch {
267
+ return false;
268
+ }
269
+ }
258
270
  function getOpenCodeDirForScope(scope, cwd = process.cwd()) {
259
271
  const existing = findOpenCodeDir(cwd);
260
272
  if (existing)
@@ -621,31 +633,31 @@ var init_fs = __esm(() => {
621
633
  var manifest_default;
622
634
  var init_manifest = __esm(() => {
623
635
  manifest_default = {
624
- version: "0.9.3",
636
+ version: "0.9.5",
625
637
  repo: "JaimeHoracio/Ostacky",
626
- tag: "v0.9.3",
638
+ tag: "v0.9.5",
627
639
  agents: [
628
640
  {
629
641
  name: "ostacky",
630
642
  file: "assets/agents/ostacky.md",
631
- description: "Orquestador con recuperación automática (nunca se congela), ruteo por nivel de impacto, controller MCP con SDK oficial, edición segura con fallback inline, y delegación en OpenSpec + Superpowers. v0.9.3: prune de skills obsoletas, lastHandoff, getAvailableTransitions, consecutiveFailures real, mem_session_summary automático al cierre.",
632
- version: "0.9.3",
633
- sha256: "51f1deb14c75c5c0b25a77d8ec871e951b4341e4658a735967ba1143baa72f9f"
643
+ description: "Orquestador con recuperación automática (nunca se congela), ruteo por nivel de impacto, controller MCP con SDK oficial, edición segura con fallback inline, y delegación en OpenSpec + Superpowers. v0.9.5: prune de skills obsoletas, lastHandoff, getAvailableTransitions, consecutiveFailures real, mem_session_summary automático al cierre.",
644
+ version: "0.9.5",
645
+ sha256: "986c41356dcdea8d74fea6a17127a45e78e16a5cda43152efb5c7ffd11593b8c"
634
646
  }
635
647
  ],
636
648
  commands: [
637
649
  {
638
650
  name: "install-stack",
639
651
  file: "assets/commands/install-stack.md",
640
- description: "Instala el stack tecnológico del proyecto (CodeGraph, skills, OpenSpec, Engram, controller plugin). v0.9.3: controller plugin como alma hard-gate, Context7 removido del stack.",
641
- version: "0.9.3",
642
- sha256: "ccc065dd11b53b1c77acafa86ef9dbf65df8ed3f217193901f8b7818447418c1"
652
+ description: "Instala el stack tecnológico del proyecto (CodeGraph, skills, OpenSpec, Engram, controller plugin). v0.9.5: controller plugin como alma hard-gate, Context7 removido del stack.",
653
+ version: "0.9.5",
654
+ sha256: "e218ec7db404fc8bd5fa1d92312eef5ea517bb0940af054f8665048ec2e9da5f"
643
655
  },
644
656
  {
645
657
  name: "opsx-sync",
646
658
  file: "assets/commands/opsx-sync.md",
647
659
  description: "Sincroniza delta specs del change activo sin inicializar CodeGraph si ya existe índice",
648
- version: "0.9.3",
660
+ version: "0.9.5",
649
661
  sha256: "fe0158478f2ca63b315037a85fc1632b77868532e319af6c7384285441767d64"
650
662
  }
651
663
  ],
@@ -653,15 +665,15 @@ var init_manifest = __esm(() => {
653
665
  {
654
666
  name: "ostacky-controller",
655
667
  file: "assets/mcp/ostacky-controller/",
656
- description: "Máquina de estados persistida con @modelcontextprotocol/server SDK. v0.9.3: 22 tools (incluye set_handoff, get_handoff, clear_handoff, get_available_transitions funcional). Bugfixes: consecutiveFailures real, lastHandoff state, defaultChoice persistido. Robustez: degraded mode automático tras 3 fallos, persistence condicional para Nivel 0, prune de skills obsoletas.",
657
- version: "0.9.3",
658
- sha256: "8548f1b13270fbd0fb5e76888c96b38bc39bf0ba3c8b03fbc8196683226eb4b0"
668
+ description: "Máquina de estados persistida con @modelcontextprotocol/server SDK. v0.9.5: 22 tools (incluye set_handoff, get_handoff, clear_handoff, get_available_transitions funcional). Bugfixes: consecutiveFailures real, lastHandoff state, defaultChoice persistido. Robustez: degraded mode automático tras 3 fallos, persistence condicional para Nivel 0, prune de skills obsoletas.",
669
+ version: "0.9.5",
670
+ sha256: "775f4b8b28a315e97f9192d71a9433fa28235fe84c29401451ace628829c7076"
659
671
  },
660
672
  {
661
673
  name: "openspec",
662
674
  file: "assets/mcp/openspec/",
663
675
  description: "MCP server local para OpenSpec - proposal, apply, archive, sync de cambios",
664
- version: "0.9.3",
676
+ version: "0.9.5",
665
677
  sha256: "fa4be28bfc1e75db8f1a037e2580f04a60066c80e8e5934e90e1041020d04609"
666
678
  }
667
679
  ],
@@ -670,105 +682,105 @@ var init_manifest = __esm(() => {
670
682
  name: "brainstorming",
671
683
  file: "assets/skills/brainstorming/SKILL.md",
672
684
  description: "Skill unificado de pensamiento con dos modos: creative-design (producción de diseño → transición a implementación directa o openspec-propose) y open-exploration (exploración libre)",
673
- version: "0.9.3",
685
+ version: "0.9.5",
674
686
  sha256: "f1013a86a8f27914d85a716e23c7fd32db1786d93615e8b0834b13d184308549"
675
687
  },
676
688
  {
677
689
  name: "execution-mode-evaluation",
678
690
  file: "assets/skills/execution-mode-evaluation/SKILL.md",
679
691
  description: "Skill de análisis de modo de ejecución — output reconciliado con controller snapshot contract (recommendation field)",
680
- version: "0.9.3",
692
+ version: "0.9.5",
681
693
  sha256: "2158a6864c0912e868a9d720db7fd79441e6cc298e3320833d2527c9727c852e"
682
694
  },
683
695
  {
684
696
  name: "tdd",
685
697
  file: "assets/skills/tdd/SKILL.md",
686
698
  description: "Skill de test-driven development (Superpowers)",
687
- version: "0.9.3",
699
+ version: "0.9.5",
688
700
  sha256: "f0ebfbbc43a8868d31a3fd2df37ae7f60fe8add09c6475862395a68269e5ff7f"
689
701
  },
690
702
  {
691
703
  name: "subagent-driven-development",
692
704
  file: "assets/skills/subagent-driven-development/SKILL.md",
693
705
  description: "Skill de ejecución con subagentes (Superpowers) — ejecuta solo después de confirmación del coordinador Ostacky",
694
- version: "0.9.3",
706
+ version: "0.9.5",
695
707
  sha256: "1a42d714a9a13faf05f0bf7b580e8d837c2e77a5633839542ccce603023419e8"
696
708
  },
697
709
  {
698
710
  name: "dispatching-parallel-agents",
699
711
  file: "assets/skills/dispatching-parallel-agents/SKILL.md",
700
712
  description: "Skill de dispatch paralelo de agentes (Superpowers)",
701
- version: "0.9.3",
713
+ version: "0.9.5",
702
714
  sha256: "7e7b712ef742d5631e302e6a71583e2bbbd33094da9281abfb84b43505fc3ef1"
703
715
  },
704
716
  {
705
717
  name: "review",
706
718
  file: "assets/skills/review/SKILL.md",
707
719
  description: "Skill de revisión de código (Superpowers)",
708
- version: "0.9.3",
720
+ version: "0.9.5",
709
721
  sha256: "b19650ed4d1d4d9857a4dd5b7e08e91328a1a1fc9c45bcc2fb600fa9d0213279"
710
722
  },
711
723
  {
712
724
  name: "receiving-code-review",
713
725
  file: "assets/skills/receiving-code-review/SKILL.md",
714
726
  description: "Skill de recibir y procesar feedback de code review",
715
- version: "0.9.3",
727
+ version: "0.9.5",
716
728
  sha256: "d761e884e71d8d3476ac734d287cae403a4024506a7d12e7361a448217c0a831"
717
729
  },
718
730
  {
719
731
  name: "openspec-propose",
720
732
  file: "assets/skills/openspec-propose/SKILL.md",
721
733
  description: "Skill de generación de proposal (OpenSpec)",
722
- version: "0.9.3",
734
+ version: "0.9.5",
723
735
  sha256: "6a517f750f24c008208156a2d653e97ed30b1e53878aeac5ce394e573db0678f"
724
736
  },
725
737
  {
726
738
  name: "openspec-apply-change",
727
739
  file: "assets/skills/openspec-apply-change/SKILL.md",
728
740
  description: "Skill de aplicación de change (OpenSpec)",
729
- version: "0.9.3",
741
+ version: "0.9.5",
730
742
  sha256: "dfc823bf89fc7505e91ab6dee9c1f004be38a410bd3d88fb67b211b1b6cbb1d0"
731
743
  },
732
744
  {
733
745
  name: "openspec-archive-change",
734
746
  file: "assets/skills/openspec-archive-change/SKILL.md",
735
747
  description: "Skill de archivo de change (OpenSpec)",
736
- version: "0.9.3",
748
+ version: "0.9.5",
737
749
  sha256: "16e4b561de7747283663fed602e506abf502452c49a8d4b86d7a5539c40f0195"
738
750
  },
739
751
  {
740
752
  name: "openspec-explore",
741
753
  file: "assets/skills/openspec-explore/SKILL.md",
742
754
  description: "Modo explore para OpenSpec — thinking partner para explorar ideas, investigar problemas y clarificar requisitos antes/durante un cambio",
743
- version: "0.9.3",
755
+ version: "0.9.5",
744
756
  sha256: "9eafc3a8c693b8d9916867ef764d49e5222da717fde501c957bb3f6c312d2415"
745
757
  },
746
758
  {
747
759
  name: "using-git-worktrees",
748
760
  file: "assets/skills/using-git-worktrees/SKILL.md",
749
761
  description: "Skill de uso de git worktrees para aislamiento de trabajo",
750
- version: "0.9.3",
762
+ version: "0.9.5",
751
763
  sha256: "93341bc1b7c053618a8b6dc07e3615b77990d7b549a0201f5835d95fef67ce13"
752
764
  },
753
765
  {
754
766
  name: "using-superpowers",
755
767
  file: "assets/skills/using-superpowers/SKILL.md",
756
768
  description: "Skill de orquestación de Superpowers skills",
757
- version: "0.9.3",
769
+ version: "0.9.5",
758
770
  sha256: "7e54536f96d2a379185a10bfc1e970850caa2561b6d8aca7080f0defea0381a4"
759
771
  },
760
772
  {
761
773
  name: "writing-skills",
762
774
  file: "assets/skills/writing-skills/SKILL.md",
763
775
  description: "Skill de creación y edición de skills",
764
- version: "0.9.3",
776
+ version: "0.9.5",
765
777
  sha256: "3d76b906cee518a2b809febb70db95697a35b9f368986bb504b4120c3bfb437a"
766
778
  },
767
779
  {
768
780
  name: "graceful-degradation",
769
781
  file: "assets/skills/graceful-degradation/SKILL.md",
770
782
  description: "Skill de degradación graceful cuando múltiples tools están indisponibles",
771
- version: "0.9.3",
783
+ version: "0.9.5",
772
784
  sha256: "363449bd9e6f800a0a3168667cf78f767fb105d86e4a4adadcc649d418139303"
773
785
  }
774
786
  ]
@@ -1288,11 +1300,15 @@ async function installCodeGraph(toolsDir) {
1288
1300
  return failAfterExtraction(`CodeGraph fue extraído pero no se puede ejecutar: ${error.message}`);
1289
1301
  }
1290
1302
  let indexWarning = null;
1291
- try {
1292
- runTool(localBin, ["init", "-i"], projectRoot, 120000);
1293
- } catch (error) {
1294
- const msg = error.message;
1295
- indexWarning = `El índice no se pudo inicializar todavía: ${msg}. Sugerencia: ejecutá manualmente \`${localBin} init -i\` en ${projectRoot} o \`npx ostacky install-stack --scope local\` para reintentar. Si el path del binario (${localBin}) apunta a ${cgToolDir} y esperabas otro proyecto, verificá que corriste el comando dentro del proyecto correcto (con .git) y con --scope local.`;
1303
+ if (!isGitRepo(projectRoot)) {
1304
+ indexWarning = `Sin repo git en ${projectRoot}: índice pendiente. ` + `Ejecutá \`git init\` y reintentá con \`npx ostacky install-stack --scope local\`. ` + `El binario y el MCP quedaron configurados.`;
1305
+ } else {
1306
+ try {
1307
+ runTool(localBin, ["init", "-i"], projectRoot, 120000);
1308
+ } catch (error) {
1309
+ const msg = error.message;
1310
+ indexWarning = `El índice no se pudo inicializar todavía: ${msg}. Sugerencia: ejecutá manualmente \`${localBin} init -i\` en ${projectRoot} o \`npx ostacky install-stack --scope local\` para reintentar. Si el path del binario (${localBin}) apunta a ${cgToolDir} y esperabas otro proyecto, verificá que corriste el comando dentro del proyecto correcto (con .git) y con --scope local.`;
1311
+ }
1296
1312
  }
1297
1313
  try {
1298
1314
  configureLocalTool(projectRoot, "codegraph", buildLocalMcpCommand(localBin, ["serve", "--mcp"]));
@@ -1674,7 +1690,7 @@ var init_doctor_v2 = __esm(() => {
1674
1690
  // package.json
1675
1691
  var package_default = {
1676
1692
  name: "ostacky",
1677
- version: "0.9.3",
1693
+ version: "0.9.5",
1678
1694
  description: "Instalador interactivo de agentes y comandos para OpenCode",
1679
1695
  type: "module",
1680
1696
  bin: {
@@ -1686,6 +1702,10 @@ var package_default = {
1686
1702
  build: "bun build src/cli.ts --target=node --format=esm --outfile dist/cli.js && bun scripts/add-shebang.ts",
1687
1703
  start: "node dist/cli.js",
1688
1704
  test: "bun test",
1705
+ "check:skills": "bun run scripts/check-skill-sync.ts",
1706
+ "hash:check": "bun run scripts/update-manifest-hashes.ts --check",
1707
+ "hash:update": "bun run scripts/update-manifest-hashes.ts",
1708
+ prepublishOnly: "bun run build",
1689
1709
  update: "bun run scripts/check-skill-sync.ts && bun run scripts/sync-controller-core.ts && bun run scripts/update-manifest-hashes.ts"
1690
1710
  },
1691
1711
  files: [
@@ -2847,7 +2867,7 @@ async function probeMcpServer(nodeExecutable, serverPath, cwd, statePath, option
2847
2867
  params: {
2848
2868
  protocolVersion: "2025-03-26",
2849
2869
  capabilities: {},
2850
- clientInfo: { name: "ostacky-installer", version: "0.9.3" }
2870
+ clientInfo: { name: "ostacky-installer", version: "0.9.5" }
2851
2871
  }
2852
2872
  });
2853
2873
  });
@@ -3226,7 +3246,7 @@ function printPostInstallSteps() {
3226
3246
  ye([
3227
3247
  "Cerrá y reiniciá OpenCode si ya estaba corriendo (los MCP no recargan su config en caliente):",
3228
3248
  " TUI → opencode",
3229
- " Web → opencode web --port 4096",
3249
+ " Web → opencode pair (abrí el link/QR en el navegador)",
3230
3250
  "Seleccioná el agente: `/agents` → `ostacky` (o Shift+Tab / Ctrl+X A)",
3231
3251
  "Skills bundleadas en .opencode/skills/ — revisá cuáles activás",
3232
3252
  "¿Errores en el stack? Ejecutá /install-stack desde el chat de OpenCode"
@@ -3372,11 +3392,13 @@ async function doInstallStack(toolsDir, projectRoot) {
3372
3392
  } catch {}
3373
3393
  return allOk;
3374
3394
  }
3375
- async function doInstallAll(manifest, paths) {
3395
+ async function doInstallAll(manifest, paths, opts) {
3376
3396
  const spin = L2();
3377
3397
  let errors = 0;
3378
3398
  v2.info(`Scope → local | opencodeDir: ${paths.root} | tools: ${paths.tools}`);
3379
- ensureToolDirs(paths.tools, ["codegraph", "engram"]);
3399
+ if (!opts?.noStack) {
3400
+ ensureToolDirs(paths.tools, ["codegraph", "engram"]);
3401
+ }
3380
3402
  for (const agent of manifest.agents) {
3381
3403
  spin.start(`Descargando agente: ${agent.name} (${agent.version})`);
3382
3404
  try {
@@ -3452,24 +3474,37 @@ async function doInstallAll(manifest, paths) {
3452
3474
  } catch {}
3453
3475
  let stackOk = true;
3454
3476
  let missingTools = [];
3455
- v2.info("Instalando stack de herramientas...");
3456
- stackOk = await doInstallStack(paths.tools, dirname6(paths.root));
3457
- if (!stackOk)
3458
- errors++;
3477
+ if (opts?.noStack) {
3478
+ v2.info("Stack omitido (--no-stack): solo núcleo (agente/commands/skills/MCPs/plugins).");
3479
+ } else {
3480
+ v2.info("Instalando stack de herramientas...");
3481
+ stackOk = await doInstallStack(paths.tools, dirname6(paths.root));
3482
+ if (!stackOk)
3483
+ errors++;
3484
+ }
3459
3485
  const codegraphDir = join8(paths.tools, "codegraph");
3460
3486
  const engramDir = join8(paths.tools, "engram");
3461
- if (!existsSync7(codegraphDir) || !findBinaryInDir(codegraphDir, "codegraph"))
3462
- missingTools.push("CodeGraph");
3463
- if (!existsSync7(engramDir) || !findBinaryInDir(engramDir, "engram"))
3464
- missingTools.push("Engram");
3487
+ if (!opts?.noStack) {
3488
+ if (!existsSync7(codegraphDir) || !findBinaryInDir(codegraphDir, "codegraph"))
3489
+ missingTools.push("CodeGraph");
3490
+ if (!existsSync7(engramDir) || !findBinaryInDir(engramDir, "engram"))
3491
+ missingTools.push("Engram");
3492
+ }
3465
3493
  if (missingTools.length > 0) {
3466
3494
  v2.warn(`Faltan herramientas del stack: ${missingTools.join(", ")}.
3467
3495
  ` + "Ejecutá `/install-stack` desde el agente para instalarlas manualmente.");
3468
3496
  }
3469
- if (errors === 0 && stackOk && missingTools.length === 0) {
3497
+ const coreOk = errors === 0;
3498
+ const stackPartial = !stackOk || missingTools.length > 0;
3499
+ if (coreOk && !stackPartial) {
3470
3500
  v2.success("Todo instalado correctamente.");
3501
+ } else if (coreOk) {
3502
+ const missing = missingTools.length > 0 ? ` Faltan: ${missingTools.join(", ")}.` : "";
3503
+ v2.warn(`Núcleo OK (agente/commands/skills/MCPs instalados). Stack parcial.${missing} ` + `Revisá los mensajes de error arriba y reintentá con \`npx ostacky install-stack --scope local\`.`);
3471
3504
  } else {
3472
- v2.warn(`Instalación parcial: ${errors} componente(s) requieren atención.`);
3505
+ v2.warn(`Núcleo con errores: ${errors} componente(s) requieren atención. Revisá los mensajes de error arriba.`);
3506
+ if (stackPartial)
3507
+ v2.warn("Además el stack quedó parcial: reintentá con `npx ostacky install-stack --scope local`.");
3473
3508
  }
3474
3509
  try {
3475
3510
  const projectRoot = dirname6(paths.root);
@@ -3479,7 +3514,7 @@ async function doInstallAll(manifest, paths) {
3479
3514
  else if (gi.updated)
3480
3515
  v2.info(`.gitignore actualizado: ${gi.patternsAdded.join(", ")}`);
3481
3516
  } catch {}
3482
- return errors === 0 && stackOk && missingTools.length === 0;
3517
+ return coreOk && !stackPartial;
3483
3518
  }
3484
3519
 
3485
3520
  // src/prompts/add.ts
@@ -4196,7 +4231,7 @@ async function runInteractiveMenu(scope) {
4196
4231
  break;
4197
4232
  }
4198
4233
  }
4199
- async function runInstallCommand(scope) {
4234
+ async function runInstallCommand(scope, opts) {
4200
4235
  we(" OpenCode Installer ");
4201
4236
  await ensureOpencodeInstalled();
4202
4237
  const manifest = await loadManifest();
@@ -4205,7 +4240,7 @@ async function runInstallCommand(scope) {
4205
4240
  fe("Cancelado.");
4206
4241
  return;
4207
4242
  }
4208
- if (!await doInstallAll(manifest, paths))
4243
+ if (!await doInstallAll(manifest, paths, opts))
4209
4244
  process.exitCode = 1;
4210
4245
  printPostInstallSteps();
4211
4246
  fe(process.exitCode ? "Instalación parcial." : "Instalación completada.");
@@ -4472,7 +4507,7 @@ ostacky — Instalador de agentes, comandos, skills y MCPs para OpenCode
4472
4507
 
4473
4508
  Uso:
4474
4509
  npx ostacky [--scope local] Menú interactivo (instalación completa, siempre local)
4475
- npx ostacky install [--scope local] Instalar TODO (agente + skills + MCPs + CodeGraph + OpenSpec + Engram)
4510
+ npx ostacky install [--scope local] [--no-stack] Instalar TODO (agente + skills + MCPs + CodeGraph + OpenSpec + Engram; --no-stack omite el stack)
4476
4511
  npx ostacky add agent [--scope local] Agregar agente(s)
4477
4512
  npx ostacky add command [--scope local] Agregar command(s)
4478
4513
  npx ostacky add skill [--scope local] Agregar skill(s)
@@ -4515,6 +4550,10 @@ function parseScopeArg(argv = process.argv) {
4515
4550
  process.exit(1);
4516
4551
  }
4517
4552
  }
4553
+ if (arg === "-g") {
4554
+ console.error(`Error: -g/global removido; Ostacky instala siempre local en <proyecto>/.opencode. Hacé cd al proyecto y re-ejecutá sin -g.`);
4555
+ process.exit(1);
4556
+ }
4518
4557
  }
4519
4558
  return null;
4520
4559
  }
@@ -4534,6 +4573,7 @@ function withoutScopeArgs(argv) {
4534
4573
  }
4535
4574
  var scope = parseScopeArg();
4536
4575
  var argvNoScope = withoutScopeArgs(process.argv);
4576
+ var noStack = process.argv.includes("--no-stack");
4537
4577
  var [, , cmd, subcmd] = argvNoScope;
4538
4578
  async function runDoctorCommand() {
4539
4579
  const cwd = process.cwd();
@@ -4869,7 +4909,7 @@ async function main() {
4869
4909
  }
4870
4910
  switch (cmd) {
4871
4911
  case "install":
4872
- await runInstallCommand(scope);
4912
+ await runInstallCommand(scope, { noStack });
4873
4913
  break;
4874
4914
  case "install-stack":
4875
4915
  await runInstallStackCommand(scope);
package/manifest.json CHANGED
@@ -1,29 +1,29 @@
1
1
  {
2
- "version": "0.9.3",
2
+ "version": "0.9.5",
3
3
  "repo": "JaimeHoracio/Ostacky",
4
- "tag": "v0.9.3",
4
+ "tag": "v0.9.5",
5
5
  "agents": [
6
6
  {
7
7
  "name": "ostacky",
8
8
  "file": "assets/agents/ostacky.md",
9
- "description": "Orquestador con recuperación automática (nunca se congela), ruteo por nivel de impacto, controller MCP con SDK oficial, edición segura con fallback inline, y delegación en OpenSpec + Superpowers. v0.9.3: prune de skills obsoletas, lastHandoff, getAvailableTransitions, consecutiveFailures real, mem_session_summary automático al cierre.",
10
- "version": "0.9.3",
11
- "sha256": "51f1deb14c75c5c0b25a77d8ec871e951b4341e4658a735967ba1143baa72f9f"
9
+ "description": "Orquestador con recuperación automática (nunca se congela), ruteo por nivel de impacto, controller MCP con SDK oficial, edición segura con fallback inline, y delegación en OpenSpec + Superpowers. v0.9.5: prune de skills obsoletas, lastHandoff, getAvailableTransitions, consecutiveFailures real, mem_session_summary automático al cierre.",
10
+ "version": "0.9.5",
11
+ "sha256": "986c41356dcdea8d74fea6a17127a45e78e16a5cda43152efb5c7ffd11593b8c"
12
12
  }
13
13
  ],
14
14
  "commands": [
15
15
  {
16
16
  "name": "install-stack",
17
17
  "file": "assets/commands/install-stack.md",
18
- "description": "Instala el stack tecnológico del proyecto (CodeGraph, skills, OpenSpec, Engram, controller plugin). v0.9.3: controller plugin como alma hard-gate, Context7 removido del stack.",
19
- "version": "0.9.3",
20
- "sha256": "ccc065dd11b53b1c77acafa86ef9dbf65df8ed3f217193901f8b7818447418c1"
18
+ "description": "Instala el stack tecnológico del proyecto (CodeGraph, skills, OpenSpec, Engram, controller plugin). v0.9.5: controller plugin como alma hard-gate, Context7 removido del stack.",
19
+ "version": "0.9.5",
20
+ "sha256": "e218ec7db404fc8bd5fa1d92312eef5ea517bb0940af054f8665048ec2e9da5f"
21
21
  },
22
22
  {
23
23
  "name": "opsx-sync",
24
24
  "file": "assets/commands/opsx-sync.md",
25
25
  "description": "Sincroniza delta specs del change activo sin inicializar CodeGraph si ya existe índice",
26
- "version": "0.9.3",
26
+ "version": "0.9.5",
27
27
  "sha256": "fe0158478f2ca63b315037a85fc1632b77868532e319af6c7384285441767d64"
28
28
  }
29
29
  ],
@@ -31,15 +31,15 @@
31
31
  {
32
32
  "name": "ostacky-controller",
33
33
  "file": "assets/mcp/ostacky-controller/",
34
- "description": "Máquina de estados persistida con @modelcontextprotocol/server SDK. v0.9.3: 22 tools (incluye set_handoff, get_handoff, clear_handoff, get_available_transitions funcional). Bugfixes: consecutiveFailures real, lastHandoff state, defaultChoice persistido. Robustez: degraded mode automático tras 3 fallos, persistence condicional para Nivel 0, prune de skills obsoletas.",
35
- "version": "0.9.3",
36
- "sha256": "8548f1b13270fbd0fb5e76888c96b38bc39bf0ba3c8b03fbc8196683226eb4b0"
34
+ "description": "Máquina de estados persistida con @modelcontextprotocol/server SDK. v0.9.5: 22 tools (incluye set_handoff, get_handoff, clear_handoff, get_available_transitions funcional). Bugfixes: consecutiveFailures real, lastHandoff state, defaultChoice persistido. Robustez: degraded mode automático tras 3 fallos, persistence condicional para Nivel 0, prune de skills obsoletas.",
35
+ "version": "0.9.5",
36
+ "sha256": "775f4b8b28a315e97f9192d71a9433fa28235fe84c29401451ace628829c7076"
37
37
  },
38
38
  {
39
39
  "name": "openspec",
40
40
  "file": "assets/mcp/openspec/",
41
41
  "description": "MCP server local para OpenSpec - proposal, apply, archive, sync de cambios",
42
- "version": "0.9.3",
42
+ "version": "0.9.5",
43
43
  "sha256": "fa4be28bfc1e75db8f1a037e2580f04a60066c80e8e5934e90e1041020d04609"
44
44
  }
45
45
  ],
@@ -48,105 +48,105 @@
48
48
  "name": "brainstorming",
49
49
  "file": "assets/skills/brainstorming/SKILL.md",
50
50
  "description": "Skill unificado de pensamiento con dos modos: creative-design (producción de diseño → transición a implementación directa o openspec-propose) y open-exploration (exploración libre)",
51
- "version": "0.9.3",
51
+ "version": "0.9.5",
52
52
  "sha256": "f1013a86a8f27914d85a716e23c7fd32db1786d93615e8b0834b13d184308549"
53
53
  },
54
54
  {
55
55
  "name": "execution-mode-evaluation",
56
56
  "file": "assets/skills/execution-mode-evaluation/SKILL.md",
57
57
  "description": "Skill de análisis de modo de ejecución — output reconciliado con controller snapshot contract (recommendation field)",
58
- "version": "0.9.3",
58
+ "version": "0.9.5",
59
59
  "sha256": "2158a6864c0912e868a9d720db7fd79441e6cc298e3320833d2527c9727c852e"
60
60
  },
61
61
  {
62
62
  "name": "tdd",
63
63
  "file": "assets/skills/tdd/SKILL.md",
64
64
  "description": "Skill de test-driven development (Superpowers)",
65
- "version": "0.9.3",
65
+ "version": "0.9.5",
66
66
  "sha256": "f0ebfbbc43a8868d31a3fd2df37ae7f60fe8add09c6475862395a68269e5ff7f"
67
67
  },
68
68
  {
69
69
  "name": "subagent-driven-development",
70
70
  "file": "assets/skills/subagent-driven-development/SKILL.md",
71
71
  "description": "Skill de ejecución con subagentes (Superpowers) — ejecuta solo después de confirmación del coordinador Ostacky",
72
- "version": "0.9.3",
72
+ "version": "0.9.5",
73
73
  "sha256": "1a42d714a9a13faf05f0bf7b580e8d837c2e77a5633839542ccce603023419e8"
74
74
  },
75
75
  {
76
76
  "name": "dispatching-parallel-agents",
77
77
  "file": "assets/skills/dispatching-parallel-agents/SKILL.md",
78
78
  "description": "Skill de dispatch paralelo de agentes (Superpowers)",
79
- "version": "0.9.3",
79
+ "version": "0.9.5",
80
80
  "sha256": "7e7b712ef742d5631e302e6a71583e2bbbd33094da9281abfb84b43505fc3ef1"
81
81
  },
82
82
  {
83
83
  "name": "review",
84
84
  "file": "assets/skills/review/SKILL.md",
85
85
  "description": "Skill de revisión de código (Superpowers)",
86
- "version": "0.9.3",
86
+ "version": "0.9.5",
87
87
  "sha256": "b19650ed4d1d4d9857a4dd5b7e08e91328a1a1fc9c45bcc2fb600fa9d0213279"
88
88
  },
89
89
  {
90
90
  "name": "receiving-code-review",
91
91
  "file": "assets/skills/receiving-code-review/SKILL.md",
92
92
  "description": "Skill de recibir y procesar feedback de code review",
93
- "version": "0.9.3",
93
+ "version": "0.9.5",
94
94
  "sha256": "d761e884e71d8d3476ac734d287cae403a4024506a7d12e7361a448217c0a831"
95
95
  },
96
96
  {
97
97
  "name": "openspec-propose",
98
98
  "file": "assets/skills/openspec-propose/SKILL.md",
99
99
  "description": "Skill de generación de proposal (OpenSpec)",
100
- "version": "0.9.3",
100
+ "version": "0.9.5",
101
101
  "sha256": "6a517f750f24c008208156a2d653e97ed30b1e53878aeac5ce394e573db0678f"
102
102
  },
103
103
  {
104
104
  "name": "openspec-apply-change",
105
105
  "file": "assets/skills/openspec-apply-change/SKILL.md",
106
106
  "description": "Skill de aplicación de change (OpenSpec)",
107
- "version": "0.9.3",
107
+ "version": "0.9.5",
108
108
  "sha256": "dfc823bf89fc7505e91ab6dee9c1f004be38a410bd3d88fb67b211b1b6cbb1d0"
109
109
  },
110
110
  {
111
111
  "name": "openspec-archive-change",
112
112
  "file": "assets/skills/openspec-archive-change/SKILL.md",
113
113
  "description": "Skill de archivo de change (OpenSpec)",
114
- "version": "0.9.3",
114
+ "version": "0.9.5",
115
115
  "sha256": "16e4b561de7747283663fed602e506abf502452c49a8d4b86d7a5539c40f0195"
116
116
  },
117
117
  {
118
118
  "name": "openspec-explore",
119
119
  "file": "assets/skills/openspec-explore/SKILL.md",
120
120
  "description": "Modo explore para OpenSpec — thinking partner para explorar ideas, investigar problemas y clarificar requisitos antes/durante un cambio",
121
- "version": "0.9.3",
121
+ "version": "0.9.5",
122
122
  "sha256": "9eafc3a8c693b8d9916867ef764d49e5222da717fde501c957bb3f6c312d2415"
123
123
  },
124
124
  {
125
125
  "name": "using-git-worktrees",
126
126
  "file": "assets/skills/using-git-worktrees/SKILL.md",
127
127
  "description": "Skill de uso de git worktrees para aislamiento de trabajo",
128
- "version": "0.9.3",
128
+ "version": "0.9.5",
129
129
  "sha256": "93341bc1b7c053618a8b6dc07e3615b77990d7b549a0201f5835d95fef67ce13"
130
130
  },
131
131
  {
132
132
  "name": "using-superpowers",
133
133
  "file": "assets/skills/using-superpowers/SKILL.md",
134
134
  "description": "Skill de orquestación de Superpowers skills",
135
- "version": "0.9.3",
135
+ "version": "0.9.5",
136
136
  "sha256": "7e54536f96d2a379185a10bfc1e970850caa2561b6d8aca7080f0defea0381a4"
137
137
  },
138
138
  {
139
139
  "name": "writing-skills",
140
140
  "file": "assets/skills/writing-skills/SKILL.md",
141
141
  "description": "Skill de creación y edición de skills",
142
- "version": "0.9.3",
142
+ "version": "0.9.5",
143
143
  "sha256": "3d76b906cee518a2b809febb70db95697a35b9f368986bb504b4120c3bfb437a"
144
144
  },
145
145
  {
146
146
  "name": "graceful-degradation",
147
147
  "file": "assets/skills/graceful-degradation/SKILL.md",
148
148
  "description": "Skill de degradación graceful cuando múltiples tools están indisponibles",
149
- "version": "0.9.3",
149
+ "version": "0.9.5",
150
150
  "sha256": "363449bd9e6f800a0a3168667cf78f767fb105d86e4a4adadcc649d418139303"
151
151
  }
152
152
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ostacky",
3
- "version": "0.9.3",
3
+ "version": "0.9.5",
4
4
  "description": "Instalador interactivo de agentes y comandos para OpenCode",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,6 +12,10 @@
12
12
  "build": "bun build src/cli.ts --target=node --format=esm --outfile dist/cli.js && bun scripts/add-shebang.ts",
13
13
  "start": "node dist/cli.js",
14
14
  "test": "bun test",
15
+ "check:skills": "bun run scripts/check-skill-sync.ts",
16
+ "hash:check": "bun run scripts/update-manifest-hashes.ts --check",
17
+ "hash:update": "bun run scripts/update-manifest-hashes.ts",
18
+ "prepublishOnly": "bun run build",
15
19
  "update": "bun run scripts/check-skill-sync.ts && bun run scripts/sync-controller-core.ts && bun run scripts/update-manifest-hashes.ts"
16
20
  },
17
21
  "files": [