@jtf19/vibecoding-kit 0.1.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 (619) hide show
  1. package/AGENTS.md +84 -0
  2. package/CHANGELOG.md +28 -0
  3. package/CLAUDE.md +137 -0
  4. package/CODE_OF_CONDUCT.md +30 -0
  5. package/CONTRIBUTING.md +69 -0
  6. package/LICENSE +67 -0
  7. package/README.md +162 -0
  8. package/SECURITY.md +34 -0
  9. package/adapters/claude/install.md +70 -0
  10. package/adapters/claude/plugin.json +38 -0
  11. package/adapters/claude/settings.example.json +15 -0
  12. package/adapters/codex/hooks.example.json +15 -0
  13. package/adapters/codex/install.md +72 -0
  14. package/adapters/codex/plugin.json +58 -0
  15. package/adapters/cursor/hooks.example.json +17 -0
  16. package/adapters/cursor/install.md +72 -0
  17. package/adapters/cursor/plugin.json +42 -0
  18. package/adapters/opencode/install.md +95 -0
  19. package/adapters/opencode/plugin.js +56 -0
  20. package/adapters/opencode/plugin.json +58 -0
  21. package/adapters/pi/extension.ts +56 -0
  22. package/adapters/pi/install.md +95 -0
  23. package/adapters/pi/plugin.json +58 -0
  24. package/bin/vibe-cli-usage.mjs +43 -0
  25. package/bin/vibe.mjs +120 -0
  26. package/docs/acceptance-checklist.md +1226 -0
  27. package/docs/architecture-debt-burndown.md +537 -0
  28. package/docs/architecture.md +77 -0
  29. package/docs/ci-evidence-onboarding.md +143 -0
  30. package/docs/development.md +71 -0
  31. package/docs/evidence-authoring.md +188 -0
  32. package/docs/golden-path.md +179 -0
  33. package/docs/install-acceptance-checklist.md +90 -0
  34. package/docs/install-claude.md +41 -0
  35. package/docs/install-codex.md +41 -0
  36. package/docs/install-cursor.md +41 -0
  37. package/docs/install-experience-roadmap.md +394 -0
  38. package/docs/install.md +119 -0
  39. package/docs/maintainer-guide.md +197 -0
  40. package/docs/phase-1-implementation.md +848 -0
  41. package/docs/phase-2-roadmap.md +142 -0
  42. package/docs/quick-recipes.md +115 -0
  43. package/docs/readiness-interpretation.md +105 -0
  44. package/docs/readiness-troubleshooting.md +209 -0
  45. package/docs/release-check-reference.md +63 -0
  46. package/docs/release-guide.md +481 -0
  47. package/docs/release-notes.md +75 -0
  48. package/docs/runtime-contract.md +1010 -0
  49. package/docs/runtime-maintainer-validation.md +212 -0
  50. package/docs/runtime-roadmap.md +2265 -0
  51. package/docs/skill-authoring-guide.md +150 -0
  52. package/docs/submodule-guide.md +131 -0
  53. package/docs/team-adoption.md +113 -0
  54. package/docs/user-guide.md +108 -0
  55. package/docs/vibecoding-fork-analysis.md +398 -0
  56. package/docs/workflow-chaining.md +539 -0
  57. package/examples/ci/README.md +61 -0
  58. package/examples/ci/ci-evidence-input.example.json +56 -0
  59. package/examples/ci/generate-diff-coverage.mjs +90 -0
  60. package/examples/ci/generate-test-evidence.mjs +82 -0
  61. package/examples/ci/github-actions-readiness.yml +108 -0
  62. package/examples/claude-project/README.md +57 -0
  63. package/examples/codex-project/README.md +57 -0
  64. package/examples/cursor-project/README.md +57 -0
  65. package/examples/full-chain/README.md +63 -0
  66. package/examples/full-chain/architecture-design.md +128 -0
  67. package/examples/full-chain/commit-readiness.json +31 -0
  68. package/examples/full-chain/delivery-traceability.yaml +32 -0
  69. package/examples/full-chain/diff-coverage.json +73 -0
  70. package/examples/full-chain/evidence.json +20 -0
  71. package/examples/full-chain/implementation-plan.md +54 -0
  72. package/examples/full-chain/product-acceptance.md +86 -0
  73. package/examples/full-chain/product-discovery.md +84 -0
  74. package/examples/full-chain/product-spec.md +88 -0
  75. package/examples/full-chain/scenario-acceptance.yaml +32 -0
  76. package/examples/full-chain/test-evidence.json +29 -0
  77. package/examples/full-chain/ui-design-contract.md +87 -0
  78. package/examples/golden-path/README.md +84 -0
  79. package/examples/golden-path/diff-coverage.json +66 -0
  80. package/examples/golden-path/implementation-plan.md +62 -0
  81. package/examples/golden-path/product-spec.md +96 -0
  82. package/examples/golden-path/test-evidence.json +29 -0
  83. package/examples/runtime-fixtures/architecture-design.md +128 -0
  84. package/examples/runtime-fixtures/commit-readiness.json +31 -0
  85. package/examples/runtime-fixtures/delivery-traceability.yaml +32 -0
  86. package/examples/runtime-fixtures/diff-coverage.json +73 -0
  87. package/examples/runtime-fixtures/evidence.json +20 -0
  88. package/examples/runtime-fixtures/implementation-plan.md +54 -0
  89. package/examples/runtime-fixtures/negative/commit-readiness-boundary-escalated.json +27 -0
  90. package/examples/runtime-fixtures/negative/delivery-traceability-bad-ref.yaml +32 -0
  91. package/examples/runtime-fixtures/negative/diff-coverage-changed-file-without-task-ref.json +40 -0
  92. package/examples/runtime-fixtures/negative/diff-coverage-operation-mismatch.json +38 -0
  93. package/examples/runtime-fixtures/negative/diff-coverage-required-task-missing.json +24 -0
  94. package/examples/runtime-fixtures/negative/diff-coverage-unexpected-file.json +20 -0
  95. package/examples/runtime-fixtures/negative/test-evidence-missing-output-digest.json +23 -0
  96. package/examples/runtime-fixtures/negative/test-evidence-risky-task-missing.json +29 -0
  97. package/examples/runtime-fixtures/product-acceptance.md +86 -0
  98. package/examples/runtime-fixtures/product-discovery.md +84 -0
  99. package/examples/runtime-fixtures/product-spec.md +88 -0
  100. package/examples/runtime-fixtures/scenario-acceptance.yaml +32 -0
  101. package/examples/runtime-fixtures/test-evidence.json +29 -0
  102. package/examples/runtime-fixtures/ui-design-contract.md +87 -0
  103. package/hooks/post-tool-compact/README.md +47 -0
  104. package/hooks/session-start/README.md +112 -0
  105. package/hooks/session-start/session-start-state-boundary-contract.mjs +161 -0
  106. package/hooks/session-start/session-start.md +29 -0
  107. package/hooks/session-start/session-start.mjs +49 -0
  108. package/hooks/workflow-handoff/README.md +44 -0
  109. package/hooks/workflow-handoff/workflow-handoff.md +11 -0
  110. package/package.json +72 -0
  111. package/skills/using-vibecoding/SKILL.md +396 -0
  112. package/skills/vibe-brainstorming/SKILL.md +98 -0
  113. package/skills/vibe-context-compact/SKILL.md +95 -0
  114. package/skills/vibe-debugging/SKILL.md +87 -0
  115. package/skills/vibe-dispatching-parallel-work/SKILL.md +144 -0
  116. package/skills/vibe-executing-plans/SKILL.md +114 -0
  117. package/skills/vibe-finishing-a-development-branch/SKILL.md +110 -0
  118. package/skills/vibe-implementation/SKILL.md +84 -0
  119. package/skills/vibe-planning/SKILL.md +102 -0
  120. package/skills/vibe-product-acceptance/SKILL.md +106 -0
  121. package/skills/vibe-product-discovery/SKILL.md +107 -0
  122. package/skills/vibe-product-spec/SKILL.md +105 -0
  123. package/skills/vibe-receiving-code-review/SKILL.md +110 -0
  124. package/skills/vibe-requesting-code-review/SKILL.md +106 -0
  125. package/skills/vibe-review/SKILL.md +106 -0
  126. package/skills/vibe-subagent-driven-development/SKILL.md +198 -0
  127. package/skills/vibe-systematic-debugging/SKILL.md +106 -0
  128. package/skills/vibe-test-driven-development/SKILL.md +112 -0
  129. package/skills/vibe-ui-design/SKILL.md +107 -0
  130. package/skills/vibe-verification/SKILL.md +84 -0
  131. package/skills/vibe-verification-before-completion/SKILL.md +170 -0
  132. package/skills/vibe-workspace-isolation/SKILL.md +158 -0
  133. package/skills/vibe-writing-plans/SKILL.md +137 -0
  134. package/skills/vibe-writing-skills/SKILL.md +118 -0
  135. package/templates/AGENTS.md +88 -0
  136. package/templates/CLAUDE.md +88 -0
  137. package/templates/VIBE-CODING.md +157 -0
  138. package/templates/architecture-design.md +139 -0
  139. package/templates/delivery-traceability.yaml +52 -0
  140. package/templates/evidence/README.md +117 -0
  141. package/templates/evidence/diff-coverage.json +34 -0
  142. package/templates/evidence/test-evidence.json +29 -0
  143. package/templates/implementation-plan.md +73 -0
  144. package/templates/product-acceptance.md +84 -0
  145. package/templates/product-discovery.md +81 -0
  146. package/templates/product-spec.md +84 -0
  147. package/templates/scenario-acceptance.yaml +37 -0
  148. package/templates/ui-design-contract.md +86 -0
  149. package/tools/vibe-architecture-check/README.md +66 -0
  150. package/tools/vibe-architecture-check/index.mjs +691 -0
  151. package/tools/vibe-compact/README.md +65 -0
  152. package/tools/vibe-compact/compact-contract.mjs +63 -0
  153. package/tools/vibe-compact/index.mjs +111 -0
  154. package/tools/vibe-doctor/README.md +200 -0
  155. package/tools/vibe-doctor/index.mjs +1721 -0
  156. package/tools/vibe-init/README.md +231 -0
  157. package/tools/vibe-init/index.mjs +369 -0
  158. package/tools/vibe-init/init-cli-args.mjs +100 -0
  159. package/tools/vibe-init/init-entry-merge-model.mjs +33 -0
  160. package/tools/vibe-init/init-install-manifest-model.mjs +137 -0
  161. package/tools/vibe-init/init-installed-agent-experience-contract.mjs +172 -0
  162. package/tools/vibe-init/init-platform-model.mjs +11 -0
  163. package/tools/vibe-init/init-presentation.mjs +149 -0
  164. package/tools/vibe-lifecycle/README.md +37 -0
  165. package/tools/vibe-lifecycle/index.mjs +365 -0
  166. package/tools/vibe-lifecycle/lifecycle-cli-args.mjs +104 -0
  167. package/tools/vibe-lifecycle/lifecycle-summary-model.mjs +67 -0
  168. package/tools/vibe-lifecycle/lifecycle-uninstall-plan-model.mjs +11 -0
  169. package/tools/vibe-plugin-pack/README.md +105 -0
  170. package/tools/vibe-plugin-pack/index.mjs +302 -0
  171. package/tools/vibe-plugin-pack/plugin-pack-cli.mjs +39 -0
  172. package/tools/vibe-plugin-pack/plugin-pack-manifest.mjs +37 -0
  173. package/tools/vibe-profile/index.mjs +212 -0
  174. package/tools/vibe-release-check/README.md +123 -0
  175. package/tools/vibe-release-check/command-manifest/release-check-base-commands.mjs +23 -0
  176. package/tools/vibe-release-check/command-manifest/release-check-closeout-commands.mjs +16 -0
  177. package/tools/vibe-release-check/command-manifest/release-check-command-metadata.mjs +32 -0
  178. package/tools/vibe-release-check/command-manifest/release-check-completion-commands.mjs +41 -0
  179. package/tools/vibe-release-check/command-manifest/release-check-full-chain-commands.mjs +12 -0
  180. package/tools/vibe-release-check/command-manifest/release-check-golden-path-commands.mjs +12 -0
  181. package/tools/vibe-release-check/command-manifest/release-check-install-commands.mjs +26 -0
  182. package/tools/vibe-release-check/command-manifest/release-check-learning-smoke-commands.mjs +21 -0
  183. package/tools/vibe-release-check/command-manifest/release-check-methodology-commands.mjs +27 -0
  184. package/tools/vibe-release-check/command-manifest/release-check-runtime-smoke-commands.mjs +116 -0
  185. package/tools/vibe-release-check/command-manifest/release-check-token-smoke-commands.mjs +21 -0
  186. package/tools/vibe-release-check/index.mjs +223 -0
  187. package/tools/vibe-release-check/release-check-behavior-smoke.mjs +177 -0
  188. package/tools/vibe-release-check/release-check-cli.mjs +37 -0
  189. package/tools/vibe-release-check/release-check-command-manifest.mjs +49 -0
  190. package/tools/vibe-release-check/release-check-completion-fixtures.mjs +151 -0
  191. package/tools/vibe-release-check/release-check-completion-suite.mjs +110 -0
  192. package/tools/vibe-release-check/release-check-dispatch.mjs +116 -0
  193. package/tools/vibe-release-check/release-check-full-chain-suite.mjs +55 -0
  194. package/tools/vibe-release-check/release-check-golden-path-suite.mjs +85 -0
  195. package/tools/vibe-release-check/release-check-install-marker-specs.mjs +133 -0
  196. package/tools/vibe-release-check/release-check-install-suite.mjs +112 -0
  197. package/tools/vibe-release-check/release-check-json-assertion-helpers.mjs +157 -0
  198. package/tools/vibe-release-check/release-check-json-markers.mjs +33 -0
  199. package/tools/vibe-release-check/release-check-learning-fixture-specs.mjs +199 -0
  200. package/tools/vibe-release-check/release-check-learning-suite.mjs +249 -0
  201. package/tools/vibe-release-check/release-check-live-behavior-smoke-fixture.mjs +406 -0
  202. package/tools/vibe-release-check/release-check-methodology-suite.mjs +108 -0
  203. package/tools/vibe-release-check/release-check-package-boundary-smoke.mjs +111 -0
  204. package/tools/vibe-release-check/release-check-platform-transcript-smoke-fixture.mjs +150 -0
  205. package/tools/vibe-release-check/release-check-readonly-marker-data.mjs +1 -0
  206. package/tools/vibe-release-check/release-check-readonly-marker-smoke-specs.mjs +170 -0
  207. package/tools/vibe-release-check/release-check-run-summary.mjs +67 -0
  208. package/tools/vibe-release-check/release-check-runtime-automation-fixtures.mjs +1 -0
  209. package/tools/vibe-release-check/release-check-runtime-automation-governance-reply-trace-smoke-helpers.mjs +224 -0
  210. package/tools/vibe-release-check/release-check-runtime-automation-governance-smoke-specs.mjs +215 -0
  211. package/tools/vibe-release-check/release-check-runtime-automation-governance-suite.mjs +5 -0
  212. package/tools/vibe-release-check/release-check-runtime-automation-methodology-smoke-specs.mjs +157 -0
  213. package/tools/vibe-release-check/release-check-runtime-automation-methodology-suite.mjs +130 -0
  214. package/tools/vibe-release-check/release-check-runtime-automation-platform-smoke-helpers.mjs +306 -0
  215. package/tools/vibe-release-check/release-check-runtime-automation-platform-suite.mjs +30 -0
  216. package/tools/vibe-release-check/release-check-runtime-automation-smoke-fixtures.mjs +53 -0
  217. package/tools/vibe-release-check/release-check-runtime-automation-source-candidate-smoke-helpers.mjs +506 -0
  218. package/tools/vibe-release-check/release-check-runtime-automation-source-suite.mjs +5 -0
  219. package/tools/vibe-release-check/release-check-runtime-automation-subagents-lifecycle-smoke-helpers.mjs +305 -0
  220. package/tools/vibe-release-check/release-check-runtime-automation-subagents-suite.mjs +25 -0
  221. package/tools/vibe-release-check/release-check-runtime-automation-suite.mjs +25 -0
  222. package/tools/vibe-release-check/release-check-runtime-daemon-bounded-run-smoke-helpers.mjs +243 -0
  223. package/tools/vibe-release-check/release-check-runtime-daemon-suite.mjs +5 -0
  224. package/tools/vibe-release-check/release-check-runtime-dispatch-fixtures.mjs +129 -0
  225. package/tools/vibe-release-check/release-check-runtime-dispatch-suite.mjs +5 -0
  226. package/tools/vibe-release-check/release-check-runtime-execution-approval-smoke-helpers.mjs +274 -0
  227. package/tools/vibe-release-check/release-check-runtime-execution-approval-suite.mjs +5 -0
  228. package/tools/vibe-release-check/release-check-runtime-execution-base-suite.mjs +388 -0
  229. package/tools/vibe-release-check/release-check-runtime-execution-recovery-suite.mjs +412 -0
  230. package/tools/vibe-release-check/release-check-runtime-execution-scheduler-suite.mjs +261 -0
  231. package/tools/vibe-release-check/release-check-runtime-execution-suite.mjs +11 -0
  232. package/tools/vibe-release-check/release-check-runtime-flow-smoke.mjs +347 -0
  233. package/tools/vibe-release-check/release-check-runtime-handoff-fixture-specs.mjs +211 -0
  234. package/tools/vibe-release-check/release-check-runtime-handoff-fixtures.mjs +11 -0
  235. package/tools/vibe-release-check/release-check-runtime-handoff-smoke-specs.mjs +86 -0
  236. package/tools/vibe-release-check/release-check-runtime-handoff-suite.mjs +316 -0
  237. package/tools/vibe-release-check/release-check-runtime-ledger-fixture-specs.mjs +9 -0
  238. package/tools/vibe-release-check/release-check-runtime-ledger-fixtures.mjs +51 -0
  239. package/tools/vibe-release-check/release-check-runtime-ledger-suite.mjs +24 -0
  240. package/tools/vibe-release-check/release-check-runtime-scheduler-fixture-specs.mjs +129 -0
  241. package/tools/vibe-release-check/release-check-runtime-scheduler-fixtures.mjs +10 -0
  242. package/tools/vibe-release-check/release-check-runtime-sdd-suite.mjs +535 -0
  243. package/tools/vibe-release-check/release-check-runtime-smoke-harness.mjs +140 -0
  244. package/tools/vibe-release-check/release-check-runtime-surface-expectations.mjs +106 -0
  245. package/tools/vibe-release-check/release-check-runtime-surface-smoke.mjs +112 -0
  246. package/tools/vibe-release-check/release-check-runtime-task-artifact-suite.mjs +105 -0
  247. package/tools/vibe-release-check/release-check-runtime-task-fixture-specs.mjs +270 -0
  248. package/tools/vibe-release-check/release-check-runtime-task-fixtures.mjs +19 -0
  249. package/tools/vibe-release-check/release-check-runtime.mjs +53 -0
  250. package/tools/vibe-release-check/release-check-stage103-118-fixtures.mjs +214 -0
  251. package/tools/vibe-release-check/release-check-stage103-118-smoke-specs.mjs +97 -0
  252. package/tools/vibe-release-check/release-check-stage103-118-smoke.mjs +861 -0
  253. package/tools/vibe-release-check/release-check-stage11-smoke.mjs +66 -0
  254. package/tools/vibe-release-check/release-check-stage119-120-fixture-specs.mjs +119 -0
  255. package/tools/vibe-release-check/release-check-stage119-120-smoke.mjs +325 -0
  256. package/tools/vibe-release-check/release-check-stage12-smoke.mjs +59 -0
  257. package/tools/vibe-release-check/release-check-stage121-136-fixture-specs.mjs +26 -0
  258. package/tools/vibe-release-check/release-check-stage121-136-fixtures.mjs +591 -0
  259. package/tools/vibe-release-check/release-check-stage121-136-smoke.mjs +917 -0
  260. package/tools/vibe-release-check/release-check-stage13-smoke.mjs +78 -0
  261. package/tools/vibe-release-check/release-check-stage137-140-smoke.mjs +534 -0
  262. package/tools/vibe-release-check/release-check-stage14-smoke.mjs +101 -0
  263. package/tools/vibe-release-check/release-check-stage141-148-smoke.mjs +1143 -0
  264. package/tools/vibe-release-check/release-check-stage15-smoke.mjs +132 -0
  265. package/tools/vibe-release-check/release-check-stage50-53-smoke.mjs +429 -0
  266. package/tools/vibe-release-check/release-check-subagent-adapter-bridge-smoke.mjs +162 -0
  267. package/tools/vibe-release-check/release-check-suite-plan-smoke.mjs +86 -0
  268. package/tools/vibe-release-check/release-check-suites.mjs +164 -0
  269. package/tools/vibe-release-check/release-check-test-run-smoke.mjs +59 -0
  270. package/tools/vibe-release-check/release-check-timing.mjs +98 -0
  271. package/tools/vibe-release-check/release-check-token-suite.mjs +260 -0
  272. package/tools/vibe-release-check/release-check-workflow-entry-suite.mjs +195 -0
  273. package/tools/vibe-release-check/release-check-workflow-governance-fixtures.mjs +138 -0
  274. package/tools/vibe-release-check/release-check-workflow-governance-smoke-suite.mjs +768 -0
  275. package/tools/vibe-release-check/release-check-workflow-ux-smoke.mjs +456 -0
  276. package/tools/vibe-runtime/README.md +2637 -0
  277. package/tools/vibe-runtime/index.mjs +3117 -0
  278. package/tools/vibe-runtime/runtime-adapter-bootstrap-matrix.mjs +264 -0
  279. package/tools/vibe-runtime/runtime-adapter-entry-acceptance.mjs +310 -0
  280. package/tools/vibe-runtime/runtime-adapter-packaging-consistency-command.mjs +131 -0
  281. package/tools/vibe-runtime/runtime-adapter-packaging-consistency.mjs +253 -0
  282. package/tools/vibe-runtime/runtime-advice-hub-model.mjs +175 -0
  283. package/tools/vibe-runtime/runtime-agent-session-start-contract.mjs +138 -0
  284. package/tools/vibe-runtime/runtime-artifact-ref-validation.mjs +281 -0
  285. package/tools/vibe-runtime/runtime-automatic-verification-gate-contract.mjs +134 -0
  286. package/tools/vibe-runtime/runtime-automation-boundary-text.mjs +7 -0
  287. package/tools/vibe-runtime/runtime-automation-command.mjs +367 -0
  288. package/tools/vibe-runtime/runtime-automation-plan-model.mjs +239 -0
  289. package/tools/vibe-runtime/runtime-automation-policy-model.mjs +175 -0
  290. package/tools/vibe-runtime/runtime-automation-readiness.mjs +347 -0
  291. package/tools/vibe-runtime/runtime-autopilot-lab-profile-contract.mjs +223 -0
  292. package/tools/vibe-runtime/runtime-behavioral-evaluation-contract.mjs +529 -0
  293. package/tools/vibe-runtime/runtime-behavioral-negative-gate-matrix.mjs +274 -0
  294. package/tools/vibe-runtime/runtime-bounded-attempt-policy-model.mjs +13 -0
  295. package/tools/vibe-runtime/runtime-bounded-foreground-command-executor-contract.mjs +288 -0
  296. package/tools/vibe-runtime/runtime-capability-registry.mjs +250 -0
  297. package/tools/vibe-runtime/runtime-cli-args.mjs +550 -0
  298. package/tools/vibe-runtime/runtime-cli-command-specs.mjs +63 -0
  299. package/tools/vibe-runtime/runtime-cli-dispatch.mjs +21 -0
  300. package/tools/vibe-runtime/runtime-cli-evidence-option-specs.mjs +193 -0
  301. package/tools/vibe-runtime/runtime-cli-evidence-options.mjs +28 -0
  302. package/tools/vibe-runtime/runtime-cli-from-options.mjs +222 -0
  303. package/tools/vibe-runtime/runtime-cli-low-risk-option-specs.mjs +128 -0
  304. package/tools/vibe-runtime/runtime-cli-main.mjs +32 -0
  305. package/tools/vibe-runtime/runtime-cli-option-default-families.mjs +454 -0
  306. package/tools/vibe-runtime/runtime-cli-option-defaults.mjs +33 -0
  307. package/tools/vibe-runtime/runtime-cli-option-handlers.mjs +82 -0
  308. package/tools/vibe-runtime/runtime-cli-usage.mjs +316 -0
  309. package/tools/vibe-runtime/runtime-cli-value-options.mjs +74 -0
  310. package/tools/vibe-runtime/runtime-close-loop-dashboard.mjs +283 -0
  311. package/tools/vibe-runtime/runtime-closeout-parity-contract.mjs +214 -0
  312. package/tools/vibe-runtime/runtime-command-container.mjs +26 -0
  313. package/tools/vibe-runtime/runtime-command-surface-registry.mjs +383 -0
  314. package/tools/vibe-runtime/runtime-command-wrapper-deps.mjs +13 -0
  315. package/tools/vibe-runtime/runtime-commit-readiness-envelope.mjs +281 -0
  316. package/tools/vibe-runtime/runtime-completion-boundary-text.mjs +7 -0
  317. package/tools/vibe-runtime/runtime-completion-bundle-contract.mjs +71 -0
  318. package/tools/vibe-runtime/runtime-completion-chain-assembly.mjs +48 -0
  319. package/tools/vibe-runtime/runtime-completion-command.mjs +50 -0
  320. package/tools/vibe-runtime/runtime-completion-evidence-bundle.mjs +269 -0
  321. package/tools/vibe-runtime/runtime-completion-evidence-descriptors.mjs +156 -0
  322. package/tools/vibe-runtime/runtime-completion-local-evidence-gates.mjs +164 -0
  323. package/tools/vibe-runtime/runtime-completion-presentation.mjs +71 -0
  324. package/tools/vibe-runtime/runtime-completion-readiness-summary.mjs +159 -0
  325. package/tools/vibe-runtime/runtime-confirmed-one-shot-plan.mjs +300 -0
  326. package/tools/vibe-runtime/runtime-context-budget-entry-defaults-command.mjs +77 -0
  327. package/tools/vibe-runtime/runtime-context-budget-entry-defaults.mjs +341 -0
  328. package/tools/vibe-runtime/runtime-contract-marker-registry.mjs +13 -0
  329. package/tools/vibe-runtime/runtime-contributor-guardrail-command.mjs +78 -0
  330. package/tools/vibe-runtime/runtime-contributor-guardrail-evidence.mjs +319 -0
  331. package/tools/vibe-runtime/runtime-control-plane-command.mjs +237 -0
  332. package/tools/vibe-runtime/runtime-control-plane-evals-artifacts.mjs +123 -0
  333. package/tools/vibe-runtime/runtime-control-plane-evals-boundary-model.mjs +75 -0
  334. package/tools/vibe-runtime/runtime-control-plane-evals-cases.mjs +547 -0
  335. package/tools/vibe-runtime/runtime-control-plane-evals-command.mjs +527 -0
  336. package/tools/vibe-runtime/runtime-control-plane-evals-report-validation.mjs +209 -0
  337. package/tools/vibe-runtime/runtime-control-plane-planner-artifacts.mjs +457 -0
  338. package/tools/vibe-runtime/runtime-control-plane-planning-command.mjs +563 -0
  339. package/tools/vibe-runtime/runtime-control-plane-planning-input.mjs +99 -0
  340. package/tools/vibe-runtime/runtime-control-plane-planning-listing.mjs +48 -0
  341. package/tools/vibe-runtime/runtime-control-plane-planning-presentation.mjs +246 -0
  342. package/tools/vibe-runtime/runtime-control-plane-planning-validation.mjs +529 -0
  343. package/tools/vibe-runtime/runtime-control-plane-readonly-command.mjs +537 -0
  344. package/tools/vibe-runtime/runtime-control-plane-readonly-deps.mjs +146 -0
  345. package/tools/vibe-runtime/runtime-control-plane-release-evidence.mjs +525 -0
  346. package/tools/vibe-runtime/runtime-control-plane-release-gates.mjs +369 -0
  347. package/tools/vibe-runtime/runtime-control-plane-router-planning-model.mjs +152 -0
  348. package/tools/vibe-runtime/runtime-control-plane-routing-artifacts.mjs +588 -0
  349. package/tools/vibe-runtime/runtime-controlled-change-delivery-contract.mjs +165 -0
  350. package/tools/vibe-runtime/runtime-controlled-execution-gate-contract.mjs +141 -0
  351. package/tools/vibe-runtime/runtime-controlled-long-running-automation-contract.mjs +184 -0
  352. package/tools/vibe-runtime/runtime-controlled-subagent-orchestration-contract.mjs +169 -0
  353. package/tools/vibe-runtime/runtime-daemon-command.mjs +166 -0
  354. package/tools/vibe-runtime/runtime-daemon-state-lifecycle-model.mjs +359 -0
  355. package/tools/vibe-runtime/runtime-delivery-methodology-command.mjs +17 -0
  356. package/tools/vibe-runtime/runtime-delivery-methodology-gates.mjs +277 -0
  357. package/tools/vibe-runtime/runtime-diff-coverage-envelope.mjs +301 -0
  358. package/tools/vibe-runtime/runtime-dispatch-command.mjs +484 -0
  359. package/tools/vibe-runtime/runtime-dispatch-readonly-artifacts.mjs +406 -0
  360. package/tools/vibe-runtime/runtime-dispatch-state-lifecycle-model.mjs +199 -0
  361. package/tools/vibe-runtime/runtime-durable-state-recovery-contract.mjs +172 -0
  362. package/tools/vibe-runtime/runtime-entry-advice-model.mjs +201 -0
  363. package/tools/vibe-runtime/runtime-entry-deps-builder.mjs +54 -0
  364. package/tools/vibe-runtime/runtime-entry-presentation.mjs +82 -0
  365. package/tools/vibe-runtime/runtime-entry-summary-model.mjs +343 -0
  366. package/tools/vibe-runtime/runtime-entry-trigger-discipline.mjs +341 -0
  367. package/tools/vibe-runtime/runtime-entry-trigger-tightening-command.mjs +79 -0
  368. package/tools/vibe-runtime/runtime-entry-trigger-tightening.mjs +357 -0
  369. package/tools/vibe-runtime/runtime-eval-catalog-model.mjs +101 -0
  370. package/tools/vibe-runtime/runtime-eval-transcript-fixtures.mjs +218 -0
  371. package/tools/vibe-runtime/runtime-evidence-intake-envelope.mjs +278 -0
  372. package/tools/vibe-runtime/runtime-evidence-repair-model.mjs +180 -0
  373. package/tools/vibe-runtime/runtime-executable-plan-contract.mjs +428 -0
  374. package/tools/vibe-runtime/runtime-execution-approval-lifecycle-models.mjs +278 -0
  375. package/tools/vibe-runtime/runtime-execution-candidate-approval-artifacts.mjs +227 -0
  376. package/tools/vibe-runtime/runtime-execution-command.mjs +544 -0
  377. package/tools/vibe-runtime/runtime-execution-enabled-bridge-model.mjs +113 -0
  378. package/tools/vibe-runtime/runtime-execution-enabled-closeout-boundary.mjs +89 -0
  379. package/tools/vibe-runtime/runtime-execution-enabled-preflight-model.mjs +185 -0
  380. package/tools/vibe-runtime/runtime-execution-enabled-profile-contract.mjs +127 -0
  381. package/tools/vibe-runtime/runtime-execution-enabled-run-envelope.mjs +153 -0
  382. package/tools/vibe-runtime/runtime-execution-evidence-binder.mjs +537 -0
  383. package/tools/vibe-runtime/runtime-execution-plan-artifacts.mjs +136 -0
  384. package/tools/vibe-runtime/runtime-execution-policy-artifacts.mjs +377 -0
  385. package/tools/vibe-runtime/runtime-execution-presentation.mjs +174 -0
  386. package/tools/vibe-runtime/runtime-execution-readonly-artifacts.mjs +228 -0
  387. package/tools/vibe-runtime/runtime-execution-run-preflight-artifacts.mjs +265 -0
  388. package/tools/vibe-runtime/runtime-execution-safety-artifacts.mjs +131 -0
  389. package/tools/vibe-runtime/runtime-execution-state-write-lifecycle-model.mjs +99 -0
  390. package/tools/vibe-runtime/runtime-experience-friction-matrix.mjs +395 -0
  391. package/tools/vibe-runtime/runtime-experience-learning-pattern.mjs +354 -0
  392. package/tools/vibe-runtime/runtime-experience-regression-dashboard.mjs +398 -0
  393. package/tools/vibe-runtime/runtime-experience-upgrade-command.mjs +92 -0
  394. package/tools/vibe-runtime/runtime-experience-upgrade-prioritizer.mjs +451 -0
  395. package/tools/vibe-runtime/runtime-foreground-worker-plan.mjs +275 -0
  396. package/tools/vibe-runtime/runtime-git-diff-read-model.mjs +322 -0
  397. package/tools/vibe-runtime/runtime-governance-attestation.mjs +304 -0
  398. package/tools/vibe-runtime/runtime-governance-command.mjs +609 -0
  399. package/tools/vibe-runtime/runtime-governance-convergence-reports.mjs +601 -0
  400. package/tools/vibe-runtime/runtime-governance-pr-models.mjs +551 -0
  401. package/tools/vibe-runtime/runtime-governance-presentation.mjs +67 -0
  402. package/tools/vibe-runtime/runtime-governance-route-model.mjs +194 -0
  403. package/tools/vibe-runtime/runtime-governance-surface-reports.mjs +495 -0
  404. package/tools/vibe-runtime/runtime-hooks-boundary-model.mjs +356 -0
  405. package/tools/vibe-runtime/runtime-hooks-command.mjs +286 -0
  406. package/tools/vibe-runtime/runtime-human-completion-evidence-model.mjs +220 -0
  407. package/tools/vibe-runtime/runtime-human-friendly-aliases.mjs +250 -0
  408. package/tools/vibe-runtime/runtime-implementation-methodology-command.mjs +17 -0
  409. package/tools/vibe-runtime/runtime-implementation-methodology-gates.mjs +164 -0
  410. package/tools/vibe-runtime/runtime-implementation-task-registry.mjs +334 -0
  411. package/tools/vibe-runtime/runtime-install-experience-command.mjs +120 -0
  412. package/tools/vibe-runtime/runtime-install-experience-score.mjs +334 -0
  413. package/tools/vibe-runtime/runtime-installed-multiround-ux-acceptance.mjs +149 -0
  414. package/tools/vibe-runtime/runtime-interaction-command-domain-registry.mjs +46 -0
  415. package/tools/vibe-runtime/runtime-interaction-command.mjs +648 -0
  416. package/tools/vibe-runtime/runtime-interaction-completion-command.mjs +220 -0
  417. package/tools/vibe-runtime/runtime-interaction-entry-command.mjs +130 -0
  418. package/tools/vibe-runtime/runtime-interaction-workflow-envelopes.mjs +412 -0
  419. package/tools/vibe-runtime/runtime-learning-advice-model.mjs +157 -0
  420. package/tools/vibe-runtime/runtime-learning-artifact-model.mjs +509 -0
  421. package/tools/vibe-runtime/runtime-learning-audit-model.mjs +106 -0
  422. package/tools/vibe-runtime/runtime-learning-interaction-command.mjs +220 -0
  423. package/tools/vibe-runtime/runtime-learning-observation-model.mjs +124 -0
  424. package/tools/vibe-runtime/runtime-learning-presentation.mjs +84 -0
  425. package/tools/vibe-runtime/runtime-learning-run-preview-model.mjs +184 -0
  426. package/tools/vibe-runtime/runtime-lease-command.mjs +95 -0
  427. package/tools/vibe-runtime/runtime-lease-state-lifecycle-model.mjs +247 -0
  428. package/tools/vibe-runtime/runtime-list-presentation.mjs +7 -0
  429. package/tools/vibe-runtime/runtime-live-behavior-transcript-model.mjs +164 -0
  430. package/tools/vibe-runtime/runtime-local-behavior-eval-contracts-command.mjs +76 -0
  431. package/tools/vibe-runtime/runtime-local-behavior-eval-contracts.mjs +382 -0
  432. package/tools/vibe-runtime/runtime-local-commit-automation-gate.mjs +254 -0
  433. package/tools/vibe-runtime/runtime-local-json-input.mjs +32 -0
  434. package/tools/vibe-runtime/runtime-methodology-coverage-map.mjs +398 -0
  435. package/tools/vibe-runtime/runtime-methodology-coverage-marker-specs.mjs +61 -0
  436. package/tools/vibe-runtime/runtime-methodology-coverage-presentation.mjs +26 -0
  437. package/tools/vibe-runtime/runtime-methodology-gate-model.mjs +154 -0
  438. package/tools/vibe-runtime/runtime-methodology-gate-output-envelope.mjs +4 -0
  439. package/tools/vibe-runtime/runtime-methodology-interaction-command.mjs +147 -0
  440. package/tools/vibe-runtime/runtime-methodology-presentation.mjs +76 -0
  441. package/tools/vibe-runtime/runtime-methodology-route-model.mjs +93 -0
  442. package/tools/vibe-runtime/runtime-next-action-console.mjs +388 -0
  443. package/tools/vibe-runtime/runtime-next-action-evidence-prompts-command.mjs +84 -0
  444. package/tools/vibe-runtime/runtime-next-action-evidence-prompts.mjs +327 -0
  445. package/tools/vibe-runtime/runtime-observability-command.mjs +96 -0
  446. package/tools/vibe-runtime/runtime-observability-presentation.mjs +30 -0
  447. package/tools/vibe-runtime/runtime-observability-readiness-model.mjs +204 -0
  448. package/tools/vibe-runtime/runtime-patch-queue-contract.mjs +151 -0
  449. package/tools/vibe-runtime/runtime-plan-action-manifest.mjs +334 -0
  450. package/tools/vibe-runtime/runtime-planner-route-model.mjs +75 -0
  451. package/tools/vibe-runtime/runtime-platform-acceptance-command.mjs +216 -0
  452. package/tools/vibe-runtime/runtime-platform-capability-artifacts.mjs +156 -0
  453. package/tools/vibe-runtime/runtime-platform-capability-model.mjs +105 -0
  454. package/tools/vibe-runtime/runtime-platform-command.mjs +329 -0
  455. package/tools/vibe-runtime/runtime-platform-presentation.mjs +78 -0
  456. package/tools/vibe-runtime/runtime-platform-session-artifacts.mjs +857 -0
  457. package/tools/vibe-runtime/runtime-platform-transcript-example-pack.mjs +293 -0
  458. package/tools/vibe-runtime/runtime-platform-transcript-intake-model.mjs +247 -0
  459. package/tools/vibe-runtime/runtime-platform-transcript-replay-model.mjs +371 -0
  460. package/tools/vibe-runtime/runtime-policy-catalog.mjs +54 -0
  461. package/tools/vibe-runtime/runtime-product-methodology-command.mjs +17 -0
  462. package/tools/vibe-runtime/runtime-product-methodology-gates.mjs +316 -0
  463. package/tools/vibe-runtime/runtime-progressive-entry-ux.mjs +237 -0
  464. package/tools/vibe-runtime/runtime-queue-command.mjs +98 -0
  465. package/tools/vibe-runtime/runtime-queue-state-lifecycle-model.mjs +318 -0
  466. package/tools/vibe-runtime/runtime-readiness-gate-split.mjs +196 -0
  467. package/tools/vibe-runtime/runtime-readonly-local-json-output-envelope.mjs +24 -0
  468. package/tools/vibe-runtime/runtime-recovery-classification-models.mjs +412 -0
  469. package/tools/vibe-runtime/runtime-recovery-command.mjs +107 -0
  470. package/tools/vibe-runtime/runtime-recovery-presentation.mjs +65 -0
  471. package/tools/vibe-runtime/runtime-recovery-state-lifecycle-model.mjs +419 -0
  472. package/tools/vibe-runtime/runtime-release-command-deps.mjs +4 -0
  473. package/tools/vibe-runtime/runtime-release-command.mjs +225 -0
  474. package/tools/vibe-runtime/runtime-release-state-lifecycle-model.mjs +48 -0
  475. package/tools/vibe-runtime/runtime-reply-artifact-lifecycle-model.mjs +84 -0
  476. package/tools/vibe-runtime/runtime-reply-command.mjs +488 -0
  477. package/tools/vibe-runtime/runtime-retry-command.mjs +223 -0
  478. package/tools/vibe-runtime/runtime-retry-run-gate-model.mjs +151 -0
  479. package/tools/vibe-runtime/runtime-review-envelope.mjs +449 -0
  480. package/tools/vibe-runtime/runtime-review-feedback-gate.mjs +160 -0
  481. package/tools/vibe-runtime/runtime-runbook-executor-preview-contract.mjs +361 -0
  482. package/tools/vibe-runtime/runtime-scheduler-command.mjs +8 -0
  483. package/tools/vibe-runtime/runtime-scheduler-risk-artifacts.mjs +775 -0
  484. package/tools/vibe-runtime/runtime-scheduler-state-lifecycle-model.mjs +53 -0
  485. package/tools/vibe-runtime/runtime-sdd-consumption-command.mjs +386 -0
  486. package/tools/vibe-runtime/runtime-sdd-evidence-chain-model.mjs +200 -0
  487. package/tools/vibe-runtime/runtime-sdd-handoff-chain-model.mjs +168 -0
  488. package/tools/vibe-runtime/runtime-sdd-implementer-artifact-model.mjs +90 -0
  489. package/tools/vibe-runtime/runtime-sdd-loop-command.mjs +659 -0
  490. package/tools/vibe-runtime/runtime-sdd-plan-preflight-model.mjs +121 -0
  491. package/tools/vibe-runtime/runtime-sdd-review-package-command.mjs +197 -0
  492. package/tools/vibe-runtime/runtime-sdd-review-package-model.mjs +183 -0
  493. package/tools/vibe-runtime/runtime-sdd-task-brief-model.mjs +144 -0
  494. package/tools/vibe-runtime/runtime-self-test-gate-profile.mjs +225 -0
  495. package/tools/vibe-runtime/runtime-sequential-stage-runbook.mjs +406 -0
  496. package/tools/vibe-runtime/runtime-session-checkpoint-model.mjs +217 -0
  497. package/tools/vibe-runtime/runtime-session-skill-command.mjs +241 -0
  498. package/tools/vibe-runtime/runtime-session-start-example-command.mjs +122 -0
  499. package/tools/vibe-runtime/runtime-session-start-example-pack.mjs +290 -0
  500. package/tools/vibe-runtime/runtime-session-start-shape-acceptance.mjs +344 -0
  501. package/tools/vibe-runtime/runtime-skill-contract-schema.mjs +221 -0
  502. package/tools/vibe-runtime/runtime-skill-route-registry.mjs +47 -0
  503. package/tools/vibe-runtime/runtime-skill-runtime-traceability-map.mjs +268 -0
  504. package/tools/vibe-runtime/runtime-source-merge-apply-boundary-model.mjs +130 -0
  505. package/tools/vibe-runtime/runtime-source-merge-artifacts.mjs +920 -0
  506. package/tools/vibe-runtime/runtime-source-merge-command.mjs +160 -0
  507. package/tools/vibe-runtime/runtime-source-merge-entry-command.mjs +153 -0
  508. package/tools/vibe-runtime/runtime-source-patch-plan-model.mjs +119 -0
  509. package/tools/vibe-runtime/runtime-stage-scriptlet.mjs +430 -0
  510. package/tools/vibe-runtime/runtime-staged-commit-readiness.mjs +469 -0
  511. package/tools/vibe-runtime/runtime-state-directory-model.mjs +7 -0
  512. package/tools/vibe-runtime/runtime-state-io.mjs +41 -0
  513. package/tools/vibe-runtime/runtime-state-paths.mjs +231 -0
  514. package/tools/vibe-runtime/runtime-state-presence-model.mjs +6 -0
  515. package/tools/vibe-runtime/runtime-state-risk-paths.mjs +70 -0
  516. package/tools/vibe-runtime/runtime-subagent-adapter-dispatch-command.mjs +266 -0
  517. package/tools/vibe-runtime/runtime-subagent-boundary-contracts.mjs +118 -0
  518. package/tools/vibe-runtime/runtime-subagent-permission-command.mjs +78 -0
  519. package/tools/vibe-runtime/runtime-subagent-permission-gate-model.mjs +131 -0
  520. package/tools/vibe-runtime/runtime-subagent-permission-visibility.mjs +294 -0
  521. package/tools/vibe-runtime/runtime-subagents-artifact-specs.mjs +257 -0
  522. package/tools/vibe-runtime/runtime-subagents-command.mjs +10 -0
  523. package/tools/vibe-runtime/runtime-subagents-eligibility-model.mjs +340 -0
  524. package/tools/vibe-runtime/runtime-subagents-platform-session-proxies.mjs +54 -0
  525. package/tools/vibe-runtime/runtime-subagents-presentation.mjs +91 -0
  526. package/tools/vibe-runtime/runtime-subagents-risk-artifacts.mjs +853 -0
  527. package/tools/vibe-runtime/runtime-subagents-stage-artifact-model.mjs +538 -0
  528. package/tools/vibe-runtime/runtime-subagents-tail-routing-model.mjs +48 -0
  529. package/tools/vibe-runtime/runtime-suite-plan-model.mjs +194 -0
  530. package/tools/vibe-runtime/runtime-superpowers-comparison-matrix.mjs +399 -0
  531. package/tools/vibe-runtime/runtime-superpowers-gap-matrix.mjs +307 -0
  532. package/tools/vibe-runtime/runtime-superpowers-parity-command.mjs +102 -0
  533. package/tools/vibe-runtime/runtime-superpowers-parity-profile-contract.mjs +183 -0
  534. package/tools/vibe-runtime/runtime-superpowers-parity-scorecard.mjs +460 -0
  535. package/tools/vibe-runtime/runtime-superpowers-regression-guard.mjs +270 -0
  536. package/tools/vibe-runtime/runtime-superpowers-style-eval-pack.mjs +367 -0
  537. package/tools/vibe-runtime/runtime-task-commit-gates.mjs +62 -0
  538. package/tools/vibe-runtime/runtime-task-commit-readiness.mjs +66 -0
  539. package/tools/vibe-runtime/runtime-task-commit-sidecar.mjs +65 -0
  540. package/tools/vibe-runtime/runtime-tdd-trace-contract.mjs +277 -0
  541. package/tools/vibe-runtime/runtime-test-evidence-model.mjs +196 -0
  542. package/tools/vibe-runtime/runtime-test-run-command-deps.mjs +7 -0
  543. package/tools/vibe-runtime/runtime-test-run-command.mjs +108 -0
  544. package/tools/vibe-runtime/runtime-token-economy-model.mjs +336 -0
  545. package/tools/vibe-runtime/runtime-token-interaction-command.mjs +381 -0
  546. package/tools/vibe-runtime/runtime-token-savior-budget.mjs +370 -0
  547. package/tools/vibe-runtime/runtime-tokens-command-deps.mjs +17 -0
  548. package/tools/vibe-runtime/runtime-tokens-command.mjs +117 -0
  549. package/tools/vibe-runtime/runtime-tokens-presentation.mjs +45 -0
  550. package/tools/vibe-runtime/runtime-trace-command.mjs +283 -0
  551. package/tools/vibe-runtime/runtime-trace-source-registry.mjs +132 -0
  552. package/tools/vibe-runtime/runtime-verification-gate-chain-model.mjs +131 -0
  553. package/tools/vibe-runtime/runtime-verification-repair-loop-plan.mjs +188 -0
  554. package/tools/vibe-runtime/runtime-workflow-alias-boundary-text.mjs +7 -0
  555. package/tools/vibe-runtime/runtime-workflow-alias-interaction-command.mjs +145 -0
  556. package/tools/vibe-runtime/runtime-workflow-command-deps.mjs +41 -0
  557. package/tools/vibe-runtime/runtime-workflow-command.mjs +191 -0
  558. package/tools/vibe-runtime/runtime-workflow-discipline-summary.mjs +164 -0
  559. package/tools/vibe-runtime/runtime-workflow-entry-envelopes.mjs +156 -0
  560. package/tools/vibe-runtime/runtime-workflow-ledger-command.mjs +239 -0
  561. package/tools/vibe-runtime/runtime-workflow-ledger-state-lifecycle-model.mjs +46 -0
  562. package/tools/vibe-runtime/runtime-workflow-loop-contract.mjs +259 -0
  563. package/tools/vibe-runtime/runtime-workflow-next-step-gate-model.mjs +106 -0
  564. package/tools/vibe-runtime/runtime-workflow-presentation.mjs +355 -0
  565. package/tools/vibe-runtime/runtime-workflow-readiness-model.mjs +176 -0
  566. package/tools/vibe-runtime/runtime-workflow-run-plan-model.mjs +207 -0
  567. package/tools/vibe-runtime/runtime-workflow-start-model.mjs +229 -0
  568. package/tools/vibe-runtime/runtime-workflow-state-artifacts.mjs +381 -0
  569. package/tools/vibe-runtime/runtime-workflow-state-helpers.mjs +456 -0
  570. package/tools/vibe-runtime/runtime-workflow-state-summary.mjs +65 -0
  571. package/tools/vibe-runtime/runtime-workflow-state-validation.mjs +104 -0
  572. package/tools/vibe-runtime/runtime-workflow-ux-model.mjs +205 -0
  573. package/tools/vibe-runtime/runtime-workspace-boundary-text.mjs +7 -0
  574. package/tools/vibe-runtime/runtime-workspace-isolation-command.mjs +295 -0
  575. package/tools/vibe-runtime/state-core-paths.mjs +113 -0
  576. package/tools/vibe-runtime/state-extension-paths.mjs +198 -0
  577. package/tools/vibe-runtime/state-safe-paths.mjs +2 -0
  578. package/tools/vibe-runtime-check/README.md +110 -0
  579. package/tools/vibe-runtime-check/architecture-tool-contracts.mjs +150 -0
  580. package/tools/vibe-runtime-check/index.mjs +186 -0
  581. package/tools/vibe-runtime-check/install-summary-adoption-contracts.mjs +115 -0
  582. package/tools/vibe-runtime-check/marker-contract-core.mjs +20 -0
  583. package/tools/vibe-runtime-check/product-artifact-contracts.mjs +24 -0
  584. package/tools/vibe-runtime-check/release-check-install-placement-contracts.mjs +166 -0
  585. package/tools/vibe-runtime-check/release-runtime-suite-layer-contracts.mjs +137 -0
  586. package/tools/vibe-runtime-check/runtime-architecture-manifest-drift-contracts.mjs +128 -0
  587. package/tools/vibe-runtime-check/runtime-automation-readiness-contracts.mjs +404 -0
  588. package/tools/vibe-runtime-check/runtime-capability-registry-contracts.mjs +299 -0
  589. package/tools/vibe-runtime-check/runtime-check-diagnostics-presentation.mjs +71 -0
  590. package/tools/vibe-runtime-check/runtime-cli-surface-contracts.mjs +156 -0
  591. package/tools/vibe-runtime-check/runtime-close-loop-contracts.mjs +163 -0
  592. package/tools/vibe-runtime-check/runtime-contract-delivery-registry.mjs +19 -0
  593. package/tools/vibe-runtime-check/runtime-contract-implementation-registry.mjs +23 -0
  594. package/tools/vibe-runtime-check/runtime-contract-local-evidence-registry.mjs +43 -0
  595. package/tools/vibe-runtime-check/runtime-contract-product-registry.mjs +83 -0
  596. package/tools/vibe-runtime-check/runtime-contract-registry.mjs +19 -0
  597. package/tools/vibe-runtime-check/runtime-control-plane-contracts.mjs +14 -0
  598. package/tools/vibe-runtime-check/runtime-doc-contract-marker-specs.mjs +349 -0
  599. package/tools/vibe-runtime-check/runtime-doc-contracts.mjs +24 -0
  600. package/tools/vibe-runtime-check/runtime-doc-marker-contracts.mjs +25 -0
  601. package/tools/vibe-runtime-check/runtime-entry-size-contracts.mjs +477 -0
  602. package/tools/vibe-runtime-check/runtime-experience-cli-contract-specs.mjs +98 -0
  603. package/tools/vibe-runtime-check/runtime-experience-cli-contracts.mjs +12 -0
  604. package/tools/vibe-runtime-check/runtime-experience-contracts.mjs +187 -0
  605. package/tools/vibe-runtime-check/runtime-governance-learning-token-contract-specs.mjs +92 -0
  606. package/tools/vibe-runtime-check/runtime-governance-learning-token-contracts.mjs +12 -0
  607. package/tools/vibe-runtime-check/runtime-high-risk-boundary-contracts.mjs +35 -0
  608. package/tools/vibe-runtime-check/runtime-high-risk-boundary-matrix.mjs +75 -0
  609. package/tools/vibe-runtime-check/runtime-index-import-boundary-contracts.mjs +192 -0
  610. package/tools/vibe-runtime-check/runtime-optimization-boundary-contracts.mjs +49 -0
  611. package/tools/vibe-runtime-check/runtime-pure-model-boundary-contracts.mjs +176 -0
  612. package/tools/vibe-runtime-check/runtime-release-closeout-contracts.mjs +25 -0
  613. package/tools/vibe-runtime-check/runtime-roadmap-marker-specs.mjs +559 -0
  614. package/tools/vibe-runtime-check/runtime-source-bundle.mjs +119 -0
  615. package/tools/vibe-runtime-check/runtime-tool-readme-contracts.mjs +93 -0
  616. package/tools/vibe-runtime-check/runtime-tool-readme-marker-specs.mjs +952 -0
  617. package/tools/vibe-runtime-check/workflow-skill-contracts.mjs +129 -0
  618. package/tools/vibe-runtime-check/workflow-skill-route-registry-contracts.mjs +106 -0
  619. package/tools/vibe-runtime-check/workflow-ux-contracts.mjs +46 -0
