@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,175 @@
|
|
|
1
|
+
const automationProfileDefinitions = Object.freeze({
|
|
2
|
+
'advice-only': Object.freeze({
|
|
3
|
+
profile: 'advice-only',
|
|
4
|
+
label: 'Advice only',
|
|
5
|
+
max_risk: 'low',
|
|
6
|
+
requires_confirm: false,
|
|
7
|
+
allowed_actions: Object.freeze([
|
|
8
|
+
'read_runtime_entry_summary',
|
|
9
|
+
'read_token_budget_summary',
|
|
10
|
+
'read_learning_advice_summary',
|
|
11
|
+
'recommend_context_loading',
|
|
12
|
+
'recommend_manual_next_step',
|
|
13
|
+
]),
|
|
14
|
+
}),
|
|
15
|
+
'sidecar-only': Object.freeze({
|
|
16
|
+
profile: 'sidecar-only',
|
|
17
|
+
label: 'Sidecar only',
|
|
18
|
+
max_risk: 'medium',
|
|
19
|
+
requires_confirm: true,
|
|
20
|
+
allowed_actions: Object.freeze([
|
|
21
|
+
'read_runtime_summaries',
|
|
22
|
+
'write_local_state_sidecars_after_confirmation',
|
|
23
|
+
'audit_sidecar_shape',
|
|
24
|
+
]),
|
|
25
|
+
}),
|
|
26
|
+
'local-foreground-run': Object.freeze({
|
|
27
|
+
profile: 'local-foreground-run',
|
|
28
|
+
label: 'Local foreground run',
|
|
29
|
+
max_risk: 'medium',
|
|
30
|
+
requires_confirm: true,
|
|
31
|
+
allowed_actions: Object.freeze([
|
|
32
|
+
'read_runtime_summaries',
|
|
33
|
+
'run_allowlisted_foreground_commands_after_confirmation',
|
|
34
|
+
'write_execution_evidence_sidecars_after_confirmation',
|
|
35
|
+
]),
|
|
36
|
+
}),
|
|
37
|
+
'sandbox-patch': Object.freeze({
|
|
38
|
+
profile: 'sandbox-patch',
|
|
39
|
+
label: 'Sandbox patch',
|
|
40
|
+
max_risk: 'high',
|
|
41
|
+
requires_confirm: true,
|
|
42
|
+
allowed_actions: Object.freeze([
|
|
43
|
+
'read_runtime_summaries',
|
|
44
|
+
'generate_patch_plan_after_confirmation',
|
|
45
|
+
'apply_patch_to_sandbox_after_confirmation',
|
|
46
|
+
]),
|
|
47
|
+
}),
|
|
48
|
+
'autopilot-lab': Object.freeze({
|
|
49
|
+
profile: 'autopilot-lab',
|
|
50
|
+
label: 'Autopilot lab',
|
|
51
|
+
max_risk: 'highest',
|
|
52
|
+
requires_confirm: true,
|
|
53
|
+
allowed_actions: Object.freeze([
|
|
54
|
+
'read_runtime_summaries',
|
|
55
|
+
'preview_task_authorization_budget',
|
|
56
|
+
'validate_allowed_paths_and_commands',
|
|
57
|
+
'recommend_bounded_autopilot_next_step',
|
|
58
|
+
]),
|
|
59
|
+
}),
|
|
60
|
+
'confirmed-worktree-apply': Object.freeze({
|
|
61
|
+
profile: 'confirmed-worktree-apply',
|
|
62
|
+
label: 'Confirmed worktree apply',
|
|
63
|
+
max_risk: 'highest',
|
|
64
|
+
requires_confirm: true,
|
|
65
|
+
allowed_actions: Object.freeze([
|
|
66
|
+
'read_runtime_summaries',
|
|
67
|
+
'apply_to_worktree_after_explicit_approval',
|
|
68
|
+
'require_post_apply_evidence',
|
|
69
|
+
]),
|
|
70
|
+
}),
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
const forbiddenDefaults = Object.freeze([
|
|
74
|
+
'autopilot_lab_profile_without_complete_budget',
|
|
75
|
+
'autopilot_profile_config_write_without_separate_confirmation',
|
|
76
|
+
'autopilot_runtime_action_without_execution_gate',
|
|
77
|
+
'autopilot_source_write_without_source_apply_gate',
|
|
78
|
+
'autopilot_git_write_without_git_gate',
|
|
79
|
+
'autopilot_background_runtime_without_long_running_gate',
|
|
80
|
+
'hidden_daemon',
|
|
81
|
+
'background_watcher',
|
|
82
|
+
'implicit_subagent',
|
|
83
|
+
'platform_api_call',
|
|
84
|
+
'external_network_call',
|
|
85
|
+
'model_invocation',
|
|
86
|
+
'unapproved_command_run',
|
|
87
|
+
'unallowlisted_command_run',
|
|
88
|
+
'git_write',
|
|
89
|
+
'git_commit',
|
|
90
|
+
'git_push',
|
|
91
|
+
'git_merge',
|
|
92
|
+
'git_tag',
|
|
93
|
+
'pull_request_create',
|
|
94
|
+
'business_source_write_without_explicit_approval',
|
|
95
|
+
'evidence_result_fabrication',
|
|
96
|
+
]);
|
|
97
|
+
|
|
98
|
+
export function automationProfileNames() {
|
|
99
|
+
return Object.keys(automationProfileDefinitions);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export function automationPolicyProfiles() {
|
|
103
|
+
return automationProfileNames().map((name) => cloneProfile(automationProfileDefinitions[name]));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function automationForbiddenDefaults() {
|
|
107
|
+
return forbiddenDefaults.slice();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export function automationPolicyProfile(profile = 'advice-only') {
|
|
111
|
+
const normalized = String(profile || 'advice-only').trim() || 'advice-only';
|
|
112
|
+
const selected = automationProfileDefinitions[normalized];
|
|
113
|
+
if (!selected) throw new Error(`Unknown automation profile: ${normalized}`);
|
|
114
|
+
return cloneProfile(selected);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function automationPolicySnapshot({ profile = 'advice-only' } = {}) {
|
|
118
|
+
const selected = automationPolicyProfile(profile);
|
|
119
|
+
return {
|
|
120
|
+
version: 1,
|
|
121
|
+
policy_kind: 'automation-policy-profile',
|
|
122
|
+
profile: selected.profile,
|
|
123
|
+
label: selected.label,
|
|
124
|
+
max_risk: selected.max_risk,
|
|
125
|
+
requires_confirm: selected.requires_confirm,
|
|
126
|
+
allowed_actions: selected.allowed_actions.slice(),
|
|
127
|
+
forbidden_actions: forbiddenDefaults.slice(),
|
|
128
|
+
profile_catalog: automationPolicyProfiles(),
|
|
129
|
+
boundary_assertions: automationPolicyBoundaryAssertions(selected.profile),
|
|
130
|
+
local_only: true,
|
|
131
|
+
deterministic: true,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function automationPolicyBoundaryAssertions(profile = 'advice-only') {
|
|
136
|
+
return {
|
|
137
|
+
profile,
|
|
138
|
+
writes: false,
|
|
139
|
+
state_directory_created: false,
|
|
140
|
+
hidden_daemon: false,
|
|
141
|
+
background_watcher: false,
|
|
142
|
+
command_execution: false,
|
|
143
|
+
check_execution: false,
|
|
144
|
+
test_execution: false,
|
|
145
|
+
workflow_execution: false,
|
|
146
|
+
skill_execution: false,
|
|
147
|
+
runtime_action: false,
|
|
148
|
+
git: false,
|
|
149
|
+
git_diff_read: false,
|
|
150
|
+
git_write: false,
|
|
151
|
+
commit: false,
|
|
152
|
+
pr: false,
|
|
153
|
+
push: false,
|
|
154
|
+
merge: false,
|
|
155
|
+
tag: false,
|
|
156
|
+
platform_api: false,
|
|
157
|
+
external_network: false,
|
|
158
|
+
model_invocation: false,
|
|
159
|
+
subagent: false,
|
|
160
|
+
mcp: false,
|
|
161
|
+
source_write: false,
|
|
162
|
+
worktree: false,
|
|
163
|
+
business_source_write: false,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function cloneProfile(profile) {
|
|
168
|
+
return {
|
|
169
|
+
profile: profile.profile,
|
|
170
|
+
label: profile.label,
|
|
171
|
+
max_risk: profile.max_risk,
|
|
172
|
+
requires_confirm: profile.requires_confirm,
|
|
173
|
+
allowed_actions: profile.allowed_actions.slice(),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { buildAutopilotLabProfileContract } from './runtime-autopilot-lab-profile-contract.mjs';
|
|
3
|
+
|
|
4
|
+
const automationReadinessStage = 'Stage 103';
|
|
5
|
+
const automationReadinessKind = 'runtime-automation-readiness-matrix';
|
|
6
|
+
|
|
7
|
+
const readinessCategories = [
|
|
8
|
+
{
|
|
9
|
+
category: 'auto_safe',
|
|
10
|
+
label: 'Deterministic read-only automation-safe checks',
|
|
11
|
+
rule: 'May be called by a future automation plan because it is deterministic, local, read-only, and produces only a report envelope.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
category: 'confirm_required',
|
|
15
|
+
label: 'Explicit confirmation required before local state write',
|
|
16
|
+
rule: 'May write local sidecars or state only through existing explicit confirmation gates; never runs implicitly from Stage 103.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
category: 'advice_only',
|
|
20
|
+
label: 'Advice and workflow orientation only',
|
|
21
|
+
rule: 'Provides guidance, receipts, contracts, or recommendations; future automation may read it but must not treat it as execution approval.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
category: 'forbidden',
|
|
25
|
+
label: 'Permanently forbidden automation boundary',
|
|
26
|
+
rule: 'Must not be automated by this runtime surface without a separate explicit user action outside Stage 103.',
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const commandClassifications = {
|
|
31
|
+
'entry --advice': { category: 'advice_only', reason: 'entry advice chooses a workflow lane but must not act for the user' },
|
|
32
|
+
'entry --contract': { category: 'advice_only', reason: 'entry contract shapes the next manual workflow step' },
|
|
33
|
+
'advice --hub': { category: 'advice_only', reason: 'unified advice hub aggregates guidance only' },
|
|
34
|
+
'methodology --readiness': { category: 'advice_only', reason: 'workflow readiness is an orientation judgment, not approval to execute' },
|
|
35
|
+
'workflow --cockpit': { category: 'advice_only', reason: 'workflow cockpit is a visible control panel, not an executor' },
|
|
36
|
+
'workflow --receipt': { category: 'advice_only', reason: 'workflow receipt makes routing visible but does not execute' },
|
|
37
|
+
'workflow --start': { category: 'advice_only', reason: 'workflow start panel is low-friction guidance only' },
|
|
38
|
+
'workflow --run-plan': { category: 'advice_only', reason: 'P7 workflow run plan computes a selected skill, required inputs, handoff, stop conditions, evidence requirements, and one controlled single-step plan chain without executing skills, writing evidence/state/source, running commands/checks/tests, git, platform APIs, model invocation, MCP, or subagents' },
|
|
39
|
+
'workflow --entry-ux': { category: 'advice_only', reason: 'progressive entry UX contract recommends one visible workflow route without executing skills or injecting full context' },
|
|
40
|
+
'workflow --next-action-console': { category: 'auto_safe', reason: 'Stage 127 one-screen next action console reads local friction, runbook, and evidence JSON to render preview-only next steps without command execution, state writes, git, platform APIs, model invocation, or subagents' },
|
|
41
|
+
'workflow --entry-discipline': { category: 'auto_safe', reason: 'Stage 135 entry trigger discipline reads one local transcript JSON only to validate the using-vibecoding first gate, protocol layers, intent route match, and no direct implementation, blind bug fix, false skill claim, forbidden trigger, auto execution, git, platform APIs, model invocation, MCP, or subagents without executing workflow skills, commands, checks, tests, writing state, or mutating artifacts' },
|
|
42
|
+
'workflow --entry-tightening': { category: 'auto_safe', reason: 'Stage 141 entry trigger tightening reads local Stage 135 entry discipline JSON and local Stage 140 parity scorecard JSON to recommend missing entry moves, a copy-ready opening sentence, and must-not-skip boundaries without executing workflow skills, commands, checks, tests, hooks, adapters, writing artifacts/state/source, mutating prompts/templates/skills, git, platform APIs, model invocation, MCP, or subagents' },
|
|
43
|
+
'workflow --next-evidence-prompts': { category: 'auto_safe', reason: 'Stage 143 next-action evidence prompts read local Stage 127 console JSON, Stage 132 dashboard JSON, and Stage 139 upgrades JSON to emit evidence prompt cards, validation notes, and blocked-until conditions without writing evidence, running commands/checks/tests/workflows, mutating prompts/templates/skills, git, platform APIs, model invocation, MCP, or subagents' },
|
|
44
|
+
'workflow --sequence': { category: 'advice_only', reason: 'workflow sequence guides order without dispatching work' },
|
|
45
|
+
'workflow --loop-contract': { category: 'advice_only', reason: 'workflow loop contract makes the plan/docs/code/self-test/commit-readiness loop visible but is not execution approval' },
|
|
46
|
+
'workflow --close-loop-dashboard': { category: 'auto_safe', reason: 'dashboard only, no execution; deterministically aggregates Stage 105-108 readiness without running checks or git' },
|
|
47
|
+
'workflow --close-loop': { category: 'auto_safe', reason: 'human-friendly close-loop alias only, no execution; composes Stage 109 dashboard labels without running checks, git, repair, or writing artifacts' },
|
|
48
|
+
'workflow --next-evidence': { category: 'auto_safe', reason: 'human-friendly next-evidence alias only, no execution; composes local Stage 105 and optional Stage 110-113 envelopes without running checks, git, review, TDD, or writing artifacts' },
|
|
49
|
+
'onboarding --brief': { category: 'advice_only', reason: 'onboarding brief explains protocol and entry expectations' },
|
|
50
|
+
'completion --readiness': { category: 'auto_safe', reason: 'completion readiness is deterministic and read-only' },
|
|
51
|
+
'readiness --gates': { category: 'auto_safe', reason: 'Stage 24 readiness gate split reads local evidence and separates report_done, local_commit, review_request, handoff, and release_candidate blockers without changing readiness --score semantics or authorizing git/PR/release actions' },
|
|
52
|
+
'completion --evidence-bundle': { category: 'auto_safe', reason: 'completion evidence bundle packages local evidence into a Stage 124 human one-screen closeout bundle without running checks, writing artifacts, invoking git/platform APIs, or dispatching subagents' },
|
|
53
|
+
'completion --repair-plan': { category: 'confirm_required', reason: 'P6 evidence repair plan reads one local completion bundle; only explicit confirmation may write a local repair-plan sidecar and it never mutates original evidence, test results, review results, git state, or business source' },
|
|
54
|
+
'release --gate': { category: 'confirm_required', reason: 'release gate may write a local release gate sidecar only after explicit confirmation' },
|
|
55
|
+
'release --verify-gate': { category: 'auto_safe', reason: 'release gate verification reads and verifies an existing local artifact' },
|
|
56
|
+
'release --notes': { category: 'confirm_required', reason: 'release notes can persist local release evidence only after explicit confirmation' },
|
|
57
|
+
'release --verify-notes': { category: 'auto_safe', reason: 'release notes verification reads and verifies an existing local artifact' },
|
|
58
|
+
'release --commit-guard': { category: 'auto_safe', reason: 'commit guard checks text hygiene without invoking git' },
|
|
59
|
+
'release --commit-readiness': { category: 'auto_safe', reason: 'commit readiness envelope binds local evidence requirements while keeping commit_execution_authorized=false' },
|
|
60
|
+
'release --diff-coverage': { category: 'auto_safe', reason: 'diff coverage reads a local diff file and plan manifest without calling git or writing artifacts' },
|
|
61
|
+
'release --diff-read': { category: 'auto_safe', reason: 'git diff evidence runs only fixed read-only git diff commands, binds a local plan manifest, and keeps git_write=false plus worktree_write=false without state writes or test execution' },
|
|
62
|
+
'release --suite-plan': { category: 'auto_safe', reason: 'timing suite plan reads one local timing JSON and recommends a targeted suite without changing package scripts, suite order, required gate, failure strictness, git, state, or worktree' },
|
|
63
|
+
'tests --run': { category: 'confirm_required', reason: 'test run evidence requires explicit confirmation and executes only fixed foreground allowlisted profiles; no arbitrary shell string, git write, worktree write, failure repair, platform API, model invocation, MCP, subagent, or business source write' },
|
|
64
|
+
'subagents --adapter-dispatch': { category: 'confirm_required', reason: 'P8/P30 adapter dispatch requires explicit confirmation plus a passing explicit permission gate before writing one local adapter handoff sidecar from existing dispatch and platform capability artifacts; preview is read-only and neither path creates a session, calls platform APIs, invokes models, runs subagents, uses git, writes worktree, or mutates business source' },
|
|
65
|
+
'sdd --plan': { category: 'auto_safe', reason: 'Stage 149 SDD loop plan reads one local implementation plan and emits task brief plus implementer/reviewer/fixer dispatch intent without writing state, executing commands/tests/workflows, invoking models, platform APIs, subagents, git, worktree, or source writes' },
|
|
66
|
+
'sdd --task-brief': { category: 'confirm_required', reason: 'P16 SDD task brief previews read-only by default; explicit confirmation writes only local markdown plus JSON sidecars under SDD state and never executes commands/tests, calls platforms/models/subagents, mutates source, writes git, creates worktrees, PRs, pushes, or merges' },
|
|
67
|
+
'sdd --review-package': { category: 'confirm_required', reason: 'P17 SDD review package uses fixed read-only git rev-parse/log/diff commands for explicit base..head and active task brief/report digest binding; explicit confirmation writes only local diff markdown plus JSON sidecars under SDD state and never mutates source, runs tests, writes git, creates worktrees, commits, pushes, PRs, merges, calls platforms/models/MCP, or invokes subagents' },
|
|
68
|
+
'sdd --run-loop': { category: 'confirm_required', reason: 'Stage 149 SDD run-loop requires explicit confirmation and writes only local progress plus task brief and adapter dispatch sidecars for one pending task; it does not call subagents, invoke models/platform APIs, execute tests/commands, write source, use git, create worktrees, PRs, pushes, or merges' },
|
|
69
|
+
'sdd --evidence-chain': { category: 'confirm_required', reason: 'Stage 149 SDD evidence-chain requires explicit confirmation, runs only one fixed allowlisted test profile, reads fixed git diff summaries, and writes local evidence plus progress sidecars while preserving failure facts; it does not call subagents, invoke models/platform APIs, write source, use git write, create worktrees, PRs, pushes, or merges' },
|
|
70
|
+
'sdd --consume-adapter-result': { category: 'confirm_required', reason: 'P18 SDD adapter result consumption requires explicit confirmation and reads one local adapter result plus existing SDD dispatch/progress/report artifacts, validates DONE/QUESTIONS/BLOCKED report status, and writes only local progress and consumption sidecars; it does not call adapters, subagents, models, platform APIs, write source, use git write, create worktrees, PRs, pushes, or merges' },
|
|
71
|
+
'workspace --isolate-plan': { category: 'auto_safe', reason: 'Stage 150 workspace isolate-plan reads an optional local plan and emits an isolation contract preview only; no state write, source write, command/test execution, git, worktree creation, platform API, model, MCP, subagent, PR, push, or merge occurs' },
|
|
72
|
+
'workspace --create': { category: 'confirm_required', reason: 'Stage 150 workspace create requires explicit confirmation and writes only local workspace isolation contract sidecars under .vibecoding-state/workspaces; it does not create git worktrees, mutate source, execute commands/tests, write git, commit, push, PR, merge, call platform APIs, invoke models, MCP, or subagents' },
|
|
73
|
+
'workspace --status': { category: 'auto_safe', reason: 'Stage 150 workspace status reads local isolation contract sidecars only without state writes, source writes, command execution, git, worktree action, platform API, model, MCP, subagent, PR, push, or merge' },
|
|
74
|
+
'workspace --cleanup-plan': { category: 'auto_safe', reason: 'Stage 150 workspace cleanup-plan reads local isolation contract sidecars and emits manual cleanup guidance without deleting files, removing worktrees, running git, mutating source, or writing state' },
|
|
75
|
+
'source --patch-plan': { category: 'auto_safe', reason: 'P9 source patch plan reads one local task artifact and emits a sandbox patch plan, path allowlist, approval requirement, rollback guidance requirement, and post-apply evidence requirement without writing state/source, running commands/tests, git, platform APIs, model invocation, MCP, or subagents' },
|
|
76
|
+
'source --sandbox-apply': { category: 'confirm_required', reason: 'P9 sandbox apply is an explicit alias for the existing confirmed source sandbox sidecar path; it writes only local sandbox-run state and never writes main worktree, git, commits, pushes, PRs, platform APIs, models, MCP, subagents, or business source' },
|
|
77
|
+
'source --apply-to-worktree': { category: 'confirm_required', reason: 'P9 source apply-to-worktree requires explicit confirmation plus a verified merge approval and delegates to the existing Stage 48 controlled allowlisted apply; no git, commit, push, PR, daemon, watcher, hidden execution, platform API, model invocation, MCP, or subagent is allowed' },
|
|
78
|
+
'release --staged-commit-readiness': { category: 'auto_safe', reason: 'staged commit readiness binds a local Stage 118 runbook and local Stage 119 execution evidence while keeping commit_allowed_by_contract=false and never invoking git' },
|
|
79
|
+
'release --closeout-readiness': { category: 'auto_safe', reason: 'P13 closeout readiness reads local SDD ledger, test evidence, diff evidence, and task commit readiness JSON to recommend manual commit, no-commit, PR, or stop without writing state, running git, pushing, opening PRs, merging, platform APIs, models, MCP, subagents, worktrees, or source writes' },
|
|
80
|
+
'release --task-commit-readiness': { category: 'auto_safe', reason: 'Stage 151 task commit readiness reads one local task result, requires superpowers-parity-task-commits, isolated workspace evidence, clean review, passing required tests, non-main branch evidence, and a commit subject while keeping runtime git execution false and writing nothing' },
|
|
81
|
+
'release --task-commit': { category: 'confirm_required', reason: 'Stage 151 task commit gate requires explicit confirmation and a passing task commit readiness artifact to write only a local manual git decision sidecar; it does not run git add, commit, push, PR, merge, checks, tests, source writes, platform APIs, models, MCP, or subagents' },
|
|
82
|
+
'review --intake': { category: 'auto_safe', reason: 'review intake reads local review feedback and optional plan manifest without invoking reviewers, repair_execution, platform APIs, or git' },
|
|
83
|
+
'review --resolution': { category: 'auto_safe', reason: 'review resolution reads local intake and repair evidence without invoking reviewers, repair_execution, platform APIs, or git' },
|
|
84
|
+
'governance --compatibility --report': { category: 'auto_safe', reason: 'compatibility report is deterministic and read-only' },
|
|
85
|
+
'governance --pr-readiness': { category: 'confirm_required', reason: 'PR readiness can write a local governance sidecar only after explicit confirmation' },
|
|
86
|
+
'governance --pr-review-intake': { category: 'confirm_required', reason: 'PR review intake can write local governance intake only after explicit confirmation' },
|
|
87
|
+
'governance --convergence --report': { category: 'auto_safe', reason: 'convergence report is deterministic and read-only' },
|
|
88
|
+
'governance --superpowers-gap': { category: 'auto_safe', reason: 'Superpowers gap matrix reads local comparison sources and registry only; no execution, network, platform API, git, subagent, or state write' },
|
|
89
|
+
'governance --superpowers-regression-guard': { category: 'auto_safe', reason: 'Stage 125 Superpowers regression guard aggregates local Stage 115-124 signals without running commands, writing artifacts, invoking git/platform APIs, or dispatching subagents' },
|
|
90
|
+
'governance --experience-friction': { category: 'auto_safe', reason: 'Stage 126 experience friction matrix reads one local session evidence JSON and deterministically scores daily-use friction without command execution, state writes, git, platform APIs, model invocation, or subagents' },
|
|
91
|
+
'governance --experience-dashboard': { category: 'auto_safe', reason: 'Stage 132 experience regression dashboard reads local Stage 126 friction plus optional Stage 127 console, Stage 128 token budget, and Stage 129 learning pattern JSON to report deterministic UX scorecard deltas, blockers, and next bet without command execution, state writes, dashboard artifacts, git, platform APIs, model invocation, MCP, or subagents' },
|
|
92
|
+
'governance --experience-upgrades': { category: 'auto_safe', reason: 'Stage 139 experience upgrade prioritizer reads local Stage 133 comparison, local Stage 132 dashboard, and optional Stage 137 install experience JSON to rank upgrade candidates, recommended stage order, and deferrals without executing upgrades, writing artifacts, prompt mutation, hook registration, git, platform APIs, model invocation, MCP, or subagents' },
|
|
93
|
+
'governance --superpowers-parity-scorecard': { category: 'auto_safe', reason: 'Stage 140 Superpowers parity scorecard reads local Stage 133 comparison, Stage 135 entry discipline, Stage 137 install experience, and Stage 139 upgrades JSON to explain absorbed advantages, remaining gaps, do-not-cross boundaries, and next-cycle bet without writing artifacts, injecting full skills, executing checks/evals/workflows, git, platform APIs, model invocation, MCP, or subagents' },
|
|
94
|
+
'governance --contributor-guardrails': { category: 'auto_safe', reason: 'Stage 146 contributor guardrail evidence reads local Stage 140 parity scorecard JSON and local Stage 143 next-action evidence prompts JSON to emit guardrail findings, required disclosures, unsafe closeout risks, and a non-authorizing closeout contract without creating PRs, searching remote PR/review state, pushing, merging, running commands/checks/tests/workflows, auto-fixing, writing artifacts/state/source, git, platform APIs, model invocation, MCP, or subagents' },
|
|
95
|
+
'governance --subagent-permission': { category: 'auto_safe', reason: 'Stage 147 subagent permission visibility reads local Stage 140 parity scorecard JSON and local Stage 146 contributor guardrails JSON to emit permission gates, brief requirements, must-ask-user-first prompts, and a non-authorizing visibility contract without subagent dispatch, session creation, hidden handoff, running commands/checks/tests/workflows, writing artifacts/state/source, git, PR, push, merge, platform APIs, model invocation, MCP, or worktree action' },
|
|
96
|
+
'governance --superpowers-comparison': { category: 'auto_safe', reason: 'Stage 133 Superpowers comparative evidence matrix reads local fork/superpowers and Vibecoding source files to report parity gaps, Vibecoding advantages, borrowable patterns, do-not-copy boundaries, recommended stages, and next comparison bet without command execution, hook execution, checks, tests, state writes, comparison artifacts, git, platform APIs, model invocation, MCP, or subagents' },
|
|
97
|
+
'governance --traceability-map': { category: 'auto_safe', reason: 'skill-to-runtime traceability map reads local skill files and the runtime capability registry without executing skills, checks, git, subagents, or writing state' },
|
|
98
|
+
'governance --advice': { category: 'advice_only', reason: 'governance advice explains closeout lanes without running release actions' },
|
|
99
|
+
'governance --surface': { category: 'auto_safe', reason: 'capability surface is deterministic read-only inventory' },
|
|
100
|
+
'governance --surface --drift-guard': { category: 'auto_safe', reason: 'drift guard checks local contracts without writing state' },
|
|
101
|
+
'automation --readiness': { category: 'auto_safe', reason: 'automation readiness matrix only classifies capabilities' },
|
|
102
|
+
'automation --one-shot-plan': { category: 'auto_safe', reason: 'confirmed one-shot plan contract binds local readiness evidence while keeping actions_executed=false and execution_authorized=false' },
|
|
103
|
+
'automation --stage-runbook': { category: 'auto_safe', reason: 'sequential stage runbook derives ordered local stage control-plane steps and attaches a Stage 9 runbook executor preview dry-run contract without executing commands, writing runbooks, mutating source, or invoking git/subagents' },
|
|
104
|
+
'automation --stage-scriptlet': { category: 'auto_safe', reason: 'Stage 130 copy-ready stage execution scriptlet reads local Stage 118 runbook and optional Stage 127 console JSON to render PowerShell command previews, expected markers, evidence capture template, and stop conditions without executing commands, running smoke/check/test, writing evidence or sidecars, mutating source, git add/commit/push/PR/merge, platform APIs, model invocation, MCP, or subagents' },
|
|
105
|
+
'evals --catalog': { category: 'auto_safe', reason: 'eval catalog reads builtin suite metadata without writing state or running sessions' },
|
|
106
|
+
'evals --run-contract': { category: 'confirm_required', reason: 'eval suite/run/report sidecars may be written only after explicit confirmation' },
|
|
107
|
+
'evals --run-scenario': { category: 'confirm_required', reason: 'eval suite/run/report sidecars may be written only after explicit confirmation' },
|
|
108
|
+
'evals --run-behavior': { category: 'confirm_required', reason: 'eval suite/run/report sidecars may be written only after explicit confirmation' },
|
|
109
|
+
'evals --run-adversarial': { category: 'confirm_required', reason: 'eval suite/run/report sidecars may be written only after explicit confirmation' },
|
|
110
|
+
'evals --behavior-contract': { category: 'auto_safe', reason: 'behavior contract reads a local transcript artifact and returns a deterministic report without writing state or invoking git/subagents' },
|
|
111
|
+
'evals --transcript-intake': { category: 'auto_safe', reason: 'P21 platform transcript intake reads one local platform-exported JSON inside the project root, validates transcript shape and boundary markers, and returns a normalized report without executing transcript commands, writing state/source, git, platform APIs, model invocation, MCP, or subagents' },
|
|
112
|
+
'evals --superpowers-style-pack': { category: 'auto_safe', reason: 'Stage 138 Superpowers-style behavioral eval scenario pack reads one local Stage 133 comparison JSON to emit deterministic scenario contracts without eval execution, agent sessions, model judges, command execution, state writes, git, platform APIs, model invocation, MCP, or subagents' },
|
|
113
|
+
'evals --local-behavior-contracts': { category: 'auto_safe', reason: 'Stage 145 local behavior eval contracts read local Stage 138 Superpowers-style eval scenario pack JSON and local Stage 141 entry tightening JSON to emit deterministic contract cases, local judge definitions, and live-eval deferrals without running evals, creating agent sessions, invoking model judges, writing artifacts/state/source, mutating prompts/templates/skills/hooks, git, platform APIs, MCP, or subagents' },
|
|
114
|
+
'evals --verify': { category: 'auto_safe', reason: 'eval verify reads and verifies an existing local eval artifact without writing state' },
|
|
115
|
+
'platforms --catalog': { category: 'auto_safe', reason: 'platform catalog reads builtin platform capability metadata without platform API calls or state writes' },
|
|
116
|
+
'platforms --bootstrap-matrix': { category: 'auto_safe', reason: 'adapter bootstrap matrix reads local adapter manifests and install docs without installing adapters, executing hooks, writing state, git, or platform APIs' },
|
|
117
|
+
'platforms --entry-acceptance': { category: 'auto_safe', reason: 'Stage 131 adapter entry acceptance reads one local adapter transcript JSON and deterministically validates using-vibecoding entry, lightweight routing, visible next action, workflow explanation, and no auto execution without running adapters, hooks, workflow skills, platform APIs, models, MCP, subagents, git, or writing state' },
|
|
118
|
+
'platforms --session-start-shape': { category: 'auto_safe', reason: 'Stage 134 session-start shape acceptance reads one local captured session-start output and deterministically validates adapter-specific additionalContext/additional_context shape, using-vibecoding lightweight routing markers, and no full skill injection or auto execution without running hooks, adapters, checks, tests, workflow skills, platform APIs, models, MCP, subagents, git, or writing state' },
|
|
119
|
+
'platforms --session-start-examples': { category: 'auto_safe', reason: 'Stage 142 session-start example pack reads local Stage 134 shape acceptance JSON and local Stage 137 install experience JSON to emit copy-ready adapter output examples, context shapes, and format warnings without writing examples, executing hooks/adapters/workflows/skills/commands/checks/tests, mutating prompts/templates/skills/manifests/docs/source, installing adapters, state writes, git, platform APIs, model invocation, MCP, subagents, or worktree action' },
|
|
120
|
+
'platforms --adapter-packaging-consistency': { category: 'auto_safe', reason: 'Stage 148 adapter packaging consistency reads local Stage 122 bootstrap matrix JSON and local Stage 142 session-start examples JSON to emit adapter rows, missing install markers, and copy-ready fix notes without installing adapters, executing hooks/adapters/commands/checks/tests/workflows, mutating plugin manifests/install docs/source/prompts/templates/skills, writing state/artifacts, git, platform APIs, model invocation, MCP, subagents, or worktree action' },
|
|
121
|
+
'platforms --install-experience': { category: 'auto_safe', reason: 'Stage 137 install experience score reads local Stage 122 bootstrap matrix JSON and Stage 131 entry acceptance JSON to score natural entry, adapter consistency, manual steps remaining, and docs friction without installing adapters, executing hooks, writing state, git, platform APIs, model invocation, MCP, or subagents' },
|
|
122
|
+
'platforms --probe': { category: 'confirm_required', reason: 'platform probe can write a local capability sidecar only after explicit confirmation' },
|
|
123
|
+
'platforms --list': { category: 'auto_safe', reason: 'platform artifact list reads local capability artifacts without platform API calls' },
|
|
124
|
+
'platforms --show': { category: 'auto_safe', reason: 'platform artifact show reads one local capability artifact without platform API calls' },
|
|
125
|
+
'platforms --verify': { category: 'auto_safe', reason: 'platform artifact verify reads and validates one local capability artifact without platform API calls' },
|
|
126
|
+
'tokens --catalog': { category: 'auto_safe', reason: 'token catalog is deterministic and read-only' },
|
|
127
|
+
'tokens --compact-output': { category: 'auto_safe', reason: 'token compact output is deterministic local text transformation guidance' },
|
|
128
|
+
'tokens --profile': { category: 'auto_safe', reason: 'token profile reports deterministic local token economy metadata' },
|
|
129
|
+
'tokens --metrics': { category: 'auto_safe', reason: 'token metrics read local compaction evidence without executing models' },
|
|
130
|
+
'tokens --rewrite-preview': { category: 'auto_safe', reason: 'token rewrite preview is read-only and does not mutate source' },
|
|
131
|
+
'tokens --advice': { category: 'advice_only', reason: 'token advice recommends deterministic token-saving actions without performing them' },
|
|
132
|
+
'tokens --savior-budget': { category: 'auto_safe', reason: 'Stage 128 Token Savior entry budget reads an explicit prompt and optional local Stage 126 friction JSON to recommend deterministic context budgets, skill surfacing, deferrals, and preview-only commands without embeddings, model invocation, remote config, dynamic tool execution, command execution, state writes, git, platform APIs, or subagents' },
|
|
133
|
+
'tokens --entry-defaults': { category: 'auto_safe', reason: 'Stage 144 context budget entry defaults read local Stage 128 token budget JSON and local Stage 140 parity scorecard JSON to recommend lightweight entry context, deferrals, and token-saving boundaries without embeddings, model invocation, remote config, full skill injection, prompt/template/skill/hook mutation, command execution, state writes, git, platform APIs, MCP, or subagents' },
|
|
134
|
+
'learning --observe': { category: 'confirm_required', reason: 'learning observation can write local learning sidecar only after explicit confirmation' },
|
|
135
|
+
'learning --observe-from-run': { category: 'auto_safe', reason: 'learning run observation preview reads one local JSON input and proposes observation plus candidate instinct without writing state, formal skills, prompts, hooks, git, platform APIs, models, MCP, subagents, or business source' },
|
|
136
|
+
'learning --instincts': { category: 'auto_safe', reason: 'learning instincts lists local candidate evidence without mutating skills' },
|
|
137
|
+
'learning --promote': { category: 'confirm_required', reason: 'learning promotion can write a local promotion sidecar but must not mutate skills automatically' },
|
|
138
|
+
'learning --advice': { category: 'advice_only', reason: 'learning advice can explain promotion boundaries but does not mutate skills' },
|
|
139
|
+
'learning --experience-pattern': { category: 'auto_safe', reason: 'Stage 129 ECC learning experience pattern gate reads local Stage 126 friction and optional verified Stage 61 observations to propose candidate-only experience patterns without automatic promotion, skill mutation, prompt mutation, hook registration, command execution, agent-first delegation, git, platform APIs, model invocation, MCP, or subagents' },
|
|
140
|
+
'methodology --catalog': { category: 'auto_safe', reason: 'methodology catalog is deterministic and read-only' },
|
|
141
|
+
'methodology --route': { category: 'advice_only', reason: 'methodology route recommends workflow direction without executing it' },
|
|
142
|
+
'methodology --coverage-map': { category: 'auto_safe', reason: 'Stage 136 methodology coverage map reads local fork/superpowers and Vibecoding source files to report covered, partial, missing, and Vibecoding-specific methodology patterns without command execution, hook execution, adapter execution, workflow execution, skill execution, state writes, git, platform APIs, model invocation, MCP, or subagents' },
|
|
143
|
+
'planner --lint': { category: 'auto_safe', reason: 'planner lint is deterministic and read-only' },
|
|
144
|
+
'planner --action-manifest': { category: 'auto_safe', reason: 'plan-to-action manifest deterministically derives local expectations while keeping execution_authorized=false' },
|
|
145
|
+
'planner --executable-plan': { category: 'auto_safe', reason: 'executable plan quality contract scores local plan structure without executing checks, repairing plans, writing state, git, or dispatching subagents' },
|
|
146
|
+
'verification --self-test-profile': { category: 'auto_safe', reason: 'self-test gate profile deterministically classifies check expectations while keeping execution_authorized=false' },
|
|
147
|
+
'verification --evidence-intake': { category: 'auto_safe', reason: 'evidence intake validates local evidence structure, freshness, and gate coverage without executing checks' },
|
|
148
|
+
'verification --execution-evidence': { category: 'auto_safe', reason: 'execution evidence binding reads a local Stage 118 runbook and local evidence JSON without executing commands, writing evidence, mutating source, git, or dispatching subagents' },
|
|
149
|
+
'verification --tdd-trace': { category: 'auto_safe', reason: 'TDD trace contract reads local RED-GREEN-REFACTOR evidence without executing tests, checks, repair_execution, git, or writing artifacts' },
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
const forbiddenAutomationEntries = [
|
|
153
|
+
{ capability: 'git write automation', command: 'git commit|push|merge|tag|reset|checkout', reason: 'git history and remote state require explicit user action outside Stage 103' },
|
|
154
|
+
{ capability: 'platform automation', command: 'platform api|pull request|external review', reason: 'platform and PR side effects are outside the local deterministic readiness matrix' },
|
|
155
|
+
{ capability: 'external network automation', command: 'network|remote service', reason: 'Stage 103 is local-only and does not call external systems' },
|
|
156
|
+
{ capability: 'model invocation automation', command: 'model|llm|agent generation', reason: 'Stage 103 must not invoke models or depend on nondeterministic generation' },
|
|
157
|
+
{ capability: 'subagent session automation', command: 'subagent|session create|agent dispatch', reason: 'subagent/session creation requires explicit user permission and later gates' },
|
|
158
|
+
{ capability: 'business source mutation', command: 'write business source|auto-fix|auto-edit', reason: 'Stage 103 classifies runtime capabilities and never mutates business code' },
|
|
159
|
+
{ capability: 'one-shot execution', command: 'automation --once|automation --run|execute action', reason: 'actual one-shot execution remains outside Stage 103 and Stage 108 read-only plan contracts' },
|
|
160
|
+
];
|
|
161
|
+
|
|
162
|
+
export function runtimeAutomationReadinessMatrix(registry, registryDigest = '') {
|
|
163
|
+
const matrixEntries = registry.capability_groups.flatMap((group) => group.commands.map((command) => {
|
|
164
|
+
const classification = commandClassifications[command];
|
|
165
|
+
return {
|
|
166
|
+
stage: group.stages.join(', '),
|
|
167
|
+
stages: group.stages,
|
|
168
|
+
capability: `${group.group} capability command`,
|
|
169
|
+
command,
|
|
170
|
+
group: group.group,
|
|
171
|
+
category: classification?.category || 'unclassified',
|
|
172
|
+
reason: classification?.reason || 'missing explicit automation readiness classification',
|
|
173
|
+
};
|
|
174
|
+
}));
|
|
175
|
+
|
|
176
|
+
const categorized = Object.fromEntries(readinessCategories.map((item) => [item.category, []]));
|
|
177
|
+
for (const entry of matrixEntries) {
|
|
178
|
+
if (categorized[entry.category]) categorized[entry.category].push(entry);
|
|
179
|
+
}
|
|
180
|
+
categorized.forbidden = forbiddenAutomationEntries.map((item) => ({
|
|
181
|
+
stage: automationReadinessStage,
|
|
182
|
+
stages: [automationReadinessStage],
|
|
183
|
+
group: 'automation-boundary',
|
|
184
|
+
category: 'forbidden',
|
|
185
|
+
...item,
|
|
186
|
+
}));
|
|
187
|
+
|
|
188
|
+
const boundaryAssertions = runtimeAutomationReadinessBoundaryAssertions();
|
|
189
|
+
const autopilotLabProfile = buildAutopilotLabProfileContract();
|
|
190
|
+
const matrix = {
|
|
191
|
+
version: 1,
|
|
192
|
+
stage: automationReadinessStage,
|
|
193
|
+
readiness_kind: automationReadinessKind,
|
|
194
|
+
registry_stage: registry.registry_stage,
|
|
195
|
+
registry_kind: registry.registry_kind,
|
|
196
|
+
registry_version: registry.registry_version,
|
|
197
|
+
registry_digest: registryDigest,
|
|
198
|
+
categories: readinessCategories,
|
|
199
|
+
category_counts: Object.fromEntries(Object.entries(categorized).map(([key, value]) => [key, value.length])),
|
|
200
|
+
matrix_entries: matrixEntries,
|
|
201
|
+
categorized,
|
|
202
|
+
autopilot_lab_profile: autopilotLabProfile,
|
|
203
|
+
transition_contract: {
|
|
204
|
+
automation_readiness_only: true,
|
|
205
|
+
automation_plan_created: false,
|
|
206
|
+
one_shot_execution_created: false,
|
|
207
|
+
next_stage: 'Stage 104 workflow loop contract, Stage 105 plan-to-action manifest, Stage 106 self-test gate profile, Stage 107 commit readiness envelope, Stage 108 confirmed one-shot execution plan, Stage 109 close-loop dashboard, Stage 110 evidence intake, Stage 111 diff coverage, Stage 112 review intake/resolution, Stage 113 TDD trace contract, Stage 114 human-friendly runtime aliases, Stage 115 Superpowers gap matrix, Stage 116 progressive entry UX contract, Stage 117 executable plan quality contract, Stage 118 sequential stage runbook with Stage 9 runbook executor preview, Stage 119 execution evidence binding, Stage 120 staged commit readiness, Stage 121 behavioral evaluation contract, Stage 122 adapter bootstrap conformance matrix, Stage 123 skill-to-runtime traceability map, Stage 124 human completion evidence bundle, Stage 125 Superpowers regression guard, Stage 126 experience friction matrix, Stage 127 one-screen next action console, Stage 128 Token Savior entry budget, Stage 129 ECC learning experience pattern gate, Stage 130 copy-ready stage execution scriptlet, Stage 131 adapter entry acceptance contract, Stage 132 experience regression dashboard, Stage 133 Superpowers comparative evidence matrix, Stage 134 session-start shape acceptance, Stage 135 entry trigger discipline contract, Stage 136 methodology coverage map, Stage 137 install experience score, Stage 138 Superpowers-style behavioral eval scenario pack, Stage 139 experience upgrade prioritizer, Stage 140 Superpowers parity scorecard, Stage 141 entry trigger tightening, Stage 142 session-start example pack, and Stage 143 next-action evidence prompts may prepare or validate local evidence, context budget expectations, candidate learning patterns, manual script previews, installed-entry transcripts, UX scorecard baselines, Superpowers parity gap evidence, captured session-start output shape evidence, transcript trigger-discipline evidence, methodology coverage evidence, install experience scoring evidence, scenario contracts, upgrade ordering, parity closeout, copy-ready entry-opening guidance, copy-ready session-start adapter examples, and next-action evidence prompt cards before any separate manual execution decision; Stage 103 must not run checks or commit automatically.',
|
|
208
|
+
confirmed_execution_boundary: 'Confirmed one-shot execution planning may be represented by Stage 108, but actual execution remains outside Stage 103 and Stage 108.',
|
|
209
|
+
},
|
|
210
|
+
boundary_assertions: boundaryAssertions,
|
|
211
|
+
writes: false,
|
|
212
|
+
state_directory_created: false,
|
|
213
|
+
local_only: true,
|
|
214
|
+
deterministic: true,
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
const invariants = runtimeAutomationReadinessInvariants(matrix, registry);
|
|
218
|
+
return {
|
|
219
|
+
...matrix,
|
|
220
|
+
readiness_invariants: invariants,
|
|
221
|
+
manual_action: invariants.pass
|
|
222
|
+
? 'Automation readiness matrix is complete. Use it only as boundary input to future read-only contracts; do not execute classified commands from Stage 103.'
|
|
223
|
+
: 'Fix the listed automation readiness classification gaps before using this matrix for later automation boundary planning.',
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export function runtimeAutomationReadinessInvariants(matrix, registry) {
|
|
228
|
+
const validCategories = new Set(readinessCategories.map((item) => item.category));
|
|
229
|
+
const entryKeys = matrix.matrix_entries.map((item) => `${item.group}:${item.command}`);
|
|
230
|
+
const duplicateEntries = entryKeys.filter((item, index, items) => items.indexOf(item) !== index);
|
|
231
|
+
const unclassified = matrix.matrix_entries
|
|
232
|
+
.filter((item) => !validCategories.has(item.category) || item.category === 'forbidden')
|
|
233
|
+
.map((item) => `${item.group}:${item.command}:${item.category}`);
|
|
234
|
+
const registryCommandKeys = registry.capability_groups.flatMap((group) => group.commands.map((command) => `${group.group}:${command}`));
|
|
235
|
+
const missingRegistryCommands = registryCommandKeys
|
|
236
|
+
.filter((item) => !entryKeys.includes(item));
|
|
237
|
+
const unsafeAutoSafe = matrix.matrix_entries
|
|
238
|
+
.filter((item) => item.category === 'auto_safe')
|
|
239
|
+
.filter((item) => item.command !== 'governance --subagent-permission')
|
|
240
|
+
.filter((item) => /--confirm|--run|--dispatch|--write|--once|--scan|subagent|push|merge|--pr-|\bpr\b/i.test(item.command))
|
|
241
|
+
.map((item) => `${item.group}:${item.command}`);
|
|
242
|
+
const writableCommandsOutsideConfirm = matrix.matrix_entries
|
|
243
|
+
.filter((item) => item.command !== 'learning --observe-from-run')
|
|
244
|
+
.filter((item) => /--gate|--notes|--observe|--promote|--pr-readiness|--pr-review-intake/i.test(item.command))
|
|
245
|
+
.filter((item) => item.category !== 'confirm_required')
|
|
246
|
+
.map((item) => `${item.group}:${item.command}:${item.category}`);
|
|
247
|
+
const writableBoundaries = Object.entries(matrix.boundary_assertions)
|
|
248
|
+
.filter(([, value]) => value !== false)
|
|
249
|
+
.map(([key]) => key);
|
|
250
|
+
const missingForbiddenBoundaries = ['git_write', 'push', 'pr', 'merge', 'platform_api', 'external_network', 'model_invocation', 'subagent', 'business_source_write']
|
|
251
|
+
.filter((key) => matrix.boundary_assertions[key] !== false);
|
|
252
|
+
const missingCategories = readinessCategories
|
|
253
|
+
.map((item) => item.category)
|
|
254
|
+
.filter((category) => !Object.prototype.hasOwnProperty.call(matrix.categorized, category));
|
|
255
|
+
|
|
256
|
+
const findings = [
|
|
257
|
+
...duplicateEntries.map((item) => `duplicate automation readiness entry: ${item}`),
|
|
258
|
+
...unclassified.map((item) => `missing explicit automation readiness classification: ${item}`),
|
|
259
|
+
...missingRegistryCommands.map((item) => `registry capability command missing from matrix: ${item}`),
|
|
260
|
+
...unsafeAutoSafe.map((item) => `auto_safe entry must remain read-only and non-dispatching: ${item}`),
|
|
261
|
+
...writableCommandsOutsideConfirm.map((item) => `write-capable command must be confirm_required: ${item}`),
|
|
262
|
+
...writableBoundaries.map((item) => `boundary assertion must remain false: ${item}`),
|
|
263
|
+
...missingForbiddenBoundaries.map((item) => `forbidden boundary missing or not false: ${item}`),
|
|
264
|
+
...(matrix.autopilot_lab_profile?.autopilot_lab_gate_pass === true ? [] : ['autopilot-lab profile budget contract must pass']),
|
|
265
|
+
...(matrix.autopilot_lab_profile?.ready_for_runtime_action === false ? [] : ['autopilot-lab readiness must not authorize runtime action']),
|
|
266
|
+
...(matrix.autopilot_lab_profile?.boundary_assertions?.command_execution === false ? [] : ['autopilot-lab command execution boundary must remain false']),
|
|
267
|
+
...missingCategories.map((item) => `missing automation readiness category: ${item}`),
|
|
268
|
+
];
|
|
269
|
+
|
|
270
|
+
return {
|
|
271
|
+
pass: findings.length === 0,
|
|
272
|
+
checked: [
|
|
273
|
+
'registry_capability_command_coverage',
|
|
274
|
+
'explicit_command_classifications',
|
|
275
|
+
'category_partition',
|
|
276
|
+
'auto_safe_read_only_boundary',
|
|
277
|
+
'confirm_required_write_boundary',
|
|
278
|
+
'forbidden_boundary_assertions',
|
|
279
|
+
'transition_contract',
|
|
280
|
+
'autopilot_lab_profile_budget_contract',
|
|
281
|
+
],
|
|
282
|
+
findings,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export function runtimeAutomationReadinessBoundaryAssertions() {
|
|
287
|
+
return {
|
|
288
|
+
automation_readiness_artifact: false,
|
|
289
|
+
automation_plan_artifact: false,
|
|
290
|
+
one_shot_execution_artifact: false,
|
|
291
|
+
sidecar_write: false,
|
|
292
|
+
state_directory_created: false,
|
|
293
|
+
command_execution: false,
|
|
294
|
+
check_execution: false,
|
|
295
|
+
test_execution: false,
|
|
296
|
+
runtime_action: false,
|
|
297
|
+
workflow_execution: false,
|
|
298
|
+
verification_execution: false,
|
|
299
|
+
scheduler: false,
|
|
300
|
+
daemon: false,
|
|
301
|
+
retry: false,
|
|
302
|
+
git: false,
|
|
303
|
+
git_write: false,
|
|
304
|
+
pr: false,
|
|
305
|
+
push: false,
|
|
306
|
+
merge: false,
|
|
307
|
+
tag: false,
|
|
308
|
+
platform_api: false,
|
|
309
|
+
external_network: false,
|
|
310
|
+
model_invocation: false,
|
|
311
|
+
subagent: false,
|
|
312
|
+
mcp: false,
|
|
313
|
+
worktree: false,
|
|
314
|
+
business_source_write: false,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export function runtimeAutomationReadinessDigestPayload(matrix) {
|
|
319
|
+
return {
|
|
320
|
+
stage: matrix.stage,
|
|
321
|
+
readiness_kind: matrix.readiness_kind,
|
|
322
|
+
registry_stage: matrix.registry_stage,
|
|
323
|
+
registry_kind: matrix.registry_kind,
|
|
324
|
+
registry_version: matrix.registry_version,
|
|
325
|
+
registry_digest: matrix.registry_digest,
|
|
326
|
+
categories: matrix.categories,
|
|
327
|
+
category_counts: matrix.category_counts,
|
|
328
|
+
matrix_entries: matrix.matrix_entries,
|
|
329
|
+
categorized: matrix.categorized,
|
|
330
|
+
autopilot_lab_profile: matrix.autopilot_lab_profile,
|
|
331
|
+
transition_contract: matrix.transition_contract,
|
|
332
|
+
boundary_assertions: matrix.boundary_assertions,
|
|
333
|
+
readiness_invariants: matrix.readiness_invariants,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export function digestAutomationReadiness(value) {
|
|
338
|
+
return crypto.createHash('sha256').update(stableStringify(value)).digest('hex');
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
function stableStringify(value) {
|
|
342
|
+
if (Array.isArray(value)) return `[${value.map((item) => stableStringify(item)).join(',')}]`;
|
|
343
|
+
if (value && typeof value === 'object') {
|
|
344
|
+
return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`).join(',')}}`;
|
|
345
|
+
}
|
|
346
|
+
return JSON.stringify(value);
|
|
347
|
+
}
|