@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,205 @@
1
+ function readOnlyWorkflowBoundary(extra) {
2
+ return {
3
+ writes: false,
4
+ state_directory_created: false,
5
+ sidecar_write: false,
6
+ source_write: false,
7
+ skill_execution: false,
8
+ command_execution: false,
9
+ runtime_action: false,
10
+ auto_execution: false,
11
+ external_network: false,
12
+ model_invocation: false,
13
+ platform_api: false,
14
+ git: false,
15
+ worktree: false,
16
+ pr: false,
17
+ push: false,
18
+ merge: false,
19
+ tag: false,
20
+ subagent: false,
21
+ mcp: false,
22
+ daemon: false,
23
+ shell_interception: false,
24
+ business_source_write: false,
25
+ source_merge: false,
26
+ ...extra,
27
+ };
28
+ }
29
+
30
+ export function workflowCockpitBoundaryAssertions() {
31
+ const boundary = readOnlyWorkflowBoundary({ workflow_cockpit_artifact: false });
32
+ delete boundary.source_write;
33
+ return boundary;
34
+ }
35
+
36
+ export function workflowCockpitPhase(intent, readiness, planLint) {
37
+ if (readiness.normalized_intent === 'unknown') return 'clarify';
38
+ if (planLint && planLint.execution_ready === false) return 'plan_lint';
39
+ if (intent === 'review') return 'review';
40
+ if (intent === 'completion' || intent === 'release') return 'closeout';
41
+ if (intent === 'debug') return 'verify';
42
+ if (planLint && planLint.execution_ready === true) return 'tdd_strategy';
43
+ if (intent === 'plan') return 'plan';
44
+ return 'plan_lint';
45
+ }
46
+
47
+ export function workflowCockpitRequiredEvidence(intent, planLint) {
48
+ const base = [];
49
+ if (!planLint) base.push('local plan file for Stage 86 plan lint when entering implementation');
50
+ if (intent === 'implementation') base.push('accepted plan', 'TDD or verification strategy', 'task-level acceptance');
51
+ if (intent === 'review') base.push('scoped diff or evidence', 'review severity focus', 'required-change criteria');
52
+ if (intent === 'completion' || intent === 'release') base.push('fresh syntax/check evidence', 'behavior smoke evidence', 'known unverified items');
53
+ if (intent === 'debug') base.push('minimal reproduction', 'root-cause hypothesis', 'targeted verification path');
54
+ if (intent === 'unknown') base.push('goal', 'scope', 'constraints', 'acceptance');
55
+ return [...new Set(base)];
56
+ }
57
+
58
+ export function workflowReceiptBoundaryAssertions() {
59
+ return readOnlyWorkflowBoundary({ workflow_receipt_artifact: false });
60
+ }
61
+
62
+ export function workflowCockpitSelfCheckSummary({ normalizedIntent, currentPhase, readiness, advice, planLint, blockedReasons, requiredEvidence }) {
63
+ const planLintStatus = planLint ? (planLint.execution_ready ? 'ready' : 'blocked') : 'not_provided';
64
+ const completionEvidenceRequired = normalizedIntent === 'completion' || normalizedIntent === 'release';
65
+ return {
66
+ summary_kind: 'workflow-cockpit-self-check',
67
+ profile_check: {
68
+ status: 'external_read_only_check',
69
+ recommended_commands: ['profile --show', 'profile --explain'],
70
+ writes: false,
71
+ },
72
+ entry_check: {
73
+ recommended_command: 'workflow --start --prompt <request> --json',
74
+ current_phase: currentPhase,
75
+ recommended_next_skill: readiness.route_summary.first_skill,
76
+ },
77
+ readiness_check: {
78
+ ready_to_start: readiness.ready_to_start,
79
+ required_gate_count: readiness.required_gate_kinds.length,
80
+ blocker_count: readiness.blocked_reasons.length,
81
+ readiness_digest: readiness.readiness_digest,
82
+ },
83
+ plan_check: {
84
+ status: planLintStatus,
85
+ source_file: planLint?.source_file || '',
86
+ },
87
+ completion_check: {
88
+ status: completionEvidenceRequired ? 'required_before_done_claim' : 'available_when_closing_out',
89
+ recommended_command: 'completion --readiness --from-file <local-completion-evidence-file> --json',
90
+ evidence_required_before_done: completionEvidenceRequired,
91
+ },
92
+ evidence_gap_count: blockedReasons.length,
93
+ required_evidence_count: requiredEvidence.length,
94
+ primary_advice: {
95
+ lane: advice.primary_lane,
96
+ command: advice.primary_recommendation.recommended_command,
97
+ },
98
+ next_manual_action: blockedReasons.length > 0 ? `Resolve cockpit blockers first: ${blockedReasons.slice(0, 3).join('; ')}` : `Enter ${readiness.route_summary.first_skill} with the required evidence preserved.`,
99
+ boundary: {
100
+ writes: false,
101
+ command_execution: false,
102
+ workflow_execution: false,
103
+ skill_execution: false,
104
+ subagent: false,
105
+ business_source_write: false,
106
+ },
107
+ };
108
+ }
109
+
110
+ export function buildWorkflowCockpitModel({ inputIntent, normalizedIntent, readiness, advice, planLint, tokenAdvice, learningAdvice, governanceAdvice }) {
111
+ const blockedReasons = [...new Set([
112
+ ...readiness.blocked_reasons,
113
+ ...(planLint && !planLint.execution_ready ? planLint.blocking_findings.map((item) => `plan_lint: ${item}`) : []),
114
+ ...(!planLint && ['implementation', 'plan'].includes(normalizedIntent) ? ['plan lint evidence not provided for implementation readiness cockpit'] : []),
115
+ ])];
116
+ const currentPhase = workflowCockpitPhase(normalizedIntent, readiness, planLint);
117
+ const requiredEvidence = workflowCockpitRequiredEvidence(normalizedIntent, planLint);
118
+ const selfCheckSummary = workflowCockpitSelfCheckSummary({ normalizedIntent, currentPhase, readiness, advice, planLint, blockedReasons, requiredEvidence });
119
+ const boundaryAssertions = workflowCockpitBoundaryAssertions();
120
+ const nextManualAction = selfCheckSummary.next_manual_action;
121
+ const cockpit = {
122
+ version: 1,
123
+ stage: 'Stage 87',
124
+ cockpit_kind: 'workflow-cockpit',
125
+ input_intent: inputIntent,
126
+ normalized_intent: normalizedIntent,
127
+ current_phase: currentPhase,
128
+ state_machine: ['clarify', 'plan', 'plan_lint', 'tdd_strategy', 'execute_task', 'review', 'verify', 'closeout'],
129
+ recommended_next_skill: readiness.route_summary.first_skill,
130
+ route_summary: readiness.route_summary,
131
+ readiness_summary: { ready_to_start: readiness.ready_to_start, required_gate_kinds: readiness.required_gate_kinds, blocked_reasons: readiness.blocked_reasons, readiness_digest: readiness.readiness_digest },
132
+ advice_summary: { primary_lane: advice.primary_lane, primary_command: advice.primary_recommendation.recommended_command, advice_digest: advice.advice_digest },
133
+ plan_lint_summary: planLint ? { status: planLint.execution_ready ? 'ready' : 'blocked', source_file: planLint.source_file, blocker_count: planLint.summary.blocker_count, warning_count: planLint.summary.warning_count, lint_digest: planLint.lint_digest } : { status: 'not_provided' },
134
+ token_hint: { recommended_profile: tokenAdvice.recommended_profile, recommended_command: tokenAdvice.command ? `tokens --advice --command ${tokenAdvice.command} --json` : `tokens --advice --intent ${tokenAdvice.intent} --json`, advice_digest: tokenAdvice.advice_digest },
135
+ learning_hint: { recommended_next_learning_step: learningAdvice.recommended_next_learning_step, recommended_command: learningAdvice.recommended_command, advice_digest: learningAdvice.advice_digest },
136
+ governance_hint: { recommended_next_governance_step: governanceAdvice.recommended_next_governance_step, recommended_command: governanceAdvice.recommended_command, advice_digest: governanceAdvice.advice_digest },
137
+ blocked_reasons: blockedReasons,
138
+ required_evidence: requiredEvidence,
139
+ self_check_summary: selfCheckSummary,
140
+ forbidden_actions: ['auto workflow execution', 'subagent dispatch without explicit permission', 'platform API calls', 'git push/merge/PR/tag', 'business source mutation from cockpit'],
141
+ next_manual_action: nextManualAction,
142
+ boundary_assertions: boundaryAssertions,
143
+ writes: false,
144
+ state_directory_created: false,
145
+ local_only: true,
146
+ deterministic: true,
147
+ };
148
+ return { cockpit, blockedReasons, boundaryAssertions };
149
+ }
150
+
151
+ export function onboardingBriefBoundaryAssertions() {
152
+ return readOnlyWorkflowBoundary({ onboarding_brief_artifact: false });
153
+ }
154
+
155
+ export function onboardingBriefLines() {
156
+ return [
157
+ 'Start every development task with a lightweight using-vibecoding workflow judgment.',
158
+ 'Use workflow --start when you want one local read-only panel for route, receipt, readiness, and next action.',
159
+ 'State a verification strategy before source edits; simple tasks stay lightweight.',
160
+ 'Use workflow --sequence for TDD, plan execution, review, or closeout choreography.',
161
+ 'Do not call subagents, git host actions, push, merge, PR, platform APIs, external models, or network without explicit user permission.',
162
+ 'Do not claim completion without fresh verification evidence.',
163
+ ];
164
+ }
165
+
166
+ export function workflowSequenceBoundaryAssertions() {
167
+ return readOnlyWorkflowBoundary({ workflow_sequence_artifact: false });
168
+ }
169
+
170
+ export function workflowSequenceDefinition(intent) {
171
+ if (intent === 'review') {
172
+ return {
173
+ phase_order: ['scope-review-target', 'collect-evidence', 'review-blockers-first', 'classify-feedback', 'decide-fix-or-closeout'],
174
+ phase_entry_criteria: ['review target and diff/evidence are scoped', 'severity policy is known', 'verification expectations are explicit'],
175
+ phase_exit_evidence: ['blocking findings list or none', 'high-risk findings with file/evidence references', 'required-change decision for each finding'],
176
+ handoff_points: ['handoff to vibe-receiving-code-review when fixes are required', 'handoff to completion readiness when no blockers remain'],
177
+ stop_conditions: ['missing review target', 'unverified evidence', 'request to merge/push without explicit authorization'],
178
+ };
179
+ }
180
+ if (intent === 'completion' || intent === 'release') {
181
+ return {
182
+ phase_order: ['collect-fresh-verification', 'check-review-feedback', 'check-git-release-boundary', 'report-done-or-blocked'],
183
+ phase_entry_criteria: ['implementation or review work is claimed complete', 'verification path is known'],
184
+ phase_exit_evidence: ['fresh check output or manual verification evidence', 'known gaps stated', 'no implied commit/PR/push/release action'],
185
+ handoff_points: ['handoff to finishing branch only after verification evidence exists', 'handoff to user confirmation before git or platform action'],
186
+ stop_conditions: ['no fresh verification evidence', 'unresolved review feedback', 'missing user authorization for git/PR/release'],
187
+ };
188
+ }
189
+ if (intent === 'plan') {
190
+ return {
191
+ phase_order: ['load-plan', 'lint-plan', 'select-task-batch', 'state-verification-strategy', 'execute-task', 'task-level-acceptance', 'handoff-next-task'],
192
+ phase_entry_criteria: ['accepted local plan exists', 'plan lint is ready or known blockers are resolved', 'task dependencies are clear'],
193
+ phase_exit_evidence: ['task acceptance result', 'files touched or inspected', 'verification command/manual evidence', 'remaining tasks and risks'],
194
+ handoff_points: ['handoff after each task batch', 'handoff to review before completion claim'],
195
+ stop_conditions: ['plan lint blocker', 'unclear task ownership', 'missing verification strategy'],
196
+ };
197
+ }
198
+ return {
199
+ phase_order: ['state-verification-strategy', 'minimal-implementation', 'targeted-self-check', 'review-or-completion-readiness'],
200
+ phase_entry_criteria: ['goal, scope, and acceptance are clear', 'verification strategy is known before editing', 'risk boundary is explicit'],
201
+ phase_exit_evidence: ['changed files are bounded', 'targeted check output or manual evidence is recorded', 'remaining risk is stated'],
202
+ handoff_points: ['handoff to review for risky or non-trivial changes', 'handoff to completion readiness before claiming done'],
203
+ stop_conditions: ['unclear acceptance', 'test or check path unknown', 'request requires subagent/git/platform action without permission'],
204
+ };
205
+ }
@@ -0,0 +1,7 @@
1
+ export function workspaceAllowedFollowupActions() {
2
+ return [
3
+ 'source --patch-plan',
4
+ 'source --sandbox-apply --confirm',
5
+ 'source --apply-to-worktree --approval <file> --confirm after separate approval',
6
+ ];
7
+ }
@@ -0,0 +1,295 @@
1
+ import crypto from 'node:crypto';
2
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import {
5
+ emitReadonlyLocalJsonOutput,
6
+ readonlyLocalStatePresent,
7
+ } from './runtime-readonly-local-json-output-envelope.mjs';
8
+ import { workspaceAllowedFollowupActions } from './runtime-workspace-boundary-text.mjs';
9
+
10
+ const workspaceStage = 'Stage 150';
11
+ const workspaceDirectoryName = 'workspaces';
12
+ const workspacePlanKind = 'workspace-isolation-plan';
13
+ const workspaceCreateKind = 'workspace-isolation-contract';
14
+ const workspaceCleanupKind = 'workspace-cleanup-plan';
15
+
16
+ export function createRuntimeWorkspaceCommand(deps) {
17
+ const { ensureRoot } = deps;
18
+
19
+ function runWorkspace(options) {
20
+ ensureRoot(options.root);
21
+ const modes = [options.workspaceIsolatePlan, options.workspaceCreate, options.workspaceStatus, options.workspaceCleanupPlan].filter(Boolean);
22
+ if (modes.length !== 1) throw new Error('workspace requires exactly one mode: --isolate-plan, --create, --status, or --cleanup-plan');
23
+ if (options.profile && options.profile !== 'superpowers-parity') throw new Error('workspace --profile must be superpowers-parity when provided');
24
+
25
+ if (options.workspaceIsolatePlan) {
26
+ rejectWorkspaceFlags(options, { allowFromPlan: true });
27
+ const envelope = workspaceIsolationPlanEnvelope(options.root, options.fromPlan);
28
+ outputWorkspace(deps, options, envelope);
29
+ return;
30
+ }
31
+
32
+ if (options.workspaceStatus) {
33
+ rejectWorkspaceFlags(options, {});
34
+ const envelope = workspaceStatusEnvelope(options.root);
35
+ outputWorkspace(deps, options, envelope);
36
+ return;
37
+ }
38
+
39
+ if (options.workspaceCleanupPlan) {
40
+ rejectWorkspaceFlags(options, {});
41
+ const envelope = workspaceCleanupPlanEnvelope(options.root);
42
+ outputWorkspace(deps, options, envelope);
43
+ return;
44
+ }
45
+
46
+ if (!options.confirm) throw new Error('workspace --create requires --confirm');
47
+ rejectWorkspaceFlags(options, { allowFromPlan: true, allowConfirm: true });
48
+ const envelope = workspaceCreateEnvelope(options.root, options.fromPlan);
49
+ const files = writeWorkspaceContract(options.root, envelope.workspace_contract);
50
+ outputWorkspace(deps, options, { ...envelope, files });
51
+ }
52
+
53
+ return { runWorkspace };
54
+ }
55
+
56
+ function rejectWorkspaceFlags(options, allowances) {
57
+ if (!allowances.allowFromPlan && options.fromPlan) throw new Error('workspace mode does not accept --from-plan');
58
+ if (!allowances.allowConfirm && options.confirm) throw new Error('workspace mode does not accept --confirm');
59
+ if (options.write || options.dryRun || options.run || options.autoRun || options.dispatch || options.dispatchIntent || options.preflight || options.scan || options.once) {
60
+ throw new Error('workspace only accepts --from-plan where documented, --profile superpowers-parity, --confirm for create, --json, and --root');
61
+ }
62
+ }
63
+
64
+ function workspaceIsolationPlanEnvelope(root, planFile) {
65
+ const source = planFile ? readPlanSource(root, planFile) : null;
66
+ const contract = workspaceContractPayload(root, source, { writes: false, createdAt: new Date().toISOString() });
67
+ const plan = { ...contract, plan_kind: workspacePlanKind, workspace_contract_digest: digest(contract) };
68
+ return {
69
+ schema_version: 1,
70
+ command: 'workspace',
71
+ mode: workspacePlanKind,
72
+ ok: true,
73
+ state_present: readonlyLocalStatePresent(root),
74
+ workspace_isolation_plan: plan,
75
+ safety: { stage: workspaceStage, ...workspaceBoundary(false) },
76
+ quality: [],
77
+ action: 'workspace isolate-plan produced a local isolation contract preview only. No state, source, git, worktree, command, platform API, model, MCP, subagent, PR, push, or merge action occurred.',
78
+ };
79
+ }
80
+
81
+ function workspaceCreateEnvelope(root, planFile) {
82
+ const source = planFile ? readPlanSource(root, planFile) : null;
83
+ const createdAt = new Date().toISOString();
84
+ const contract = workspaceContractPayload(root, source, { writes: true, createdAt });
85
+ const payload = { ...contract, contract_kind: workspaceCreateKind, workspace_contract_digest: digest(contract) };
86
+ return {
87
+ schema_version: 1,
88
+ command: 'workspace',
89
+ mode: workspaceCreateKind,
90
+ ok: true,
91
+ state_present: readonlyLocalStatePresent(root),
92
+ workspace_contract: payload,
93
+ safety: { stage: workspaceStage, ...workspaceBoundary(true) },
94
+ quality: [],
95
+ action: 'workspace create wrote only a local workspace isolation contract under .vibecoding-state/workspaces. It did not create a git worktree, modify source, run commands, write git, commit, push, create PRs, call platform APIs, invoke models, MCP, or subagents.',
96
+ };
97
+ }
98
+
99
+ function workspaceStatusEnvelope(root) {
100
+ const records = listWorkspaceContracts(root);
101
+ return {
102
+ schema_version: 1,
103
+ command: 'workspace',
104
+ mode: 'workspace-isolation-status',
105
+ ok: true,
106
+ state_present: readonlyLocalStatePresent(root),
107
+ workspace_status: {
108
+ version: 1,
109
+ stage: workspaceStage,
110
+ status_kind: 'workspace-isolation-status',
111
+ contract_count: records.length,
112
+ contracts: records,
113
+ active_contracts: records.filter((item) => item.status === 'created-contract-only').length,
114
+ boundary_assertions: workspaceBoundary(false),
115
+ writes: false,
116
+ state_directory_created: false,
117
+ local_only: true,
118
+ deterministic: true,
119
+ },
120
+ safety: { stage: workspaceStage, ...workspaceBoundary(false) },
121
+ quality: [],
122
+ action: 'workspace status read local isolation contracts only. No state, source, git, worktree, command, platform API, model, MCP, subagent, PR, push, or merge action occurred.',
123
+ };
124
+ }
125
+
126
+ function workspaceCleanupPlanEnvelope(root) {
127
+ const records = listWorkspaceContracts(root);
128
+ const cleanup = {
129
+ version: 1,
130
+ stage: workspaceStage,
131
+ cleanup_kind: workspaceCleanupKind,
132
+ candidate_count: records.length,
133
+ cleanup_candidates: records.map((item) => ({
134
+ workspace_id: item.workspace_id,
135
+ contract_file: item.file,
136
+ cleanup_action: 'manual-remove-state-sidecar-after-review',
137
+ source_or_worktree_delete_authorized: false,
138
+ })),
139
+ boundary_assertions: workspaceBoundary(false),
140
+ writes: false,
141
+ state_directory_created: false,
142
+ local_only: true,
143
+ deterministic: true,
144
+ };
145
+ return {
146
+ schema_version: 1,
147
+ command: 'workspace',
148
+ mode: workspaceCleanupKind,
149
+ ok: true,
150
+ state_present: readonlyLocalStatePresent(root),
151
+ workspace_cleanup_plan: { ...cleanup, cleanup_plan_digest: digest(cleanup) },
152
+ safety: { stage: workspaceStage, ...workspaceBoundary(false) },
153
+ quality: [],
154
+ action: 'workspace cleanup-plan produced manual cleanup guidance only. It did not delete files, remove worktrees, run git, mutate source, or write state.',
155
+ };
156
+ }
157
+
158
+ function workspaceContractPayload(root, source, { writes, createdAt }) {
159
+ const workspaceId = workspaceIdFor(source, createdAt);
160
+ return {
161
+ version: 1,
162
+ stage: workspaceStage,
163
+ workspace_id: workspaceId,
164
+ automation_profile: 'superpowers-parity',
165
+ created_at: createdAt,
166
+ source_plan: source?.relative || '',
167
+ source_plan_digest: source?.digest || '',
168
+ isolation_policy: {
169
+ main_worktree_write_allowed: false,
170
+ isolated_workspace_required_for_source_write: true,
171
+ source_apply_requires_existing_source_gate: true,
172
+ task_commit_requires_later_commit_gate: true,
173
+ git_worktree_created_by_runtime: false,
174
+ git_commit_allowed: false,
175
+ push_allowed: false,
176
+ pr_allowed: false,
177
+ merge_allowed: false,
178
+ },
179
+ workspace_paths: {
180
+ contract_root: `${workspaceDirectoryName}/${workspaceId}`,
181
+ sidecar_file: `${workspaceDirectoryName}/${workspaceId}/${workspaceId}.workspace-isolation-contract.json`,
182
+ suggested_isolated_root_name: `.vibecoding-workspaces/${workspaceId}`,
183
+ },
184
+ allowed_followup: workspaceAllowedFollowupActions(),
185
+ forbidden_actions: ['main worktree source write', 'git worktree creation by this command', 'git add/commit/push', 'PR or merge', 'platform API call', 'model invocation', 'subagent invocation'],
186
+ boundary_assertions: workspaceBoundary(writes),
187
+ writes,
188
+ state_directory_created: writes,
189
+ local_only: true,
190
+ deterministic: true,
191
+ };
192
+ }
193
+
194
+ function writeWorkspaceContract(root, contract) {
195
+ const dir = path.join(root, '.vibecoding-state', workspaceDirectoryName, contract.workspace_id);
196
+ mkdirSync(dir, { recursive: true });
197
+ const file = `${contract.workspace_id}.workspace-isolation-contract.json`;
198
+ writeFileSync(path.join(dir, file), `${JSON.stringify(contract, null, 2)}\n`, 'utf8');
199
+ return { workspace_contract: `${workspaceDirectoryName}/${contract.workspace_id}/${file}` };
200
+ }
201
+
202
+ function listWorkspaceContracts(root) {
203
+ const base = path.join(root, '.vibecoding-state', workspaceDirectoryName);
204
+ if (!existsSync(base)) return [];
205
+ return readdirSync(base, { withFileTypes: true })
206
+ .filter((entry) => entry.isDirectory())
207
+ .flatMap((entry) => {
208
+ const dir = path.join(base, entry.name);
209
+ return readdirSync(dir)
210
+ .filter((name) => name.endsWith('.workspace-isolation-contract.json'))
211
+ .map((name) => readContractSummary(path.join(dir, name), `${workspaceDirectoryName}/${entry.name}/${name}`));
212
+ })
213
+ .filter(Boolean)
214
+ .sort((a, b) => String(a.file).localeCompare(String(b.file)));
215
+ }
216
+
217
+ function readContractSummary(file, relative) {
218
+ try {
219
+ const artifact = JSON.parse(readFileSync(file, 'utf8'));
220
+ return {
221
+ file: relative,
222
+ workspace_id: artifact.workspace_id || '',
223
+ status: artifact.writes ? 'created-contract-only' : 'planned',
224
+ source_plan: artifact.source_plan || '',
225
+ source_plan_digest: artifact.source_plan_digest || '',
226
+ git_worktree_created_by_runtime: artifact.isolation_policy?.git_worktree_created_by_runtime === true,
227
+ main_worktree_write_allowed: artifact.isolation_policy?.main_worktree_write_allowed === true,
228
+ };
229
+ } catch {
230
+ return null;
231
+ }
232
+ }
233
+
234
+ function readPlanSource(root, planFile) {
235
+ const absolute = path.resolve(root, planFile);
236
+ const relative = path.relative(root, absolute).replaceAll(path.sep, '/');
237
+ if (relative.startsWith('..') || path.isAbsolute(relative)) throw new Error('workspace --from-plan must stay inside --root');
238
+ if (!existsSync(absolute)) throw new Error(`workspace plan file not found: ${relative}`);
239
+ const text = readFileSync(absolute, 'utf8');
240
+ return { relative, digest: crypto.createHash('sha256').update(text).digest('hex') };
241
+ }
242
+
243
+ function workspaceIdFor(source, createdAt) {
244
+ const seed = `${source?.digest || 'no-plan'}:${createdAt}`;
245
+ return `workspace-${crypto.createHash('sha256').update(seed).digest('hex').slice(0, 12)}`;
246
+ }
247
+
248
+ function workspaceBoundary(writes) {
249
+ return {
250
+ workspace_isolation_artifact: Boolean(writes),
251
+ state_directory_created: Boolean(writes),
252
+ source_write: false,
253
+ business_source_write: false,
254
+ main_worktree_write: false,
255
+ isolated_workspace_source_write: false,
256
+ command_execution: false,
257
+ test_execution: false,
258
+ git: false,
259
+ git_write: false,
260
+ git_worktree: false,
261
+ commit: false,
262
+ push: false,
263
+ pr: false,
264
+ merge: false,
265
+ platform_api: false,
266
+ external_network: false,
267
+ model_invocation: false,
268
+ subagent: false,
269
+ mcp: false,
270
+ };
271
+ }
272
+
273
+ function outputWorkspace(deps, options, envelope) {
274
+ emitReadonlyLocalJsonOutput({ deps, options, channel: 'workspace', envelope, print: printWorkspace });
275
+ }
276
+
277
+ function printWorkspace(envelope) {
278
+ console.log('Vibecoding Runtime Workspace Isolation');
279
+ console.log(`Mode: ${envelope.mode}; ok=${envelope.ok}`);
280
+ const detail = envelope.workspace_isolation_plan || envelope.workspace_contract || envelope.workspace_status || envelope.workspace_cleanup_plan;
281
+ if (detail?.workspace_id) console.log(`Workspace: ${detail.workspace_id}`);
282
+ if (detail?.contract_count !== undefined) console.log(`Contracts: ${detail.contract_count}`);
283
+ if (envelope.files?.workspace_contract) console.log(`Contract: ${envelope.files.workspace_contract}`);
284
+ console.log(`Action: ${envelope.action}`);
285
+ }
286
+
287
+ function digest(value) {
288
+ return crypto.createHash('sha256').update(stableStringify(value)).digest('hex');
289
+ }
290
+
291
+ function stableStringify(value) {
292
+ if (Array.isArray(value)) return `[${value.map((item) => stableStringify(item)).join(',')}]`;
293
+ if (value && typeof value === 'object') return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`).join(',')}}`;
294
+ return JSON.stringify(value);
295
+ }
@@ -0,0 +1,113 @@
1
+ import path from 'node:path';
2
+ import { stateDirectory } from './runtime-state-directory-model.mjs';
3
+ export { stateDirectoryName } from './runtime-state-directory-model.mjs';
4
+
5
+ export const workflowFileName = 'workflow.json';
6
+ export const taskArtifactsDirectoryName = 'tasks';
7
+ export const dispatchesDirectoryName = 'dispatches';
8
+ export const dispatchClaimsDirectoryName = 'dispatch-claims';
9
+ export const executionsDirectoryName = 'executions';
10
+ export const executionCandidatesDirectoryName = 'execution-candidates';
11
+ export const executionApprovalsDirectoryName = 'execution-approvals';
12
+ export const autoRunLocksDirectoryName = 'auto-run-locks';
13
+ export const recoveryPackagesDirectoryName = 'recovery-packages';
14
+ export const recoveryClassificationsDirectoryName = 'recovery-classifications';
15
+ export const recoveryRunsDirectoryName = 'recovery-runs';
16
+ export const observabilityDirectoryName = 'observability';
17
+ export const approvalLifecycleDirectoryName = 'approval-lifecycle';
18
+ export const replyDraftsDirectoryName = 'reply-drafts';
19
+ export const replyReviewsDirectoryName = 'reply-reviews';
20
+ export const replyApprovalsDirectoryName = 'reply-approvals';
21
+ export const replyOutboxDirectoryName = 'reply-outbox';
22
+ export const replySendRunsDirectoryName = 'reply-send-runs';
23
+ export const runtimeTracesDirectoryName = 'runtime-traces';
24
+ export const governanceDirectoryName = 'governance';
25
+ export const methodologyGatesDirectoryName = 'methodology-gates';
26
+
27
+ export function workflowPath(root) {
28
+ return path.join(stateDirectory(root), workflowFileName);
29
+ }
30
+
31
+ export function artifactPath(root, fileName) {
32
+ return path.join(stateDirectory(root), fileName);
33
+ }
34
+
35
+ export function taskArtifactsDirectory(root) {
36
+ return path.join(stateDirectory(root), taskArtifactsDirectoryName);
37
+ }
38
+
39
+ export function dispatchesDirectory(root) {
40
+ return path.join(stateDirectory(root), dispatchesDirectoryName);
41
+ }
42
+
43
+ export function dispatchClaimsDirectory(root) {
44
+ return path.join(stateDirectory(root), dispatchClaimsDirectoryName);
45
+ }
46
+
47
+ export function executionsDirectory(root) {
48
+ return path.join(stateDirectory(root), executionsDirectoryName);
49
+ }
50
+
51
+ export function executionCandidatesDirectory(root) {
52
+ return path.join(stateDirectory(root), executionCandidatesDirectoryName);
53
+ }
54
+
55
+ export function executionApprovalsDirectory(root) {
56
+ return path.join(stateDirectory(root), executionApprovalsDirectoryName);
57
+ }
58
+
59
+ export function autoRunLocksDirectory(root) {
60
+ return path.join(stateDirectory(root), autoRunLocksDirectoryName);
61
+ }
62
+
63
+ export function recoveryPackagesDirectory(root) {
64
+ return path.join(stateDirectory(root), recoveryPackagesDirectoryName);
65
+ }
66
+
67
+ export function recoveryClassificationsDirectory(root) {
68
+ return path.join(stateDirectory(root), recoveryClassificationsDirectoryName);
69
+ }
70
+
71
+ export function recoveryRunsDirectory(root) {
72
+ return path.join(stateDirectory(root), recoveryRunsDirectoryName);
73
+ }
74
+
75
+ export function observabilityDirectory(root) {
76
+ return path.join(stateDirectory(root), observabilityDirectoryName);
77
+ }
78
+
79
+ export function approvalLifecycleDirectory(root) {
80
+ return path.join(stateDirectory(root), approvalLifecycleDirectoryName);
81
+ }
82
+
83
+ export function replyDraftsDirectory(root) {
84
+ return path.join(stateDirectory(root), replyDraftsDirectoryName);
85
+ }
86
+
87
+ export function replyReviewsDirectory(root) {
88
+ return path.join(stateDirectory(root), replyReviewsDirectoryName);
89
+ }
90
+
91
+ export function replyApprovalsDirectory(root) {
92
+ return path.join(stateDirectory(root), replyApprovalsDirectoryName);
93
+ }
94
+
95
+ export function replyOutboxDirectory(root) {
96
+ return path.join(stateDirectory(root), replyOutboxDirectoryName);
97
+ }
98
+
99
+ export function replySendRunsDirectory(root) {
100
+ return path.join(stateDirectory(root), replySendRunsDirectoryName);
101
+ }
102
+
103
+ export function runtimeTracesDirectory(root) {
104
+ return path.join(stateDirectory(root), runtimeTracesDirectoryName);
105
+ }
106
+
107
+ export function governanceDirectory(root) {
108
+ return path.join(stateDirectory(root), governanceDirectoryName);
109
+ }
110
+
111
+ export function methodologyGatesDirectory(root) {
112
+ return path.join(stateDirectory(root), methodologyGatesDirectoryName);
113
+ }