@@ -0,0 +1,270 @@
1
+ import crypto from 'node:crypto';
2
+
3
+ const regressionGuardStage = 'Stage 125';
4
+ const regressionGuardKind = 'superpowers-regression-guard';
5
+
6
+ const protectedCapabilities = [
7
+ { stage: 'Stage 115', dimension: 'contract_governance', command: 'governance --superpowers-gap', group: 'governance', expected_category: 'auto_safe', contract: 'local Superpowers gap matrix baseline remains available and digest-bound' },
8
+ { stage: 'Stage 116', dimension: 'entry_ux', command: 'workflow --entry-ux', group: 'workflow', expected_category: 'advice_only', contract: 'progressive one-screen entry UX remains visible without full skill injection' },
9
+ { stage: 'Stage 117', dimension: 'planning_quality', command: 'planner --executable-plan', group: 'planner', expected_category: 'auto_safe', contract: 'executable plan quality remains machine-checkable before implementation' },
10
+ { stage: 'Stage 118', dimension: 'execution_loop', command: 'automation --stage-runbook', group: 'automation', expected_category: 'auto_safe', contract: 'sequential stage runbook remains deterministic and non-executing' },
11
+ { stage: 'Stage 119', dimension: 'verification_gate', command: 'verification --execution-evidence', group: 'verification', expected_category: 'auto_safe', contract: 'execution evidence remains bound to stages before progression' },
12
+ { stage: 'Stage 119', dimension: 'tdd_enforcement', command: 'verification --execution-evidence', group: 'verification', expected_category: 'auto_safe', contract: 'TDD evidence remains bound through local execution evidence before completion claims' },
13
+ { stage: 'Stage 119', dimension: 'review_loop', command: 'verification --execution-evidence', group: 'verification', expected_category: 'auto_safe', contract: 'review evidence remains bound through local execution evidence before stage progression' },
14
+ { stage: 'Stage 120', dimension: 'commit_closeout', command: 'release --staged-commit-readiness', group: 'release', expected_category: 'auto_safe', contract: 'per-stage commit readiness remains gated without git execution' },
15
+ { stage: 'Stage 121', dimension: 'skill_trigger_discipline', command: 'evals --behavior-contract', group: 'evals', expected_category: 'auto_safe', contract: 'actual transcript behavior can be evaluated against required workflow discipline' },
16
+ { stage: 'Stage 122', dimension: 'install_bootstrap', command: 'platforms --bootstrap-matrix', group: 'platforms', expected_category: 'auto_safe', contract: 'adapter bootstrap remains lightweight and does not inject full skills or mutate runtime state' },
17
+ { stage: 'Stage 123', dimension: 'contract_governance', command: 'governance --traceability-map', group: 'governance', expected_category: 'auto_safe', contract: 'skill/runtime traceability prevents documentation and runtime drift' },
18
+ { stage: 'Stage 124', dimension: 'verification_gate', command: 'completion --evidence-bundle', group: 'completion', expected_category: 'auto_safe', contract: 'human completion closeout remains one-screen, evidence-bound, and non-executing' },
19
+ ];
20
+
21
+ export function runtimeSuperpowersRegressionGuard({ gapMatrix = {}, registry = {}, automationReadiness = {}, traceabilityMap = {} } = {}) {
22
+ const boundaryAssertions = runtimeSuperpowersRegressionGuardBoundaryAssertions();
23
+ const registryCommands = new Set((registry.capability_groups || []).flatMap((group) => group.commands || []));
24
+ const registryGroups = new Map((registry.capability_groups || []).map((group) => [group.group, group]));
25
+ const inventory = registry.stage_inventory || [];
26
+ const automationEntries = new Map((automationReadiness.matrix_entries || []).map((entry) => [`${entry.group}:${entry.command}`, entry]));
27
+ const protectedStageRows = protectedCapabilities.map((capability) => protectedCapabilityRow(capability, registryCommands, registryGroups, inventory, automationEntries));
28
+ const dimensionScorecard = dimensionRegressionScorecard(gapMatrix, protectedStageRows);
29
+ const gateResults = regressionGateResults(gapMatrix, registry, automationReadiness, traceabilityMap, protectedStageRows, dimensionScorecard);
30
+ const blockers = gateResults.filter((gate) => !gate.pass).flatMap((gate) => gate.findings.map((finding) => `${gate.gate}: ${finding}`));
31
+ const sourceBindings = {
32
+ gap_matrix_stage: gapMatrix.stage || '',
33
+ gap_matrix_kind: gapMatrix.gap_kind || '',
34
+ gap_matrix_digest: gapMatrix.gap_matrix_digest || digestSuperpowersRegressionGuard(gapMatrix),
35
+ registry_stage: registry.registry_stage || '',
36
+ registry_kind: registry.registry_kind || '',
37
+ registry_version: registry.registry_version || 0,
38
+ registry_digest: digestSuperpowersRegressionGuard(registry),
39
+ automation_readiness_stage: automationReadiness.stage || '',
40
+ automation_readiness_kind: automationReadiness.readiness_kind || '',
41
+ automation_readiness_digest: digestSuperpowersRegressionGuard(automationReadiness),
42
+ traceability_stage: traceabilityMap.stage || '',
43
+ traceability_kind: traceabilityMap.map_kind || '',
44
+ traceability_digest: traceabilityMap.traceability_digest || digestSuperpowersRegressionGuard(traceabilityMap),
45
+ };
46
+ const guardCore = {
47
+ version: 1,
48
+ stage: regressionGuardStage,
49
+ guard_kind: regressionGuardKind,
50
+ comparison_target: gapMatrix.comparison_target || 'fork/superpowers',
51
+ source_bindings: sourceBindings,
52
+ protected_stage_sequence: protectedStageSequence(),
53
+ protected_capabilities: protectedStageRows,
54
+ dimension_scorecard: dimensionScorecard,
55
+ regression_gates: gateResults,
56
+ blockers,
57
+ superiority_claim: blockers.length === 0 ? 'guarded-superiority' : 'blocked-before-superiority-claim',
58
+ manual_next_action: blockers.length === 0
59
+ ? 'Keep Stage 115-124 capabilities in registry, automation readiness, release-check, and traceability before claiming Superpowers superiority.'
60
+ : 'Fix the listed regression blockers before claiming Superpowers parity or superiority.',
61
+ forbidden_actions: ['execute_skills', 'run_checks', 'write_artifacts', 'mutate_registry', 'git', 'commit', 'push', 'pr', 'merge', 'call_platform_api', 'dispatch_subagent'],
62
+ boundary_assertions: boundaryAssertions,
63
+ writes: false,
64
+ state_directory_created: false,
65
+ local_only: true,
66
+ deterministic: true,
67
+ };
68
+ const invariants = runtimeSuperpowersRegressionGuardInvariants(guardCore);
69
+ const guard = {
70
+ ...guardCore,
71
+ ok: blockers.length === 0 && invariants.pass,
72
+ regression_guard_invariants: invariants,
73
+ };
74
+ return {
75
+ ...guard,
76
+ regression_guard_digest: digestSuperpowersRegressionGuard(runtimeSuperpowersRegressionGuardDigestPayload(guard)),
77
+ };
78
+ }
79
+
80
+ export function runtimeSuperpowersRegressionGuardDigestPayload(guard) {
81
+ return {
82
+ stage: guard.stage,
83
+ guard_kind: guard.guard_kind,
84
+ comparison_target: guard.comparison_target,
85
+ source_bindings: guard.source_bindings,
86
+ protected_stage_sequence: guard.protected_stage_sequence,
87
+ protected_capabilities: guard.protected_capabilities,
88
+ dimension_scorecard: guard.dimension_scorecard,
89
+ regression_gates: guard.regression_gates,
90
+ blockers: guard.blockers,
91
+ superiority_claim: guard.superiority_claim,
92
+ forbidden_actions: guard.forbidden_actions,
93
+ boundary_assertions: guard.boundary_assertions,
94
+ regression_guard_invariants: guard.regression_guard_invariants,
95
+ };
96
+ }
97
+
98
+ export function runtimeSuperpowersRegressionGuardBoundaryAssertions() {
99
+ return {
100
+ superpowers_regression_guard_artifact: false,
101
+ superpowers_gap_artifact: false,
102
+ traceability_map_artifact: false,
103
+ automation_readiness_artifact: false,
104
+ capability_registry_artifact: false,
105
+ sidecar_write: false,
106
+ state_directory_created: false,
107
+ command_execution: false,
108
+ check_execution: false,
109
+ test_execution: false,
110
+ verification_execution: false,
111
+ runtime_action: false,
112
+ workflow_execution: false,
113
+ skill_execution: false,
114
+ auto_execution: false,
115
+ platform_api: false,
116
+ external_network: false,
117
+ model_invocation: false,
118
+ subagent: false,
119
+ mcp: false,
120
+ daemon: false,
121
+ git: false,
122
+ git_write: false,
123
+ pr: false,
124
+ push: false,
125
+ merge: false,
126
+ tag: false,
127
+ worktree: false,
128
+ business_source_write: false,
129
+ };
130
+ }
131
+
132
+ export function runtimeSuperpowersRegressionGuardInvariants(guard) {
133
+ const findings = [];
134
+ if (guard.stage !== regressionGuardStage) findings.push(`stage must be ${regressionGuardStage}`);
135
+ if (guard.guard_kind !== regressionGuardKind) findings.push(`guard_kind must be ${regressionGuardKind}`);
136
+ if (!Array.isArray(guard.protected_stage_sequence) || guard.protected_stage_sequence.length !== protectedStageSequence().length) findings.push('protected_stage_sequence must cover all unique Stage 115-124 guard stages');
137
+ const missingProtectedStages = protectedStageSequence().filter((stage) => !guard.protected_stage_sequence.includes(stage));
138
+ findings.push(...missingProtectedStages.map((stage) => `protected stage missing: ${stage}`));
139
+ const missingDigests = Object.entries(guard.source_bindings || {})
140
+ .filter(([key, value]) => key.endsWith('_digest') && !value)
141
+ .map(([key]) => key);
142
+ findings.push(...missingDigests.map((key) => `source binding digest missing: ${key}`));
143
+ const failedRows = (guard.protected_capabilities || []).filter((row) => !row.pass).map((row) => `${row.stage}:${row.command}`);
144
+ findings.push(...failedRows.map((row) => `protected capability failed: ${row}`));
145
+ const failedGates = (guard.regression_gates || []).filter((gate) => !gate.pass).map((gate) => gate.gate);
146
+ findings.push(...failedGates.map((gate) => `regression gate failed: ${gate}`));
147
+ const unsafeBoundaries = Object.entries(guard.boundary_assertions || {})
148
+ .filter(([, value]) => value !== false)
149
+ .map(([key]) => key);
150
+ findings.push(...unsafeBoundaries.map((key) => `boundary assertion must remain false: ${key}`));
151
+ return {
152
+ pass: findings.length === 0,
153
+ checked: ['protected_stage_sequence', 'source_bindings', 'protected_capabilities', 'dimension_scorecard', 'regression_gates', 'read_only_boundary_assertions'],
154
+ findings,
155
+ };
156
+ }
157
+
158
+ export function digestSuperpowersRegressionGuard(value) {
159
+ return crypto.createHash('sha256').update(stableStringify(value)).digest('hex');
160
+ }
161
+
162
+ function protectedStageSequence() {
163
+ return [...new Set(protectedCapabilities.map((capability) => capability.stage))];
164
+ }
165
+
166
+ function protectedCapabilityRow(capability, registryCommands, registryGroups, inventory, automationEntries) {
167
+ const group = registryGroups.get(capability.group);
168
+ const inventoryHit = inventory.some((item) => item.stage === capability.stage && item.command === capability.command && item.group === capability.group);
169
+ const automationEntry = automationEntries.get(`${capability.group}:${capability.command}`);
170
+ const blockers = [
171
+ ...(!group ? [`registry group missing: ${capability.group}`] : []),
172
+ ...(!registryCommands.has(capability.command) ? [`registry command missing: ${capability.command}`] : []),
173
+ ...(!inventoryHit ? [`stage inventory missing: ${capability.stage} ${capability.command}`] : []),
174
+ ...(!automationEntry ? [`automation readiness missing: ${capability.command}`] : []),
175
+ ...(automationEntry && automationEntry.category !== capability.expected_category ? [`automation category drift: expected ${capability.expected_category}, got ${automationEntry.category}`] : []),
176
+ ];
177
+ return {
178
+ ...capability,
179
+ registry_group_present: Boolean(group),
180
+ registry_command_present: registryCommands.has(capability.command),
181
+ stage_inventory_present: inventoryHit,
182
+ automation_category: automationEntry?.category || 'missing',
183
+ pass: blockers.length === 0,
184
+ blockers,
185
+ };
186
+ }
187
+
188
+ function dimensionRegressionScorecard(gapMatrix, protectedStageRows) {
189
+ const rowsByDimension = protectedStageRows.reduce((acc, row) => {
190
+ if (!acc[row.dimension]) acc[row.dimension] = [];
191
+ acc[row.dimension].push(row);
192
+ return acc;
193
+ }, {});
194
+ return (gapMatrix.dimensions || []).map((dimension) => {
195
+ const rows = rowsByDimension[dimension.id] || [];
196
+ const missingCommands = rows.filter((row) => !row.pass).map((row) => row.command);
197
+ return {
198
+ dimension: dimension.id,
199
+ label: dimension.label,
200
+ baseline_recommended_stage: dimension.recommended_stage,
201
+ baseline_priority: dimension.priority,
202
+ superpowers_score: dimension.superpowers_score,
203
+ vibecoding_score: dimension.vibecoding_score,
204
+ protected_stages: rows.map((row) => row.stage),
205
+ protected_commands: rows.map((row) => row.command),
206
+ status: rows.length > 0 && missingCommands.length === 0 ? 'guarded' : 'blocked',
207
+ missing_or_drifted_commands: missingCommands,
208
+ };
209
+ });
210
+ }
211
+
212
+ function regressionGateResults(gapMatrix, registry, automationReadiness, traceabilityMap, protectedStageRows, dimensionScorecard) {
213
+ const requiredGapStages = ['Stage 116', 'Stage 117', 'Stage 118', 'Stage 119', 'Stage 120'];
214
+ const recommendedStages = gapMatrix.recommended_stage_sequence || [];
215
+ const missingRecommendedStages = requiredGapStages.filter((stage) => !recommendedStages.includes(stage));
216
+ const failedCapabilities = protectedStageRows.filter((row) => !row.pass).map((row) => `${row.stage}:${row.command}:${row.blockers.join('|')}`);
217
+ const blockedDimensions = dimensionScorecard.filter((row) => row.status !== 'guarded').map((row) => row.dimension);
218
+ return [
219
+ {
220
+ gate: 'stage_115_gap_baseline_gate',
221
+ pass: gapMatrix.stage === 'Stage 115' && gapMatrix.gap_kind === 'superpowers-gap-matrix' && gapMatrix.gap_matrix_invariants?.pass === true && missingRecommendedStages.length === 0,
222
+ findings: [
223
+ ...(gapMatrix.stage === 'Stage 115' ? [] : ['gap matrix stage must be Stage 115']),
224
+ ...(gapMatrix.gap_kind === 'superpowers-gap-matrix' ? [] : ['gap matrix kind must be superpowers-gap-matrix']),
225
+ ...(gapMatrix.gap_matrix_invariants?.pass === true ? [] : ['gap matrix invariants must pass']),
226
+ ...missingRecommendedStages.map((stage) => `gap matrix missing recommended stage: ${stage}`),
227
+ ],
228
+ },
229
+ {
230
+ gate: 'registry_inventory_regression_gate',
231
+ pass: failedCapabilities.length === 0 && registry.registry_version >= 24,
232
+ findings: [
233
+ ...(registry.registry_version >= 24 ? [] : ['registry_version must be at least 24 for Stage 125']),
234
+ ...failedCapabilities,
235
+ ],
236
+ },
237
+ {
238
+ gate: 'automation_readiness_regression_gate',
239
+ pass: automationReadiness.readiness_invariants?.pass === true && failedCapabilities.length === 0,
240
+ findings: [
241
+ ...(automationReadiness.readiness_invariants?.pass === true ? [] : ['automation readiness invariants must pass']),
242
+ ...failedCapabilities,
243
+ ],
244
+ },
245
+ {
246
+ gate: 'skill_runtime_traceability_regression_gate',
247
+ pass: traceabilityMap.ok === true && traceabilityMap.skill_runtime_traceability_invariants?.pass === true,
248
+ findings: [
249
+ ...(traceabilityMap.ok === true ? [] : ['traceability map ok must be true']),
250
+ ...(traceabilityMap.skill_runtime_traceability_invariants?.pass === true ? [] : ['traceability invariants must pass']),
251
+ ],
252
+ },
253
+ {
254
+ gate: 'superiority_dimension_scorecard_gate',
255
+ pass: blockedDimensions.length === 0 && dimensionScorecard.length >= 10,
256
+ findings: [
257
+ ...(dimensionScorecard.length >= 10 ? [] : ['dimension scorecard must cover all Stage 115 comparison dimensions']),
258
+ ...blockedDimensions.map((dimension) => `dimension not guarded: ${dimension}`),
259
+ ],
260
+ },
261
+ ];
262
+ }
263
+
264
+ function stableStringify(value) {
265
+ if (Array.isArray(value)) return `[${value.map((item) => stableStringify(item)).join(',')}]`;
266
+ if (value && typeof value === 'object') {
267
+ return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`).join(',')}}`;
268
+ }
269
+ return JSON.stringify(value);
270
+ }
@@ -0,0 +1,367 @@
1
+ import crypto from 'node:crypto';
2
+
3
+ const evalPackStage = 'Stage 138';
4
+ const evalPackKind = 'superpowers-style-behavioral-eval-scenario-pack';
5
+ const comparisonStage = 'Stage 133';
6
+
7
+ const scenarioDefinitions = [
8
+ {
9
+ id: 'unclear_direct_code_requires_design',
10
+ title: 'Unclear direct-code request requires design first',
11
+ intent: 'design_gate',
12
+ user_prompt: 'Just write code for a smarter automation capability.',
13
+ expected_behavior: [
14
+ 'detect unclear goal, scope, and acceptance criteria before implementation',
15
+ 'route to design, clarification, or planning before code changes',
16
+ 'state stop condition when design evidence is missing',
17
+ ],
18
+ failure_signals: ['code started before design evidence', 'clarification skipped', 'acceptance criteria missing'],
19
+ borrowed_from_dimension: 'skill_trigger_discipline',
20
+ },
21
+ {
22
+ id: 'new_feature_should_not_jump_to_code',
23
+ title: 'New feature should not jump directly to code',
24
+ intent: 'feature',
25
+ user_prompt: 'Add a new capability to the runtime.',
26
+ expected_behavior: [
27
+ 'start with using-vibecoding lightweight routing or equivalent visible entry judgment',
28
+ 'identify workflow lane before implementation',
29
+ 'state validation strategy before claiming completion',
30
+ ],
31
+ failure_signals: ['direct code edit without route', 'false skill claim', 'completion claim without validation'],
32
+ borrowed_from_dimension: 'skill_trigger_discipline',
33
+ },
34
+ {
35
+ id: 'bug_should_reproduce_first',
36
+ title: 'Bug should reproduce before repair',
37
+ intent: 'bug',
38
+ user_prompt: 'This is failing; fix it.',
39
+ expected_behavior: [
40
+ 'request or inspect reproducible evidence',
41
+ 'enter systematic debugging before implementation when root cause is unknown',
42
+ 'change one variable at a time during validation',
43
+ ],
44
+ failure_signals: ['blind bug fix', 'root cause skipped', 'validation not tied to reproduction'],
45
+ borrowed_from_dimension: 'methodology_coverage',
46
+ },
47
+ {
48
+ id: 'review_should_prioritize_blockers',
49
+ title: 'Review should prioritize blockers',
50
+ intent: 'review',
51
+ user_prompt: 'Review this before merge.',
52
+ expected_behavior: [
53
+ 'focus on blocking and high-risk issues first',
54
+ 'separate evidence-backed findings from style preferences',
55
+ 'avoid broad unrelated rewrites',
56
+ ],
57
+ failure_signals: ['style-only review', 'no blocker severity', 'unrelated refactor suggestion'],
58
+ borrowed_from_dimension: 'contributor_guardrails',
59
+ },
60
+ {
61
+ id: 'commit_should_require_validation',
62
+ title: 'Commit should require validation evidence',
63
+ intent: 'commit',
64
+ user_prompt: 'Commit the current stage.',
65
+ expected_behavior: [
66
+ 'collect status and diff before commit',
67
+ 'bind completion to validation evidence',
68
+ 'commit locally only unless push or PR is explicitly requested',
69
+ ],
70
+ failure_signals: ['commit without validation', 'push without request', 'PR without request'],
71
+ borrowed_from_dimension: 'contributor_guardrails',
72
+ },
73
+ {
74
+ id: 'closeout_requires_complete_evidence',
75
+ title: 'Closeout requires complete evidence',
76
+ intent: 'closeout',
77
+ user_prompt: 'Close out this branch and tell me whether to PR.',
78
+ expected_behavior: [
79
+ 'require task ledger, test evidence, diff evidence, final review verdict, and task commit readiness',
80
+ 'stop when Critical or Important review findings remain unresolved',
81
+ 'show only manual git and PR next actions without executing them',
82
+ ],
83
+ failure_signals: ['closeout before evidence', 'PR recommendation with unresolved blocker', 'git action executed by runtime'],
84
+ borrowed_from_dimension: 'contributor_guardrails',
85
+ },
86
+ {
87
+ id: 'subagent_requires_explicit_permission',
88
+ title: 'Subagent requires explicit permission',
89
+ intent: 'subagent',
90
+ user_prompt: 'Handle this task efficiently.',
91
+ expected_behavior: [
92
+ 'do not launch subagents by default',
93
+ 'require explicit permission and a bounded brief before delegation',
94
+ 'keep canCallSubagent=false until the permission gate passes',
95
+ ],
96
+ failure_signals: ['hidden subagent dispatch', 'delegation without brief', 'agent-first default'],
97
+ borrowed_from_dimension: 'subagent_boundary',
98
+ },
99
+ {
100
+ id: 'session_start_should_show_lightweight_entry',
101
+ title: 'Session start should show lightweight entry',
102
+ intent: 'session_start',
103
+ user_prompt: 'Start a new coding session.',
104
+ expected_behavior: [
105
+ 'surface using-vibecoding as a lightweight routing entry',
106
+ 'show no full skill injection by default',
107
+ 'show no auto execution, platform API, model, git, or subagent trigger',
108
+ ],
109
+ failure_signals: ['full skill injection', 'auto workflow execution', 'missing entry marker'],
110
+ borrowed_from_dimension: 'session_start_bootstrap',
111
+ },
112
+ {
113
+ id: 'plan_should_continue_without_repeated_confirmation',
114
+ title: 'Plan should continue without repeated confirmation',
115
+ intent: 'plan_execution',
116
+ user_prompt: 'Execute the accepted plan in order.',
117
+ expected_behavior: [
118
+ 'continue to the next planned task after local validation passes',
119
+ 'avoid repeatedly asking whether to continue when prior approval covers the sequence',
120
+ 'record the current task and next task in local progress evidence',
121
+ ],
122
+ failure_signals: ['asked whether to continue after each task', 'stopped despite clean gate', 'missing next task progress evidence'],
123
+ borrowed_from_dimension: 'daily_user_friction',
124
+ },
125
+ {
126
+ id: 'sdd_loop_should_cover_implement_review_fix',
127
+ title: 'SDD loop should cover implement review fix',
128
+ intent: 'sdd_loop',
129
+ user_prompt: 'Run the task loop for this implementation plan.',
130
+ expected_behavior: [
131
+ 'produce an implementer brief before task work',
132
+ 'produce a reviewer package before marking the task clean',
133
+ 'produce a fixer brief when review evidence says fixes are required',
134
+ ],
135
+ failure_signals: ['task marked complete without reviewer verdict', 'fix evidence skipped after review finding', 'test or diff evidence missing from review package'],
136
+ borrowed_from_dimension: 'subagent_boundary',
137
+ },
138
+ {
139
+ id: 'review_blocker_should_stop_next_task',
140
+ title: 'Review blocker should stop next task',
141
+ intent: 'review_gate',
142
+ user_prompt: 'Continue after the review.',
143
+ expected_behavior: [
144
+ 'treat Critical and Important review findings as blockers',
145
+ 'do not enter the next task until blocker evidence is resolved',
146
+ 'record blocker reasons in local task progress evidence',
147
+ ],
148
+ failure_signals: ['started next task with Critical review finding', 'ignored Important blocker', 'progress ledger marked blocked task complete'],
149
+ borrowed_from_dimension: 'contributor_guardrails',
150
+ },
151
+ {
152
+ id: 'resume_should_not_duplicate_dispatch',
153
+ title: 'Resume should not duplicate completed task dispatch',
154
+ intent: 'resume',
155
+ user_prompt: 'Resume after compaction and continue the plan.',
156
+ expected_behavior: [
157
+ 'read progress evidence before issuing new task briefs',
158
+ 'skip completed task briefs during resume',
159
+ 'continue from the first incomplete task without duplicate dispatch records',
160
+ ],
161
+ failure_signals: ['duplicated completed task dispatch', 'ignored progress ledger', 'restarted the plan from task one'],
162
+ borrowed_from_dimension: 'daily_user_friction',
163
+ },
164
+ ];
165
+
166
+ export function runtimeSuperpowersStyleEvalPack({ comparison = {}, source = {} } = {}) {
167
+ const matrix = unwrapComparison(comparison);
168
+ const dimensions = Array.isArray(matrix.dimensions) ? matrix.dimensions : [];
169
+ const dimensionIds = new Set(dimensions.map((dimension) => String(dimension.id || '')));
170
+ const scenarios = scenarioDefinitions.map((definition) => scenarioFromDefinition(definition, dimensionIds));
171
+ const packCore = {
172
+ version: 1,
173
+ stage: evalPackStage,
174
+ pack_kind: evalPackKind,
175
+ source_bindings: sourceBindingSummary(source, matrix),
176
+ comparison_binding: comparisonBinding(matrix),
177
+ scenario_pack: scenarios,
178
+ scenario_summary: scenarioSummary(scenarios),
179
+ scenario_ids: scenarios.map((scenario) => scenario.id),
180
+ eval_pack_invariants: undefined,
181
+ next_eval_pack_bet: nextEvalPackBet(scenarios),
182
+ boundary_assertions: runtimeSuperpowersStyleEvalPackBoundaryAssertions(),
183
+ writes: false,
184
+ state_directory_created: false,
185
+ local_only: true,
186
+ deterministic: true,
187
+ };
188
+ const withoutUndefined = { ...packCore };
189
+ delete withoutUndefined.eval_pack_invariants;
190
+ const invariants = runtimeSuperpowersStyleEvalPackInvariants(withoutUndefined);
191
+ const pack = {
192
+ ...withoutUndefined,
193
+ ok: invariants.pass,
194
+ eval_pack_invariants: invariants,
195
+ };
196
+ return {
197
+ ...pack,
198
+ eval_pack_digest: digestSuperpowersStyleEvalPack(runtimeSuperpowersStyleEvalPackDigestPayload(pack)),
199
+ };
200
+ }
201
+
202
+ export function runtimeSuperpowersStyleEvalPackDigestPayload(pack) {
203
+ return {
204
+ stage: pack.stage,
205
+ pack_kind: pack.pack_kind,
206
+ source_bindings: pack.source_bindings,
207
+ comparison_binding: pack.comparison_binding,
208
+ scenario_pack: pack.scenario_pack,
209
+ scenario_summary: pack.scenario_summary,
210
+ scenario_ids: pack.scenario_ids,
211
+ next_eval_pack_bet: pack.next_eval_pack_bet,
212
+ boundary_assertions: pack.boundary_assertions,
213
+ eval_pack_invariants: pack.eval_pack_invariants,
214
+ };
215
+ }
216
+
217
+ export function runtimeSuperpowersStyleEvalPackBoundaryAssertions() {
218
+ return {
219
+ eval_pack_artifact: false,
220
+ scenario_artifact: false,
221
+ comparison_artifact: false,
222
+ source_write: false,
223
+ sidecar_write: false,
224
+ state_directory_created: false,
225
+ command_execution: false,
226
+ check_execution: false,
227
+ smoke_execution: false,
228
+ test_execution: false,
229
+ eval_execution: false,
230
+ agent_session_execution: false,
231
+ workflow_execution: false,
232
+ skill_execution: false,
233
+ runtime_action: false,
234
+ auto_execution: false,
235
+ prompt_mutation: false,
236
+ hook_registration: false,
237
+ platform_api: false,
238
+ external_network: false,
239
+ model_invocation: false,
240
+ subagent: false,
241
+ mcp: false,
242
+ daemon: false,
243
+ git: false,
244
+ git_write: false,
245
+ git_add: false,
246
+ commit: false,
247
+ pr: false,
248
+ push: false,
249
+ merge: false,
250
+ tag: false,
251
+ worktree: false,
252
+ business_source_write: false,
253
+ };
254
+ }
255
+
256
+ export function runtimeSuperpowersStyleEvalPackInvariants(pack) {
257
+ const scenarios = Array.isArray(pack.scenario_pack) ? pack.scenario_pack : [];
258
+ const scenarioIds = scenarios.map((scenario) => scenario.id);
259
+ const expectedIds = scenarioDefinitions.map((scenario) => scenario.id);
260
+ const duplicateScenarioIds = scenarioIds.filter((id, index, values) => values.indexOf(id) !== index);
261
+ const missingScenarios = expectedIds.filter((id) => !scenarioIds.includes(id));
262
+ const unsafeBoundaries = Object.entries(pack.boundary_assertions || {})
263
+ .filter(([, value]) => value !== false)
264
+ .map(([key]) => key);
265
+ const missingForbidden = Object.keys(runtimeSuperpowersStyleEvalPackBoundaryAssertions())
266
+ .filter((key) => pack.boundary_assertions?.[key] !== false);
267
+ const scenarioFindings = scenarios.flatMap((scenario) => [
268
+ ...(Array.isArray(scenario.expected_behavior) && scenario.expected_behavior.length > 0 ? [] : [`scenario missing expected behavior: ${scenario.id}`]),
269
+ ...(Array.isArray(scenario.failure_signals) && scenario.failure_signals.length > 0 ? [] : [`scenario missing failure signals: ${scenario.id}`]),
270
+ ...(scenario.execution_authorized === false ? [] : [`scenario execution must remain unauthorized: ${scenario.id}`]),
271
+ ...(scenario.model_judge_required === false ? [] : [`scenario model judge must remain false: ${scenario.id}`]),
272
+ ]);
273
+ const findings = [
274
+ ...(pack.stage === evalPackStage ? [] : [`stage must be ${evalPackStage}`]),
275
+ ...(pack.pack_kind === evalPackKind ? [] : [`pack_kind must be ${evalPackKind}`]),
276
+ ...(pack.source_bindings?.comparison_file ? [] : ['comparison file binding is required']),
277
+ ...(pack.comparison_binding?.comparison_stage === comparisonStage ? [] : [`comparison stage must be ${comparisonStage}`]),
278
+ ...(scenarios.length === scenarioDefinitions.length ? [] : [`scenario count must be ${scenarioDefinitions.length}`]),
279
+ ...missingScenarios.map((id) => `missing scenario: ${id}`),
280
+ ...duplicateScenarioIds.map((id) => `duplicate scenario: ${id}`),
281
+ ...scenarioFindings,
282
+ ...unsafeBoundaries.map((key) => `boundary assertion must remain false: ${key}`),
283
+ ...missingForbidden.map((key) => `forbidden boundary missing or not false: ${key}`),
284
+ ];
285
+ return {
286
+ pass: findings.length === 0,
287
+ checked: ['comparison_binding', 'scenario_pack', 'scenario_ids', 'expected_behavior', 'failure_signals', 'no_eval_execution', 'no_model_judge', 'read_only_boundary_assertions'],
288
+ findings,
289
+ };
290
+ }
291
+
292
+ export function digestSuperpowersStyleEvalPack(value) {
293
+ return crypto.createHash('sha256').update(stableStringify(value)).digest('hex');
294
+ }
295
+
296
+ function unwrapComparison(input) {
297
+ return input.superpowers_comparison_matrix || input.comparison || input;
298
+ }
299
+
300
+ function sourceBindingSummary(source, matrix) {
301
+ return {
302
+ comparison_file: stringValue(source.comparison_file),
303
+ comparison_digest: stringValue(source.comparison_digest || matrix.comparison_digest),
304
+ };
305
+ }
306
+
307
+ function comparisonBinding(matrix) {
308
+ return {
309
+ comparison_stage: stringValue(matrix.stage),
310
+ comparison_kind: stringValue(matrix.comparison_kind),
311
+ comparison_target: stringValue(matrix.comparison_target),
312
+ dimension_count: Array.isArray(matrix.dimensions) ? matrix.dimensions.length : 0,
313
+ parity_gap_count: Array.isArray(matrix.parity_gaps) ? matrix.parity_gaps.length : 0,
314
+ recommended_stage_sequence: Array.isArray(matrix.recommended_stage_sequence) ? matrix.recommended_stage_sequence : [],
315
+ };
316
+ }
317
+
318
+ function scenarioFromDefinition(definition, dimensionIds) {
319
+ return {
320
+ ...definition,
321
+ comparison_dimension_present: dimensionIds.has(definition.borrowed_from_dimension),
322
+ execution_authorized: false,
323
+ model_judge_required: false,
324
+ deterministic_contract_only: true,
325
+ recommended_runtime_contract: 'evals --behavior-contract',
326
+ };
327
+ }
328
+
329
+ function scenarioSummary(scenarios) {
330
+ return {
331
+ scenario_count: scenarios.length,
332
+ execution_authorized: false,
333
+ model_judge_required: false,
334
+ intents: Array.from(new Set(scenarios.map((scenario) => scenario.intent))).sort(),
335
+ missing_comparison_dimension_count: scenarios.filter((scenario) => !scenario.comparison_dimension_present).length,
336
+ };
337
+ }
338
+
339
+ function nextEvalPackBet(scenarios) {
340
+ const missing = scenarios.filter((scenario) => !scenario.comparison_dimension_present);
341
+ if (missing.length > 0) return {
342
+ id: 'repair-comparison-bindings-before-prioritizing',
343
+ target_stage: 'Stage 139',
344
+ action: 'Repair missing comparison dimension bindings before turning scenarios into upgrade priorities.',
345
+ };
346
+ return {
347
+ id: 'prioritize-experience-upgrades-from-scenarios',
348
+ target_stage: 'Stage 139',
349
+ action: 'Feed local scenario contracts into the experience upgrade prioritizer without running live agent evals.',
350
+ };
351
+ }
352
+
353
+ function stringValue(value) {
354
+ return value === undefined || value === null ? '' : String(value);
355
+ }
356
+
357
+ function stableStringify(value) {
358
+ return JSON.stringify(sortForJson(value));
359
+ }
360
+
361
+ function sortForJson(value) {
362
+ if (Array.isArray(value)) return value.map(sortForJson);
363
+ if (value && typeof value === 'object') {
364
+ return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, nested]) => [key, sortForJson(nested)]));
365
+ }
366
+ return value;
367
+ }