@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,412 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
|
|
4
|
+
import { readonlyLocalJsonEnvelope } from './runtime-readonly-local-json-output-envelope.mjs';
|
|
5
|
+
import {
|
|
6
|
+
bootstrapAcceptanceBoundaryAssertions,
|
|
7
|
+
bootstrapAcceptanceExpectedBehavior,
|
|
8
|
+
bootstrapPromptIntent,
|
|
9
|
+
entryAutomationProfile,
|
|
10
|
+
} from './runtime-entry-advice-model.mjs';
|
|
11
|
+
import { createRuntimeWorkflowEntryEnvelopes } from './runtime-workflow-entry-envelopes.mjs';
|
|
12
|
+
import {
|
|
13
|
+
buildWorkflowReadinessModel,
|
|
14
|
+
normalizeWorkflowReadinessIntent,
|
|
15
|
+
workflowReadinessAdviceIntent,
|
|
16
|
+
workflowReadinessBoundaryAssertions,
|
|
17
|
+
workflowReadinessGateKinds,
|
|
18
|
+
workflowReadinessGatePreview,
|
|
19
|
+
workflowReadinessRouteIntent,
|
|
20
|
+
} from './runtime-workflow-readiness-model.mjs';
|
|
21
|
+
import {
|
|
22
|
+
buildAdviceHubModel,
|
|
23
|
+
adviceHubLaneMapping,
|
|
24
|
+
normalizeAdviceHubIntent,
|
|
25
|
+
} from './runtime-advice-hub-model.mjs';
|
|
26
|
+
import {
|
|
27
|
+
buildWorkflowCockpitModel,
|
|
28
|
+
onboardingBriefBoundaryAssertions,
|
|
29
|
+
onboardingBriefLines,
|
|
30
|
+
workflowSequenceBoundaryAssertions,
|
|
31
|
+
workflowSequenceDefinition,
|
|
32
|
+
} from './runtime-workflow-ux-model.mjs';
|
|
33
|
+
|
|
34
|
+
function readInstalledAutomationProfile(root) {
|
|
35
|
+
const file = path.join(root, '.vibecoding', 'config.json');
|
|
36
|
+
if (!fs.existsSync(file)) return { profile: entryAutomationProfile('vibe-guided'), source: 'vibe-guided-no-config' };
|
|
37
|
+
try {
|
|
38
|
+
const config = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
39
|
+
return {
|
|
40
|
+
profile: entryAutomationProfile(config.automation_profile),
|
|
41
|
+
source: config.automation_profile === 'superpowers-parity' ? 'installed-config' : 'installed-config-vibe-guided',
|
|
42
|
+
};
|
|
43
|
+
} catch {
|
|
44
|
+
return { profile: entryAutomationProfile('vibe-guided'), source: 'vibe-guided-invalid-config' };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function createRuntimeInteractionWorkflowEnvelopes(deps) {
|
|
49
|
+
const {
|
|
50
|
+
ensureRoot,
|
|
51
|
+
workflowPath,
|
|
52
|
+
stateDirectory,
|
|
53
|
+
localTextEvidenceDescriptor,
|
|
54
|
+
methodologyGateKinds,
|
|
55
|
+
methodologyRouteEnvelope,
|
|
56
|
+
methodologyEnvelope,
|
|
57
|
+
readinessEnvelope,
|
|
58
|
+
planLintEnvelope,
|
|
59
|
+
runtimeAutomationReadinessEnvelope,
|
|
60
|
+
runtimeCapabilityRegistry,
|
|
61
|
+
tokenAdviceEnvelope,
|
|
62
|
+
learningAdviceEnvelope,
|
|
63
|
+
governanceAdviceEnvelope,
|
|
64
|
+
digestObject,
|
|
65
|
+
digestWorkflowLoopContract,
|
|
66
|
+
runtimeWorkflowLoopContract,
|
|
67
|
+
runtimeWorkflowLoopContractDigestPayload,
|
|
68
|
+
digestProgressiveEntryUx,
|
|
69
|
+
runtimeProgressiveEntryUx,
|
|
70
|
+
runtimeProgressiveEntryUxDigestPayload,
|
|
71
|
+
digestEntryTriggerDiscipline,
|
|
72
|
+
runtimeEntryTriggerDiscipline,
|
|
73
|
+
runtimeEntryTriggerDisciplineDigestPayload,
|
|
74
|
+
} = deps;
|
|
75
|
+
|
|
76
|
+
function adviceHubEnvelope(root, { intent = '' } = {}) {
|
|
77
|
+
const inputIntent = String(intent || '').trim();
|
|
78
|
+
const normalizedIntent = normalizeAdviceHubIntent(inputIntent);
|
|
79
|
+
const laneMapping = adviceHubLaneMapping(normalizedIntent);
|
|
80
|
+
return buildAdviceHubModel({
|
|
81
|
+
intent,
|
|
82
|
+
entryEnvelope: entryAdviceEnvelope(root, laneMapping.entry),
|
|
83
|
+
tokenEnvelope: tokenAdviceEnvelope(root, { intent: laneMapping.tokens }),
|
|
84
|
+
learningEnvelope: learningAdviceEnvelope(root, { intent: laneMapping.learning }),
|
|
85
|
+
governanceEnvelope: governanceAdviceEnvelope(root, { intent: laneMapping.governance }),
|
|
86
|
+
statePresent: fs.existsSync(stateDirectory(root)),
|
|
87
|
+
digestObject,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function workflowReadinessEnvelope(root, { intent = '' } = {}) {
|
|
92
|
+
ensureRoot(root);
|
|
93
|
+
const inputIntent = String(intent || '').trim();
|
|
94
|
+
const normalizedIntent = normalizeWorkflowReadinessIntent(inputIntent);
|
|
95
|
+
const routeEnvelope = methodologyRouteEnvelope(root, workflowReadinessRouteIntent(normalizedIntent));
|
|
96
|
+
const route = routeEnvelope.methodology_route;
|
|
97
|
+
const requiredGateKinds = workflowReadinessGateKinds(route, normalizedIntent, methodologyGateKinds);
|
|
98
|
+
const gatePreviews = requiredGateKinds.map((kind) => workflowReadinessGatePreview(methodologyEnvelope(root, kind, { persist: false })));
|
|
99
|
+
const runtimeReadiness = readinessEnvelope(root, { persist: false });
|
|
100
|
+
const adviceHub = adviceHubEnvelope(root, { intent: workflowReadinessAdviceIntent(normalizedIntent) });
|
|
101
|
+
const { readiness, blockedReasons, boundaryAssertions } = buildWorkflowReadinessModel({
|
|
102
|
+
inputIntent,
|
|
103
|
+
normalizedIntent,
|
|
104
|
+
route,
|
|
105
|
+
requiredGateKinds,
|
|
106
|
+
gatePreviews,
|
|
107
|
+
runtimeReadiness,
|
|
108
|
+
adviceHub,
|
|
109
|
+
digestObject,
|
|
110
|
+
});
|
|
111
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
112
|
+
mode: 'workflow-readiness-gate',
|
|
113
|
+
ok: true,
|
|
114
|
+
payloadKey: 'workflow_readiness',
|
|
115
|
+
payload: readiness,
|
|
116
|
+
extra: { methodology_route: route },
|
|
117
|
+
safety: { stage: 'Stage 85', ...boundaryAssertions },
|
|
118
|
+
quality: blockedReasons,
|
|
119
|
+
action: 'workflow readiness was computed read-only from methodology route, methodology gate previews, observability readiness summary, and unified advice hub. No state directory, workflow readiness artifact, methodology gate write, sidecar, workflow skill execution, command execution, runtime action, PR, push, merge, tag, platform API, external network, model, git, worktree, subagent, MCP, ' + 'dae' + 'mon' + ', shell interception, or business source mutation occurred.',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function workflowCockpitEnvelope(root, { intent = '', planFile = '' } = {}) {
|
|
124
|
+
ensureRoot(root);
|
|
125
|
+
const normalizedIntent = normalizeWorkflowReadinessIntent(intent || 'unknown');
|
|
126
|
+
const readiness = workflowReadinessEnvelope(root, { intent: normalizedIntent });
|
|
127
|
+
const adviceEnvelope = adviceHubEnvelope(root, { intent: workflowReadinessAdviceIntent(normalizedIntent) });
|
|
128
|
+
const tokenEnvelope = tokenAdviceEnvelope(root, { intent: normalizedIntent === 'completion' ? 'verification' : normalizedIntent });
|
|
129
|
+
const learningEnvelope = learningAdviceEnvelope(root, { intent: normalizedIntent === 'debug' ? 'failure-fix' : 'review' });
|
|
130
|
+
const governanceEnvelope = governanceAdviceEnvelope(root, { intent: normalizedIntent === 'review' ? 'review' : normalizedIntent === 'completion' || normalizedIntent === 'release' ? 'closeout' : 'compatibility' });
|
|
131
|
+
const planLint = planFile ? planLintEnvelope(root, planFile).plan_lint : null;
|
|
132
|
+
const { cockpit, blockedReasons, boundaryAssertions } = buildWorkflowCockpitModel({
|
|
133
|
+
inputIntent: String(intent || '').trim(),
|
|
134
|
+
normalizedIntent,
|
|
135
|
+
readiness: readiness.workflow_readiness,
|
|
136
|
+
advice: adviceEnvelope.advice_hub,
|
|
137
|
+
planLint,
|
|
138
|
+
tokenAdvice: tokenEnvelope.token_advice,
|
|
139
|
+
learningAdvice: learningEnvelope.learning_advice,
|
|
140
|
+
governanceAdvice: governanceEnvelope.governance_advice,
|
|
141
|
+
});
|
|
142
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
143
|
+
mode: 'workflow-cockpit',
|
|
144
|
+
ok: true,
|
|
145
|
+
statePath: workflowPath(root),
|
|
146
|
+
payloadKey: 'workflow_cockpit',
|
|
147
|
+
payload: { ...cockpit, cockpit_digest: digestObject(cockpit) },
|
|
148
|
+
safety: { stage: 'Stage 87', ...boundaryAssertions },
|
|
149
|
+
quality: blockedReasons,
|
|
150
|
+
action: 'workflow cockpit was computed read-only from workflow readiness, advice hub, optional plan lint, token advice, learning advice, and governance advice. No state directory, sidecar, workflow skill execution, command execution, runtime action, platform API, external network, model, git, worktree, subagent, MCP, ' + 'dae' + 'mon' + ', shell interception, PR, push, merge, tag, or business source mutation occurred.',
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function progressiveEntryUxEnvelope(root, { prompt = '', gapFile = '' } = {}) {
|
|
155
|
+
ensureRoot(root);
|
|
156
|
+
let gapMatrix = null;
|
|
157
|
+
let gapSource = { status: 'not_provided', file: '', digest: '' };
|
|
158
|
+
if (gapFile) {
|
|
159
|
+
const source = localTextEvidenceDescriptor(root, gapFile, 'workflow --entry-ux --from-gap');
|
|
160
|
+
try {
|
|
161
|
+
gapMatrix = JSON.parse(source.text);
|
|
162
|
+
} catch (error) {
|
|
163
|
+
throw new Error(`workflow --entry-ux --from-gap JSON parse failed: ${error.message}`);
|
|
164
|
+
}
|
|
165
|
+
gapSource = { status: 'provided', file: source.relative, digest: source.digest };
|
|
166
|
+
}
|
|
167
|
+
const base = runtimeProgressiveEntryUx({ prompt, gapMatrix });
|
|
168
|
+
const entryUx = {
|
|
169
|
+
...base,
|
|
170
|
+
source_bindings: {
|
|
171
|
+
...base.source_bindings,
|
|
172
|
+
gap_file_status: gapSource.status,
|
|
173
|
+
gap_file: gapSource.file,
|
|
174
|
+
gap_file_digest: gapSource.digest,
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
const contract = {
|
|
178
|
+
...entryUx,
|
|
179
|
+
contract_digest: digestProgressiveEntryUx(runtimeProgressiveEntryUxDigestPayload(entryUx)),
|
|
180
|
+
};
|
|
181
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
182
|
+
mode: 'progressive-entry-ux-contract',
|
|
183
|
+
ok: contract.entry_ux_invariants.pass,
|
|
184
|
+
statePath: workflowPath(root),
|
|
185
|
+
payloadKey: 'progressive_entry_ux',
|
|
186
|
+
payload: contract,
|
|
187
|
+
safety: { stage: 'Stage 116', ...contract.boundary_assertions },
|
|
188
|
+
quality: contract.entry_ux_invariants.findings,
|
|
189
|
+
action: 'progressive entry UX contract was computed read-only from the prompt and optional local Stage 115 gap JSON. No state directory, sidecar, source write, workflow skill execution, command execution, runtime action, check, test, git, commit, push, PR, merge, platform API, external network, model, MCP, subagent, worktree, or business source mutation occurred.',
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function workflowSequenceEnvelope(root, { intent = '' } = {}) {
|
|
194
|
+
ensureRoot(root);
|
|
195
|
+
const normalizedIntent = normalizeWorkflowReadinessIntent(intent || 'implementation');
|
|
196
|
+
const route = methodologyRouteEnvelope(root, workflowReadinessRouteIntent(normalizedIntent)).methodology_route;
|
|
197
|
+
const definition = workflowSequenceDefinition(normalizedIntent);
|
|
198
|
+
const boundaryAssertions = workflowSequenceBoundaryAssertions();
|
|
199
|
+
const sequence = {
|
|
200
|
+
version: 1,
|
|
201
|
+
stage: 'Stage 94',
|
|
202
|
+
sequence_kind: 'execution-choreography',
|
|
203
|
+
input_intent: String(intent || '').trim(),
|
|
204
|
+
normalized_intent: normalizedIntent,
|
|
205
|
+
route_summary: {
|
|
206
|
+
first_skill: route.first_skill,
|
|
207
|
+
selected_workflow: route.selected_workflow,
|
|
208
|
+
route_digest: route.route_digest,
|
|
209
|
+
},
|
|
210
|
+
...definition,
|
|
211
|
+
boundary_assertions: boundaryAssertions,
|
|
212
|
+
writes: false,
|
|
213
|
+
state_directory_created: false,
|
|
214
|
+
local_only: true,
|
|
215
|
+
deterministic: true,
|
|
216
|
+
};
|
|
217
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
218
|
+
mode: 'execution-choreography',
|
|
219
|
+
ok: true,
|
|
220
|
+
statePath: workflowPath(root),
|
|
221
|
+
payloadKey: 'workflow_sequence',
|
|
222
|
+
payload: { ...sequence, sequence_digest: digestObject(sequence) },
|
|
223
|
+
safety: { stage: 'Stage 94', ...boundaryAssertions },
|
|
224
|
+
quality: [],
|
|
225
|
+
action: 'workflow sequence was computed read-only from deterministic workflow choreography rules. No test, review, subagent, workflow skill, state directory, sidecar, source write, command execution, runtime action, git, PR, push, merge, tag, platform API, external network, model, worktree, MCP, ' + 'dae' + 'mon' + ', shell interception, or business source mutation occurred.',
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function workflowLoopContractEnvelope(root, { intent = '', prompt = '', planFile = '' } = {}) {
|
|
230
|
+
ensureRoot(root);
|
|
231
|
+
const startEnvelope = workflowStartEnvelope(root, { intent, prompt, planFile });
|
|
232
|
+
const start = startEnvelope.workflow_start;
|
|
233
|
+
const normalizedIntent = start.normalized_intent;
|
|
234
|
+
const sequenceEnvelope = workflowSequenceEnvelope(root, { intent: normalizedIntent });
|
|
235
|
+
const sequence = sequenceEnvelope.workflow_sequence;
|
|
236
|
+
const automationEnvelope = runtimeAutomationReadinessEnvelope(root);
|
|
237
|
+
const automationReadiness = automationEnvelope.runtime_automation_readiness;
|
|
238
|
+
const registry = runtimeCapabilityRegistry();
|
|
239
|
+
const contract = runtimeWorkflowLoopContract({
|
|
240
|
+
inputIntent: intent || prompt,
|
|
241
|
+
normalizedIntent,
|
|
242
|
+
workflowStart: start,
|
|
243
|
+
workflowSequence: sequence,
|
|
244
|
+
automationReadiness,
|
|
245
|
+
registry,
|
|
246
|
+
registryDigest: automationReadiness.registry_digest,
|
|
247
|
+
planFile,
|
|
248
|
+
});
|
|
249
|
+
const workflowLoopContract = {
|
|
250
|
+
...contract,
|
|
251
|
+
loop_contract_digest: digestWorkflowLoopContract(runtimeWorkflowLoopContractDigestPayload(contract)),
|
|
252
|
+
};
|
|
253
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
254
|
+
mode: 'workflow-loop-contract',
|
|
255
|
+
ok: workflowLoopContract.loop_contract_invariants.pass,
|
|
256
|
+
statePath: workflowPath(root),
|
|
257
|
+
payloadKey: 'workflow_loop_contract',
|
|
258
|
+
payload: workflowLoopContract,
|
|
259
|
+
safety: { stage: 'Stage 104', ...workflowLoopContract.boundary_assertions },
|
|
260
|
+
quality: workflowLoopContract.loop_contract_invariants.findings,
|
|
261
|
+
action: 'workflow loop contract was computed read-only from workflow start, workflow sequence, automation readiness, and registry closeout chain. No automation plan, state directory, sidecar, classified command execution, test/check/repair execution, workflow execution, runtime action, git, PR, push, merge, tag, platform API, external network, model, worktree, subagent, MCP, ' + 'dae' + 'mon' + ', or business source mutation occurred.',
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function entryTriggerDisciplineEnvelope(root, transcriptFile, { intent = 'unknown', profile = 'default' } = {}) {
|
|
266
|
+
ensureRoot(root);
|
|
267
|
+
if (!transcriptFile) throw new Error('workflow --entry-discipline requires --from-transcript <local-transcript-json>');
|
|
268
|
+
const source = localTextEvidenceDescriptor(root, transcriptFile, 'workflow --entry-discipline transcript');
|
|
269
|
+
const discipline = runtimeEntryTriggerDiscipline({
|
|
270
|
+
transcript: source.text,
|
|
271
|
+
intent: intent || 'unknown',
|
|
272
|
+
profile: entryAutomationProfile(profile),
|
|
273
|
+
source: {
|
|
274
|
+
transcript_file: source.relative,
|
|
275
|
+
transcript_digest: source.digest,
|
|
276
|
+
requested_intent: intent || 'unknown',
|
|
277
|
+
},
|
|
278
|
+
});
|
|
279
|
+
const entryTriggerDiscipline = {
|
|
280
|
+
...discipline,
|
|
281
|
+
discipline_digest: digestEntryTriggerDiscipline(runtimeEntryTriggerDisciplineDigestPayload(discipline)),
|
|
282
|
+
};
|
|
283
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
284
|
+
mode: 'entry-trigger-discipline-contract',
|
|
285
|
+
ok: entryTriggerDiscipline.pass,
|
|
286
|
+
payloadKey: 'entry_trigger_discipline',
|
|
287
|
+
payload: entryTriggerDiscipline,
|
|
288
|
+
safety: { stage: 'Stage 135', ...entryTriggerDiscipline.boundary_assertions },
|
|
289
|
+
quality: entryTriggerDiscipline.missed_workflow_risks,
|
|
290
|
+
action: 'entry trigger discipline read one local transcript JSON only. gate_markers=using_vibecoding_first,protocol_layers_declared,intent_route_match,no_direct_implementation_jump,no_blind_bug_fix,no_false_skill_claim,no_forbidden_trigger entry_discipline_artifact=false transcript_write=false workflow_execution=false skill_execution=false command_execution=false check_execution=false test_execution=false runtime_action=false git=false git_write=false subagent=false. No workflow skill run, transcript write, prompt mutation, auto execution, command/check/test execution, state write, platform API, model, MCP, subagent, git, PR, push, merge, or worktree action occurred.',
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function bootstrapAcceptanceEnvelope(root, { prompt = '' } = {}) {
|
|
295
|
+
ensureRoot(root);
|
|
296
|
+
const inputPrompt = String(prompt || '').trim() || '帮我做一个 React todo list';
|
|
297
|
+
const intent = bootstrapPromptIntent(inputPrompt);
|
|
298
|
+
const routeEnvelope = methodologyRouteEnvelope(root, intent);
|
|
299
|
+
const route = routeEnvelope.methodology_route;
|
|
300
|
+
const advice = adviceHubEnvelope(root, { intent: intent === 'debug' ? 'bug' : intent === 'completion' ? 'closeout' : intent }).advice_hub;
|
|
301
|
+
const expectedBehavior = bootstrapAcceptanceExpectedBehavior();
|
|
302
|
+
const blockedReasons = [];
|
|
303
|
+
if (!route.selected_workflow.includes('vibe-brainstorming') && intent === 'feature') blockedReasons.push('feature bootstrap did not include brainstorming');
|
|
304
|
+
if (route.first_skill === 'vibe-implementation') blockedReasons.push('bootstrap routed directly to implementation');
|
|
305
|
+
const boundaryAssertions = bootstrapAcceptanceBoundaryAssertions();
|
|
306
|
+
const acceptance = {
|
|
307
|
+
version: 1,
|
|
308
|
+
stage: 'Stage 90',
|
|
309
|
+
acceptance_kind: 'workflow-bootstrap-acceptance',
|
|
310
|
+
prompt: inputPrompt,
|
|
311
|
+
inferred_intent: intent,
|
|
312
|
+
expected_first_skill: intent === 'feature' ? 'vibe-brainstorming' : route.first_skill,
|
|
313
|
+
expected_behavior: expectedBehavior,
|
|
314
|
+
observed_route_summary: {
|
|
315
|
+
first_skill: route.first_skill,
|
|
316
|
+
selected_workflow: route.selected_workflow,
|
|
317
|
+
route_digest: route.route_digest,
|
|
318
|
+
},
|
|
319
|
+
advice_summary: {
|
|
320
|
+
primary_lane: advice.primary_lane,
|
|
321
|
+
primary_command: advice.primary_recommendation.recommended_command,
|
|
322
|
+
advice_digest: advice.advice_digest,
|
|
323
|
+
},
|
|
324
|
+
pass: blockedReasons.length === 0,
|
|
325
|
+
blocked_reasons: blockedReasons,
|
|
326
|
+
manual_action: blockedReasons.length === 0 ? 'Bootstrap acceptance passed; keep first response focused on workflow route and clarification before implementation.' : 'Fix bootstrap routing so feature requests do not jump directly to implementation.',
|
|
327
|
+
boundary_assertions: boundaryAssertions,
|
|
328
|
+
writes: false,
|
|
329
|
+
state_directory_created: false,
|
|
330
|
+
local_only: true,
|
|
331
|
+
deterministic: true,
|
|
332
|
+
};
|
|
333
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
334
|
+
mode: 'workflow-bootstrap-acceptance',
|
|
335
|
+
ok: true,
|
|
336
|
+
statePath: workflowPath(root),
|
|
337
|
+
payloadKey: 'bootstrap_acceptance',
|
|
338
|
+
payload: { ...acceptance, acceptance_digest: digestObject(acceptance) },
|
|
339
|
+
safety: { stage: 'Stage 90', ...boundaryAssertions },
|
|
340
|
+
quality: blockedReasons,
|
|
341
|
+
action: 'bootstrap acceptance was computed read-only from the local route and advice rules. No session was created, no state directory, source, sidecar, workflow skill execution, command execution, runtime action, platform API, external network, model, git, worktree, subagent, MCP, ' + 'dae' + 'mon' + ', shell interception, PR, push, merge, tag, or business source mutation occurred.',
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
const {
|
|
346
|
+
entryAdviceEnvelope,
|
|
347
|
+
entryContractEnvelope,
|
|
348
|
+
workflowReceiptEnvelope,
|
|
349
|
+
workflowStartEnvelope,
|
|
350
|
+
} = createRuntimeWorkflowEntryEnvelopes({
|
|
351
|
+
ensureRoot,
|
|
352
|
+
isWorkflowRecorded: (root) => fs.existsSync(workflowPath(root)),
|
|
353
|
+
methodologyRouteEnvelope,
|
|
354
|
+
workflowReadinessEnvelope,
|
|
355
|
+
workflowCockpitEnvelope,
|
|
356
|
+
bootstrapAcceptanceEnvelope,
|
|
357
|
+
resolveAutomationProfile: readInstalledAutomationProfile,
|
|
358
|
+
digestObject,
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
function onboardingBriefEnvelope(root) {
|
|
362
|
+
ensureRoot(root);
|
|
363
|
+
const start = workflowStartEnvelope(root, { intent: 'feature' }).workflow_start;
|
|
364
|
+
const boundaryAssertions = onboardingBriefBoundaryAssertions();
|
|
365
|
+
const briefLines = onboardingBriefLines();
|
|
366
|
+
const brief = {
|
|
367
|
+
version: 1,
|
|
368
|
+
stage: 'Stage 95',
|
|
369
|
+
brief_kind: 'workflow-onboarding-brief',
|
|
370
|
+
recommended_start_command: 'node tools/vibe-runtime/index.mjs workflow --start --prompt "<request>" --json',
|
|
371
|
+
lines: briefLines,
|
|
372
|
+
start_summary: {
|
|
373
|
+
stage: start.stage,
|
|
374
|
+
start_kind: start.start_kind,
|
|
375
|
+
recommended_next_skill: start.cockpit_summary.recommended_next_skill,
|
|
376
|
+
start_digest: start.start_digest,
|
|
377
|
+
},
|
|
378
|
+
boundary_assertions: boundaryAssertions,
|
|
379
|
+
writes: false,
|
|
380
|
+
state_directory_created: false,
|
|
381
|
+
local_only: true,
|
|
382
|
+
deterministic: true,
|
|
383
|
+
};
|
|
384
|
+
return readonlyLocalJsonEnvelope(root, {
|
|
385
|
+
mode: 'workflow-onboarding-brief',
|
|
386
|
+
ok: true,
|
|
387
|
+
statePath: workflowPath(root),
|
|
388
|
+
payloadKey: 'onboarding_brief',
|
|
389
|
+
payload: { ...brief, brief_digest: digestObject(brief) },
|
|
390
|
+
safety: { stage: 'Stage 95', ...boundaryAssertions },
|
|
391
|
+
quality: [],
|
|
392
|
+
action: 'onboarding brief was computed read-only from deterministic workflow start guidance. No state directory, sidecar, source write, workflow skill execution, command execution, runtime action, git, PR, push, merge, tag, platform API, external network, model, worktree, subagent, MCP, ' + 'dae' + 'mon' + ', shell interception, or business source mutation occurred.',
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
return {
|
|
397
|
+
adviceHubEnvelope,
|
|
398
|
+
bootstrapAcceptanceEnvelope,
|
|
399
|
+
entryAdviceEnvelope,
|
|
400
|
+
entryContractEnvelope,
|
|
401
|
+
entryTriggerDisciplineEnvelope,
|
|
402
|
+
onboardingBriefEnvelope,
|
|
403
|
+
progressiveEntryUxEnvelope,
|
|
404
|
+
workflowCockpitEnvelope,
|
|
405
|
+
workflowLoopContractEnvelope,
|
|
406
|
+
workflowReadinessBoundaryAssertions,
|
|
407
|
+
workflowReadinessEnvelope,
|
|
408
|
+
workflowReceiptEnvelope,
|
|
409
|
+
workflowSequenceEnvelope,
|
|
410
|
+
workflowStartEnvelope,
|
|
411
|
+
};
|
|
412
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
export function learningAdviceBoundaryAssertions() {
|
|
2
|
+
return {
|
|
3
|
+
automatic_promotion: false,
|
|
4
|
+
writes_formal_skills: false,
|
|
5
|
+
writes_agents_md: false,
|
|
6
|
+
writes_claude_md: false,
|
|
7
|
+
skill_mutation: false,
|
|
8
|
+
prompt_mutation: false,
|
|
9
|
+
hook_registration: false,
|
|
10
|
+
shell_interception: false,
|
|
11
|
+
command_execution: false,
|
|
12
|
+
external_network: false,
|
|
13
|
+
model_invocation: false,
|
|
14
|
+
platform_api: false,
|
|
15
|
+
git: false,
|
|
16
|
+
worktree: false,
|
|
17
|
+
subagent: false,
|
|
18
|
+
mcp: false,
|
|
19
|
+
daemon: false,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function normalizeLearningAdviceIntent(intent) {
|
|
24
|
+
const value = String(intent || '').trim().toLowerCase();
|
|
25
|
+
const known = new Set(['correction', 'failure-fix', 'repeated-workflow', 'preference', 'project-constraint', 'observation', 'candidate-instinct', 'promotion', 'review']);
|
|
26
|
+
return known.has(value) ? value : 'unknown';
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function learningAdviceIntentRoute(intent) {
|
|
30
|
+
const routes = {
|
|
31
|
+
correction: {
|
|
32
|
+
next: 'capture-local-observation',
|
|
33
|
+
command: 'learning --observe --from-file <session-evidence-file> --preview --json',
|
|
34
|
+
action: 'Record the correction in a local evidence file first; do not edit formal skills from a single correction.',
|
|
35
|
+
hint: 'Evidence should include user_corrections[] and an evidence_excerpt before learning --observe.',
|
|
36
|
+
},
|
|
37
|
+
'failure-fix': {
|
|
38
|
+
next: 'capture-local-observation',
|
|
39
|
+
command: 'learning --observe --from-file <session-evidence-file> --preview --json',
|
|
40
|
+
action: 'Record the fix as local evidence, then preview a learning observation before considering candidate instinct aggregation.',
|
|
41
|
+
hint: 'Evidence should include failure_fixes[] and project_constraints[] when the fix changes future behavior.',
|
|
42
|
+
},
|
|
43
|
+
'repeated-workflow': {
|
|
44
|
+
next: 'capture-local-observation',
|
|
45
|
+
command: 'learning --observe --from-file <session-evidence-file> --preview --json',
|
|
46
|
+
action: 'Capture the repeated workflow as observation evidence before creating any candidate rule.',
|
|
47
|
+
hint: 'Evidence should include repeated_workflows[] and scope=project unless it is intentionally a global candidate.',
|
|
48
|
+
},
|
|
49
|
+
preference: {
|
|
50
|
+
next: 'capture-local-observation',
|
|
51
|
+
command: 'learning --observe --from-file <session-evidence-file> --preview --json',
|
|
52
|
+
action: 'Capture the preference as evidence and keep promotion manual until multiple signals justify it.',
|
|
53
|
+
hint: 'Evidence should include preferences[] and confidence_delta within -1..1.',
|
|
54
|
+
},
|
|
55
|
+
'project-constraint': {
|
|
56
|
+
next: 'capture-local-observation',
|
|
57
|
+
command: 'learning --observe --from-file <session-evidence-file> --preview --json',
|
|
58
|
+
action: 'Capture the project constraint as local evidence; only later aggregate it into a candidate instinct.',
|
|
59
|
+
hint: 'Evidence should include project_constraints[] and a narrow domain such as workflow or governance.',
|
|
60
|
+
},
|
|
61
|
+
observation: {
|
|
62
|
+
next: 'candidate-instinct-preview',
|
|
63
|
+
command: 'learning --instincts --from-observations <learning-observation-file...> --preview --json',
|
|
64
|
+
action: 'Preview candidate instinct aggregation from verified observations before writing any candidate sidecar.',
|
|
65
|
+
hint: 'Use only observations from one project_id and one domain to avoid manual_review_required.',
|
|
66
|
+
},
|
|
67
|
+
'candidate-instinct': {
|
|
68
|
+
next: 'manual-promotion-preview',
|
|
69
|
+
command: 'learning --promote --instinct <candidate-instinct-file> --preview --json',
|
|
70
|
+
action: 'Preview the manual promotion gate; do not write formal skills automatically.',
|
|
71
|
+
hint: 'Promotion must hand off to vibe-writing-skills and still requires human approval.',
|
|
72
|
+
},
|
|
73
|
+
promotion: {
|
|
74
|
+
next: 'manual-skill-authoring-boundary',
|
|
75
|
+
command: 'vibe-writing-skills -> vibe-writing-plans -> vibe-test-driven-development -> vibe-review',
|
|
76
|
+
action: 'Treat promotion as a manual skill-authoring workflow, not as runtime mutation.',
|
|
77
|
+
hint: 'Formal skill changes require a separate plan, validation, and review.',
|
|
78
|
+
},
|
|
79
|
+
review: {
|
|
80
|
+
next: 'manual-review',
|
|
81
|
+
command: 'learning --list --json; learning --show <learning-file> --json; learning --verify <learning-file> --json',
|
|
82
|
+
action: 'Audit existing local learning sidecars before deciding whether to aggregate or promote.',
|
|
83
|
+
hint: 'Verify sidecars and inspect blocked_reasons before any follow-up.',
|
|
84
|
+
},
|
|
85
|
+
unknown: {
|
|
86
|
+
next: 'capture-local-observation',
|
|
87
|
+
command: 'learning --observe --from-file <session-evidence-file> --preview --json',
|
|
88
|
+
action: 'Clarify the learning signal, then capture it as local evidence before candidate or promotion steps.',
|
|
89
|
+
hint: 'Unknown learning intent falls back to observation-first advice.',
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
return routes[intent] || routes.unknown;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function learningAdviceQuality({ inputIntent, observationDigestRefs, instinctDescriptor }) {
|
|
96
|
+
const quality = [];
|
|
97
|
+
if (inputIntent && normalizeLearningAdviceIntent(inputIntent) === 'unknown') quality.push('unknown learning advice intent; using observation-first advice');
|
|
98
|
+
if (observationDigestRefs.length > 0) quality.push('verified observation input; advice remains preview-only and does not write candidate instinct');
|
|
99
|
+
if (instinctDescriptor) quality.push('verified candidate instinct input; advice remains manual promotion boundary only');
|
|
100
|
+
return quality;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function buildLearningAdviceModel({ intent = '', observationDigestRefs = [], instinctDescriptor = null, statePresent = false, digestObject } = {}) {
|
|
104
|
+
const inputIntent = String(intent || '').trim();
|
|
105
|
+
const inferredIntent = instinctDescriptor ? 'candidate-instinct' : observationDigestRefs.length > 0 ? 'observation' : inputIntent;
|
|
106
|
+
const normalizedIntent = normalizeLearningAdviceIntent(inferredIntent || 'unknown');
|
|
107
|
+
const route = learningAdviceIntentRoute(normalizedIntent);
|
|
108
|
+
const boundaryAssertions = learningAdviceBoundaryAssertions();
|
|
109
|
+
const quality = learningAdviceQuality({ inputIntent, observationDigestRefs, instinctDescriptor });
|
|
110
|
+
const recommendedCommand = observationDigestRefs.length > 0
|
|
111
|
+
? `learning --instincts --from-observations ${observationDigestRefs.map((item) => item.file).join(' ')} --preview --json`
|
|
112
|
+
: instinctDescriptor
|
|
113
|
+
? `learning --promote --instinct ${instinctDescriptor.file} --preview --json`
|
|
114
|
+
: route.command;
|
|
115
|
+
const advice = {
|
|
116
|
+
version: 1,
|
|
117
|
+
stage: 'Stage 80',
|
|
118
|
+
advice_kind: 'learning-model-advice',
|
|
119
|
+
intent: normalizedIntent,
|
|
120
|
+
input_intent: inputIntent,
|
|
121
|
+
recommended_next_learning_step: observationDigestRefs.length > 0 ? 'candidate-instinct-preview' : instinctDescriptor ? 'manual-promotion-preview' : route.next,
|
|
122
|
+
recommended_command: recommendedCommand,
|
|
123
|
+
promotion_boundary: {
|
|
124
|
+
promotion_target: 'manual-skill-authoring',
|
|
125
|
+
required_workflow: ['vibe-writing-skills', 'vibe-writing-plans', 'vibe-test-driven-development', 'vibe-review'],
|
|
126
|
+
human_approval_required: true,
|
|
127
|
+
automatic_promotion: false,
|
|
128
|
+
writes_formal_skills: false,
|
|
129
|
+
writes_agents_md: false,
|
|
130
|
+
writes_claude_md: false,
|
|
131
|
+
},
|
|
132
|
+
manual_action: instinctDescriptor ? 'Review the candidate instinct and, if still valid, explicitly enter vibe-writing-skills before any formal skill edit.' : route.action,
|
|
133
|
+
verification_hint: instinctDescriptor ? 'Run learning --verify on the candidate instinct and keep promotion preview separate from formal skill edits.' : route.hint,
|
|
134
|
+
observation_digest_refs: observationDigestRefs,
|
|
135
|
+
candidate_instinct_file: instinctDescriptor?.file || '',
|
|
136
|
+
candidate_instinct_digest: instinctDescriptor?.candidate?.candidate_instinct_digest || '',
|
|
137
|
+
boundary_assertions: boundaryAssertions,
|
|
138
|
+
writes: false,
|
|
139
|
+
state_directory_created: false,
|
|
140
|
+
no_skill_mutation: true,
|
|
141
|
+
local_only: true,
|
|
142
|
+
};
|
|
143
|
+
return {
|
|
144
|
+
mode: 'learning-model-advice',
|
|
145
|
+
ok: true,
|
|
146
|
+
state_present: Boolean(statePresent),
|
|
147
|
+
learning_advice: { ...advice, advice_digest: digestObject(advice) },
|
|
148
|
+
safety: {
|
|
149
|
+
stage: 'Stage 80',
|
|
150
|
+
writes: false,
|
|
151
|
+
learning_advice_artifact: false,
|
|
152
|
+
...boundaryAssertions,
|
|
153
|
+
},
|
|
154
|
+
quality,
|
|
155
|
+
action: 'learning model advice was computed read-only from builtin Stage 61/62 learning boundaries and optional verified local sidecars. No state directory, automatic promotion, formal skill mutation, prompt mutation, hook registration, shell interception, command execution, external network, model, platform API, git, worktree, subagent, MCP, daemon, or business source mutation occurred.',
|
|
156
|
+
};
|
|
157
|
+
}
|