@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,477 @@
1
+ import { runtimeInteractionCommandDomainOwnerFiles, runtimeInteractionCommandDomains, runtimeInteractionCommandDomainNames, runtimeInteractionHighRiskSidecarBoundaries, runtimeOwnerManifestByFile, runtimeSurfaceFileGroups } from '../vibe-runtime/runtime-command-surface-registry.mjs';
2
+
3
+ function fileLineCount(text) {
4
+ if (!text) return 0;
5
+ return text.split(/\r?\n/).length;
6
+ }
7
+
8
+ const runtimeArchitecturePerformanceBudgets = [
9
+ {
10
+ file: 'tools/vibe-release-check/index.mjs',
11
+ shortTermLines: 8000,
12
+ stableLines: 5000,
13
+ idealLines: 2500,
14
+ owner: 'release-check',
15
+ layer: 'entry',
16
+ },
17
+ {
18
+ file: 'tools/vibe-runtime/index.mjs',
19
+ shortTermLines: 20000,
20
+ stableLines: 10000,
21
+ idealLines: 5000,
22
+ owner: 'runtime',
23
+ layer: 'entry',
24
+ },
25
+ {
26
+ file: 'tools/vibe-runtime/runtime-cli-args.mjs',
27
+ shortTermLines: 2500,
28
+ stableLines: 1500,
29
+ idealLines: 900,
30
+ owner: 'runtime-cli-parser',
31
+ layer: 'validation',
32
+ },
33
+ {
34
+ file: 'tools/vibe-runtime/runtime-interaction-command.mjs',
35
+ shortTermLines: 5000,
36
+ stableLines: 3000,
37
+ idealLines: 1800,
38
+ owner: 'runtime-interaction',
39
+ layer: 'commandWrapper',
40
+ },
41
+ {
42
+ file: 'tools/vibe-release-check/release-check-stage121-136-smoke.mjs',
43
+ shortTermLines: 2200,
44
+ stableLines: 1400,
45
+ idealLines: 900,
46
+ owner: 'release-check-runtime-smoke',
47
+ layer: 'smoke',
48
+ },
49
+ {
50
+ file: 'tools/vibe-release-check/release-check-stage103-118-smoke.mjs',
51
+ shortTermLines: 2200,
52
+ stableLines: 1400,
53
+ idealLines: 900,
54
+ owner: 'release-check-runtime-smoke',
55
+ layer: 'smoke',
56
+ },
57
+ ];
58
+
59
+ export function checkEntryFileSizeBudgets(root, api) {
60
+ for (const budget of runtimeArchitecturePerformanceBudgets) {
61
+ if (!api.exists(root, budget.file)) continue;
62
+ const text = api.readText(root, budget.file);
63
+ const lines = fileLineCount(text);
64
+ const bytes = Buffer.byteLength(text);
65
+ const detail = `${lines} lines / ${bytes} bytes; layer=${budget.layer}; short-term=${budget.shortTermLines}, stable=${budget.stableLines}, ideal=${budget.idealLines}`;
66
+ if (lines > budget.shortTermLines) {
67
+ api.warn(`${budget.file} exceeds ${budget.owner} short-term architecture performance budget`, detail, 'Continue low-risk command/helper/smoke extraction; keep execution/state semantics unchanged.');
68
+ } else if (lines > budget.stableLines) {
69
+ api.ok(`${budget.file} remains within short-term architecture performance budget`, `${detail}; stable target remains a refactor goal, not a warning gate.`);
70
+ } else {
71
+ api.ok(`${budget.file} stays within stable architecture performance budget`, detail);
72
+ }
73
+ }
74
+ }
75
+
76
+ function fileStats(root, api, file) {
77
+ if (!api.exists(root, file)) return { file, exists: false, lines: 0, bytes: 0 };
78
+ const text = api.readText(root, file);
79
+ return { file, exists: true, lines: fileLineCount(text), bytes: Buffer.byteLength(text), text };
80
+ }
81
+
82
+ function countText(text, needle) {
83
+ return String(text || '').split(needle).length - 1;
84
+ }
85
+
86
+ function readonlySmokeSpecKeys(text) {
87
+ const source = String(text || '');
88
+ const objectStart = source.indexOf('export const readonlySmokeMarkerSpecs = {');
89
+ if (objectStart === -1) return [];
90
+ const bodyStart = source.indexOf('{', objectStart);
91
+ const bodyEnd = source.lastIndexOf('};');
92
+ if (bodyStart === -1 || bodyEnd === -1 || bodyEnd <= bodyStart) return [];
93
+ const body = source.slice(bodyStart + 1, bodyEnd);
94
+ return [...body.matchAll(/^ ([A-Za-z][A-Za-z0-9]*): \{/gm)].map((match) => match[1]);
95
+ }
96
+
97
+ function readonlySmokeUsageByKey(text) {
98
+ const usage = {};
99
+ for (const match of String(text || '').matchAll(/readonlySmokeMarkers\([^,]+,\s*['"]([A-Za-z][A-Za-z0-9]*)['"]\)/g)) {
100
+ const key = match[1];
101
+ usage[key] = (usage[key] || 0) + 1;
102
+ }
103
+ return usage;
104
+ }
105
+
106
+ function mergeUsageMaps(...maps) {
107
+ return maps.reduce((merged, map) => {
108
+ for (const [key, count] of Object.entries(map)) merged[key] = (merged[key] || 0) + count;
109
+ return merged;
110
+ }, {});
111
+ }
112
+
113
+ function readonlySmokeMarkerDataStats(root, api) {
114
+ const markerDataFile = fileStats(root, api, 'tools/vibe-release-check/release-check-readonly-marker-data.mjs');
115
+ const markerSpecFile = fileStats(root, api, 'tools/vibe-release-check/release-check-readonly-marker-smoke-specs.mjs');
116
+ const stage121Smoke = fileStats(root, api, 'tools/vibe-release-check/release-check-stage121-136-smoke.mjs');
117
+ const stage103Smoke = fileStats(root, api, 'tools/vibe-release-check/release-check-stage103-118-smoke.mjs');
118
+ const specText = markerSpecFile.exists ? markerSpecFile.text : markerDataFile.text;
119
+ const specKeys = readonlySmokeSpecKeys(specText);
120
+ const stage103UsageByKey = readonlySmokeUsageByKey(stage103Smoke.text);
121
+ const stage121UsageByKey = readonlySmokeUsageByKey(stage121Smoke.text);
122
+ const usageByKey = mergeUsageMaps(stage103UsageByKey, stage121UsageByKey);
123
+ const unusedSpecKeys = specKeys.filter((key) => !usageByKey[key]);
124
+ const unknownUsageKeys = Object.keys(usageByKey).filter((key) => !specKeys.includes(key));
125
+ return {
126
+ markerDataFile,
127
+ markerSpecFile,
128
+ stage121Smoke,
129
+ stage103Smoke,
130
+ specText,
131
+ specKeys,
132
+ stage103UsageByKey,
133
+ stage121UsageByKey,
134
+ usageByKey,
135
+ unusedSpecKeys,
136
+ unknownUsageKeys,
137
+ specCount: specKeys.length,
138
+ payloadKeyCount: countText(specText, 'payloadKey:'),
139
+ payloadPrefixCount: countText(specText, 'payloadPrefix:'),
140
+ payloadSpecsCount: countText(specText, 'payloadSpecs:'),
141
+ boundaryFieldCount: countText(specText, 'boundaryFields:'),
142
+ safetyFieldCount: countText(specText, 'safetyFields:'),
143
+ stage103MarkerFactoryCalls: Object.values(stage103UsageByKey).reduce((total, count) => total + count, 0),
144
+ stage121MarkerFactoryCalls: Object.values(stage121UsageByKey).reduce((total, count) => total + count, 0),
145
+ };
146
+ }
147
+
148
+ const minimumRuntimePresentationFiles = 8;
149
+ const interactionPresentationDelegates = [
150
+ 'createWorkflowPresentation',
151
+ 'createCompletionPresentation',
152
+ 'createEntryPresentation',
153
+ 'createLearningPresentation',
154
+ 'printMethodologyPresentation',
155
+ 'createMethodologyCoveragePresentation',
156
+ ];
157
+
158
+ function runtimePresentationCoverageStats(root, api) {
159
+ const registryFiles = runtimeSurfaceFileGroups.presentation || [];
160
+ const ownerByFile = runtimeOwnerManifestByFile();
161
+ const missingFiles = registryFiles.filter((file) => !api.exists(root, file));
162
+ const invalidManifestEntries = registryFiles.filter((file) => {
163
+ const entry = ownerByFile[file] || {};
164
+ return entry.owner !== 'runtime-presentation' || entry.layer !== 'commandWrapper' || entry.risk !== 'low';
165
+ });
166
+ const interactionCommandText = fileStats(root, api, 'tools/vibe-runtime/runtime-interaction-command.mjs').text;
167
+ const methodologyCommandText = fileStats(root, api, 'tools/vibe-runtime/runtime-methodology-interaction-command.mjs').text;
168
+ const interactionDelegateText = `${interactionCommandText}\n${methodologyCommandText}`;
169
+ const missingPresentationDelegates = interactionPresentationDelegates.filter((delegateName) => !interactionDelegateText.includes(delegateName));
170
+ const factoryExportCount = registryFiles.reduce((total, file) => total + countText(fileStats(root, api, file).text, 'export function create'), 0);
171
+
172
+ return {
173
+ registryCount: registryFiles.length,
174
+ minimumRegistryFiles: minimumRuntimePresentationFiles,
175
+ existingCount: registryFiles.length - missingFiles.length,
176
+ factoryExportCount,
177
+ missingFiles,
178
+ invalidManifestEntries,
179
+ interactionPresentationDelegates,
180
+ interactionPresentationDelegateCount: interactionPresentationDelegates.length - missingPresentationDelegates.length,
181
+ missingPresentationDelegates,
182
+ };
183
+ }
184
+
185
+ export function checkRuntimePresentationCoverageContracts(root, api) {
186
+ const stats = runtimePresentationCoverageStats(root, api);
187
+
188
+ if (stats.missingFiles.length === 0 && stats.registryCount >= stats.minimumRegistryFiles) {
189
+ api.ok('runtime presentation modules exist for extracted command output owners', `files=${stats.existingCount}/${stats.registryCount}; minimum=${stats.minimumRegistryFiles}`);
190
+ } else {
191
+ api.fail('runtime presentation module coverage regressed', `files=${stats.existingCount}/${stats.registryCount}; minimum=${stats.minimumRegistryFiles}; missing=${stats.missingFiles.join(', ') || 'none'}`, 'Keep extracted text/output formatting in explicit runtime-*-presentation.mjs modules.');
192
+ }
193
+
194
+ if (stats.invalidManifestEntries.length === 0) {
195
+ api.ok('runtime presentation modules are declared as low-risk command wrapper surface', `registry=${stats.registryCount}; factoryExports=${stats.factoryExportCount}`);
196
+ } else {
197
+ api.fail('runtime presentation registry coverage drifted', `invalid=${stats.invalidManifestEntries.join(', ')}`, 'Keep presentation modules registered under runtime-presentation with low risk and commandWrapper layer.');
198
+ }
199
+
200
+ if (stats.missingPresentationDelegates.length === 0) {
201
+ api.ok('runtime interaction wrapper delegates extracted presentation output', `delegates=${stats.interactionPresentationDelegateCount}/${stats.interactionPresentationDelegates.length}`);
202
+ } else {
203
+ api.fail('runtime interaction presentation delegation regressed', `Missing delegate(s): ${stats.missingPresentationDelegates.join(', ')}`, 'Keep workflow, completion, entry, learning, methodology, and methodology coverage printing delegated to presentation modules; do not move IO/state/dispatch semantics.');
204
+ }
205
+ }
206
+
207
+ function runtimeInteractionDomainOwnerFiles(domain) {
208
+ const boundary = runtimeInteractionHighRiskSidecarBoundaries[domain];
209
+ return [...new Set([
210
+ 'tools/vibe-runtime/runtime-interaction-command.mjs',
211
+ ...(runtimeInteractionCommandDomainOwnerFiles[domain] || []),
212
+ boundary?.currentOwnerFile,
213
+ ...(boundary?.commandOwnerFiles || []),
214
+ ...(boundary?.futureOwnerFiles || []),
215
+ ].filter(Boolean))];
216
+ }
217
+
218
+ function interactionCommandDomainStats(root, api) {
219
+ const interactionFile = fileStats(root, api, 'tools/vibe-runtime/runtime-interaction-command.mjs');
220
+ const textByFile = new Map();
221
+ const textForFile = (file) => {
222
+ if (!textByFile.has(file)) textByFile.set(file, fileStats(root, api, file).text || '');
223
+ return textByFile.get(file);
224
+ };
225
+ const functionNamesFromText = (text) => [...String(text || '').matchAll(/^\s*function\s+([A-Za-z][A-Za-z0-9_]*)\s*\(/gm)].map((match) => match[1]);
226
+ const surfaceText = textForFile('tools/vibe-runtime/runtime-interaction-command.mjs');
227
+ const domainEntries = Object.entries(runtimeInteractionCommandDomains).map(([domain, spec]) => {
228
+ const ownerFiles = runtimeInteractionDomainOwnerFiles(domain).filter((file) => api.exists(root, file));
229
+ const domainText = ownerFiles.map((file) => textForFile(file)).join('\n');
230
+ const declaredFunctionSet = new Set(functionNamesFromText(domainText));
231
+ const functions = spec.functions || [];
232
+ const surfaceExports = spec.surfaceExports || [];
233
+ const missingFunctions = functions.filter((name) => !declaredFunctionSet.has(name));
234
+ const missingSurfaceExports = surfaceExports.filter((name) => !new RegExp(`\\b${name}\\b\\s*[:,]`).test(surfaceText));
235
+ return {
236
+ domain,
237
+ ownerFiles,
238
+ functionCount: functions.length,
239
+ surfaceExportCount: surfaceExports.length,
240
+ missingFunctions,
241
+ missingSurfaceExports,
242
+ declaredFunctions: [...declaredFunctionSet],
243
+ };
244
+ });
245
+ const declaredFunctionNames = [...new Set(domainEntries.flatMap((entry) => entry.declaredFunctions))];
246
+ const assignedFunctions = domainEntries.flatMap((entry) => runtimeInteractionCommandDomains[entry.domain].functions || []);
247
+ const duplicateFunctions = assignedFunctions.filter((name, index) => assignedFunctions.indexOf(name) !== index);
248
+ const unassignedFunctions = declaredFunctionNames.filter((name) => !assignedFunctions.includes(name));
249
+ return {
250
+ interactionFile,
251
+ declaredFunctionCount: declaredFunctionNames.length,
252
+ domainCount: domainEntries.length,
253
+ domainNames: domainEntries.map((entry) => entry.domain),
254
+ domainEntries,
255
+ assignedFunctionCount: assignedFunctions.length,
256
+ duplicateFunctions: [...new Set(duplicateFunctions)].sort(),
257
+ unassignedFunctions,
258
+ };
259
+ }
260
+
261
+ export function checkRuntimeInteractionCommandDomainContracts(root, api) {
262
+ const stats = interactionCommandDomainStats(root, api);
263
+ const expectedDomains = ['entryWorkflow', 'methodology', 'completion', 'learning', 'tokens'];
264
+ const missingDomains = expectedDomains.filter((domain) => !runtimeInteractionCommandDomainNames.includes(domain));
265
+ const domainGaps = stats.domainEntries.flatMap((entry) => [
266
+ ...entry.missingFunctions.map((name) => `${entry.domain}:${name}`),
267
+ ...entry.missingSurfaceExports.map((name) => `${entry.domain}:${name}`),
268
+ ]);
269
+
270
+ if (missingDomains.length === 0 && stats.domainCount >= expectedDomains.length) {
271
+ api.ok('runtime interaction command domains are declared for staged owner extraction', `domains=${stats.domainNames.join(', ')}`);
272
+ } else {
273
+ api.fail('runtime interaction command domain map is incomplete', `missing=${missingDomains.join(', ') || 'none'}; domains=${stats.domainNames.join(', ')}`, 'Keep entryWorkflow, methodology, completion, learning, and tokens visible before splitting command owners.');
274
+ }
275
+
276
+ if (domainGaps.length === 0 && stats.duplicateFunctions.length === 0) {
277
+ api.ok('runtime interaction command domain map covers declared functions and surface exports', `functions=${stats.assignedFunctionCount}/${stats.declaredFunctionCount}; surfaces=${stats.domainEntries.reduce((total, entry) => total + entry.surfaceExportCount, 0)}`);
278
+ } else {
279
+ api.fail('runtime interaction command domain map drifted', `missing=${domainGaps.join(', ') || 'none'}; duplicates=${stats.duplicateFunctions.join(', ') || 'none'}`, 'Update the domain map whenever interaction wrapper functions or returned command surfaces move.');
280
+ }
281
+ }
282
+
283
+ function interactionHighRiskSidecarGaps(root, api) {
284
+ const entries = Object.entries(runtimeInteractionHighRiskSidecarBoundaries);
285
+ const gaps = { entries, missingDomains: ['learning', 'tokens'].filter((domain) => !runtimeInteractionHighRiskSidecarBoundaries[domain]), missingProtected: [], futureLeaks: [], protectedCount: 0 };
286
+ for (const [domain, spec] of entries) {
287
+ const approvedOwnerFiles = [
288
+ spec.currentOwnerFile,
289
+ ...(spec.commandOwnerFiles || []),
290
+ ...(spec.artifactOwnerFiles || []),
291
+ ].filter(Boolean);
292
+ const approvedTexts = approvedOwnerFiles.map((file) => fileStats(root, api, file).text || '');
293
+ gaps.protectedCount += spec.protectedFunctions.length;
294
+ for (const name of spec.protectedFunctions) {
295
+ const declaredInApprovedOwner = approvedTexts.some((text) => text.includes(`function ${name}(`));
296
+ if (!declaredInApprovedOwner) gaps.missingProtected.push(`${domain}:${name}`);
297
+ }
298
+ for (const file of spec.futureOwnerFiles) if (api.exists(root, file)) {
299
+ const text = fileStats(root, api, file).text || '';
300
+ for (const name of spec.protectedFunctions) if (text.includes(name)) gaps.futureLeaks.push(`${file}:${name}`);
301
+ }
302
+ } return gaps;
303
+ }
304
+
305
+ export function checkRuntimeInteractionHighRiskSidecarBoundaryContracts(root, api) {
306
+ const gaps = interactionHighRiskSidecarGaps(root, api), domainSummary = gaps.entries.map(([domain, spec]) => `${domain}:${spec.protectedFunctions.length}`).join(', ');
307
+ if (gaps.missingDomains.length === 0 && gaps.entries.length >= 2) api.ok('runtime interaction high-risk sidecar boundaries are declared', `domains=${domainSummary}`);
308
+ else api.fail('runtime interaction high-risk sidecar boundary map is incomplete', `missing=${gaps.missingDomains.join(', ') || 'none'}`, 'Keep learning and token sidecar migration boundaries explicit before extracting command owners.');
309
+ if (gaps.missingProtected.length === 0 && gaps.futureLeaks.length === 0) api.ok('runtime interaction high-risk sidecar write and validation chain remains protected', `protected=${gaps.protectedCount}; futureLeaks=0`);
310
+ else api.fail('runtime interaction high-risk sidecar migration guard regressed', `missing=${gaps.missingProtected.join(', ') || 'none'}; futureLeaks=${gaps.futureLeaks.join(', ') || 'none'}`, 'Do not migrate learning/token sidecar write, validation, path, or digest-sensitive chains without a dedicated staged owner and targeted verification.');
311
+ }
312
+
313
+ export function checkReadonlySmokeMarkerDataContracts(root, api) {
314
+ const stats = readonlySmokeMarkerDataStats(root, api);
315
+ if (!stats.markerDataFile.exists) {
316
+ api.fail('readonly smoke marker data file missing', '', 'Restore release-check-readonly-marker-data.mjs so smoke marker assertions stay data-driven.');
317
+ return;
318
+ }
319
+
320
+ const requiredKeys = ['automationReadiness', 'workflowLoopContract', 'planActionManifest', 'selfTestProfile', 'commitReadiness', 'confirmedOneShotPlan', 'tddTrace', 'superpowersGap', 'progressiveEntryUx', 'executablePlan', 'stageRunbook', 'adapterBootstrapMatrix', 'skillRuntimeTraceability', 'experienceLearningPattern', 'adapterEntryAcceptance', 'experienceDashboard', 'superpowersComparison', 'sessionStartShape', 'entryTriggerDiscipline', 'methodologyCoverage', 'superpowersRegressionGuard', 'experienceFriction', 'stageScriptlet'];
321
+ const missingKeys = requiredKeys.filter((key) => !stats.specText.includes(`${key}: {`));
322
+ if (missingKeys.length === 0) {
323
+ api.ok('readonly smoke marker data includes staged fixture specs', `specs=${stats.specCount}; required=${requiredKeys.length}`);
324
+ } else {
325
+ api.fail('readonly smoke marker data staged specs incomplete', `Missing spec key(s): ${missingKeys.join(', ')}`, 'Keep large readonly marker groups in release-check-readonly-marker-data.mjs instead of expanding smoke owner files.');
326
+ }
327
+
328
+ if (stats.specCount >= requiredKeys.length
329
+ && stats.payloadKeyCount === stats.specCount
330
+ && stats.payloadPrefixCount === stats.specCount
331
+ && stats.payloadSpecsCount === stats.specCount
332
+ && stats.boundaryFieldCount === stats.specCount
333
+ && stats.safetyFieldCount === stats.specCount) {
334
+ api.ok('readonly smoke marker specs keep payload, boundary, and safety fields aligned', `specs=${stats.specCount}; payloadKey=${stats.payloadKeyCount}; payloadPrefix=${stats.payloadPrefixCount}; payloadSpecs=${stats.payloadSpecsCount}; boundaryFields=${stats.boundaryFieldCount}; safetyFields=${stats.safetyFieldCount}`);
335
+ } else {
336
+ api.fail('readonly smoke marker spec shape drifted', `specs=${stats.specCount}; payloadKey=${stats.payloadKeyCount}; payloadPrefix=${stats.payloadPrefixCount}; payloadSpecs=${stats.payloadSpecsCount}; boundaryFields=${stats.boundaryFieldCount}; safetyFields=${stats.safetyFieldCount}`, 'Each readonly smoke marker spec must declare payloadKey, payloadPrefix, payloadSpecs, boundaryFields, and safetyFields.');
337
+ }
338
+
339
+ if (stats.unusedSpecKeys.length === 0 && stats.unknownUsageKeys.length === 0) {
340
+ api.ok('readonly smoke marker specs are covered by smoke factory calls', `specs=${stats.specCount}; used=${Object.keys(stats.usageByKey).length}; stage103=${stats.stage103MarkerFactoryCalls}; stage121=${stats.stage121MarkerFactoryCalls}`);
341
+ } else {
342
+ api.fail('readonly smoke marker spec coverage drifted', `unused=${stats.unusedSpecKeys.join(', ') || 'none'}; unknown=${stats.unknownUsageKeys.join(', ') || 'none'}`, 'Every readonly smoke marker spec must be referenced through readonlySmokeMarkers in a runtime smoke file, and smoke files must not reference unknown spec keys.');
343
+ }
344
+
345
+ if (stats.stage103MarkerFactoryCalls >= 6 && stats.stage121MarkerFactoryCalls >= 4) {
346
+ api.ok('release smoke files use readonly smoke marker factory calls', `stage103=${stats.stage103MarkerFactoryCalls}; stage121=${stats.stage121MarkerFactoryCalls}`);
347
+ } else {
348
+ api.fail('release smoke marker factory coverage regressed', `stage103=${stats.stage103MarkerFactoryCalls}; stage121=${stats.stage121MarkerFactoryCalls}`, 'Keep large readonly marker assertion blocks routed through readonlySmokeMarkers without changing smoke command execution order.');
349
+ }
350
+ }
351
+
352
+ function architecturePerformanceFileDiagnostics(budget, stats) {
353
+ const stableLineGap = Math.max(0, stats.lines - budget.stableLines);
354
+ const idealLineGap = Math.max(0, stats.lines - budget.idealLines);
355
+ return {
356
+ file: budget.file,
357
+ owner: budget.owner,
358
+ layer: budget.layer,
359
+ lines: stats.lines,
360
+ bytes: stats.bytes,
361
+ stableTargetLines: budget.stableLines,
362
+ idealTargetLines: budget.idealLines,
363
+ stablePassed: stats.lines <= budget.stableLines,
364
+ idealPassed: stats.lines <= budget.idealLines,
365
+ stableLineGap,
366
+ idealLineGap,
367
+ idealRemainingLines: Math.max(0, budget.idealLines - stats.lines),
368
+ };
369
+ }
370
+
371
+ const runtimeInteractionPureModelFiles = ['tools/vibe-runtime/runtime-methodology-route-model.mjs', 'tools/vibe-runtime/runtime-workflow-start-model.mjs', 'tools/vibe-runtime/runtime-methodology-gate-model.mjs', 'tools/vibe-runtime/runtime-workflow-readiness-model.mjs', 'tools/vibe-runtime/runtime-entry-advice-model.mjs', 'tools/vibe-runtime/runtime-human-completion-evidence-model.mjs', 'tools/vibe-runtime/runtime-advice-hub-model.mjs', 'tools/vibe-runtime/runtime-learning-advice-model.mjs', 'tools/vibe-runtime/runtime-learning-observation-model.mjs', 'tools/vibe-runtime/runtime-token-economy-model.mjs', 'tools/vibe-runtime/runtime-workflow-ux-model.mjs'];
372
+
373
+ const runtimeCliSpecFiles = ['tools/vibe-runtime/runtime-cli-option-defaults.mjs', 'tools/vibe-runtime/runtime-cli-option-handlers.mjs', 'tools/vibe-runtime/runtime-cli-value-options.mjs', 'tools/vibe-runtime/runtime-cli-from-options.mjs', 'tools/vibe-runtime/runtime-cli-evidence-options.mjs'];
374
+
375
+ export function collectArchitecturePerformanceDiagnostics(root, api) {
376
+ const trackedFiles = runtimeArchitecturePerformanceBudgets.map((budget) => {
377
+ const stats = fileStats(root, api, budget.file);
378
+ return architecturePerformanceFileDiagnostics(budget, stats);
379
+ });
380
+ const idealGapFiles = trackedFiles
381
+ .filter((file) => file.exists !== false)
382
+ .filter((file) => file.idealLineGap > 0)
383
+ .sort((left, right) => right.idealLineGap - left.idealLineGap);
384
+ const totalIdealLineGap = idealGapFiles.reduce((total, file) => total + file.idealLineGap, 0);
385
+ const topIdealGapFile = idealGapFiles[0] || null;
386
+
387
+ const builderFile = fileStats(root, api, 'tools/vibe-runtime/runtime-entry-deps-builder.mjs');
388
+ const indexFile = fileStats(root, api, 'tools/vibe-runtime/index.mjs');
389
+ const helperFile = fileStats(root, api, 'tools/vibe-release-check/release-check-json-assertion-helpers.mjs');
390
+ const stage121Smoke = fileStats(root, api, 'tools/vibe-release-check/release-check-stage121-136-smoke.mjs');
391
+ const stage103Smoke = fileStats(root, api, 'tools/vibe-release-check/release-check-stage103-118-smoke.mjs');
392
+ const markerDataStats = readonlySmokeMarkerDataStats(root, api);
393
+ const presentationCoverage = runtimePresentationCoverageStats(root, api);
394
+ const interactionDomainStats = interactionCommandDomainStats(root, api);
395
+
396
+ return {
397
+ trackedFiles,
398
+ idealGapFiles,
399
+ totalIdealLineGap,
400
+ topIdealGapFile,
401
+ interaction: {
402
+ extractedPureModels: runtimeInteractionPureModelFiles.filter((file) => api.exists(root, file)).length,
403
+ expectedPureModels: runtimeInteractionPureModelFiles.length,
404
+ tokenModel: api.exists(root, 'tools/vibe-runtime/runtime-token-economy-model.mjs'),
405
+ learningAdviceModel: api.exists(root, 'tools/vibe-runtime/runtime-learning-advice-model.mjs'),
406
+ learningObservationModel: api.exists(root, 'tools/vibe-runtime/runtime-learning-observation-model.mjs'),
407
+ adviceHubModel: api.exists(root, 'tools/vibe-runtime/runtime-advice-hub-model.mjs'),
408
+ workflowUxModel: api.exists(root, 'tools/vibe-runtime/runtime-workflow-ux-model.mjs'),
409
+ files: runtimeInteractionPureModelFiles,
410
+ domains: interactionDomainStats.domainEntries.map((entry) => ({
411
+ domain: entry.domain,
412
+ functions: entry.functionCount,
413
+ surfaces: entry.surfaceExportCount,
414
+ missingFunctions: entry.missingFunctions.length,
415
+ missingSurfaceExports: entry.missingSurfaceExports.length,
416
+ })),
417
+ declaredFunctionCount: interactionDomainStats.declaredFunctionCount,
418
+ assignedFunctionCount: interactionDomainStats.assignedFunctionCount,
419
+ unassignedFunctionCount: interactionDomainStats.unassignedFunctions.length,
420
+ duplicateFunctionCount: interactionDomainStats.duplicateFunctions.length,
421
+ },
422
+ cliParser: {
423
+ extractedSpecs: runtimeCliSpecFiles.filter((file) => api.exists(root, file)).length,
424
+ expectedSpecs: runtimeCliSpecFiles.length,
425
+ lowRiskFromOptionCalls: countText(indexFile.text, 'parseLowRiskRuntimeCliFromOption') + countText(fileStats(root, api, 'tools/vibe-runtime/runtime-cli-args.mjs').text, 'parseLowRiskRuntimeCliFromOption'),
426
+ files: runtimeCliSpecFiles,
427
+ },
428
+ smokeAssertions: {
429
+ helperForbiddenFlagChecks: countText(helperFile.text, 'runForbiddenFlagChecks'),
430
+ markerDataFactorySpecs: markerDataStats.specCount,
431
+ markerDataSpecKeys: markerDataStats.specKeys,
432
+ markerDataUsedSpecKeys: Object.keys(markerDataStats.usageByKey).sort(),
433
+ markerDataUnusedSpecKeys: markerDataStats.unusedSpecKeys,
434
+ markerDataUnknownUsageKeys: markerDataStats.unknownUsageKeys,
435
+ markerDataPayloadKeys: markerDataStats.payloadKeyCount,
436
+ markerDataPayloadPrefixes: markerDataStats.payloadPrefixCount,
437
+ markerDataPayloadSpecs: markerDataStats.payloadSpecsCount,
438
+ markerDataBoundaryFields: markerDataStats.boundaryFieldCount,
439
+ markerDataSafetyFields: markerDataStats.safetyFieldCount,
440
+ markerDataFactoryExports: countText(helperFile.text, 'readonlySmokeMarkers') + countText(helperFile.text, 'readonlySmokeMarkerSpecKeys'),
441
+ adapterEntryAcceptanceUsage: markerDataStats.usageByKey.adapterEntryAcceptance || 0,
442
+ adapterBootstrapMatrixUsage: markerDataStats.usageByKey.adapterBootstrapMatrix || 0,
443
+ skillRuntimeTraceabilityUsage: markerDataStats.usageByKey.skillRuntimeTraceability || 0,
444
+ experienceLearningPatternUsage: markerDataStats.usageByKey.experienceLearningPattern || 0,
445
+ entryTriggerDisciplineUsage: markerDataStats.usageByKey.entryTriggerDiscipline || 0,
446
+ tddTraceUsage: markerDataStats.usageByKey.tddTrace || 0,
447
+ superpowersGapUsage: markerDataStats.usageByKey.superpowersGap || 0,
448
+ progressiveEntryUxUsage: markerDataStats.usageByKey.progressiveEntryUx || 0,
449
+ executablePlanUsage: markerDataStats.usageByKey.executablePlan || 0,
450
+ stageRunbookUsage: markerDataStats.usageByKey.stageRunbook || 0,
451
+ stage121ForbiddenLoops: countText(stage121Smoke.text, 'for (const forbidden'),
452
+ stage121HelperCalls: countText(stage121Smoke.text, 'runForbiddenFlagChecks'),
453
+ stage121MarkerFactoryCalls: markerDataStats.stage121MarkerFactoryCalls,
454
+ stage103ForbiddenLoops: countText(stage103Smoke.text, 'for (const forbidden'),
455
+ stage103HelperCalls: countText(stage103Smoke.text, 'runForbiddenFlagChecks'),
456
+ stage103MarkerFactoryCalls: markerDataStats.stage103MarkerFactoryCalls,
457
+ },
458
+ presentation: {
459
+ registryFiles: presentationCoverage.registryCount,
460
+ minimumRegistryFiles: presentationCoverage.minimumRegistryFiles,
461
+ existingFiles: presentationCoverage.existingCount,
462
+ factoryExports: presentationCoverage.factoryExportCount,
463
+ interactionPresentationDelegates: presentationCoverage.interactionPresentationDelegateCount,
464
+ expectedInteractionPresentationDelegates: presentationCoverage.interactionPresentationDelegates.length,
465
+ missingFiles: presentationCoverage.missingFiles,
466
+ invalidManifestEntries: presentationCoverage.invalidManifestEntries,
467
+ missingPresentationDelegates: presentationCoverage.missingPresentationDelegates,
468
+ },
469
+ dependencyBuilder: {
470
+ exportedBuilders: countText(builderFile.text, 'export function createRuntime'),
471
+ indexBuilderCalls: ['createRuntimeInteractionCommandDeps', 'createRuntimeGovernanceCommandDeps', 'createRuntimeWorkflowCommandDeps', 'createRuntimeTokensCommandDeps']
472
+ .reduce((total, name) => total + countText(indexFile.text, `${name}({`), 0),
473
+ hasTokensBuilder: builderFile.text?.includes('createRuntimeTokensCommandDeps') === true,
474
+ hasWorkflowBuilder: builderFile.text?.includes('createRuntimeWorkflowCommandDeps') === true,
475
+ },
476
+ };
477
+ }
@@ -0,0 +1,98 @@
1
+ export const EXPERIENCE_CLI_CONTRACTS = [
2
+ {
3
+ markers: ['governance --experience-dashboard', 'governanceExperienceDashboard', 'experienceRegressionDashboardEnvelope', 'printExperienceRegressionDashboard', 'runtimeExperienceRegressionDashboard', 'runtime-experience-regression-dashboard', 'experience_regression_dashboard', 'experience-regression-dashboard', 'dashboard_digest', 'Dashboard digest', 'experience_dashboard_artifact=false', 'regression_dashboard_artifact=false', 'experience_scorecard', 'superpowers_comparison_delta', 'token_savior_delta', 'learning_loop_delta', 'daily_user_friction_delta', 'regression_blockers', 'next_bet', 'command_execution=false', 'check_execution=false', 'smoke_execution=false', 'test_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 132'],
4
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 132 experience regression dashboard boundaries',
5
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 132 experience dashboard markers incomplete',
6
+ fix: 'Keep governance --experience-dashboard, local contract aggregation, digest output, and no execution/write/git/subagent boundary synchronized.',
7
+ },
8
+ {
9
+ markers: ['governance --superpowers-comparison', 'governanceSuperpowersComparison', 'superpowersComparisonEnvelope', 'printSuperpowersComparisonMatrix', 'runtimeSuperpowersComparisonMatrix', 'runtime-superpowers-comparison-matrix', 'superpowers_comparison_matrix', 'superpowers-comparative-evidence-matrix', 'comparison_digest', 'Superpowers comparison digest', 'superpowers_comparison_artifact=false', 'comparison_matrix_artifact=false', 'parity_gaps', 'vibecoding_advantages', 'borrowable_patterns', 'do_not_copy', 'recommended_stage_sequence', 'next_comparison_bet', 'superpowers_comparison_invariants', 'command_execution=false', 'check_execution=false', 'smoke_execution=false', 'test_execution=false', 'hook_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 133'],
10
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 133 Superpowers comparison boundaries',
11
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 133 Superpowers comparison markers incomplete',
12
+ fix: 'Keep governance --superpowers-comparison, local source matrix output, digest output, and no execution/write/git/subagent boundary synchronized.',
13
+ },
14
+ {
15
+ markers: ['platforms --session-start-shape', 'platformsSessionStartShape', 'sessionStartShapeAcceptanceEnvelope', 'runtimeSessionStartShapeAcceptance', 'runtime-session-start-shape-acceptance', 'runtime-platform-acceptance-command', 'runSessionStartShapeAcceptanceCommand', 'printSessionStartShapeAcceptance', 'session_start_shape_acceptance', 'session-start-shape-acceptance', 'shape_digest', 'Shape blockers', 'session_start_shape_artifact=false', 'captured_output_write=false', 'adapter_output_shape', 'context_present', 'using_vibecoding_marker', 'lightweight_routing_marker', 'boundary_declaration_marker', 'no_full_skill_injection', 'no_forbidden_trigger', 'adapter_execution=false', 'hook_execution=false', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 134'],
16
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 134 session-start shape boundaries',
17
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 134 session-start shape markers incomplete',
18
+ fix: 'Keep platforms --session-start-shape, captured output shape gate, digest output, and no execution/write/git/subagent boundary synchronized.',
19
+ },
20
+ {
21
+ markers: ['workflow --entry-discipline', 'workflowEntryDiscipline', 'entryTriggerDisciplineEnvelope', 'printEntryTriggerDiscipline', 'runtimeEntryTriggerDiscipline', 'runtime-entry-trigger-discipline', 'entry_trigger_discipline', 'entry-trigger-discipline-contract', 'discipline_digest', 'Entry discipline digest', 'entry_discipline_artifact=false', 'transcript_write=false', 'using_vibecoding_first', 'protocol_layers_declared', 'intent_route_match', 'no_direct_implementation_jump', 'no_blind_bug_fix', 'no_false_skill_claim', 'no_forbidden_trigger', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 135'],
22
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 135 entry trigger discipline boundaries',
23
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 135 entry trigger discipline markers incomplete',
24
+ fix: 'Keep workflow --entry-discipline, local transcript gate output, digest output, and no execution/write/git/subagent boundary synchronized.',
25
+ },
26
+ {
27
+ markers: ['methodology --coverage-map', 'methodologyCoverageMap', 'methodologyCoverageEnvelope', 'printMethodologyCoverageMap', 'runtimeMethodologyCoverageMap', 'runtime-methodology-coverage-map', 'methodology_coverage_map', 'methodology-coverage-map', 'coverage_digest', 'Coverage digest', 'methodology_coverage_artifact=false', 'coverage_map_artifact=false', 'covered_patterns', 'partial_patterns', 'missing_patterns', 'vibecoding_specific_patterns', 'coverage_summary', 'next_coverage_bet', 'methodology_coverage_invariants', 'command_execution=false', 'check_execution=false', 'smoke_execution=false', 'test_execution=false', 'hook_execution=false', 'adapter_execution=false', 'workflow_execution=false', 'skill_execution=false', 'skill_mutation=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 136'],
28
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 136 methodology coverage boundaries',
29
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 136 methodology coverage markers incomplete',
30
+ fix: 'Keep methodology --coverage-map, local source coverage map output, digest output, and no execution/write/git/subagent boundary synchronized.',
31
+ },
32
+ {
33
+ markers: ['platforms --install-experience', 'platformsInstallExperience', 'installExperienceEnvelope', 'printInstallExperience', 'runtimeInstallExperienceScore', 'runtime-install-experience-score', 'runtime-install-experience-command', 'runInstallExperienceCommand', 'install_experience_score', 'hook-adapter-install-experience-score', 'install_experience_digest', 'Install experience score', 'Manual steps remaining', 'Docs friction', 'install_experience_artifact=false', 'bootstrap_matrix_artifact: false', 'entry_acceptance_artifact: false', 'natural_entry_score', 'adapter_consistency_score', 'adapter_scores', 'manual_steps_remaining', 'docs_friction', 'adapter_install=false', 'adapter_execution=false', 'hook_execution=false', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 137'],
34
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 137 install experience score boundaries',
35
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 137 install experience markers incomplete',
36
+ fix: 'Keep platforms --install-experience, local evidence score output, digest output, and no install/execution/write/git/subagent boundary synchronized.',
37
+ },
38
+ {
39
+ markers: ['evals --superpowers-style-pack', 'evalsSuperpowersStylePack', 'superpowersStyleEvalPackEnvelope', 'printSuperpowersStyleEvalPack', 'runtimeSuperpowersStyleEvalPack', 'runtime-superpowers-style-eval-pack', 'superpowers_style_eval_pack', 'superpowers-style-behavioral-eval-scenario-pack', 'eval_pack_digest', 'Eval pack digest', 'scenario_pack', 'scenario_summary', 'scenario_ids', 'eval_pack_artifact=false', 'scenario_artifact=false', 'comparison_artifact=false', 'eval_execution=false', 'agent_session_execution=false', 'workflow_execution=false', 'skill_execution=false', 'model_invocation=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 138'],
40
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 138 Superpowers-style eval pack boundaries',
41
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 138 eval pack markers incomplete',
42
+ fix: 'Keep evals --superpowers-style-pack, local scenario pack output, digest output, and no eval/model/session/git/subagent boundary synchronized.',
43
+ },
44
+ {
45
+ markers: ['governance --experience-upgrades', 'governanceExperienceUpgrades', 'experienceUpgradePrioritizerEnvelope', 'printExperienceUpgradePrioritizer', 'runtimeExperienceUpgradePrioritizer', 'runtime-experience-upgrade-prioritizer', 'runtime-experience-upgrade-command', 'runExperienceUpgradePrioritizerCommand', 'experience_upgrade_prioritizer', 'experience-upgrade-prioritizer', 'upgrade_digest', 'Upgrade digest', 'upgrade_candidates', 'recommended_stage_order', 'defer', 'prioritization_policy', 'next_upgrade_bet', 'upgrade_artifact=false', 'prioritizer_artifact=false', 'comparison_artifact=false', 'dashboard_artifact=false', 'install_experience_artifact=false', 'eval_execution=false', 'workflow_execution=false', 'skill_execution=false', 'prompt_mutation=false', 'hook_registration=false', 'model_invocation=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 139'],
46
+ okLabel: 'tools/vibe-runtime/index.mjs supports Stage 139 experience upgrade prioritizer boundaries',
47
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 139 experience upgrade markers incomplete',
48
+ fix: 'Keep governance --experience-upgrades, local upgrade prioritizer output, digest output, and no execution/write/git/subagent boundary synchronized.',
49
+ },
50
+ {
51
+ markers: ['governance --superpowers-parity-scorecard', 'governanceSuperpowersParityScorecard', 'superpowersParityScorecardEnvelope', 'printSuperpowersParityScorecard', 'runtime-superpowers-parity-command', '--from-entry-discipline', '--from-upgrades', 'Stage 140'],
52
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 140 Superpowers parity scorecard command',
53
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 140 parity scorecard command wiring incomplete',
54
+ fix: 'Keep governance --superpowers-parity-scorecard CLI parsing and dispatch wired to the Stage 140 command module.',
55
+ },
56
+ {
57
+ markers: ['workflow --entry-tightening', 'workflowEntryTightening', 'fromDiscipline', 'fromScorecard', 'runEntryTriggerTighteningCommand', 'entryTriggerTighteningEnvelope', 'runtimeEntryTriggerTightening', 'runtime-entry-trigger-tightening', 'runtime-entry-trigger-tightening-command', 'entry_trigger_tightening', 'entry-trigger-tightening-contract', 'tightening_score', 'missing_entry_moves', 'recommended_opening_sentence', 'must_not_skip', 'tightening_digest', 'Tightening digest', 'entry_tightening_artifact=false', 'entry_trigger_tightening_artifact=false', 'prompt_mutation=false', 'template_mutation=false', 'skill_mutation=false', 'hook_execution=false', 'adapter_execution=false', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 141'],
58
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 141 entry trigger tightening command',
59
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 141 entry trigger tightening command wiring incomplete',
60
+ fix: 'Keep workflow --entry-tightening CLI parsing and dispatch wired to the Stage 141 command/core modules without moving domain logic into index.mjs.',
61
+ },
62
+ {
63
+ markers: ['workflow --next-evidence-prompts', 'workflowNextEvidencePrompts', 'fromConsole', 'fromDashboard', 'fromUpgrades', 'runNextActionEvidencePromptsCommand', 'runtimeNextActionEvidencePrompts', 'runtime-next-action-evidence-prompts', 'runtime-next-action-evidence-prompts-command', 'next_action_evidence_prompts', 'next-action-evidence-prompts', 'evidence_prompt_cards', 'copy_ready_validation_notes', 'blocked_until', 'prompts_digest', 'Prompts digest', 'next_action_evidence_prompts_artifact=false', 'evidence_prompt_artifact=false', 'evidence_write=false', 'validation_note_write=false', 'prompt_mutation=false', 'template_mutation=false', 'skill_mutation=false', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 143'],
64
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 143 next-action evidence prompts command',
65
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 143 next-action evidence prompts command wiring incomplete',
66
+ fix: 'Keep workflow --next-evidence-prompts CLI parsing and dispatch wired to the Stage 143 command/core modules without moving domain logic into index.mjs.',
67
+ },
68
+ {
69
+ markers: ['tokens --entry-defaults', 'tokensEntryDefaults', 'fromBudget', 'fromScorecard', 'runContextBudgetEntryDefaultsCommand', 'runtimeContextBudgetEntryDefaults', 'runtime-context-budget-entry-defaults', 'runtime-context-budget-entry-defaults-command', 'context_budget_entry_defaults', 'context-budget-entry-defaults', 'recommended_profile', 'surface_now', 'defer_until_needed', 'token_saving_boundary', 'entry_defaults_digest', 'Entry defaults digest', 'context_budget_entry_defaults_artifact=false', 'entry_defaults_artifact=false', 'prompt_mutation=false', 'template_mutation=false', 'skill_mutation=false', 'full_skill_injection=false', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'embeddings=false', 'remote_config=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 144'],
70
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 144 context budget entry defaults command',
71
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 144 context budget entry defaults command wiring incomplete',
72
+ fix: 'Keep tokens --entry-defaults CLI parsing and dispatch wired to the Stage 144 command/core modules without moving domain logic into index.mjs.',
73
+ },
74
+ {
75
+ markers: ['evals --local-behavior-contracts', 'evalsLocalBehaviorContracts', 'fromStylePack', 'fromEntryTightening', 'runLocalBehaviorEvalContractsCommand', 'runtimeLocalBehaviorEvalContracts', 'runtime-local-behavior-eval-contracts', 'runtime-local-behavior-eval-contracts-command', 'local_behavior_eval_contracts', 'local-behavior-eval-contracts', 'contract_cases', 'deterministic_judges', 'live_eval_deferred', 'visible_entry_route_judge', 'evidence_before_completion_judge', 'forbidden_action_boundary_judge', 'deterministic_contract_only_judge', 'false_skill_claim_judge', 'over_workflow_discipline_judge', 'evidence_free_completion_judge', 'contracts_digest', 'Contracts digest', 'local_behavior_eval_contracts_artifact=false', 'behavior_contract_artifact=false', 'style_pack_artifact=false', 'entry_tightening_artifact=false', 'eval_execution=false', 'live_eval_execution=false', 'agent_session_execution=false', 'model_judge_execution=false', 'prompt_mutation=false', 'template_mutation=false', 'skill_mutation=false', 'workflow_execution=false', 'skill_execution=false', 'command_execution=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 145'],
76
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 145 local behavior eval contracts command',
77
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 145 local behavior eval contracts command wiring incomplete',
78
+ fix: 'Keep evals --local-behavior-contracts CLI parsing and dispatch wired to the Stage 145 command/core modules without moving domain logic into index.mjs.',
79
+ },
80
+ {
81
+ markers: ['governance --contributor-guardrails', 'governanceContributorGuardrails', 'fromEvidencePrompts', 'runContributorGuardrailCommand', 'runtimeContributorGuardrailEvidence', 'runtime-contributor-guardrail-evidence', 'runtime-contributor-guardrail-command', 'contributor_guardrail_evidence', 'contributor-guardrail-evidence', 'guardrail_findings', 'required_disclosures', 'unsafe_closeout_risks', 'closeout_contract', 'validation-evidence-required', 'no-remote-pr-review-search', 'no-auto-repair-from-evidence', 'guardrail_digest', 'Guardrail digest', 'contributor_guardrail_evidence_artifact=false', 'guardrail_artifact=false', 'parity_scorecard_artifact=false', 'evidence_prompts_artifact=false', 'remote_pr_search=false', 'remote_review_search=false', 'command_execution=false', 'check_execution=false', 'test_execution=false', 'workflow_execution=false', 'runtime_action=false', 'auto_execution=false', 'repair_execution=false', 'auto_fix=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 146'],
82
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 146 contributor guardrail evidence command',
83
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 146 contributor guardrail evidence command wiring incomplete',
84
+ fix: 'Keep governance --contributor-guardrails CLI parsing and dispatch wired to the Stage 146 command/core modules without moving domain logic into index.mjs.',
85
+ },
86
+ {
87
+ markers: ['governance --subagent-permission', 'governanceSubagentPermission', 'fromGuardrails', 'runSubagentPermissionCommand', 'runtimeSubagentPermissionVisibility', 'runtime-subagent-permission-visibility', 'runtime-subagent-permission-command', 'subagent_permission_visibility', 'subagent-permission-visibility', 'permission_gate', 'brief_requirements', 'must_ask_user_first', 'visibility_contract', 'explicit-user-permission', 'brief-completeness', 'no-hidden-dispatch', 'permission_digest', 'Permission digest', 'subagent_permission_visibility_artifact=false', 'permission_artifact=false', 'guardrail_artifact=false', 'parity_scorecard_artifact=false', 'brief_artifact=false', 'dispatch_artifact=false', 'session_artifact=false', 'subagent_dispatch=false', 'subagent_session=false', 'session_create=false', 'command_execution=false', 'check_execution=false', 'test_execution=false', 'workflow_execution=false', 'runtime_action=false', 'auto_execution=false', 'auto_dispatch=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 147'],
88
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 147 subagent permission visibility command',
89
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 147 subagent permission visibility command wiring incomplete',
90
+ fix: 'Keep governance --subagent-permission CLI parsing and dispatch wired to the Stage 147 command/core modules without moving domain logic into index.mjs.',
91
+ },
92
+ {
93
+ markers: ['platforms --adapter-packaging-consistency', 'platformsAdapterPackagingConsistency', 'fromSessionExamples', 'runAdapterPackagingConsistencyCommand', 'runtimeAdapterPackagingConsistency', 'runtime-adapter-packaging-consistency', 'runtime-adapter-packaging-consistency-command', 'adapter_packaging_consistency', 'adapter-packaging-consistency-checklist', 'adapter_rows', 'missing_install_markers', 'copy_ready_fix_notes', 'consistency_digest', 'Consistency digest', 'adapter_packaging_consistency_artifact=false', 'bootstrap_matrix_artifact=false', 'session_start_example_pack_artifact=false', 'adapter_row_artifact=false', 'fix_note_artifact=false', 'adapter_install=false', 'adapter_execution=false', 'hook_execution=false', 'manifest_write=false', 'plugin_manifest_write=false', 'install_doc_write=false', 'command_execution=false', 'check_execution=false', 'test_execution=false', 'workflow_execution=false', 'runtime_action=false', 'auto_execution=false', 'repair_execution=false', 'auto_fix=false', 'git=false', 'git_write=false', 'subagent=false', 'Stage 148'],
94
+ okLabel: 'tools/vibe-runtime/index.mjs wires Stage 148 adapter packaging consistency command',
95
+ failLabel: 'tools/vibe-runtime/index.mjs Stage 148 adapter packaging consistency command wiring incomplete',
96
+ fix: 'Keep platforms --adapter-packaging-consistency CLI parsing and dispatch wired to the Stage 148 command/core modules without moving domain logic into index.mjs.',
97
+ },
98
+ ];
@@ -0,0 +1,12 @@
1
+ import { EXPERIENCE_CLI_CONTRACTS } from './runtime-experience-cli-contract-specs.mjs';
2
+
3
+ export function checkRuntimeExperienceCliContracts(api, cliSurfaceText) {
4
+ for (const contract of EXPERIENCE_CLI_CONTRACTS) {
5
+ const missingMarkers = contract.markers.filter((marker) => !cliSurfaceText.includes(marker));
6
+ if (missingMarkers.length === 0) {
7
+ api.ok(contract.okLabel);
8
+ } else {
9
+ api.fail(contract.failLabel, `Missing marker(s): ${missingMarkers.join(', ')}`, contract.fix);
10
+ }
11
+ }
12
+ }