@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.
- package/AGENTS.md +84 -0
- package/CHANGELOG.md +28 -0
- package/CLAUDE.md +137 -0
- package/CODE_OF_CONDUCT.md +30 -0
- package/CONTRIBUTING.md +69 -0
- package/LICENSE +67 -0
- package/README.md +162 -0
- package/SECURITY.md +34 -0
- package/adapters/claude/install.md +70 -0
- package/adapters/claude/plugin.json +38 -0
- package/adapters/claude/settings.example.json +15 -0
- package/adapters/codex/hooks.example.json +15 -0
- package/adapters/codex/install.md +72 -0
- package/adapters/codex/plugin.json +58 -0
- package/adapters/cursor/hooks.example.json +17 -0
- package/adapters/cursor/install.md +72 -0
- package/adapters/cursor/plugin.json +42 -0
- package/adapters/opencode/install.md +95 -0
- package/adapters/opencode/plugin.js +56 -0
- package/adapters/opencode/plugin.json +58 -0
- package/adapters/pi/extension.ts +56 -0
- package/adapters/pi/install.md +95 -0
- package/adapters/pi/plugin.json +58 -0
- package/bin/vibe-cli-usage.mjs +43 -0
- package/bin/vibe.mjs +120 -0
- package/docs/acceptance-checklist.md +1226 -0
- package/docs/architecture-debt-burndown.md +537 -0
- package/docs/architecture.md +77 -0
- package/docs/ci-evidence-onboarding.md +143 -0
- package/docs/development.md +71 -0
- package/docs/evidence-authoring.md +188 -0
- package/docs/golden-path.md +179 -0
- package/docs/install-acceptance-checklist.md +90 -0
- package/docs/install-claude.md +41 -0
- package/docs/install-codex.md +41 -0
- package/docs/install-cursor.md +41 -0
- package/docs/install-experience-roadmap.md +394 -0
- package/docs/install.md +119 -0
- package/docs/maintainer-guide.md +197 -0
- package/docs/phase-1-implementation.md +848 -0
- package/docs/phase-2-roadmap.md +142 -0
- package/docs/quick-recipes.md +115 -0
- package/docs/readiness-interpretation.md +105 -0
- package/docs/readiness-troubleshooting.md +209 -0
- package/docs/release-check-reference.md +63 -0
- package/docs/release-guide.md +481 -0
- package/docs/release-notes.md +75 -0
- package/docs/runtime-contract.md +1010 -0
- package/docs/runtime-maintainer-validation.md +212 -0
- package/docs/runtime-roadmap.md +2265 -0
- package/docs/skill-authoring-guide.md +150 -0
- package/docs/submodule-guide.md +131 -0
- package/docs/team-adoption.md +113 -0
- package/docs/user-guide.md +108 -0
- package/docs/vibecoding-fork-analysis.md +398 -0
- package/docs/workflow-chaining.md +539 -0
- package/examples/ci/README.md +61 -0
- package/examples/ci/ci-evidence-input.example.json +56 -0
- package/examples/ci/generate-diff-coverage.mjs +90 -0
- package/examples/ci/generate-test-evidence.mjs +82 -0
- package/examples/ci/github-actions-readiness.yml +108 -0
- package/examples/claude-project/README.md +57 -0
- package/examples/codex-project/README.md +57 -0
- package/examples/cursor-project/README.md +57 -0
- package/examples/full-chain/README.md +63 -0
- package/examples/full-chain/architecture-design.md +128 -0
- package/examples/full-chain/commit-readiness.json +31 -0
- package/examples/full-chain/delivery-traceability.yaml +32 -0
- package/examples/full-chain/diff-coverage.json +73 -0
- package/examples/full-chain/evidence.json +20 -0
- package/examples/full-chain/implementation-plan.md +54 -0
- package/examples/full-chain/product-acceptance.md +86 -0
- package/examples/full-chain/product-discovery.md +84 -0
- package/examples/full-chain/product-spec.md +88 -0
- package/examples/full-chain/scenario-acceptance.yaml +32 -0
- package/examples/full-chain/test-evidence.json +29 -0
- package/examples/full-chain/ui-design-contract.md +87 -0
- package/examples/golden-path/README.md +84 -0
- package/examples/golden-path/diff-coverage.json +66 -0
- package/examples/golden-path/implementation-plan.md +62 -0
- package/examples/golden-path/product-spec.md +96 -0
- package/examples/golden-path/test-evidence.json +29 -0
- package/examples/runtime-fixtures/architecture-design.md +128 -0
- package/examples/runtime-fixtures/commit-readiness.json +31 -0
- package/examples/runtime-fixtures/delivery-traceability.yaml +32 -0
- package/examples/runtime-fixtures/diff-coverage.json +73 -0
- package/examples/runtime-fixtures/evidence.json +20 -0
- package/examples/runtime-fixtures/implementation-plan.md +54 -0
- package/examples/runtime-fixtures/negative/commit-readiness-boundary-escalated.json +27 -0
- package/examples/runtime-fixtures/negative/delivery-traceability-bad-ref.yaml +32 -0
- package/examples/runtime-fixtures/negative/diff-coverage-changed-file-without-task-ref.json +40 -0
- package/examples/runtime-fixtures/negative/diff-coverage-operation-mismatch.json +38 -0
- package/examples/runtime-fixtures/negative/diff-coverage-required-task-missing.json +24 -0
- package/examples/runtime-fixtures/negative/diff-coverage-unexpected-file.json +20 -0
- package/examples/runtime-fixtures/negative/test-evidence-missing-output-digest.json +23 -0
- package/examples/runtime-fixtures/negative/test-evidence-risky-task-missing.json +29 -0
- package/examples/runtime-fixtures/product-acceptance.md +86 -0
- package/examples/runtime-fixtures/product-discovery.md +84 -0
- package/examples/runtime-fixtures/product-spec.md +88 -0
- package/examples/runtime-fixtures/scenario-acceptance.yaml +32 -0
- package/examples/runtime-fixtures/test-evidence.json +29 -0
- package/examples/runtime-fixtures/ui-design-contract.md +87 -0
- package/hooks/post-tool-compact/README.md +47 -0
- package/hooks/session-start/README.md +112 -0
- package/hooks/session-start/session-start-state-boundary-contract.mjs +161 -0
- package/hooks/session-start/session-start.md +29 -0
- package/hooks/session-start/session-start.mjs +49 -0
- package/hooks/workflow-handoff/README.md +44 -0
- package/hooks/workflow-handoff/workflow-handoff.md +11 -0
- package/package.json +72 -0
- package/skills/using-vibecoding/SKILL.md +396 -0
- package/skills/vibe-brainstorming/SKILL.md +98 -0
- package/skills/vibe-context-compact/SKILL.md +95 -0
- package/skills/vibe-debugging/SKILL.md +87 -0
- package/skills/vibe-dispatching-parallel-work/SKILL.md +144 -0
- package/skills/vibe-executing-plans/SKILL.md +114 -0
- package/skills/vibe-finishing-a-development-branch/SKILL.md +110 -0
- package/skills/vibe-implementation/SKILL.md +84 -0
- package/skills/vibe-planning/SKILL.md +102 -0
- package/skills/vibe-product-acceptance/SKILL.md +106 -0
- package/skills/vibe-product-discovery/SKILL.md +107 -0
- package/skills/vibe-product-spec/SKILL.md +105 -0
- package/skills/vibe-receiving-code-review/SKILL.md +110 -0
- package/skills/vibe-requesting-code-review/SKILL.md +106 -0
- package/skills/vibe-review/SKILL.md +106 -0
- package/skills/vibe-subagent-driven-development/SKILL.md +198 -0
- package/skills/vibe-systematic-debugging/SKILL.md +106 -0
- package/skills/vibe-test-driven-development/SKILL.md +112 -0
- package/skills/vibe-ui-design/SKILL.md +107 -0
- package/skills/vibe-verification/SKILL.md +84 -0
- package/skills/vibe-verification-before-completion/SKILL.md +170 -0
- package/skills/vibe-workspace-isolation/SKILL.md +158 -0
- package/skills/vibe-writing-plans/SKILL.md +137 -0
- package/skills/vibe-writing-skills/SKILL.md +118 -0
- package/templates/AGENTS.md +88 -0
- package/templates/CLAUDE.md +88 -0
- package/templates/VIBE-CODING.md +157 -0
- package/templates/architecture-design.md +139 -0
- package/templates/delivery-traceability.yaml +52 -0
- package/templates/evidence/README.md +117 -0
- package/templates/evidence/diff-coverage.json +34 -0
- package/templates/evidence/test-evidence.json +29 -0
- package/templates/implementation-plan.md +73 -0
- package/templates/product-acceptance.md +84 -0
- package/templates/product-discovery.md +81 -0
- package/templates/product-spec.md +84 -0
- package/templates/scenario-acceptance.yaml +37 -0
- package/templates/ui-design-contract.md +86 -0
- package/tools/vibe-architecture-check/README.md +66 -0
- package/tools/vibe-architecture-check/index.mjs +691 -0
- package/tools/vibe-compact/README.md +65 -0
- package/tools/vibe-compact/compact-contract.mjs +63 -0
- package/tools/vibe-compact/index.mjs +111 -0
- package/tools/vibe-doctor/README.md +200 -0
- package/tools/vibe-doctor/index.mjs +1721 -0
- package/tools/vibe-init/README.md +231 -0
- package/tools/vibe-init/index.mjs +369 -0
- package/tools/vibe-init/init-cli-args.mjs +100 -0
- package/tools/vibe-init/init-entry-merge-model.mjs +33 -0
- package/tools/vibe-init/init-install-manifest-model.mjs +137 -0
- package/tools/vibe-init/init-installed-agent-experience-contract.mjs +172 -0
- package/tools/vibe-init/init-platform-model.mjs +11 -0
- package/tools/vibe-init/init-presentation.mjs +149 -0
- package/tools/vibe-lifecycle/README.md +37 -0
- package/tools/vibe-lifecycle/index.mjs +365 -0
- package/tools/vibe-lifecycle/lifecycle-cli-args.mjs +104 -0
- package/tools/vibe-lifecycle/lifecycle-summary-model.mjs +67 -0
- package/tools/vibe-lifecycle/lifecycle-uninstall-plan-model.mjs +11 -0
- package/tools/vibe-plugin-pack/README.md +105 -0
- package/tools/vibe-plugin-pack/index.mjs +302 -0
- package/tools/vibe-plugin-pack/plugin-pack-cli.mjs +39 -0
- package/tools/vibe-plugin-pack/plugin-pack-manifest.mjs +37 -0
- package/tools/vibe-profile/index.mjs +212 -0
- package/tools/vibe-release-check/README.md +123 -0
- package/tools/vibe-release-check/command-manifest/release-check-base-commands.mjs +23 -0
- package/tools/vibe-release-check/command-manifest/release-check-closeout-commands.mjs +16 -0
- package/tools/vibe-release-check/command-manifest/release-check-command-metadata.mjs +32 -0
- package/tools/vibe-release-check/command-manifest/release-check-completion-commands.mjs +41 -0
- package/tools/vibe-release-check/command-manifest/release-check-full-chain-commands.mjs +12 -0
- package/tools/vibe-release-check/command-manifest/release-check-golden-path-commands.mjs +12 -0
- package/tools/vibe-release-check/command-manifest/release-check-install-commands.mjs +26 -0
- package/tools/vibe-release-check/command-manifest/release-check-learning-smoke-commands.mjs +21 -0
- package/tools/vibe-release-check/command-manifest/release-check-methodology-commands.mjs +27 -0
- package/tools/vibe-release-check/command-manifest/release-check-runtime-smoke-commands.mjs +116 -0
- package/tools/vibe-release-check/command-manifest/release-check-token-smoke-commands.mjs +21 -0
- package/tools/vibe-release-check/index.mjs +223 -0
- package/tools/vibe-release-check/release-check-behavior-smoke.mjs +177 -0
- package/tools/vibe-release-check/release-check-cli.mjs +37 -0
- package/tools/vibe-release-check/release-check-command-manifest.mjs +49 -0
- package/tools/vibe-release-check/release-check-completion-fixtures.mjs +151 -0
- package/tools/vibe-release-check/release-check-completion-suite.mjs +110 -0
- package/tools/vibe-release-check/release-check-dispatch.mjs +116 -0
- package/tools/vibe-release-check/release-check-full-chain-suite.mjs +55 -0
- package/tools/vibe-release-check/release-check-golden-path-suite.mjs +85 -0
- package/tools/vibe-release-check/release-check-install-marker-specs.mjs +133 -0
- package/tools/vibe-release-check/release-check-install-suite.mjs +112 -0
- package/tools/vibe-release-check/release-check-json-assertion-helpers.mjs +157 -0
- package/tools/vibe-release-check/release-check-json-markers.mjs +33 -0
- package/tools/vibe-release-check/release-check-learning-fixture-specs.mjs +199 -0
- package/tools/vibe-release-check/release-check-learning-suite.mjs +249 -0
- package/tools/vibe-release-check/release-check-live-behavior-smoke-fixture.mjs +406 -0
- package/tools/vibe-release-check/release-check-methodology-suite.mjs +108 -0
- package/tools/vibe-release-check/release-check-package-boundary-smoke.mjs +111 -0
- package/tools/vibe-release-check/release-check-platform-transcript-smoke-fixture.mjs +150 -0
- package/tools/vibe-release-check/release-check-readonly-marker-data.mjs +1 -0
- package/tools/vibe-release-check/release-check-readonly-marker-smoke-specs.mjs +170 -0
- package/tools/vibe-release-check/release-check-run-summary.mjs +67 -0
- package/tools/vibe-release-check/release-check-runtime-automation-fixtures.mjs +1 -0
- package/tools/vibe-release-check/release-check-runtime-automation-governance-reply-trace-smoke-helpers.mjs +224 -0
- package/tools/vibe-release-check/release-check-runtime-automation-governance-smoke-specs.mjs +215 -0
- package/tools/vibe-release-check/release-check-runtime-automation-governance-suite.mjs +5 -0
- package/tools/vibe-release-check/release-check-runtime-automation-methodology-smoke-specs.mjs +157 -0
- package/tools/vibe-release-check/release-check-runtime-automation-methodology-suite.mjs +130 -0
- package/tools/vibe-release-check/release-check-runtime-automation-platform-smoke-helpers.mjs +306 -0
- package/tools/vibe-release-check/release-check-runtime-automation-platform-suite.mjs +30 -0
- package/tools/vibe-release-check/release-check-runtime-automation-smoke-fixtures.mjs +53 -0
- package/tools/vibe-release-check/release-check-runtime-automation-source-candidate-smoke-helpers.mjs +506 -0
- package/tools/vibe-release-check/release-check-runtime-automation-source-suite.mjs +5 -0
- package/tools/vibe-release-check/release-check-runtime-automation-subagents-lifecycle-smoke-helpers.mjs +305 -0
- package/tools/vibe-release-check/release-check-runtime-automation-subagents-suite.mjs +25 -0
- package/tools/vibe-release-check/release-check-runtime-automation-suite.mjs +25 -0
- package/tools/vibe-release-check/release-check-runtime-daemon-bounded-run-smoke-helpers.mjs +243 -0
- package/tools/vibe-release-check/release-check-runtime-daemon-suite.mjs +5 -0
- package/tools/vibe-release-check/release-check-runtime-dispatch-fixtures.mjs +129 -0
- package/tools/vibe-release-check/release-check-runtime-dispatch-suite.mjs +5 -0
- package/tools/vibe-release-check/release-check-runtime-execution-approval-smoke-helpers.mjs +274 -0
- package/tools/vibe-release-check/release-check-runtime-execution-approval-suite.mjs +5 -0
- package/tools/vibe-release-check/release-check-runtime-execution-base-suite.mjs +388 -0
- package/tools/vibe-release-check/release-check-runtime-execution-recovery-suite.mjs +412 -0
- package/tools/vibe-release-check/release-check-runtime-execution-scheduler-suite.mjs +261 -0
- package/tools/vibe-release-check/release-check-runtime-execution-suite.mjs +11 -0
- package/tools/vibe-release-check/release-check-runtime-flow-smoke.mjs +347 -0
- package/tools/vibe-release-check/release-check-runtime-handoff-fixture-specs.mjs +211 -0
- package/tools/vibe-release-check/release-check-runtime-handoff-fixtures.mjs +11 -0
- package/tools/vibe-release-check/release-check-runtime-handoff-smoke-specs.mjs +86 -0
- package/tools/vibe-release-check/release-check-runtime-handoff-suite.mjs +316 -0
- package/tools/vibe-release-check/release-check-runtime-ledger-fixture-specs.mjs +9 -0
- package/tools/vibe-release-check/release-check-runtime-ledger-fixtures.mjs +51 -0
- package/tools/vibe-release-check/release-check-runtime-ledger-suite.mjs +24 -0
- package/tools/vibe-release-check/release-check-runtime-scheduler-fixture-specs.mjs +129 -0
- package/tools/vibe-release-check/release-check-runtime-scheduler-fixtures.mjs +10 -0
- package/tools/vibe-release-check/release-check-runtime-sdd-suite.mjs +535 -0
- package/tools/vibe-release-check/release-check-runtime-smoke-harness.mjs +140 -0
- package/tools/vibe-release-check/release-check-runtime-surface-expectations.mjs +106 -0
- package/tools/vibe-release-check/release-check-runtime-surface-smoke.mjs +112 -0
- package/tools/vibe-release-check/release-check-runtime-task-artifact-suite.mjs +105 -0
- package/tools/vibe-release-check/release-check-runtime-task-fixture-specs.mjs +270 -0
- package/tools/vibe-release-check/release-check-runtime-task-fixtures.mjs +19 -0
- package/tools/vibe-release-check/release-check-runtime.mjs +53 -0
- package/tools/vibe-release-check/release-check-stage103-118-fixtures.mjs +214 -0
- package/tools/vibe-release-check/release-check-stage103-118-smoke-specs.mjs +97 -0
- package/tools/vibe-release-check/release-check-stage103-118-smoke.mjs +861 -0
- package/tools/vibe-release-check/release-check-stage11-smoke.mjs +66 -0
- package/tools/vibe-release-check/release-check-stage119-120-fixture-specs.mjs +119 -0
- package/tools/vibe-release-check/release-check-stage119-120-smoke.mjs +325 -0
- package/tools/vibe-release-check/release-check-stage12-smoke.mjs +59 -0
- package/tools/vibe-release-check/release-check-stage121-136-fixture-specs.mjs +26 -0
- package/tools/vibe-release-check/release-check-stage121-136-fixtures.mjs +591 -0
- package/tools/vibe-release-check/release-check-stage121-136-smoke.mjs +917 -0
- package/tools/vibe-release-check/release-check-stage13-smoke.mjs +78 -0
- package/tools/vibe-release-check/release-check-stage137-140-smoke.mjs +534 -0
- package/tools/vibe-release-check/release-check-stage14-smoke.mjs +101 -0
- package/tools/vibe-release-check/release-check-stage141-148-smoke.mjs +1143 -0
- package/tools/vibe-release-check/release-check-stage15-smoke.mjs +132 -0
- package/tools/vibe-release-check/release-check-stage50-53-smoke.mjs +429 -0
- package/tools/vibe-release-check/release-check-subagent-adapter-bridge-smoke.mjs +162 -0
- package/tools/vibe-release-check/release-check-suite-plan-smoke.mjs +86 -0
- package/tools/vibe-release-check/release-check-suites.mjs +164 -0
- package/tools/vibe-release-check/release-check-test-run-smoke.mjs +59 -0
- package/tools/vibe-release-check/release-check-timing.mjs +98 -0
- package/tools/vibe-release-check/release-check-token-suite.mjs +260 -0
- package/tools/vibe-release-check/release-check-workflow-entry-suite.mjs +195 -0
- package/tools/vibe-release-check/release-check-workflow-governance-fixtures.mjs +138 -0
- package/tools/vibe-release-check/release-check-workflow-governance-smoke-suite.mjs +768 -0
- package/tools/vibe-release-check/release-check-workflow-ux-smoke.mjs +456 -0
- package/tools/vibe-runtime/README.md +2637 -0
- package/tools/vibe-runtime/index.mjs +3117 -0
- package/tools/vibe-runtime/runtime-adapter-bootstrap-matrix.mjs +264 -0
- package/tools/vibe-runtime/runtime-adapter-entry-acceptance.mjs +310 -0
- package/tools/vibe-runtime/runtime-adapter-packaging-consistency-command.mjs +131 -0
- package/tools/vibe-runtime/runtime-adapter-packaging-consistency.mjs +253 -0
- package/tools/vibe-runtime/runtime-advice-hub-model.mjs +175 -0
- package/tools/vibe-runtime/runtime-agent-session-start-contract.mjs +138 -0
- package/tools/vibe-runtime/runtime-artifact-ref-validation.mjs +281 -0
- package/tools/vibe-runtime/runtime-automatic-verification-gate-contract.mjs +134 -0
- package/tools/vibe-runtime/runtime-automation-boundary-text.mjs +7 -0
- package/tools/vibe-runtime/runtime-automation-command.mjs +367 -0
- package/tools/vibe-runtime/runtime-automation-plan-model.mjs +239 -0
- package/tools/vibe-runtime/runtime-automation-policy-model.mjs +175 -0
- package/tools/vibe-runtime/runtime-automation-readiness.mjs +347 -0
- package/tools/vibe-runtime/runtime-autopilot-lab-profile-contract.mjs +223 -0
- package/tools/vibe-runtime/runtime-behavioral-evaluation-contract.mjs +529 -0
- package/tools/vibe-runtime/runtime-behavioral-negative-gate-matrix.mjs +274 -0
- package/tools/vibe-runtime/runtime-bounded-attempt-policy-model.mjs +13 -0
- package/tools/vibe-runtime/runtime-bounded-foreground-command-executor-contract.mjs +288 -0
- package/tools/vibe-runtime/runtime-capability-registry.mjs +250 -0
- package/tools/vibe-runtime/runtime-cli-args.mjs +550 -0
- package/tools/vibe-runtime/runtime-cli-command-specs.mjs +63 -0
- package/tools/vibe-runtime/runtime-cli-dispatch.mjs +21 -0
- package/tools/vibe-runtime/runtime-cli-evidence-option-specs.mjs +193 -0
- package/tools/vibe-runtime/runtime-cli-evidence-options.mjs +28 -0
- package/tools/vibe-runtime/runtime-cli-from-options.mjs +222 -0
- package/tools/vibe-runtime/runtime-cli-low-risk-option-specs.mjs +128 -0
- package/tools/vibe-runtime/runtime-cli-main.mjs +32 -0
- package/tools/vibe-runtime/runtime-cli-option-default-families.mjs +454 -0
- package/tools/vibe-runtime/runtime-cli-option-defaults.mjs +33 -0
- package/tools/vibe-runtime/runtime-cli-option-handlers.mjs +82 -0
- package/tools/vibe-runtime/runtime-cli-usage.mjs +316 -0
- package/tools/vibe-runtime/runtime-cli-value-options.mjs +74 -0
- package/tools/vibe-runtime/runtime-close-loop-dashboard.mjs +283 -0
- package/tools/vibe-runtime/runtime-closeout-parity-contract.mjs +214 -0
- package/tools/vibe-runtime/runtime-command-container.mjs +26 -0
- package/tools/vibe-runtime/runtime-command-surface-registry.mjs +383 -0
- package/tools/vibe-runtime/runtime-command-wrapper-deps.mjs +13 -0
- package/tools/vibe-runtime/runtime-commit-readiness-envelope.mjs +281 -0
- package/tools/vibe-runtime/runtime-completion-boundary-text.mjs +7 -0
- package/tools/vibe-runtime/runtime-completion-bundle-contract.mjs +71 -0
- package/tools/vibe-runtime/runtime-completion-chain-assembly.mjs +48 -0
- package/tools/vibe-runtime/runtime-completion-command.mjs +50 -0
- package/tools/vibe-runtime/runtime-completion-evidence-bundle.mjs +269 -0
- package/tools/vibe-runtime/runtime-completion-evidence-descriptors.mjs +156 -0
- package/tools/vibe-runtime/runtime-completion-local-evidence-gates.mjs +164 -0
- package/tools/vibe-runtime/runtime-completion-presentation.mjs +71 -0
- package/tools/vibe-runtime/runtime-completion-readiness-summary.mjs +159 -0
- package/tools/vibe-runtime/runtime-confirmed-one-shot-plan.mjs +300 -0
- package/tools/vibe-runtime/runtime-context-budget-entry-defaults-command.mjs +77 -0
- package/tools/vibe-runtime/runtime-context-budget-entry-defaults.mjs +341 -0
- package/tools/vibe-runtime/runtime-contract-marker-registry.mjs +13 -0
- package/tools/vibe-runtime/runtime-contributor-guardrail-command.mjs +78 -0
- package/tools/vibe-runtime/runtime-contributor-guardrail-evidence.mjs +319 -0
- package/tools/vibe-runtime/runtime-control-plane-command.mjs +237 -0
- package/tools/vibe-runtime/runtime-control-plane-evals-artifacts.mjs +123 -0
- package/tools/vibe-runtime/runtime-control-plane-evals-boundary-model.mjs +75 -0
- package/tools/vibe-runtime/runtime-control-plane-evals-cases.mjs +547 -0
- package/tools/vibe-runtime/runtime-control-plane-evals-command.mjs +527 -0
- package/tools/vibe-runtime/runtime-control-plane-evals-report-validation.mjs +209 -0
- package/tools/vibe-runtime/runtime-control-plane-planner-artifacts.mjs +457 -0
- package/tools/vibe-runtime/runtime-control-plane-planning-command.mjs +563 -0
- package/tools/vibe-runtime/runtime-control-plane-planning-input.mjs +99 -0
- package/tools/vibe-runtime/runtime-control-plane-planning-listing.mjs +48 -0
- package/tools/vibe-runtime/runtime-control-plane-planning-presentation.mjs +246 -0
- package/tools/vibe-runtime/runtime-control-plane-planning-validation.mjs +529 -0
- package/tools/vibe-runtime/runtime-control-plane-readonly-command.mjs +537 -0
- package/tools/vibe-runtime/runtime-control-plane-readonly-deps.mjs +146 -0
- package/tools/vibe-runtime/runtime-control-plane-release-evidence.mjs +525 -0
- package/tools/vibe-runtime/runtime-control-plane-release-gates.mjs +369 -0
- package/tools/vibe-runtime/runtime-control-plane-router-planning-model.mjs +152 -0
- package/tools/vibe-runtime/runtime-control-plane-routing-artifacts.mjs +588 -0
- package/tools/vibe-runtime/runtime-controlled-change-delivery-contract.mjs +165 -0
- package/tools/vibe-runtime/runtime-controlled-execution-gate-contract.mjs +141 -0
- package/tools/vibe-runtime/runtime-controlled-long-running-automation-contract.mjs +184 -0
- package/tools/vibe-runtime/runtime-controlled-subagent-orchestration-contract.mjs +169 -0
- package/tools/vibe-runtime/runtime-daemon-command.mjs +166 -0
- package/tools/vibe-runtime/runtime-daemon-state-lifecycle-model.mjs +359 -0
- package/tools/vibe-runtime/runtime-delivery-methodology-command.mjs +17 -0
- package/tools/vibe-runtime/runtime-delivery-methodology-gates.mjs +277 -0
- package/tools/vibe-runtime/runtime-diff-coverage-envelope.mjs +301 -0
- package/tools/vibe-runtime/runtime-dispatch-command.mjs +484 -0
- package/tools/vibe-runtime/runtime-dispatch-readonly-artifacts.mjs +406 -0
- package/tools/vibe-runtime/runtime-dispatch-state-lifecycle-model.mjs +199 -0
- package/tools/vibe-runtime/runtime-durable-state-recovery-contract.mjs +172 -0
- package/tools/vibe-runtime/runtime-entry-advice-model.mjs +201 -0
- package/tools/vibe-runtime/runtime-entry-deps-builder.mjs +54 -0
- package/tools/vibe-runtime/runtime-entry-presentation.mjs +82 -0
- package/tools/vibe-runtime/runtime-entry-summary-model.mjs +343 -0
- package/tools/vibe-runtime/runtime-entry-trigger-discipline.mjs +341 -0
- package/tools/vibe-runtime/runtime-entry-trigger-tightening-command.mjs +79 -0
- package/tools/vibe-runtime/runtime-entry-trigger-tightening.mjs +357 -0
- package/tools/vibe-runtime/runtime-eval-catalog-model.mjs +101 -0
- package/tools/vibe-runtime/runtime-eval-transcript-fixtures.mjs +218 -0
- package/tools/vibe-runtime/runtime-evidence-intake-envelope.mjs +278 -0
- package/tools/vibe-runtime/runtime-evidence-repair-model.mjs +180 -0
- package/tools/vibe-runtime/runtime-executable-plan-contract.mjs +428 -0
- package/tools/vibe-runtime/runtime-execution-approval-lifecycle-models.mjs +278 -0
- package/tools/vibe-runtime/runtime-execution-candidate-approval-artifacts.mjs +227 -0
- package/tools/vibe-runtime/runtime-execution-command.mjs +544 -0
- package/tools/vibe-runtime/runtime-execution-enabled-bridge-model.mjs +113 -0
- package/tools/vibe-runtime/runtime-execution-enabled-closeout-boundary.mjs +89 -0
- package/tools/vibe-runtime/runtime-execution-enabled-preflight-model.mjs +185 -0
- package/tools/vibe-runtime/runtime-execution-enabled-profile-contract.mjs +127 -0
- package/tools/vibe-runtime/runtime-execution-enabled-run-envelope.mjs +153 -0
- package/tools/vibe-runtime/runtime-execution-evidence-binder.mjs +537 -0
- package/tools/vibe-runtime/runtime-execution-plan-artifacts.mjs +136 -0
- package/tools/vibe-runtime/runtime-execution-policy-artifacts.mjs +377 -0
- package/tools/vibe-runtime/runtime-execution-presentation.mjs +174 -0
- package/tools/vibe-runtime/runtime-execution-readonly-artifacts.mjs +228 -0
- package/tools/vibe-runtime/runtime-execution-run-preflight-artifacts.mjs +265 -0
- package/tools/vibe-runtime/runtime-execution-safety-artifacts.mjs +131 -0
- package/tools/vibe-runtime/runtime-execution-state-write-lifecycle-model.mjs +99 -0
- package/tools/vibe-runtime/runtime-experience-friction-matrix.mjs +395 -0
- package/tools/vibe-runtime/runtime-experience-learning-pattern.mjs +354 -0
- package/tools/vibe-runtime/runtime-experience-regression-dashboard.mjs +398 -0
- package/tools/vibe-runtime/runtime-experience-upgrade-command.mjs +92 -0
- package/tools/vibe-runtime/runtime-experience-upgrade-prioritizer.mjs +451 -0
- package/tools/vibe-runtime/runtime-foreground-worker-plan.mjs +275 -0
- package/tools/vibe-runtime/runtime-git-diff-read-model.mjs +322 -0
- package/tools/vibe-runtime/runtime-governance-attestation.mjs +304 -0
- package/tools/vibe-runtime/runtime-governance-command.mjs +609 -0
- package/tools/vibe-runtime/runtime-governance-convergence-reports.mjs +601 -0
- package/tools/vibe-runtime/runtime-governance-pr-models.mjs +551 -0
- package/tools/vibe-runtime/runtime-governance-presentation.mjs +67 -0
- package/tools/vibe-runtime/runtime-governance-route-model.mjs +194 -0
- package/tools/vibe-runtime/runtime-governance-surface-reports.mjs +495 -0
- package/tools/vibe-runtime/runtime-hooks-boundary-model.mjs +356 -0
- package/tools/vibe-runtime/runtime-hooks-command.mjs +286 -0
- package/tools/vibe-runtime/runtime-human-completion-evidence-model.mjs +220 -0
- package/tools/vibe-runtime/runtime-human-friendly-aliases.mjs +250 -0
- package/tools/vibe-runtime/runtime-implementation-methodology-command.mjs +17 -0
- package/tools/vibe-runtime/runtime-implementation-methodology-gates.mjs +164 -0
- package/tools/vibe-runtime/runtime-implementation-task-registry.mjs +334 -0
- package/tools/vibe-runtime/runtime-install-experience-command.mjs +120 -0
- package/tools/vibe-runtime/runtime-install-experience-score.mjs +334 -0
- package/tools/vibe-runtime/runtime-installed-multiround-ux-acceptance.mjs +149 -0
- package/tools/vibe-runtime/runtime-interaction-command-domain-registry.mjs +46 -0
- package/tools/vibe-runtime/runtime-interaction-command.mjs +648 -0
- package/tools/vibe-runtime/runtime-interaction-completion-command.mjs +220 -0
- package/tools/vibe-runtime/runtime-interaction-entry-command.mjs +130 -0
- package/tools/vibe-runtime/runtime-interaction-workflow-envelopes.mjs +412 -0
- package/tools/vibe-runtime/runtime-learning-advice-model.mjs +157 -0
- package/tools/vibe-runtime/runtime-learning-artifact-model.mjs +509 -0
- package/tools/vibe-runtime/runtime-learning-audit-model.mjs +106 -0
- package/tools/vibe-runtime/runtime-learning-interaction-command.mjs +220 -0
- package/tools/vibe-runtime/runtime-learning-observation-model.mjs +124 -0
- package/tools/vibe-runtime/runtime-learning-presentation.mjs +84 -0
- package/tools/vibe-runtime/runtime-learning-run-preview-model.mjs +184 -0
- package/tools/vibe-runtime/runtime-lease-command.mjs +95 -0
- package/tools/vibe-runtime/runtime-lease-state-lifecycle-model.mjs +247 -0
- package/tools/vibe-runtime/runtime-list-presentation.mjs +7 -0
- package/tools/vibe-runtime/runtime-live-behavior-transcript-model.mjs +164 -0
- package/tools/vibe-runtime/runtime-local-behavior-eval-contracts-command.mjs +76 -0
- package/tools/vibe-runtime/runtime-local-behavior-eval-contracts.mjs +382 -0
- package/tools/vibe-runtime/runtime-local-commit-automation-gate.mjs +254 -0
- package/tools/vibe-runtime/runtime-local-json-input.mjs +32 -0
- package/tools/vibe-runtime/runtime-methodology-coverage-map.mjs +398 -0
- package/tools/vibe-runtime/runtime-methodology-coverage-marker-specs.mjs +61 -0
- package/tools/vibe-runtime/runtime-methodology-coverage-presentation.mjs +26 -0
- package/tools/vibe-runtime/runtime-methodology-gate-model.mjs +154 -0
- package/tools/vibe-runtime/runtime-methodology-gate-output-envelope.mjs +4 -0
- package/tools/vibe-runtime/runtime-methodology-interaction-command.mjs +147 -0
- package/tools/vibe-runtime/runtime-methodology-presentation.mjs +76 -0
- package/tools/vibe-runtime/runtime-methodology-route-model.mjs +93 -0
- package/tools/vibe-runtime/runtime-next-action-console.mjs +388 -0
- package/tools/vibe-runtime/runtime-next-action-evidence-prompts-command.mjs +84 -0
- package/tools/vibe-runtime/runtime-next-action-evidence-prompts.mjs +327 -0
- package/tools/vibe-runtime/runtime-observability-command.mjs +96 -0
- package/tools/vibe-runtime/runtime-observability-presentation.mjs +30 -0
- package/tools/vibe-runtime/runtime-observability-readiness-model.mjs +204 -0
- package/tools/vibe-runtime/runtime-patch-queue-contract.mjs +151 -0
- package/tools/vibe-runtime/runtime-plan-action-manifest.mjs +334 -0
- package/tools/vibe-runtime/runtime-planner-route-model.mjs +75 -0
- package/tools/vibe-runtime/runtime-platform-acceptance-command.mjs +216 -0
- package/tools/vibe-runtime/runtime-platform-capability-artifacts.mjs +156 -0
- package/tools/vibe-runtime/runtime-platform-capability-model.mjs +105 -0
- package/tools/vibe-runtime/runtime-platform-command.mjs +329 -0
- package/tools/vibe-runtime/runtime-platform-presentation.mjs +78 -0
- package/tools/vibe-runtime/runtime-platform-session-artifacts.mjs +857 -0
- package/tools/vibe-runtime/runtime-platform-transcript-example-pack.mjs +293 -0
- package/tools/vibe-runtime/runtime-platform-transcript-intake-model.mjs +247 -0
- package/tools/vibe-runtime/runtime-platform-transcript-replay-model.mjs +371 -0
- package/tools/vibe-runtime/runtime-policy-catalog.mjs +54 -0
- package/tools/vibe-runtime/runtime-product-methodology-command.mjs +17 -0
- package/tools/vibe-runtime/runtime-product-methodology-gates.mjs +316 -0
- package/tools/vibe-runtime/runtime-progressive-entry-ux.mjs +237 -0
- package/tools/vibe-runtime/runtime-queue-command.mjs +98 -0
- package/tools/vibe-runtime/runtime-queue-state-lifecycle-model.mjs +318 -0
- package/tools/vibe-runtime/runtime-readiness-gate-split.mjs +196 -0
- package/tools/vibe-runtime/runtime-readonly-local-json-output-envelope.mjs +24 -0
- package/tools/vibe-runtime/runtime-recovery-classification-models.mjs +412 -0
- package/tools/vibe-runtime/runtime-recovery-command.mjs +107 -0
- package/tools/vibe-runtime/runtime-recovery-presentation.mjs +65 -0
- package/tools/vibe-runtime/runtime-recovery-state-lifecycle-model.mjs +419 -0
- package/tools/vibe-runtime/runtime-release-command-deps.mjs +4 -0
- package/tools/vibe-runtime/runtime-release-command.mjs +225 -0
- package/tools/vibe-runtime/runtime-release-state-lifecycle-model.mjs +48 -0
- package/tools/vibe-runtime/runtime-reply-artifact-lifecycle-model.mjs +84 -0
- package/tools/vibe-runtime/runtime-reply-command.mjs +488 -0
- package/tools/vibe-runtime/runtime-retry-command.mjs +223 -0
- package/tools/vibe-runtime/runtime-retry-run-gate-model.mjs +151 -0
- package/tools/vibe-runtime/runtime-review-envelope.mjs +449 -0
- package/tools/vibe-runtime/runtime-review-feedback-gate.mjs +160 -0
- package/tools/vibe-runtime/runtime-runbook-executor-preview-contract.mjs +361 -0
- package/tools/vibe-runtime/runtime-scheduler-command.mjs +8 -0
- package/tools/vibe-runtime/runtime-scheduler-risk-artifacts.mjs +775 -0
- package/tools/vibe-runtime/runtime-scheduler-state-lifecycle-model.mjs +53 -0
- package/tools/vibe-runtime/runtime-sdd-consumption-command.mjs +386 -0
- package/tools/vibe-runtime/runtime-sdd-evidence-chain-model.mjs +200 -0
- package/tools/vibe-runtime/runtime-sdd-handoff-chain-model.mjs +168 -0
- package/tools/vibe-runtime/runtime-sdd-implementer-artifact-model.mjs +90 -0
- package/tools/vibe-runtime/runtime-sdd-loop-command.mjs +659 -0
- package/tools/vibe-runtime/runtime-sdd-plan-preflight-model.mjs +121 -0
- package/tools/vibe-runtime/runtime-sdd-review-package-command.mjs +197 -0
- package/tools/vibe-runtime/runtime-sdd-review-package-model.mjs +183 -0
- package/tools/vibe-runtime/runtime-sdd-task-brief-model.mjs +144 -0
- package/tools/vibe-runtime/runtime-self-test-gate-profile.mjs +225 -0
- package/tools/vibe-runtime/runtime-sequential-stage-runbook.mjs +406 -0
- package/tools/vibe-runtime/runtime-session-checkpoint-model.mjs +217 -0
- package/tools/vibe-runtime/runtime-session-skill-command.mjs +241 -0
- package/tools/vibe-runtime/runtime-session-start-example-command.mjs +122 -0
- package/tools/vibe-runtime/runtime-session-start-example-pack.mjs +290 -0
- package/tools/vibe-runtime/runtime-session-start-shape-acceptance.mjs +344 -0
- package/tools/vibe-runtime/runtime-skill-contract-schema.mjs +221 -0
- package/tools/vibe-runtime/runtime-skill-route-registry.mjs +47 -0
- package/tools/vibe-runtime/runtime-skill-runtime-traceability-map.mjs +268 -0
- package/tools/vibe-runtime/runtime-source-merge-apply-boundary-model.mjs +130 -0
- package/tools/vibe-runtime/runtime-source-merge-artifacts.mjs +920 -0
- package/tools/vibe-runtime/runtime-source-merge-command.mjs +160 -0
- package/tools/vibe-runtime/runtime-source-merge-entry-command.mjs +153 -0
- package/tools/vibe-runtime/runtime-source-patch-plan-model.mjs +119 -0
- package/tools/vibe-runtime/runtime-stage-scriptlet.mjs +430 -0
- package/tools/vibe-runtime/runtime-staged-commit-readiness.mjs +469 -0
- package/tools/vibe-runtime/runtime-state-directory-model.mjs +7 -0
- package/tools/vibe-runtime/runtime-state-io.mjs +41 -0
- package/tools/vibe-runtime/runtime-state-paths.mjs +231 -0
- package/tools/vibe-runtime/runtime-state-presence-model.mjs +6 -0
- package/tools/vibe-runtime/runtime-state-risk-paths.mjs +70 -0
- package/tools/vibe-runtime/runtime-subagent-adapter-dispatch-command.mjs +266 -0
- package/tools/vibe-runtime/runtime-subagent-boundary-contracts.mjs +118 -0
- package/tools/vibe-runtime/runtime-subagent-permission-command.mjs +78 -0
- package/tools/vibe-runtime/runtime-subagent-permission-gate-model.mjs +131 -0
- package/tools/vibe-runtime/runtime-subagent-permission-visibility.mjs +294 -0
- package/tools/vibe-runtime/runtime-subagents-artifact-specs.mjs +257 -0
- package/tools/vibe-runtime/runtime-subagents-command.mjs +10 -0
- package/tools/vibe-runtime/runtime-subagents-eligibility-model.mjs +340 -0
- package/tools/vibe-runtime/runtime-subagents-platform-session-proxies.mjs +54 -0
- package/tools/vibe-runtime/runtime-subagents-presentation.mjs +91 -0
- package/tools/vibe-runtime/runtime-subagents-risk-artifacts.mjs +853 -0
- package/tools/vibe-runtime/runtime-subagents-stage-artifact-model.mjs +538 -0
- package/tools/vibe-runtime/runtime-subagents-tail-routing-model.mjs +48 -0
- package/tools/vibe-runtime/runtime-suite-plan-model.mjs +194 -0
- package/tools/vibe-runtime/runtime-superpowers-comparison-matrix.mjs +399 -0
- package/tools/vibe-runtime/runtime-superpowers-gap-matrix.mjs +307 -0
- package/tools/vibe-runtime/runtime-superpowers-parity-command.mjs +102 -0
- package/tools/vibe-runtime/runtime-superpowers-parity-profile-contract.mjs +183 -0
- package/tools/vibe-runtime/runtime-superpowers-parity-scorecard.mjs +460 -0
- package/tools/vibe-runtime/runtime-superpowers-regression-guard.mjs +270 -0
- package/tools/vibe-runtime/runtime-superpowers-style-eval-pack.mjs +367 -0
- package/tools/vibe-runtime/runtime-task-commit-gates.mjs +62 -0
- package/tools/vibe-runtime/runtime-task-commit-readiness.mjs +66 -0
- package/tools/vibe-runtime/runtime-task-commit-sidecar.mjs +65 -0
- package/tools/vibe-runtime/runtime-tdd-trace-contract.mjs +277 -0
- package/tools/vibe-runtime/runtime-test-evidence-model.mjs +196 -0
- package/tools/vibe-runtime/runtime-test-run-command-deps.mjs +7 -0
- package/tools/vibe-runtime/runtime-test-run-command.mjs +108 -0
- package/tools/vibe-runtime/runtime-token-economy-model.mjs +336 -0
- package/tools/vibe-runtime/runtime-token-interaction-command.mjs +381 -0
- package/tools/vibe-runtime/runtime-token-savior-budget.mjs +370 -0
- package/tools/vibe-runtime/runtime-tokens-command-deps.mjs +17 -0
- package/tools/vibe-runtime/runtime-tokens-command.mjs +117 -0
- package/tools/vibe-runtime/runtime-tokens-presentation.mjs +45 -0
- package/tools/vibe-runtime/runtime-trace-command.mjs +283 -0
- package/tools/vibe-runtime/runtime-trace-source-registry.mjs +132 -0
- package/tools/vibe-runtime/runtime-verification-gate-chain-model.mjs +131 -0
- package/tools/vibe-runtime/runtime-verification-repair-loop-plan.mjs +188 -0
- package/tools/vibe-runtime/runtime-workflow-alias-boundary-text.mjs +7 -0
- package/tools/vibe-runtime/runtime-workflow-alias-interaction-command.mjs +145 -0
- package/tools/vibe-runtime/runtime-workflow-command-deps.mjs +41 -0
- package/tools/vibe-runtime/runtime-workflow-command.mjs +191 -0
- package/tools/vibe-runtime/runtime-workflow-discipline-summary.mjs +164 -0
- package/tools/vibe-runtime/runtime-workflow-entry-envelopes.mjs +156 -0
- package/tools/vibe-runtime/runtime-workflow-ledger-command.mjs +239 -0
- package/tools/vibe-runtime/runtime-workflow-ledger-state-lifecycle-model.mjs +46 -0
- package/tools/vibe-runtime/runtime-workflow-loop-contract.mjs +259 -0
- package/tools/vibe-runtime/runtime-workflow-next-step-gate-model.mjs +106 -0
- package/tools/vibe-runtime/runtime-workflow-presentation.mjs +355 -0
- package/tools/vibe-runtime/runtime-workflow-readiness-model.mjs +176 -0
- package/tools/vibe-runtime/runtime-workflow-run-plan-model.mjs +207 -0
- package/tools/vibe-runtime/runtime-workflow-start-model.mjs +229 -0
- package/tools/vibe-runtime/runtime-workflow-state-artifacts.mjs +381 -0
- package/tools/vibe-runtime/runtime-workflow-state-helpers.mjs +456 -0
- package/tools/vibe-runtime/runtime-workflow-state-summary.mjs +65 -0
- package/tools/vibe-runtime/runtime-workflow-state-validation.mjs +104 -0
- package/tools/vibe-runtime/runtime-workflow-ux-model.mjs +205 -0
- package/tools/vibe-runtime/runtime-workspace-boundary-text.mjs +7 -0
- package/tools/vibe-runtime/runtime-workspace-isolation-command.mjs +295 -0
- package/tools/vibe-runtime/state-core-paths.mjs +113 -0
- package/tools/vibe-runtime/state-extension-paths.mjs +198 -0
- package/tools/vibe-runtime/state-safe-paths.mjs +2 -0
- package/tools/vibe-runtime-check/README.md +110 -0
- package/tools/vibe-runtime-check/architecture-tool-contracts.mjs +150 -0
- package/tools/vibe-runtime-check/index.mjs +186 -0
- package/tools/vibe-runtime-check/install-summary-adoption-contracts.mjs +115 -0
- package/tools/vibe-runtime-check/marker-contract-core.mjs +20 -0
- package/tools/vibe-runtime-check/product-artifact-contracts.mjs +24 -0
- package/tools/vibe-runtime-check/release-check-install-placement-contracts.mjs +166 -0
- package/tools/vibe-runtime-check/release-runtime-suite-layer-contracts.mjs +137 -0
- package/tools/vibe-runtime-check/runtime-architecture-manifest-drift-contracts.mjs +128 -0
- package/tools/vibe-runtime-check/runtime-automation-readiness-contracts.mjs +404 -0
- package/tools/vibe-runtime-check/runtime-capability-registry-contracts.mjs +299 -0
- package/tools/vibe-runtime-check/runtime-check-diagnostics-presentation.mjs +71 -0
- package/tools/vibe-runtime-check/runtime-cli-surface-contracts.mjs +156 -0
- package/tools/vibe-runtime-check/runtime-close-loop-contracts.mjs +163 -0
- package/tools/vibe-runtime-check/runtime-contract-delivery-registry.mjs +19 -0
- package/tools/vibe-runtime-check/runtime-contract-implementation-registry.mjs +23 -0
- package/tools/vibe-runtime-check/runtime-contract-local-evidence-registry.mjs +43 -0
- package/tools/vibe-runtime-check/runtime-contract-product-registry.mjs +83 -0
- package/tools/vibe-runtime-check/runtime-contract-registry.mjs +19 -0
- package/tools/vibe-runtime-check/runtime-control-plane-contracts.mjs +14 -0
- package/tools/vibe-runtime-check/runtime-doc-contract-marker-specs.mjs +349 -0
- package/tools/vibe-runtime-check/runtime-doc-contracts.mjs +24 -0
- package/tools/vibe-runtime-check/runtime-doc-marker-contracts.mjs +25 -0
- package/tools/vibe-runtime-check/runtime-entry-size-contracts.mjs +477 -0
- package/tools/vibe-runtime-check/runtime-experience-cli-contract-specs.mjs +98 -0
- package/tools/vibe-runtime-check/runtime-experience-cli-contracts.mjs +12 -0
- package/tools/vibe-runtime-check/runtime-experience-contracts.mjs +187 -0
- package/tools/vibe-runtime-check/runtime-governance-learning-token-contract-specs.mjs +92 -0
- package/tools/vibe-runtime-check/runtime-governance-learning-token-contracts.mjs +12 -0
- package/tools/vibe-runtime-check/runtime-high-risk-boundary-contracts.mjs +35 -0
- package/tools/vibe-runtime-check/runtime-high-risk-boundary-matrix.mjs +75 -0
- package/tools/vibe-runtime-check/runtime-index-import-boundary-contracts.mjs +192 -0
- package/tools/vibe-runtime-check/runtime-optimization-boundary-contracts.mjs +49 -0
- package/tools/vibe-runtime-check/runtime-pure-model-boundary-contracts.mjs +176 -0
- package/tools/vibe-runtime-check/runtime-release-closeout-contracts.mjs +25 -0
- package/tools/vibe-runtime-check/runtime-roadmap-marker-specs.mjs +559 -0
- package/tools/vibe-runtime-check/runtime-source-bundle.mjs +119 -0
- package/tools/vibe-runtime-check/runtime-tool-readme-contracts.mjs +93 -0
- package/tools/vibe-runtime-check/runtime-tool-readme-marker-specs.mjs +952 -0
- package/tools/vibe-runtime-check/workflow-skill-contracts.mjs +129 -0
- package/tools/vibe-runtime-check/workflow-skill-route-registry-contracts.mjs +106 -0
- package/tools/vibe-runtime-check/workflow-ux-contracts.mjs +46 -0
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
|
|
3
|
+
const runtimePlanningValidationContractSyncSurface = 'runtime-cli-usage runtime-cli-args runtime-cli-dispatch tools/vibe-release-check';
|
|
4
|
+
|
|
5
|
+
export function createRuntimeControlPlanePlanningValidation(deps) {
|
|
6
|
+
if (!runtimePlanningValidationContractSyncSurface.includes('runtime-cli-usage')) throw new Error('runtime planning validation contract sync marker missing');
|
|
7
|
+
const validationDeps = deps;
|
|
8
|
+
const {
|
|
9
|
+
ensureRoot,
|
|
10
|
+
['workflow' + 'Path']: workflowArtifactPath,
|
|
11
|
+
['state' + 'Directory']: runtimeStateFolder,
|
|
12
|
+
localTextEvidenceDescriptor,
|
|
13
|
+
digestObject,
|
|
14
|
+
['writeJson' + 'Envelope']: emitJsonEnvelope,
|
|
15
|
+
runtimeAutomationReadinessEnvelope,
|
|
16
|
+
workflowLoopContractEnvelope,
|
|
17
|
+
runtimeCapabilityRegistry,
|
|
18
|
+
runtimePlanActionManifest,
|
|
19
|
+
runtimePlanActionManifestDigestPayload,
|
|
20
|
+
digestPlanActionManifest,
|
|
21
|
+
runtimeExecutablePlanContract,
|
|
22
|
+
runtimeExecutablePlanContractDigestPayload,
|
|
23
|
+
digestExecutablePlanContract,
|
|
24
|
+
runtimeSelfTestGateProfile,
|
|
25
|
+
runtimeSelfTestGateProfileDigestPayload,
|
|
26
|
+
digestSelfTestGateProfile,
|
|
27
|
+
runtimeCommitReadinessEnvelope,
|
|
28
|
+
runtimeCommitReadinessDigestPayload,
|
|
29
|
+
digestCommitReadiness,
|
|
30
|
+
runtimeStagedCommitReadiness,
|
|
31
|
+
runtimeStagedCommitReadinessDigestPayload,
|
|
32
|
+
digestStagedCommitReadiness,
|
|
33
|
+
runtimeEvidenceIntakeEnvelope,
|
|
34
|
+
runtimeEvidenceIntakeDigestPayload,
|
|
35
|
+
digestEvidenceIntake,
|
|
36
|
+
runtimeExecutionEvidenceBinder,
|
|
37
|
+
runtimeExecutionEvidenceDigestPayload,
|
|
38
|
+
digestExecutionEvidenceBinding,
|
|
39
|
+
runtimeTddTraceContract,
|
|
40
|
+
runtimeTddTraceDigestPayload,
|
|
41
|
+
digestTddTraceContract,
|
|
42
|
+
buildVerificationDrivenRepairLoopPlan,
|
|
43
|
+
printVerificationDrivenRepairLoopPlan,
|
|
44
|
+
commitGuardEnvelope,
|
|
45
|
+
printPlanLint,
|
|
46
|
+
printPlanActionManifest,
|
|
47
|
+
printExecutablePlanContract,
|
|
48
|
+
printSelfTestGateProfile,
|
|
49
|
+
printEvidenceIntake,
|
|
50
|
+
printExecutionEvidenceBinding,
|
|
51
|
+
printTddTraceContract,
|
|
52
|
+
} = validationDeps;
|
|
53
|
+
|
|
54
|
+
function planLintBoundaryAssertions() {
|
|
55
|
+
return {
|
|
56
|
+
writes: false,
|
|
57
|
+
state_directory_created: false,
|
|
58
|
+
plan_lint_artifact: false,
|
|
59
|
+
sidecar_write: false,
|
|
60
|
+
skill_execution: false,
|
|
61
|
+
command_execution: false,
|
|
62
|
+
runtime_action: false,
|
|
63
|
+
auto_execution: false,
|
|
64
|
+
external_network: false,
|
|
65
|
+
model_invocation: false,
|
|
66
|
+
platform_api: false,
|
|
67
|
+
git: false,
|
|
68
|
+
worktree: false,
|
|
69
|
+
pr: false,
|
|
70
|
+
push: false,
|
|
71
|
+
merge: false,
|
|
72
|
+
tag: false,
|
|
73
|
+
subagent: false,
|
|
74
|
+
mcp: false,
|
|
75
|
+
['dae' + 'mon']: false,
|
|
76
|
+
shell_interception: false,
|
|
77
|
+
business_source_write: false,
|
|
78
|
+
source_merge: false,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function planLintCheck(id, passed, severity, message, evidence = []) {
|
|
83
|
+
return { id, status: passed ? 'pass' : severity, severity, message, evidence };
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function planLintTaskSections(text) {
|
|
87
|
+
const matches = [...String(text || '').matchAll(/^#{2,4}\s+(?:Task|任务|Stage|阶段)\b.*$/gim)];
|
|
88
|
+
return matches.map((match) => match[0].trim());
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function planLintEnvelope(root, planFile) {
|
|
92
|
+
ensureRoot(root);
|
|
93
|
+
const source = localTextEvidenceDescriptor(root, planFile, 'planner --lint source');
|
|
94
|
+
const text = source.text;
|
|
95
|
+
const taskSections = planLintTaskSections(text);
|
|
96
|
+
const backtickPathMatches = (text.match(/`[^`]+\.(?:mjs|js|ts|tsx|json|md|yml|yaml|py|go|rs|java|css|scss|html)`/g) || []).map((item) => item.slice(1, -1));
|
|
97
|
+
const barePathMatches = text.match(/\b(?:[\w.-]+[\\/])+[\w.-]+\.(?:mjs|js|ts|tsx|json|md|yml|yaml|py|go|rs|java|css|scss|html)\b/g) || [];
|
|
98
|
+
const pathMatches = [...new Set([...backtickPathMatches, ...barePathMatches].map((item) => item.replace(/\\/g, '/')))].sort();
|
|
99
|
+
const commandMatches = [...new Set((text.match(/\b(?:node|npm|pnpm|yarn|git|pytest|python|tsc|eslint|vitest|jest)\s+[^\n`]+/gi) || []).map((item) => item.trim()))].sort();
|
|
100
|
+
const checks = [
|
|
101
|
+
planLintCheck('files-declared', pathMatches.length > 0 || /\b(files?|文件|modify|create|test):/i.test(text), 'blocker', 'Plan must name concrete files or file responsibilities.', pathMatches.slice(0, 8)),
|
|
102
|
+
planLintCheck('task-granularity', taskSections.length > 0 || /- \[[ x]\]/i.test(text), 'blocker', 'Plan must be decomposed into task-sized steps or checkbox actions.', taskSections.slice(0, 8)),
|
|
103
|
+
planLintCheck('interfaces-declared', /\b(interface|interfaces|produces|consumes|输出|输入|产物|数据流|envelope|fields?)\b/i.test(text), 'warning', 'Plan should declare interfaces, produced fields, or data flow boundaries.'),
|
|
104
|
+
planLintCheck('verification-strategy', /\b(test|verify|verification|check|smoke|lint|node --check|release-check|runtime-check|验证|自检)\b/i.test(text), 'blocker', 'Plan must include a verification strategy.'),
|
|
105
|
+
planLintCheck('acceptance-declared', /\b(acceptance|验收|ready_to|pass|expected|期望|完成条件)\b/i.test(text), 'blocker', 'Plan must define acceptance or expected outcomes.'),
|
|
106
|
+
planLintCheck('review-gate', /\b(review|code review|vibe-review|审查|review gate)\b/i.test(text), 'warning', 'Plan should include review gate or review scope for non-trivial work.'),
|
|
107
|
+
planLintCheck('no-placeholders', !/\b(TBD|TODO|填充|待定|implement later|add appropriate|similar to task)\b/i.test(text), 'blocker', 'Plan must not contain placeholders or vague implementation steps.'),
|
|
108
|
+
planLintCheck('commands-have-evidence', commandMatches.length > 0 || /\b(manual|手动|read-only|只读)\b/i.test(text), 'warning', 'Plan should include exact commands or explicit manual verification evidence.', commandMatches.slice(0, 8)),
|
|
109
|
+
planLintCheck('dependencies-or-order', /\b(depends_on|dependency|依赖|after|before|顺序|先|后|->)\b/i.test(text), 'warning', 'Plan should state ordering or dependencies between stages/tasks.'),
|
|
110
|
+
planLintCheck('completion-boundary', /\b(done|complete|completion|finish|closeout|收口|完成前|不做范围|boundary|边界)\b/i.test(text), 'blocker', 'Plan must define completion boundary and out-of-scope items.'),
|
|
111
|
+
];
|
|
112
|
+
const blockingFindings = checks.filter((check) => check.status === 'blocker').map((check) => check.message);
|
|
113
|
+
const warnings = checks.filter((check) => check.status === 'warning').map((check) => check.message);
|
|
114
|
+
const executionReady = blockingFindings.length === 0;
|
|
115
|
+
const boundaryAssertions = planLintBoundaryAssertions();
|
|
116
|
+
const lint = {
|
|
117
|
+
version: 1,
|
|
118
|
+
stage: 'Stage 86',
|
|
119
|
+
lint_kind: 'plan-quality-lint',
|
|
120
|
+
source_file: source.relative,
|
|
121
|
+
source_digest: source.digest,
|
|
122
|
+
summary: {
|
|
123
|
+
task_section_count: taskSections.length,
|
|
124
|
+
concrete_file_count: pathMatches.length,
|
|
125
|
+
command_count: commandMatches.length,
|
|
126
|
+
check_count: checks.length,
|
|
127
|
+
blocker_count: blockingFindings.length,
|
|
128
|
+
warning_count: warnings.length,
|
|
129
|
+
},
|
|
130
|
+
checks,
|
|
131
|
+
blocking_findings: blockingFindings,
|
|
132
|
+
warnings,
|
|
133
|
+
execution_ready: executionReady,
|
|
134
|
+
manual_action: executionReady ? 'Plan is ready for bounded execution with task-level acceptance and verification.' : 'Fix blocking plan gaps before entering implementation or execution.',
|
|
135
|
+
boundary_assertions: boundaryAssertions,
|
|
136
|
+
writes: false,
|
|
137
|
+
state_directory_created: false,
|
|
138
|
+
local_only: true,
|
|
139
|
+
deterministic: true,
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
mode: 'plan-quality-lint',
|
|
143
|
+
ok: true,
|
|
144
|
+
state_present: fs.existsSync(workflowArtifactPath(root)),
|
|
145
|
+
plan_lint: { ...lint, lint_digest: digestObject(lint) },
|
|
146
|
+
safety: { stage: 'Stage 86', ...boundaryAssertions },
|
|
147
|
+
quality: [...blockingFindings, ...warnings],
|
|
148
|
+
action: 'plan lint was computed read-only from one local plan file. No state directory, plan lint artifact, sidecar, workflow skill execution, command execution, runtime action, platform API, external network, model, git, worktree, subagent, MCP, dae' + 'mon, shell interception, or business source mutation occurred.',
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function planActionManifestEnvelope(root, planFile, { intent = 'implementation' } = {}) {
|
|
153
|
+
ensureRoot(root);
|
|
154
|
+
const source = localTextEvidenceDescriptor(root, planFile, 'planner --action-manifest source');
|
|
155
|
+
const planLint = planLintEnvelope(root, planFile).plan_lint;
|
|
156
|
+
const loopEnvelope = workflowLoopContractEnvelope(root, { intent: intent || 'implementation', planFile });
|
|
157
|
+
const workflowLoopContract = loopEnvelope.workflow_loop_contract;
|
|
158
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
159
|
+
const automationReadiness = automationEnvelope.runtime_automation_readiness;
|
|
160
|
+
const registry = runtimeCapabilityRegistry();
|
|
161
|
+
const manifest = runtimePlanActionManifest({
|
|
162
|
+
sourcePlan: {
|
|
163
|
+
file: source.relative,
|
|
164
|
+
digest: source.digest,
|
|
165
|
+
line_count: source.text.split(/\r?\n/).length,
|
|
166
|
+
text: source.text,
|
|
167
|
+
},
|
|
168
|
+
planLint,
|
|
169
|
+
workflowLoopContract,
|
|
170
|
+
automationReadiness,
|
|
171
|
+
registry,
|
|
172
|
+
registryDigest: automationReadiness.registry_digest,
|
|
173
|
+
intent: intent || 'implementation',
|
|
174
|
+
});
|
|
175
|
+
const planActionManifest = {
|
|
176
|
+
...manifest,
|
|
177
|
+
plan_action_manifest_digest: digestPlanActionManifest(runtimePlanActionManifestDigestPayload(manifest)),
|
|
178
|
+
};
|
|
179
|
+
return {
|
|
180
|
+
mode: 'plan-action-manifest',
|
|
181
|
+
ok: planActionManifest.manifest_invariants.pass,
|
|
182
|
+
state_present: fs.existsSync(workflowArtifactPath(root)),
|
|
183
|
+
plan_action_manifest: planActionManifest,
|
|
184
|
+
safety: { stage: 'Stage 105', ...planActionManifest.boundary_assertions },
|
|
185
|
+
quality: planActionManifest.manifest_invariants.findings,
|
|
186
|
+
action: 'plan-to-action-manifest envelope was computed read-only from one local plan file, plan lint, workflow loop contract, automation readiness, and registry. No automation plan, state directory, sidecar, action item execution, command execution, test/check/repair execution, formatting, code generation, workflow execution, runtime action, git, PR, push, merge, tag, platform API, external network, model, worktree, subagent, MCP, dae' + 'mon, or business source mutation occurred.',
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function executablePlanContractEnvelope(root, planFile) {
|
|
191
|
+
ensureRoot(root);
|
|
192
|
+
const source = localTextEvidenceDescriptor(root, planFile, 'planner --executable-plan source');
|
|
193
|
+
const planLint = planLintEnvelope(root, planFile).plan_lint;
|
|
194
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
195
|
+
const registry = runtimeCapabilityRegistry();
|
|
196
|
+
const contract = runtimeExecutablePlanContract({
|
|
197
|
+
sourcePlan: {
|
|
198
|
+
file: source.relative,
|
|
199
|
+
digest: source.digest,
|
|
200
|
+
line_count: source.text.split(/\r?\n/).length,
|
|
201
|
+
text: source.text,
|
|
202
|
+
},
|
|
203
|
+
planLint,
|
|
204
|
+
registry,
|
|
205
|
+
registryDigest: automationEnvelope.runtime_automation_readiness.registry_digest,
|
|
206
|
+
});
|
|
207
|
+
const executablePlanContract = {
|
|
208
|
+
...contract,
|
|
209
|
+
executable_plan_digest: digestExecutablePlanContract(runtimeExecutablePlanContractDigestPayload(contract)),
|
|
210
|
+
};
|
|
211
|
+
return {
|
|
212
|
+
mode: 'executable-plan-quality-contract',
|
|
213
|
+
ok: executablePlanContract.executable_plan_invariants.pass,
|
|
214
|
+
state_present: fs.existsSync(workflowArtifactPath(root)),
|
|
215
|
+
executable_plan_contract: executablePlanContract,
|
|
216
|
+
safety: { stage: 'Stage 117', ...executablePlanContract.boundary_assertions },
|
|
217
|
+
quality: [...executablePlanContract.executable_plan_invariants.findings, ...executablePlanContract.blocked_reasons],
|
|
218
|
+
action: 'executable-plan-quality-contract envelope was computed read-only from one local plan file, plan lint, automation readiness registry digest, and registry. No plan mutation, check/test/command execution, action item execution, repair, formatting, code generation, state directory, sidecar write, source write, git, commit, PR, push, merge, tag, platform API, external network, model, MCP, subagent, dae' + 'mon, sche' + 'duler, ret' + 'ry, worktree, or business source mutation occurred.',
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function selfTestGateProfileEnvelope(root, planFile, { intent = 'implementation' } = {}) {
|
|
223
|
+
ensureRoot(root);
|
|
224
|
+
const planManifestEnvelope = planActionManifestEnvelope(root, planFile, { intent });
|
|
225
|
+
const planActionManifest = planManifestEnvelope.plan_action_manifest;
|
|
226
|
+
const registry = runtimeCapabilityRegistry();
|
|
227
|
+
const profile = runtimeSelfTestGateProfile({
|
|
228
|
+
planActionManifest,
|
|
229
|
+
registry,
|
|
230
|
+
registryDigest: planActionManifest.source_bindings.registry_digest,
|
|
231
|
+
});
|
|
232
|
+
const selfTestGateProfile = {
|
|
233
|
+
...profile,
|
|
234
|
+
self_test_gate_profile_digest: digestSelfTestGateProfile(runtimeSelfTestGateProfileDigestPayload(profile)),
|
|
235
|
+
};
|
|
236
|
+
return {
|
|
237
|
+
mode: 'self-test-gate-profile',
|
|
238
|
+
ok: selfTestGateProfile.profile_invariants.pass,
|
|
239
|
+
state_present: fs.existsSync(workflowArtifactPath(root)),
|
|
240
|
+
self_test_gate_profile: selfTestGateProfile,
|
|
241
|
+
safety: { stage: 'Stage 106', ...selfTestGateProfile.boundary_assertions },
|
|
242
|
+
quality: selfTestGateProfile.profile_invariants.findings,
|
|
243
|
+
action: 'self-test-gate-profile envelope was computed read-only from Stage 105 check expectations. No check execution, test execution, repair, formatting, code generation, sidecar write, git, PR, push, merge, platform API, external network, model, subagent, MCP, dae' + 'mon, or business source mutation occurred.',
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function commitReadinessEnvelope(root, planFile, { intent = 'implementation', subject = '' } = {}) {
|
|
248
|
+
ensureRoot(root);
|
|
249
|
+
if (!subject) throw new Error('release --commit-readiness requires --subject <commit-subject>');
|
|
250
|
+
const planManifestEnvelope = planActionManifestEnvelope(root, planFile, { intent });
|
|
251
|
+
const selfTestEnvelope = selfTestGateProfileEnvelope(root, planFile, { intent });
|
|
252
|
+
const commitGuard = commitGuardEnvelope(root, { subject });
|
|
253
|
+
const registry = runtimeCapabilityRegistry();
|
|
254
|
+
const commitReadiness = runtimeCommitReadinessEnvelope({
|
|
255
|
+
planActionManifest: planManifestEnvelope.plan_action_manifest,
|
|
256
|
+
selfTestGateProfile: selfTestEnvelope.self_test_gate_profile,
|
|
257
|
+
commitGuard,
|
|
258
|
+
registry,
|
|
259
|
+
registryDigest: planManifestEnvelope.plan_action_manifest.source_bindings.registry_digest,
|
|
260
|
+
});
|
|
261
|
+
const commitReadinessEnvelopeValue = {
|
|
262
|
+
...commitReadiness,
|
|
263
|
+
commit_readiness_digest: digestCommitReadiness(runtimeCommitReadinessDigestPayload(commitReadiness)),
|
|
264
|
+
};
|
|
265
|
+
return {
|
|
266
|
+
mode: 'commit-readiness-envelope',
|
|
267
|
+
ok: commitReadinessEnvelopeValue.readiness_invariants.pass,
|
|
268
|
+
state_present: fs.existsSync(runtimeStateFolder(root)),
|
|
269
|
+
commit_readiness: commitReadinessEnvelopeValue,
|
|
270
|
+
safety: { stage: 'Stage 107', ...commitReadinessEnvelopeValue.boundary_assertions },
|
|
271
|
+
quality: commitReadinessEnvelopeValue.readiness_invariants.findings,
|
|
272
|
+
action: 'commit-readiness envelope was computed read-only from one local plan file, Stage 105 manifest, Stage 106 self-test gate profile, and Stage 98 commit guard. No git command, commit, check execution, test execution, repair, formatting, code generation, sidecar write, PR, push, merge, platform API, external network, model, subagent, MCP, dae' + 'mon, or business source mutation occurred.',
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
function stagedCommitReadinessEnvelope(root, runbookFile, evidenceFile, { selectedStage = '', subject = '' } = {}) {
|
|
277
|
+
ensureRoot(root);
|
|
278
|
+
if (!runbookFile) throw new Error('release --staged-commit-readiness requires --from-runbook <local-runbook-json>');
|
|
279
|
+
if (!evidenceFile) throw new Error('release --staged-commit-readiness requires --from-evidence <local-execution-evidence-json>');
|
|
280
|
+
if (!selectedStage) throw new Error('release --staged-commit-readiness requires --stage <stage-id>');
|
|
281
|
+
if (!subject) throw new Error('release --staged-commit-readiness requires --subject <commit-subject>');
|
|
282
|
+
const runbookSource = localTextEvidenceDescriptor(root, runbookFile, 'release --staged-commit-readiness source runbook');
|
|
283
|
+
const evidenceSource = localTextEvidenceDescriptor(root, evidenceFile, 'release --staged-commit-readiness source evidence');
|
|
284
|
+
let parsedRunbook;
|
|
285
|
+
let parsedEvidence;
|
|
286
|
+
try {
|
|
287
|
+
parsedRunbook = JSON.parse(runbookSource.text);
|
|
288
|
+
} catch (error) {
|
|
289
|
+
throw new Error(`release --staged-commit-readiness requires JSON runbook: ${error.message}`);
|
|
290
|
+
}
|
|
291
|
+
try {
|
|
292
|
+
parsedEvidence = JSON.parse(evidenceSource.text);
|
|
293
|
+
} catch (error) {
|
|
294
|
+
throw new Error(`release --staged-commit-readiness requires JSON evidence: ${error.message}`);
|
|
295
|
+
}
|
|
296
|
+
const runbook = parsedRunbook.sequential_stage_runbook || parsedRunbook;
|
|
297
|
+
const evidence = parsedEvidence.execution_evidence_binding ? parsedEvidence : (parsedEvidence.verification?.execution_evidence_binding ? parsedEvidence.verification : parsedEvidence);
|
|
298
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
299
|
+
const registry = runtimeCapabilityRegistry();
|
|
300
|
+
const readiness = runtimeStagedCommitReadiness({
|
|
301
|
+
runbook,
|
|
302
|
+
runbookSource,
|
|
303
|
+
evidence,
|
|
304
|
+
evidenceSource,
|
|
305
|
+
selectedStage,
|
|
306
|
+
subject,
|
|
307
|
+
registry,
|
|
308
|
+
registryDigest: automationEnvelope.runtime_automation_readiness.registry_digest,
|
|
309
|
+
});
|
|
310
|
+
const stagedCommitReadiness = {
|
|
311
|
+
...readiness,
|
|
312
|
+
staged_commit_readiness_digest: digestStagedCommitReadiness(runtimeStagedCommitReadinessDigestPayload(readiness)),
|
|
313
|
+
};
|
|
314
|
+
return {
|
|
315
|
+
mode: 'staged-commit-readiness-contract',
|
|
316
|
+
ok: stagedCommitReadiness.staged_commit_readiness_invariants.pass,
|
|
317
|
+
state_present: fs.existsSync(runtimeStateFolder(root)),
|
|
318
|
+
staged_commit_readiness: stagedCommitReadiness,
|
|
319
|
+
safety: { stage: 'Stage 120', ...stagedCommitReadiness.boundary_assertions },
|
|
320
|
+
quality: stagedCommitReadiness.staged_commit_readiness_invariants.findings,
|
|
321
|
+
action: 'staged-commit-readiness contract was computed read-only from one local Stage 118 runbook JSON file, one local Stage 119 execution evidence binding JSON file, one selected stage id, and one commit subject. Stage 120 did not call git, stage files, commit, run checks/tests, repair, format, generate code, write artifacts, create sidecars, mutate source/runbook/evidence/worktree, push, PR, merge, call platform API, external network, model, subagent, MCP, dae' + 'mon, sche' + 'duler, ret' + 'ry, or mutate business source.',
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
function evidenceIntakeEnvelope(root, evidenceFile, { planFile = '' } = {}) {
|
|
326
|
+
ensureRoot(root);
|
|
327
|
+
if (!evidenceFile) throw new Error('verification --evidence-intake requires --from-file <local-evidence-file>');
|
|
328
|
+
const source = localTextEvidenceDescriptor(root, evidenceFile, 'verification --evidence-intake source');
|
|
329
|
+
let evidence;
|
|
330
|
+
try {
|
|
331
|
+
evidence = JSON.parse(source.text);
|
|
332
|
+
} catch (error) {
|
|
333
|
+
throw new Error(`verification --evidence-intake requires JSON evidence: ${error.message}`);
|
|
334
|
+
}
|
|
335
|
+
const planManifest = planFile ? planActionManifestEnvelope(root, planFile, { intent: 'implementation' }).plan_action_manifest : null;
|
|
336
|
+
const selfTestProfile = planFile ? selfTestGateProfileEnvelope(root, planFile, { intent: 'implementation' }).self_test_gate_profile : null;
|
|
337
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
338
|
+
const registry = runtimeCapabilityRegistry();
|
|
339
|
+
const intake = runtimeEvidenceIntakeEnvelope({
|
|
340
|
+
evidence,
|
|
341
|
+
evidenceSource: source,
|
|
342
|
+
selfTestGateProfile: selfTestProfile,
|
|
343
|
+
planActionManifest: planManifest,
|
|
344
|
+
registry,
|
|
345
|
+
registryDigest: automationEnvelope.runtime_automation_readiness.registry_digest,
|
|
346
|
+
});
|
|
347
|
+
const evidenceIntake = {
|
|
348
|
+
...intake,
|
|
349
|
+
evidence_intake_digest: digestEvidenceIntake(runtimeEvidenceIntakeDigestPayload(intake)),
|
|
350
|
+
};
|
|
351
|
+
return {
|
|
352
|
+
mode: 'evidence-intake-envelope',
|
|
353
|
+
ok: evidenceIntake.evidence_intake_invariants.pass,
|
|
354
|
+
state_present: fs.existsSync(runtimeStateFolder(root)),
|
|
355
|
+
evidence_intake: evidenceIntake,
|
|
356
|
+
safety: { stage: 'Stage 110', ...evidenceIntake.boundary_assertions },
|
|
357
|
+
quality: evidenceIntake.evidence_intake_invariants.findings,
|
|
358
|
+
action: 'evidence-intake envelope was computed read-only from one local evidence JSON file and optional Stage 105/106 plan-derived gate profile. Stage 110 did not execute checks[].command, run tests, repair, format, generate code, write evidence artifacts, create sidecars, call git, commit, push, PR, merge, platform API, external network, model, subagent, MCP, dae' + 'mon, sche' + 'duler, ret' + 'ry, or mutate business source.',
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
function executionEvidenceEnvelope(root, evidenceFile, { runbookFile = '', selectedStage = '' } = {}) {
|
|
363
|
+
ensureRoot(root);
|
|
364
|
+
if (!runbookFile) throw new Error('verification --execution-evidence requires --from-runbook <local-runbook-json>');
|
|
365
|
+
if (!evidenceFile) throw new Error('verification --execution-evidence requires --from-file <local-evidence-json>');
|
|
366
|
+
const evidenceSource = localTextEvidenceDescriptor(root, evidenceFile, 'verification --execution-evidence source evidence');
|
|
367
|
+
const runbookSource = localTextEvidenceDescriptor(root, runbookFile, 'verification --execution-evidence source runbook');
|
|
368
|
+
let evidence;
|
|
369
|
+
let parsedRunbook;
|
|
370
|
+
try {
|
|
371
|
+
evidence = JSON.parse(evidenceSource.text);
|
|
372
|
+
} catch (error) {
|
|
373
|
+
throw new Error(`verification --execution-evidence requires JSON evidence: ${error.message}`);
|
|
374
|
+
}
|
|
375
|
+
try {
|
|
376
|
+
parsedRunbook = JSON.parse(runbookSource.text);
|
|
377
|
+
} catch (error) {
|
|
378
|
+
throw new Error(`verification --execution-evidence requires JSON runbook: ${error.message}`);
|
|
379
|
+
}
|
|
380
|
+
const runbook = parsedRunbook.sequential_stage_runbook || parsedRunbook;
|
|
381
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
382
|
+
const registry = runtimeCapabilityRegistry();
|
|
383
|
+
const binding = runtimeExecutionEvidenceBinder({
|
|
384
|
+
evidence,
|
|
385
|
+
evidenceSource,
|
|
386
|
+
runbook,
|
|
387
|
+
runbookSource,
|
|
388
|
+
selectedStage,
|
|
389
|
+
registry,
|
|
390
|
+
registryDigest: automationEnvelope.runtime_automation_readiness.registry_digest,
|
|
391
|
+
});
|
|
392
|
+
const executionEvidenceBinding = {
|
|
393
|
+
...binding,
|
|
394
|
+
execution_evidence_digest: digestExecutionEvidenceBinding(runtimeExecutionEvidenceDigestPayload(binding)),
|
|
395
|
+
};
|
|
396
|
+
return {
|
|
397
|
+
mode: 'execution-evidence-binding',
|
|
398
|
+
ok: executionEvidenceBinding.execution_evidence_invariants.pass,
|
|
399
|
+
state_present: fs.existsSync(runtimeStateFolder(root)),
|
|
400
|
+
execution_evidence_binding: executionEvidenceBinding,
|
|
401
|
+
safety: { stage: 'Stage 119', ...executionEvidenceBinding.boundary_assertions },
|
|
402
|
+
quality: executionEvidenceBinding.execution_evidence_invariants.findings,
|
|
403
|
+
action: 'execution-evidence-binding contract was computed read-only from one local Stage 118 runbook JSON file and one local execution evidence JSON file. Stage 119 did not execute runbook commands, run tests/checks, repair, format, generate code, write evidence artifacts, create sidecars, mutate source/runbook, call git, commit, push, PR, merge, platform API, external network, model, subagent, MCP, dae' + 'mon, sche' + 'duler, ret' + 'ry, or mutate business source.',
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
function tddTraceEnvelope(root, traceFile, { planFile = '' } = {}) {
|
|
408
|
+
ensureRoot(root);
|
|
409
|
+
if (!traceFile) throw new Error('verification --tdd-trace requires --from-file <local-tdd-trace-file>');
|
|
410
|
+
const source = localTextEvidenceDescriptor(root, traceFile, 'verification --tdd-trace source');
|
|
411
|
+
let trace;
|
|
412
|
+
try {
|
|
413
|
+
trace = JSON.parse(source.text);
|
|
414
|
+
} catch (error) {
|
|
415
|
+
throw new Error(`verification --tdd-trace requires JSON trace: ${error.message}`);
|
|
416
|
+
}
|
|
417
|
+
const planManifest = planFile ? planActionManifestEnvelope(root, planFile, { intent: 'implementation' }).plan_action_manifest : null;
|
|
418
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
419
|
+
const registry = runtimeCapabilityRegistry();
|
|
420
|
+
const contract = runtimeTddTraceContract({
|
|
421
|
+
trace,
|
|
422
|
+
traceSource: source,
|
|
423
|
+
planActionManifest: planManifest,
|
|
424
|
+
registry,
|
|
425
|
+
registryDigest: automationEnvelope.runtime_automation_readiness.registry_digest,
|
|
426
|
+
});
|
|
427
|
+
const tddTraceContract = {
|
|
428
|
+
...contract,
|
|
429
|
+
tdd_trace_digest: digestTddTraceContract(runtimeTddTraceDigestPayload(contract)),
|
|
430
|
+
};
|
|
431
|
+
return {
|
|
432
|
+
mode: 'tdd-trace-contract',
|
|
433
|
+
ok: tddTraceContract.tdd_trace_invariants.pass,
|
|
434
|
+
state_present: fs.existsSync(runtimeStateFolder(root)),
|
|
435
|
+
tdd_trace_contract: tddTraceContract,
|
|
436
|
+
safety: { stage: 'Stage 113', ...tddTraceContract.boundary_assertions },
|
|
437
|
+
quality: tddTraceContract.tdd_trace_invariants.findings,
|
|
438
|
+
action: 'tdd-trace contract was computed read-only from one local TDD trace JSON file and optional Stage 105 plan-derived action manifest. Stage 113 did not execute red, green, refactor, test, check, lint, verification, repair, formatting, code generation, git, commit, push, PR, merge, platform API, external network, model, subagent, MCP, sche' + 'duler, dae' + 'mon, ret' + 'ry, or mutate business source.',
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
function verificationRepairLoopEnvelope(root, evidenceFile) {
|
|
443
|
+
ensureRoot(root);
|
|
444
|
+
if (!evidenceFile) throw new Error('verification --repair-plan requires --from-file <local-evidence-json>');
|
|
445
|
+
const source = localTextEvidenceDescriptor(root, evidenceFile, 'verification --repair-plan source evidence');
|
|
446
|
+
let evidence;
|
|
447
|
+
try {
|
|
448
|
+
evidence = JSON.parse(source.text);
|
|
449
|
+
} catch (error) {
|
|
450
|
+
throw new Error(`verification --repair-plan requires JSON evidence: ${error.message}`);
|
|
451
|
+
}
|
|
452
|
+
return buildVerificationDrivenRepairLoopPlan({
|
|
453
|
+
input: evidence,
|
|
454
|
+
source,
|
|
455
|
+
statePresent: fs.existsSync(runtimeStateFolder(root)),
|
|
456
|
+
digestObject,
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
function runVerification(options) {
|
|
461
|
+
ensureRoot(options.root);
|
|
462
|
+
const modes = [options.verificationSelfTestProfile, options.verificationEvidenceIntake, options.verificationExecutionEvidence, options.verificationTddTrace, options.verificationRepairPlan].filter(Boolean);
|
|
463
|
+
if (modes.length !== 1) throw new Error('verification requires exactly one mode: --self-test-profile, --evidence-intake, --execution-evidence, --tdd-trace, or --repair-plan');
|
|
464
|
+
const readOnlyFlagPresent = options.confirm || options.write || options.dryRun || options.recoveryPreview || options.hooksPreview || options.dispatch || options.dispatchIntent || options.run || options.autoRun || options.scan || options.once || options.preflight;
|
|
465
|
+
if (readOnlyFlagPresent && options.verificationEvidenceIntake) throw new Error('verification read-only modes do not accept execution, dispatch, preview, confirm, write, scan, dry-run, or preflight flags');
|
|
466
|
+
if (readOnlyFlagPresent && options.verificationExecutionEvidence) throw new Error('verification --execution-evidence is read-only and does not accept execution, dispatch, preview, confirm, write, scan, dry-run, or preflight flags');
|
|
467
|
+
if (readOnlyFlagPresent && options.verificationTddTrace) throw new Error('verification --tdd-trace is read-only and does not accept execution, dispatch, preview, confirm, write, scan, dry-run, or preflight flags');
|
|
468
|
+
if (readOnlyFlagPresent && options.verificationRepairPlan) throw new Error('verification --repair-plan is read-only planning and does not accept execution, dispatch, preview, confirm, write, scan, dry-run, or preflight flags');
|
|
469
|
+
if (readOnlyFlagPresent) throw new Error('verification --self-test-profile is read-only and does not accept execution, dispatch, preview, confirm, write, scan, dry-run, or preflight flags');
|
|
470
|
+
if (!options.fromFile) throw new Error(options.verificationEvidenceIntake ? 'verification --evidence-intake requires --from-file <local-evidence-file>' : options.verificationExecutionEvidence ? 'verification --execution-evidence requires --from-file <local-evidence-json>' : options.verificationTddTrace ? 'verification --tdd-trace requires --from-file <local-tdd-trace-file>' : options.verificationRepairPlan ? 'verification --repair-plan requires --from-file <local-evidence-json>' : 'verification --self-test-profile requires --from-file <local-plan-file>');
|
|
471
|
+
if (options.verificationEvidenceIntake) {
|
|
472
|
+
if (options.methodologyIntent) throw new Error('--intent is only supported by verification --self-test-profile');
|
|
473
|
+
if (options.fromRunbook || options.selectedStage) throw new Error('--from-runbook and --stage are only supported by verification --execution-evidence');
|
|
474
|
+
if (options.plannerFile || options.plannerFromHook || options.methodologyKind || options.fromReadiness || options.learningObservationFiles.length > 0 || options.learningInstinctFile || options.tokenCompactionFiles.length > 0) throw new Error('verification --evidence-intake only accepts one local evidence file, optional --from-plan, and read-only output flags');
|
|
475
|
+
const envelope = evidenceIntakeEnvelope(options.root, options.fromFile, { planFile: options.fromPlan });
|
|
476
|
+
if (options.json) emitJsonEnvelope('verification', envelope);
|
|
477
|
+
else printEvidenceIntake(envelope);
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
if (options.verificationExecutionEvidence) {
|
|
481
|
+
if (options.methodologyIntent) throw new Error('--intent is only supported by verification --self-test-profile');
|
|
482
|
+
if (options.fromPlan) throw new Error('--from-plan is only supported by verification --evidence-intake or verification --tdd-trace');
|
|
483
|
+
if (!options.fromRunbook) throw new Error('verification --execution-evidence requires --from-runbook <local-runbook-json>');
|
|
484
|
+
if (options.plannerFile || options.plannerFromHook || options.methodologyKind || options.fromReadiness || options.learningObservationFiles.length > 0 || options.learningInstinctFile || options.tokenCompactionFiles.length > 0) throw new Error('verification --execution-evidence only accepts one local evidence file, one local Stage 118 runbook file, optional --stage, and read-only output flags');
|
|
485
|
+
const envelope = executionEvidenceEnvelope(options.root, options.fromFile, { runbookFile: options.fromRunbook, selectedStage: options.selectedStage });
|
|
486
|
+
if (options.json) emitJsonEnvelope('verification', envelope);
|
|
487
|
+
else printExecutionEvidenceBinding(envelope);
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
if (options.verificationTddTrace) {
|
|
491
|
+
if (options.methodologyIntent) throw new Error('--intent is only supported by verification --self-test-profile');
|
|
492
|
+
if (options.fromRunbook || options.selectedStage) throw new Error('--from-runbook and --stage are only supported by verification --execution-evidence');
|
|
493
|
+
if (options.plannerFile || options.plannerFromHook || options.methodologyKind || options.fromReadiness || options.learningObservationFiles.length > 0 || options.learningInstinctFile || options.tokenCompactionFiles.length > 0) throw new Error('verification --tdd-trace only accepts one local TDD trace file, optional --from-plan, and read-only output flags');
|
|
494
|
+
const envelope = tddTraceEnvelope(options.root, options.fromFile, { planFile: options.fromPlan });
|
|
495
|
+
if (options.json) emitJsonEnvelope('verification', envelope);
|
|
496
|
+
else printTddTraceContract(envelope);
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
if (options.verificationRepairPlan) {
|
|
500
|
+
if (options.methodologyIntent) throw new Error('--intent is only supported by verification --self-test-profile');
|
|
501
|
+
if (options.fromPlan || options.fromRunbook || options.selectedStage) throw new Error('--from-plan, --from-runbook, and --stage are not supported by verification --repair-plan');
|
|
502
|
+
if (options.plannerFile || options.plannerFromHook || options.methodologyKind || options.fromReadiness || options.learningObservationFiles.length > 0 || options.learningInstinctFile || options.tokenCompactionFiles.length > 0) throw new Error('verification --repair-plan only accepts one local evidence file and read-only output flags');
|
|
503
|
+
const envelope = verificationRepairLoopEnvelope(options.root, options.fromFile);
|
|
504
|
+
if (options.json) emitJsonEnvelope('verification', envelope);
|
|
505
|
+
else printVerificationDrivenRepairLoopPlan(envelope, { printList: validationDeps.printList });
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
if (options.fromPlan) throw new Error('--from-plan is only supported by verification --evidence-intake or verification --tdd-trace');
|
|
509
|
+
if (options.fromRunbook || options.selectedStage) throw new Error('--from-runbook and --stage are only supported by verification --execution-evidence');
|
|
510
|
+
if (options.plannerFile || options.plannerFromHook || options.methodologyKind || options.fromReadiness || options.learningObservationFiles.length > 0 || options.learningInstinctFile || options.tokenCompactionFiles.length > 0) throw new Error('verification --self-test-profile only accepts one local plan file plus read-only output flags');
|
|
511
|
+
const envelope = selfTestGateProfileEnvelope(options.root, options.fromFile, { intent: options.methodologyIntent || 'implementation' });
|
|
512
|
+
if (options.json) emitJsonEnvelope('verification', envelope);
|
|
513
|
+
else printSelfTestGateProfile(envelope);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
return {
|
|
517
|
+
planLintEnvelope,
|
|
518
|
+
planActionManifestEnvelope,
|
|
519
|
+
executablePlanContractEnvelope,
|
|
520
|
+
selfTestGateProfileEnvelope,
|
|
521
|
+
commitReadinessEnvelope,
|
|
522
|
+
stagedCommitReadinessEnvelope,
|
|
523
|
+
evidenceIntakeEnvelope,
|
|
524
|
+
executionEvidenceEnvelope,
|
|
525
|
+
verificationRepairLoopEnvelope,
|
|
526
|
+
tddTraceEnvelope,
|
|
527
|
+
runVerification,
|
|
528
|
+
};
|
|
529
|
+
}
|