@event4u/agent-config 14.9.0 → 14.11.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +384 -0
- package/README.md +1 -1
- package/dist/agent-src/commands/design.md +88 -0
- package/dist/agent-src/commands/project/analyze.md +47 -0
- package/dist/agent-src/commands/review/changes.md +67 -6
- package/dist/agent-src/commands/roadmap/create.md +49 -0
- package/dist/agent-src/commands/roadmap/next.md +27 -11
- package/dist/agent-src/commands/roadmap/process-full.md +14 -0
- package/dist/agent-src/commands/video/from-script.md +60 -3
- package/dist/agent-src/commands/video/stitch.md +14 -0
- package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +154 -2
- package/dist/agent-src/rules/active-remediation.md +3 -3
- package/dist/agent-src/rules/code-provenance.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +13 -33
- package/dist/agent-src/rules/council-availability.md +2 -2
- package/dist/agent-src/rules/decision-revisit-gate.md +3 -1
- package/dist/agent-src/rules/design-fidelity.md +18 -0
- package/dist/agent-src/rules/design-review-after-ui-write.md +2 -2
- package/dist/agent-src/rules/evaluator-independence.md +56 -44
- package/dist/agent-src/rules/fix-what-you-see.md +9 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +14 -20
- package/dist/agent-src/rules/missing-skill-recovery.md +13 -1
- package/dist/agent-src/rules/playbook-precedence.md +105 -0
- package/dist/agent-src/rules/recurring-criticism.md +3 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +14 -13
- package/dist/agent-src/rules/scale-discipline.md +24 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +2 -2
- package/dist/agent-src/rules/settings-ask-protocol.md +2 -2
- package/dist/agent-src/rules/ui-audit-gate.md +27 -15
- package/dist/agent-src/rules/untrusted-input-defense.md +2 -2
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +19 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +7 -0
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +33 -0
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +17 -3
- package/dist/agent-src/skills/ai-council/references/output-and-synthesis.md +31 -0
- package/dist/agent-src/skills/ai-council/references/procedure.md +19 -0
- package/dist/agent-src/skills/alerting-doctrine/SKILL.md +225 -0
- package/dist/agent-src/skills/alerting-doctrine/evals/triggers.json +17 -0
- package/dist/agent-src/skills/async-python-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/authz-review/SKILL.md +0 -1
- package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +32 -0
- package/dist/agent-src/skills/brand/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-audit/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-strategy/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +3 -0
- package/dist/agent-src/skills/code-refactoring/SKILL.md +1 -1
- package/dist/agent-src/skills/code-review/SKILL.md +11 -0
- package/dist/agent-src/skills/command-routing/SKILL.md +6 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +4 -1
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +4 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +10 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -0
- package/dist/agent-src/skills/design-intelligence/SKILL.md +3 -0
- package/dist/agent-src/skills/design-intelligence/data/landing.csv +36 -35
- package/dist/agent-src/skills/design-intelligence/data/stacks/threejs.csv +1 -0
- package/dist/agent-src/skills/design-review/SKILL.md +80 -2
- package/dist/agent-src/skills/design-review/references/verification-automation.md +41 -0
- package/dist/agent-src/skills/design-system-capture/SKILL.md +35 -40
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +50 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +3 -0
- package/dist/agent-src/skills/design-variations/SKILL.md +3 -0
- package/dist/agent-src/skills/developer-like-execution/SKILL.md +3 -0
- package/dist/agent-src/skills/discovery-interview/SKILL.md +1 -1
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +1 -1
- package/dist/agent-src/skills/docx-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/editorial-calendar/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +20 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +74 -41
- package/dist/agent-src/skills/fe-design/evals/triggers.json +65 -53
- package/dist/agent-src/skills/fe-design/references/craft-floor.md +52 -0
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +36 -0
- package/dist/agent-src/skills/file-editor/SKILL.md +5 -0
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/dist/agent-src/skills/git-workflow/SKILL.md +3 -0
- package/dist/agent-src/skills/github-ci/SKILL.md +1 -1
- package/dist/agent-src/skills/html-deck/SKILL.md +3 -0
- package/dist/agent-src/skills/iconography/SKILL.md +3 -0
- package/dist/agent-src/skills/image-editing/SKILL.md +3 -0
- package/dist/agent-src/skills/image-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +3 -0
- package/dist/agent-src/skills/incident-commander/SKILL.md +10 -0
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +173 -0
- package/dist/agent-src/skills/js-library-packaging/evals/triggers.json +17 -0
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +270 -0
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-migration/SKILL.md +3 -0
- package/dist/agent-src/skills/laravel-validation/SKILL.md +1 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +3 -0
- package/dist/agent-src/skills/legal-intake-triage/SKILL.md +1 -1
- package/dist/agent-src/skills/legal-practice-profile/SKILL.md +1 -1
- package/dist/agent-src/skills/lint-skills/SKILL.md +3 -0
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +3 -0
- package/dist/agent-src/skills/logging-monitoring/SKILL.md +234 -51
- package/dist/agent-src/skills/logo-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -0
- package/dist/agent-src/skills/messaging-architecture/SKILL.md +1 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -1
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +1 -1
- package/dist/agent-src/skills/module-management/SKILL.md +1 -1
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +149 -0
- package/dist/agent-src/skills/monorepo-workspace/evals/triggers.json +17 -0
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +7 -1
- package/dist/agent-src/skills/multi-tenancy/SKILL.md +4 -0
- package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
- package/dist/agent-src/skills/operational-readiness/SKILL.md +184 -0
- package/dist/agent-src/skills/operational-readiness/evals/triggers.json +17 -0
- package/dist/agent-src/skills/override-management/SKILL.md +3 -0
- package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
- package/dist/agent-src/skills/persona-improvement/SKILL.md +3 -0
- package/dist/agent-src/skills/pest-testing/SKILL.md +3 -0
- package/dist/agent-src/skills/playbook-authoring/SKILL.md +162 -0
- package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -0
- package/dist/agent-src/skills/privacy-review/SKILL.md +3 -0
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -0
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +5 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +52 -21
- package/dist/agent-src/skills/readme-reviewer/SKILL.md +3 -0
- package/dist/agent-src/skills/readme-writing/SKILL.md +3 -0
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +3 -0
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +3 -3
- package/dist/agent-src/skills/refine-prompt/SKILL.md +3 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +23 -41
- package/dist/agent-src/skills/roadmap-writing/references/follow-up-roadmap-shape.md +47 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +22 -6
- package/dist/agent-src/skills/runway-cognition/SKILL.md +3 -0
- package/dist/agent-src/skills/scene-expander/SKILL.md +1 -1
- package/dist/agent-src/skills/scene-expander/scene-blueprint.schema.yaml +26 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +5 -1
- package/dist/agent-src/skills/server-hardening/SKILL.md +159 -0
- package/dist/agent-src/skills/server-hardening/evals/triggers.json +17 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-management/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-reviewer/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-writing/SKILL.md +6 -0
- package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +3 -0
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +194 -0
- package/dist/agent-src/skills/storybook-workshop/evals/triggers.json +17 -0
- package/dist/agent-src/skills/storybook-workshop/scripts/story_contrast_floor.ts +134 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +25 -0
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +12 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/dist/agent-src/skills/terraform/SKILL.md +3 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +0 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +3 -0
- package/dist/agent-src/skills/typography-system/SKILL.md +3 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +9 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +3 -0
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -0
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +3 -0
- package/dist/agent-src/skills/wireframe/references/story-beat-ledger.schema.json +115 -0
- package/dist/agent-src/skills/workspace-link/SKILL.md +131 -0
- package/dist/agent-src/skills/workspace-link/evals/triggers.json +17 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/playbook.md +75 -0
- package/dist/agent-src/templates/roadmaps.md +37 -0
- package/dist/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
- package/dist/cli/commands/uiAudit.js +221 -0
- package/dist/cli/commands/uiAudit.js.map +1 -0
- package/dist/cli/commands/uiRender.js +206 -0
- package/dist/cli/commands/uiRender.js.map +1 -0
- package/dist/cli/main.js +22 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/mcp/content.js +64 -1
- package/dist/cli/mcp/content.js.map +1 -1
- package/dist/cli/mcp/dispatch.js +175 -10
- package/dist/cli/mcp/dispatch.js.map +1 -1
- package/dist/cli/registry.js +3 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/{chunk-H4VIVD4C.js → chunk-236PNQZK.js} +413 -391
- package/dist/cli-delegate/{chunk-G23AT6GD.js → chunk-DMSZHXZS.js} +57 -1
- package/dist/cli-delegate/{chunk-77GR3VD4.js → chunk-FF7WAFMR.js} +58 -3
- package/dist/cli-delegate/{chunk-PLSG6UL5.js → chunk-K4FFODTS.js} +341 -204
- package/dist/cli-delegate/{chunk-YM4GZDJG.js → chunk-L43NCYPB.js} +5 -0
- package/dist/cli-delegate/{chunk-B2ERU2VA.js → chunk-WOKWX5PL.js} +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +8 -6
- package/dist/cli-delegate/cmd_conformance.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_preflight.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +70 -9
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +380 -145
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +18 -8
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +16 -6
- package/dist/hooks/dispatch.js +2337 -1436
- package/dist/install/install.mjs +795 -708
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1685 -1250
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/lean_projection_mode.js +40 -0
- package/dist/scripts/_lib/lean_projection_mode.js.map +1 -0
- package/dist/scripts/_lib/scoped_projection.js +84 -0
- package/dist/scripts/_lib/scoped_projection.js.map +1 -1
- package/dist/scripts/_lib/ui_surface.js +89 -0
- package/dist/scripts/_lib/ui_surface.js.map +1 -0
- package/dist/scripts/condense.js +6 -10
- package/dist/scripts/condense.js.map +1 -1
- package/dist/scripts/project_thin_rules.js +40 -2
- package/dist/scripts/project_thin_rules.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/skillRanking.js +159 -0
- package/dist/shared/skillRanking.js.map +1 -0
- package/docs/contracts/provider-lifecycle.md +47 -18
- package/docs/contracts/settings-classes.md +14 -4
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +49 -0
- package/docs/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
- package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +45 -1
- package/docs/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
- package/docs/guidelines/design-antipatterns.md +4 -2
- package/docs/guidelines/design-asset-discipline.md +38 -0
- package/docs/guidelines/design-fidelity-mechanics.md +45 -29
- package/docs/guidelines/design-handover-extraction.md +35 -5
- package/docs/guidelines/design-modes.md +41 -1
- package/docs/guidelines/monorepo-antipatterns.md +141 -0
- package/llms.txt +50 -39
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
- package/src/config/agent-settings.template.yml +28 -0
- package/src/config/assurance-capability-registry.json +223 -0
- package/src/config/assurance-threshold-budget.json +65 -0
- package/src/config/ci-local-parity.yml +14 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/dispatch-economy-metrics.json +4 -2
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +227 -8
- package/src/config/gate-violation-baselines.json +76 -72
- package/src/config/hook-latency-budget.json +1 -0
- package/src/config/hook-token-budget.json +137 -125
- package/src/config/pack-size-budget.json +4 -2
- package/src/config/preamble-payload-budget.json +71 -67
- package/src/config/quorum-attendance-budget.json +12 -4
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-enforcement-baseline.json +0 -1
- package/src/config/rule-stub-ceilings.json +112 -91
- package/src/scripts/_cli/cmd_doctor.ts +15 -16
- package/src/scripts/_cli/doctor_install_mode.ts +49 -0
- package/src/scripts/_cli/doctor_overrides.ts +154 -0
- package/src/scripts/_dispatch.bash +17 -0
- package/src/scripts/_lib/as_of.ts +412 -0
- package/src/scripts/_lib/exec_evidence.ts +7 -0
- package/src/scripts/_lib/hook_settings.ts +33 -0
- package/src/scripts/_lib/host_listing_model.ts +192 -0
- package/src/scripts/_lib/lean_projection_mode.ts +44 -0
- package/src/scripts/_lib/mcp_bridge.ts +199 -0
- package/src/scripts/_lib/review_independence.ts +62 -10
- package/src/scripts/_lib/rule_injection.ts +239 -0
- package/src/scripts/_lib/run_checkpoint.ts +54 -1
- package/src/scripts/_lib/scoped_projection.ts +96 -0
- package/src/scripts/_lib/session_register.ts +44 -2
- package/src/scripts/_lib/skill_catalogue.ts +38 -2
- package/src/scripts/_lib/transcript_reads.ts +207 -0
- package/src/scripts/_lib/ui_authority.test.ts +251 -0
- package/src/scripts/_lib/ui_authority.ts +343 -0
- package/src/scripts/ai-video/adapters/fal.sh +8 -3
- package/src/scripts/ai-video/adapters/gemini-veo.sh +10 -0
- package/src/scripts/ai-video/adapters/higgsfield.sh +10 -2
- package/src/scripts/ai-video/adapters/kling.sh +10 -0
- package/src/scripts/ai-video/adapters/sora.sh +10 -0
- package/src/scripts/ai-video/lib/calibrate-cost.sh +145 -0
- package/src/scripts/ai-video/lib/model-capabilities/README.md +53 -7
- package/src/scripts/ai-video/lib/model-capabilities/comfyui.json +15 -3
- package/src/scripts/ai-video/lib/model-capabilities/fal.json +36 -6
- package/src/scripts/ai-video/lib/model-capabilities/gemini-veo.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/higgsfield.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/kling.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/musetalk.json +8 -2
- package/src/scripts/ai-video/lib/model-capabilities/replicate.json +36 -6
- package/src/scripts/ai-video/lib/model-capabilities/sora.json +45 -0
- package/src/scripts/ai-video/lib/model-capabilities/syncso.json +8 -2
- package/src/scripts/ai-video/lib/parse-blueprint.sh +52 -5
- package/src/scripts/ai-video/lib/resume-scan.sh +92 -3
- package/src/scripts/ai-video/lib/seam-plan.sh +212 -0
- package/src/scripts/ai-video/smoke-trace.sh +450 -2
- package/src/scripts/ai-video/stitch.sh +191 -10
- package/src/scripts/ai-video/test-pipeline.sh +84 -6
- package/src/scripts/ai_council/cli_agency_bounds.ts +139 -0
- package/src/scripts/ai_council/cli_least_agency_canary.ts +347 -0
- package/src/scripts/ai_council/clients.ts +3 -2
- package/src/scripts/ai_council/consensus.ts +63 -6
- package/src/scripts/ai_council/events_log.ts +46 -1
- package/src/scripts/ai_council/orchestrator.ts +103 -108
- package/src/scripts/ai_council/orchestrator_results.ts +166 -0
- package/src/scripts/ai_council/prompts.ts +12 -5
- package/src/scripts/ai_council/quorum.ts +82 -1
- package/src/scripts/ai_council/quorum_wiring.ts +82 -5
- package/src/scripts/ai_council/seating.ts +211 -0
- package/src/scripts/ai_council/stance_tally.ts +22 -0
- package/src/scripts/bench_hook_latency.ts +62 -0
- package/src/scripts/build_proof.ts +12 -1
- package/src/scripts/capture_skill_catalogue.ts +21 -0
- package/src/scripts/check_always_budget.ts +2 -1
- package/src/scripts/check_augmentignore.ts +2 -1
- package/src/scripts/check_beta_review_markers.ts +2 -1
- package/src/scripts/check_composite_arming.ts +364 -0
- package/src/scripts/check_corpus_staleness.ts +2 -1
- package/src/scripts/check_council_pin_staleness.ts +3 -1
- package/src/scripts/check_enforcement_coverage.ts +116 -3
- package/src/scripts/check_enforcement_denominator.ts +365 -0
- package/src/scripts/check_gate_coverage.ts +2 -1
- package/src/scripts/check_hook_bundle_freshness.ts +13 -1
- package/src/scripts/check_knowledge_cards.ts +2 -1
- package/src/scripts/check_knowledge_pages.ts +3 -2
- package/src/scripts/check_memory.ts +2 -1
- package/src/scripts/check_no_automerge_key.ts +287 -0
- package/src/scripts/check_pack_conformance_fixture.ts +565 -0
- package/src/scripts/check_pack_passport_reconciliation.ts +274 -0
- package/src/scripts/check_proposal.ts +2 -1
- package/src/scripts/check_reach_staleness.ts +2 -1
- package/src/scripts/check_release_adjacent_health.ts +2 -1
- package/src/scripts/check_release_pr_shape.ts +5 -0
- package/src/scripts/check_review_schema.ts +34 -1
- package/src/scripts/check_roadmap_trackable.ts +48 -3
- package/src/scripts/check_source_size_budget.ts +2 -1
- package/src/scripts/check_standing_payload_delta.ts +505 -0
- package/src/scripts/check_trigger_evals.ts +2 -1
- package/src/scripts/classify_change_risk.ts +281 -0
- package/src/scripts/compute_skill_tiers.ts +186 -0
- package/src/scripts/condense.ts +8 -13
- package/src/scripts/council_attendance_metrics.ts +183 -0
- package/src/scripts/council_cli.ts +10 -8
- package/src/scripts/council_parse_rate.ts +116 -0
- package/src/scripts/derive_playbooks.ts +406 -0
- package/src/scripts/design_slop_rules.test.ts +7 -0
- package/src/scripts/design_slop_rules.ts +56 -2
- package/src/scripts/dispatch_r2_reviewer.ts +16 -0
- package/src/scripts/frontend_corpus_hash.ts +116 -0
- package/src/scripts/generate_pack_manifests.ts +78 -0
- package/src/scripts/grade_target_readiness.ts +478 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +97 -16
- package/src/scripts/hooks/concern_registry.ts +4 -0
- package/src/scripts/hooks/design_pass_hook.ts +356 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +30 -7
- package/src/scripts/hooks/rule_inject_hook.ts +318 -0
- package/src/scripts/hot_context_hook.ts +74 -7
- package/src/scripts/install.ts +40 -89
- package/src/scripts/lint_adapter_tier.ts +663 -0
- package/src/scripts/lint_archived_skills.ts +93 -0
- package/src/scripts/lint_budget_ownership.ts +2 -1
- package/src/scripts/lint_deterministic_time.ts +470 -0
- package/src/scripts/lint_framework_leakage.ts +5 -0
- package/src/scripts/lint_handoffs.ts +525 -1
- package/src/scripts/lint_judge_prompt_expectation.ts +155 -0
- package/src/scripts/lint_marketplace.ts +88 -0
- package/src/scripts/lint_media_policy_linkage.ts +140 -1
- package/src/scripts/lint_one_off_age.ts +6 -1
- package/src/scripts/lint_override_kernel_guard.ts +87 -5
- package/src/scripts/lint_roadmap_complexity.ts +56 -0
- package/src/scripts/lint_rule_enforcement_declaration.ts +24 -7
- package/src/scripts/lint_rule_norm_pin.ts +321 -0
- package/src/scripts/lint_spawn_payload.ts +42 -5
- package/src/scripts/lint_symptom_intake.ts +2 -1
- package/src/scripts/mcp_parity_smoke.ts +30 -4
- package/src/scripts/mcp_render.ts +66 -1
- package/src/scripts/mcp_tool_fingerprint.ts +241 -0
- package/src/scripts/measure_risk_class_drift.ts +140 -0
- package/src/scripts/measure_skill_ranker_baseline.ts +212 -0
- package/src/scripts/media/lib/adapter-common.sh +211 -1
- package/src/scripts/media/lib/adapter-contract.md +74 -6
- package/src/scripts/model_rule_injection.ts +907 -0
- package/src/scripts/project_thin_rules.ts +45 -2
- package/src/scripts/release.ts +66 -860
- package/src/scripts/release_drill.ts +59 -3
- package/src/scripts/release_env.ts +298 -0
- package/src/scripts/release_publication.ts +720 -0
- package/src/scripts/roadmap_context.ts +778 -0
- package/src/scripts/schemas/fidelity-measurement-sheet.schema.json +169 -0
- package/src/scripts/schemas/pack.schema.json +62 -4
- package/src/scripts/schemas/rule.schema.json +24 -2
- package/src/scripts/schemas/skill.schema.json +41 -2
- package/src/scripts/schemas/ui-authority.schema.json +114 -0
- package/src/scripts/session_register_hook.ts +29 -3
- package/src/scripts/sessions_cli.ts +67 -3
- package/src/scripts/skill_tools/score_skill_relevance.ts +36 -53
- package/src/scripts/tighten_skill_descriptions.ts +264 -0
- package/src/scripts/token_sink_report.ts +239 -0
- package/src/scripts/trigger_coverage.ts +122 -3
- package/src/scripts/update_counts.ts +7 -3
- package/src/scripts/validate_frontmatter.ts +66 -0
- package/src/server/schemas/settings.ts +5 -0
- package/src/shared/skillRanking.ts +183 -0
|
@@ -17,7 +17,7 @@ routes_to:
|
|
|
17
17
|
workspaces: [engineering]
|
|
18
18
|
packs: [engineering-base]
|
|
19
19
|
enforced_by:
|
|
20
|
-
- "
|
|
20
|
+
- "instruction-only: the note, the ask and the user decision are all prose, so no gate can tell a discharged issue from a mentioned one"
|
|
21
21
|
collision_ok:
|
|
22
22
|
"refactor": "an explicit clean-up/refactor ask is the remediation ladder's own trigger"
|
|
23
23
|
# obligation: line 31
|
|
@@ -97,11 +97,11 @@ While implementing/modifying code you pass an issue outside the literal task. Al
|
|
|
97
97
|
- The issue is the task itself — then it's just the task (no ladder needed).
|
|
98
98
|
- The user already decided this item (fixed later, or explicitly ignored).
|
|
99
99
|
|
|
100
|
-
## Honest enforcement — `
|
|
100
|
+
## Honest enforcement — `instruction-only`
|
|
101
101
|
|
|
102
102
|
The note, the ask and the user's decision are all prose, and the issue set is
|
|
103
103
|
whatever the agent happened to see, so no gate can tell a discharged issue from a
|
|
104
|
-
mentioned one. This rule ships `
|
|
104
|
+
mentioned one. This rule ships `instruction-only` — the honesty boundary
|
|
105
105
|
[`security-sensitive-stop`](security-sensitive-stop.md) and
|
|
106
106
|
[`ui-audit-gate`](ui-audit-gate.md) state for their own obligations. The ladder
|
|
107
107
|
is the control; skipping it is caught by nothing.
|
|
@@ -22,7 +22,7 @@ workspaces: [engineering]
|
|
|
22
22
|
packs: [engineering-base]
|
|
23
23
|
roles: [developer, reviewer, tester, po, incident, planner]
|
|
24
24
|
enforced_by:
|
|
25
|
-
- "
|
|
25
|
+
- "instruction-only: close-the-source-and-re-derive is a pre-write reasoning step only the model observes; CI checks the ledger, never the derivation"
|
|
26
26
|
# obligation: line 40
|
|
27
27
|
obligation_frequency: "per-edit"
|
|
28
28
|
---
|
|
@@ -129,7 +129,7 @@ checks the ledger's own records, not similarity, and cannot catch an
|
|
|
129
129
|
unrecorded borrow. The discipline above **is** the control; skipping it is
|
|
130
130
|
not caught downstream by anything automatic. No script can enforce "close
|
|
131
131
|
the source and re-derive" — a pre-write reasoning step only the model
|
|
132
|
-
observes — so this rule ships `
|
|
132
|
+
observes — so this rule ships `instruction-only`, same honesty stance as
|
|
133
133
|
`security-sensitive-stop` and `untrusted-input-defense`.
|
|
134
134
|
|
|
135
135
|
`lint_harvest_provenance.ts` stands in exactly the same relation to the
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "1"
|
|
4
4
|
alwaysApply: false
|
|
5
|
+
norm:
|
|
6
|
+
tokens: 2000
|
|
7
|
+
remainder:
|
|
8
|
+
- "../docs/guidelines/agent-infra/context-hygiene-mechanics.md"
|
|
5
9
|
description: "Debugging, fixing errors, or long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers"
|
|
6
10
|
triggers:
|
|
7
11
|
- keyword: "3-failure"
|
|
@@ -81,37 +85,14 @@ A NUMBER THAT CHANGED IS NOT NEW INFORMATION UNLESS IT CHANGES WHAT YOU DO NEXT.
|
|
|
81
85
|
```
|
|
82
86
|
|
|
83
87
|
Waiting on something external — CI, a deploy, a queue, a background job — is the
|
|
84
|
-
one shape the loop test above systematically misses
|
|
85
|
-
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
different digit would make you act differently. It would not: the only actions
|
|
93
|
-
available were wait, or stop and report, and 34 licensed neither more than 31
|
|
94
|
-
did. **The discriminator is the decision, not the digits.**
|
|
95
|
-
|
|
96
|
-
For CI, do not hand-write the loop: `ci_settle <pr>` (mechanics below).
|
|
97
|
-
|
|
98
|
-
So state it separately: pick **one** waiter for the condition and let it finish.
|
|
99
|
-
Where the harness re-invokes on completion, waiting costs nothing and polling
|
|
100
|
-
costs a turn per expiry — and every stacked waiter is a turn that arrives *after*
|
|
101
|
-
the answer already did. Where it does not, one `until <condition>` loop is still
|
|
102
|
-
one call rather than N.
|
|
103
|
-
|
|
104
|
-
**Measured once, at n=1, and worth naming for its shape rather than its
|
|
105
|
-
frequency** (2026-08-12): a CI wait started roughly 35 background commands —
|
|
106
|
-
a fresh timer *and* a fresh condition-watcher per round, none cancelled when the
|
|
107
|
-
next pair started. CI settled with about fifteen still live; each then expired
|
|
108
|
-
and produced an empty turn. Nothing was corrupted, which is exactly why it ran
|
|
109
|
-
so long: every individual step looked reasonable.
|
|
110
|
-
|
|
111
|
-
**Enforcement: none, and the reason is structural.** The `context-hygiene` hook
|
|
112
|
-
counts tool calls; a waiter is indistinguishable from any other call at that
|
|
113
|
-
layer, and nothing in the envelope says two live waiters are watching one
|
|
114
|
-
condition. This is model-carried on every host.
|
|
88
|
+
one shape the loop test above systematically misses. Pick **one** waiter for the
|
|
89
|
+
condition and let it finish; for CI use `ci_settle <pr>` rather than a
|
|
90
|
+
hand-written loop. Enforcement is `none` and structurally so: the hook counts
|
|
91
|
+
tool calls and a waiter is indistinguishable from any other call at that layer.
|
|
92
|
+
|
|
93
|
+
Why the loop test misses it in both clauses, the n=1 measurement behind the
|
|
94
|
+
clause, and the enforcement argument: [`context-hygiene-mechanics § Waiting is one
|
|
95
|
+
waiter`](../docs/guidelines/agent-infra/context-hygiene-mechanics.md).
|
|
115
96
|
|
|
116
97
|
## Read-Loop Detection — the 15 / 25 rule
|
|
117
98
|
|
|
@@ -134,8 +115,7 @@ A mandated analysis/audit/review protocol is exactly the case that legitimately
|
|
|
134
115
|
- **Undeclared reading keeps 3-warn / 5-abort.** Unchanged.
|
|
135
116
|
- **A declared protocol raises the abort to 8 read-only turns** — and never suspends it. "Non-bypassable" narrows to **no *silent* bypass**: a declared protocol is not silent.
|
|
136
117
|
|
|
137
|
-
> **The 8 is a guess,
|
|
138
|
-
> **Revisit-if — whichever comes first:** (a) **≥ 10 declared-protocol sessions** have been observed, at which point set the cap from their p95 and delete this note; or (b) **90 days** elapse with fewer than 10, which is itself the answer — declared protocols are rare, the cap is not load-bearing, and it drops back to the undeclared 5. A condition like "once a distribution exists" was rejected as unfalsifiable: it is gradual, never feels urgent, and absence of complaints is indistinguishable from absence of measurement.
|
|
118
|
+
> **The 8 is a guess, a LOWER BOUND, and revisitable** — derivation, the n=1 run behind it, and the two-branch `revisit-if`: [`context-hygiene-mechanics § The declared-protocol cap`](../docs/guidelines/agent-infra/context-hygiene-mechanics.md).
|
|
139
119
|
|
|
140
120
|
A declaration is only valid when it states, before the reading starts, all three of:
|
|
141
121
|
|
|
@@ -13,7 +13,7 @@ self_contained: true
|
|
|
13
13
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
14
14
|
packs: [meta]
|
|
15
15
|
enforced_by:
|
|
16
|
-
- "
|
|
16
|
+
- "instruction-only: no gate reads a chat claim about availability; check_council_config_location covers the tree side only"
|
|
17
17
|
# obligation: line 27
|
|
18
18
|
obligation_frequency: "per-task"
|
|
19
19
|
---
|
|
@@ -79,7 +79,7 @@ Availability is already settled this session, or the question is about council
|
|
|
79
79
|
|
|
80
80
|
## Enforcement
|
|
81
81
|
|
|
82
|
-
`
|
|
82
|
+
`instruction-only` — no gate reads a chat claim. Deterministic instead:
|
|
83
83
|
`check_council_config_location` fails the build when a council surface ties the
|
|
84
84
|
config to `.agent-settings.yml`, which never carried it, or to a project-tree
|
|
85
85
|
path, and its §4 fails when no always-loaded rule carries this fact at all.
|
|
@@ -23,6 +23,8 @@ packs: [meta]
|
|
|
23
23
|
collision_ok:
|
|
24
24
|
"honest null": "this rule asks whether a recorded null may be REVISITED; evaluator-independence asks how one was PRODUCED — different decision points on the same artefact"
|
|
25
25
|
# obligation: line 31
|
|
26
|
+
enforced_by:
|
|
27
|
+
- "instruction-only: no gate can observe an agent citing a decision it never opened; adr_cite_check is deterministic where it runs and nothing makes it run"
|
|
26
28
|
obligation_frequency: "per-task"
|
|
27
29
|
---
|
|
28
30
|
|
|
@@ -176,7 +178,7 @@ precedent-creates-no-authority clause: [`adr-layout § Reopen authority`](../doc
|
|
|
176
178
|
- [`ask-when-uncertain`](ask-when-uncertain.md) — the numbered-options shape
|
|
177
179
|
used to present the revisit offer.
|
|
178
180
|
|
|
179
|
-
## Honest enforcement — `
|
|
181
|
+
## Honest enforcement — `instruction-only`
|
|
180
182
|
|
|
181
183
|
`adr_cite_check` is deterministic where it runs, and nothing makes it run. No
|
|
182
184
|
gate can observe an agent citing a decision it never opened, so step 2 above is
|
|
@@ -89,6 +89,24 @@ this": a prototype (HTML / JSX / Figma export), a mockup or screenshot, a
|
|
|
89
89
|
design-system file (tokens, component library), or a URL / path. It encodes
|
|
90
90
|
decisions already made — treat it like brand tokens, not like inspiration.
|
|
91
91
|
|
|
92
|
+
## Two axes — artefact maturity is not instruction mandate
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
MATURITY IS A PROPERTY OF THE ARTEFACT. MANDATE IS A PROPERTY OF THE INSTRUCTION.
|
|
96
|
+
A HANDOVER WHOSE OWN ARTEFACT DECLARES ITSELF LOW-FIDELITY CARRIES A **STRUCTURE**
|
|
97
|
+
MANDATE, NEVER A **PIXEL** MANDATE — WHATEVER `design.fidelity_mode` SAYS.
|
|
98
|
+
REPRODUCING A WIREFRAME'S GREYS 1:1 HONOURS THE WRONG HALF OF THE ARTEFACT.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`strict` means *do not redesign*; never *reproduce a wireframe's placeholder greys*, which
|
|
102
|
+
are **non-decisions** ([`wireframe`](../skills/wireframe/SKILL.md) § Gotchas).
|
|
103
|
+
**The discriminator reads the ARTEFACT, never the prose.** A finished comp whose prose
|
|
104
|
+
mentions a wireframe it replaces routes **strictly** — a reference to a previous artefact,
|
|
105
|
+
not a declaration about this one. **When the artefact does not declare its maturity,
|
|
106
|
+
it is treated as finished**: the 1:1 floor is stricter, and guessing *low fidelity*
|
|
107
|
+
would authorise the redesign this rule prevents. Maturity→spec table + the pinned near-miss:
|
|
108
|
+
[`design-fidelity-mechanics § Artefact maturity`](../docs/guidelines/design-fidelity-mechanics.md).
|
|
109
|
+
|
|
92
110
|
## Strictness — set by `design.fidelity_mode`
|
|
93
111
|
|
|
94
112
|
Read `design.fidelity_mode` from `.agent-settings.yml`. Missing → `strict`.
|
|
@@ -27,7 +27,7 @@ routes_to:
|
|
|
27
27
|
workspaces: [agent-config-maintainer, engineering]
|
|
28
28
|
packs: [frontend-design]
|
|
29
29
|
enforced_by:
|
|
30
|
-
- "
|
|
30
|
+
- "instruction-only: no artefact proves a design review happened outside the work-engine dispatcher; the review verdict is self-report"
|
|
31
31
|
collision_ok:
|
|
32
32
|
# The "component" and "design token" entries were removed with their triggers
|
|
33
33
|
# (2026-08-17): a collision note for a trigger that no longer exists is an
|
|
@@ -107,7 +107,7 @@ AS IF IT WERE VERIFIED.
|
|
|
107
107
|
|
|
108
108
|
There is no artefact a chat session can point at to prove a design review
|
|
109
109
|
happened — "I ran `design-review`" is self-report, and self-report is not
|
|
110
|
-
enforcement. So this rule ships `
|
|
110
|
+
enforcement. So this rule ships `instruction-only`, the same honesty boundary
|
|
111
111
|
`ui-audit-gate`, `security-sensitive-stop`, and `untrusted-input-defense` state
|
|
112
112
|
for their own obligations, rather than pretending a satisfiable-by-assertion
|
|
113
113
|
condition is a gate.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
4
|
alwaysApply: false
|
|
5
|
+
norm:
|
|
6
|
+
tokens: 1500
|
|
7
|
+
remainder:
|
|
8
|
+
- "../docs/guidelines/agent-infra/evaluator-independence-mechanics.md"
|
|
5
9
|
description: "Commissioning a review/judge/blind-pass on your own work — never author the verdict, never narrow the scope, record the prompt with the result"
|
|
6
10
|
triggers:
|
|
7
11
|
- keyword: "blind review"
|
|
@@ -13,6 +17,8 @@ triggers:
|
|
|
13
17
|
- phrase: "review my own"
|
|
14
18
|
- phrase: "commission a review"
|
|
15
19
|
- phrase: "second opinion on my"
|
|
20
|
+
routes_to:
|
|
21
|
+
- "guideline:agent-infra/evaluator-independence-mechanics"
|
|
16
22
|
self_contained: true
|
|
17
23
|
workspaces: [engineering]
|
|
18
24
|
packs: [engineering-base]
|
|
@@ -73,6 +79,29 @@ was manufactured anyway.
|
|
|
73
79
|
4. **One evaluation per turn per subject.** Re-running with a different prompt or
|
|
74
80
|
scope after an unwelcome verdict selects the answer instead of measuring it.
|
|
75
81
|
|
|
82
|
+
## The softer form — stating an expectation without stating the verdict
|
|
83
|
+
|
|
84
|
+
The Iron Law forbids **authoring the verdict** into an evaluator's prompt. There is a
|
|
85
|
+
weaker move that evades it while doing the same work, and it is the one an orchestrator
|
|
86
|
+
reaches for without noticing: **stating an expectation.**
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
THE ORCHESTRATOR STATES NO EXPECTATION OF THE OUTCOME IN A PROMPT IT WRITES
|
|
90
|
+
FOR A JUDGE OF ITS OWN WORK. NOT THE VERDICT, AND NOT THE DIRECTION.
|
|
91
|
+
"THIS SHOULD BE CLEAN", "I BELIEVE THIS IS CORRECT", "JUST CONFIRM",
|
|
92
|
+
"I EXPECT NO FINDINGS" — NONE OF THESE NAME A VERDICT, AND ALL OF THEM SUPPLY ONE.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The distinction the phrase list cannot see is exactly this one: *"NO-FINDINGS is
|
|
96
|
+
expected"* is a prediction, not a verdict, and it steered a real review into an
|
|
97
|
+
honest-null that was later refuted by five findings on the trunk. A prompt that says what
|
|
98
|
+
the author thinks the answer is has authored the answer, whatever grammatical mood it
|
|
99
|
+
used.
|
|
100
|
+
|
|
101
|
+
**What to write instead:** the scope, the diff, and the question. Nothing about how it is
|
|
102
|
+
expected to come out — including a reassurance that no particular outcome is expected,
|
|
103
|
+
which is itself an expectation stated in the negative.
|
|
104
|
+
|
|
76
105
|
## When it does NOT fire
|
|
77
106
|
|
|
78
107
|
- **Ordinary parallel fan-out.** Dispatching many subagents to read, map,
|
|
@@ -85,51 +114,34 @@ was manufactured anyway.
|
|
|
85
114
|
|
|
86
115
|
## Enforcement — honest scope
|
|
87
116
|
|
|
117
|
+
```
|
|
118
|
+
ITEM 1 IS ENFORCED. ITEMS 2, 3 AND 4 ARE NOT — 4 ONLY WARNS.
|
|
119
|
+
NEVER CITE A GUARD THAT WARNS AS ONE THAT BLOCKS.
|
|
120
|
+
```
|
|
121
|
+
|
|
88
122
|
[`evidence_independence.ts`](../scripts/hooks/evidence_independence.ts) is a
|
|
89
|
-
`pre_tool_use` concern
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
`host_semantics.ts` certifies **claude alone**, and the augment and cowork
|
|
112
|
-
trampolines discard dispatcher output and `exit 0` unconditionally — so on two
|
|
113
|
-
of the three "enforcing" hosts this guard runs and is then ignored. Nor may the
|
|
114
|
-
inverse be asserted downward: nothing records whether an unbound host's
|
|
115
|
-
pre-tool event can *deny*, and `severity: blocking` is a property of the concern
|
|
116
|
-
rather than of the host. The four states are tabulated once in
|
|
117
|
-
[`hook-architecture-v1 § Which hosts carry pre_tool_use`](../docs/contracts/hook-architecture-v1.md).
|
|
118
|
-
|
|
119
|
-
Stated at this length because this rule exists over a case where a process that
|
|
120
|
-
*looked* followed produced fabricated evidence. An unbacked reason for a real
|
|
121
|
-
gap and an unmeasured claim of enforcement are the same failure in a smaller
|
|
122
|
-
font, and this paragraph had shipped one of each. Note also what the frequency
|
|
123
|
-
join actually reports: `check_enforcement_coverage.ts` skips `fallback_only`
|
|
124
|
-
platforms, so its gap set is **four** — cursor, cline, windsurf, gemini — never
|
|
125
|
-
copilot, which is excluded by declaration rather than measured as a gap.
|
|
126
|
-
|
|
127
|
-
Items 2 and 3 — an honestly chosen scope, and recording the prompt with the
|
|
128
|
-
verdict — are **not** enforced by anything. A narrowed scope is not decidable
|
|
129
|
-
from the prompt alone, and no validator reads the artefacts a verdict lands in.
|
|
130
|
-
They are stated here as obligations and are model-carried. Saying so is the
|
|
131
|
-
point: this rule exists because a process that *looked* followed produced
|
|
132
|
-
fabricated evidence, and claiming coverage it does not have would repeat that.
|
|
123
|
+
`pre_tool_use` concern reading the prompt the agent is about to send.
|
|
124
|
+
|
|
125
|
+
- **Item 1 (pre-loaded verdict) BLOCKS** — `EXIT_BLOCK` at `:253`, on the one
|
|
126
|
+
host that honours a deny. Bound on augment, claude and cowork; only `claude`
|
|
127
|
+
denies. `agent-config hooks:status` answers it for the host you are on.
|
|
128
|
+
- **Item 4 (second self-scoped evaluation) WARNS** — `EXIT_ALLOW` with
|
|
129
|
+
`decision: "warn"` (`:301-324`). The turn-budget clause is advisory, and the
|
|
130
|
+
manifest's `severity: blocking` is true of the item-1 path only.
|
|
131
|
+
- **Item 2 (an honestly chosen scope) is enforced by nothing.** A narrowed scope
|
|
132
|
+
is not decidable from the prompt alone.
|
|
133
|
+
- **Item 3 (recording the prompt with the verdict) IS enforced** by
|
|
134
|
+
[`check_review_prompt_binding.ts`](../../src/scripts/check_review_prompt_binding.ts),
|
|
135
|
+
with one limit that matters: **omission beats substitution** — not committing
|
|
136
|
+
the prompt package drops the round out of the checkable set with no finding.
|
|
137
|
+
|
|
138
|
+
Where the guard does not deny, every item is model-carried. Never claim the
|
|
139
|
+
review ran as if it were verified.
|
|
140
|
+
|
|
141
|
+
Why each branch behaves that way, the phrase-list and turn-boundary limits, the
|
|
142
|
+
four host states, the two corrections this section has taken, and the
|
|
143
|
+
11-of-19 measurement behind item 3:
|
|
144
|
+
[`evaluator-independence-mechanics`](../docs/guidelines/agent-infra/evaluator-independence-mechanics.md).
|
|
133
145
|
|
|
134
146
|
## See also
|
|
135
147
|
|
|
@@ -23,7 +23,7 @@ triggers:
|
|
|
23
23
|
workspaces: [engineering]
|
|
24
24
|
packs: [engineering-base]
|
|
25
25
|
enforced_by:
|
|
26
|
-
- "
|
|
26
|
+
- "instruction-only: ownership-as-excuse is a disposition in prose; no gate can see a red check handed back with its cause named"
|
|
27
27
|
---
|
|
28
28
|
|
|
29
29
|
# Fix What You See
|
|
@@ -106,3 +106,11 @@ maintainer decision, recorded), a kernel rule shortened to make room, or a
|
|
|
106
106
|
option that would fire on tool output rather than on wording. Until then, `auto`
|
|
107
107
|
plus this paragraph is the honest state: the obligation is real, its delivery is
|
|
108
108
|
partial, and the partiality is named rather than implied away.
|
|
109
|
+
|
|
110
|
+
## Honest enforcement — `instruction-only`
|
|
111
|
+
|
|
112
|
+
Nothing observes a disposition. "I fixed it", "I landed a roadmap for it" and
|
|
113
|
+
"I named the author and moved on" are the same prose to every gate in this tree,
|
|
114
|
+
and the issue set is whatever the agent happened to see. So the two dispositions
|
|
115
|
+
above are model-carried, and the activation gap named in the previous section
|
|
116
|
+
sits on top of that rather than beside it.
|
|
@@ -72,7 +72,7 @@ framework-specific): `laravel*`, `symfony*`, `nextjs*`, `react-*`,
|
|
|
72
72
|
`^php-*`, `^pest-*`, `^eloquent`, `^blade*`, `^livewire`, `^flux`,
|
|
73
73
|
`^artisan-*`, `^composer-*`, `^docker*`, `^aws-*`, `^grafana`,
|
|
74
74
|
`^openapi$`, `^quality-tools`, `^sql-writing`, `^tailwind*`,
|
|
75
|
-
`^terraform*`, `^terragrunt*`, `^traefik`, `^mobile-e2e`,
|
|
75
|
+
`^terraform*`, `^terragrunt*`, `^traefik`, `^mobile-e2e`, `^monorepo-workspace$`, `^workspace-link$`,
|
|
76
76
|
`-routing$`, `project-analysis-(laravel|symfony|nextjs|react|node-express|zend-laminas)`.
|
|
77
77
|
|
|
78
78
|
## The discipline in one breath
|
|
@@ -43,29 +43,23 @@ change.
|
|
|
43
43
|
- Never consolidate or split unrelated code paths as a side effect.
|
|
44
44
|
- Never delete code that *looks* dead without proof it is unreachable.
|
|
45
45
|
|
|
46
|
-
##
|
|
46
|
+
## Repair the shared path, don't patch the reported call site
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
2. **What is the minimum number of lines per file?** If you are editing a
|
|
54
|
-
method, edit the method — not the surrounding class.
|
|
55
|
-
3. **Is any of this a refactor?** If yes, it belongs in its own commit or
|
|
56
|
-
PR, clearly labeled as a refactor, with no behavior change.
|
|
57
|
-
|
|
58
|
-
## Red flags in your own diff — reject them
|
|
59
|
-
|
|
60
|
-
Files the task never mentioned · import reordering, whitespace, or comments
|
|
61
|
-
outside the edited region · "small improvements" to neighboring methods ·
|
|
62
|
-
test-only mixed with behavior changes in one commit · renames outside the
|
|
63
|
-
task scope · dependency bumps "because it was close to the cache".
|
|
48
|
+
```
|
|
49
|
+
BEFORE EDITING A SHARED PATH, ENUMERATE ITS CALLERS AND REPAIR THE PATH ONCE.
|
|
50
|
+
PATCHING ONLY THE REPORTED CALL SITE IS NOT THE SMALLEST CHANGE — IT IS THE
|
|
51
|
+
SMALLEST-LOOKING ONE, AND IT LEAVES EVERY OTHER CALLER BROKEN.
|
|
52
|
+
```
|
|
64
53
|
|
|
65
|
-
|
|
54
|
+
Fires when the defect sits in something several callers reach — a shared
|
|
55
|
+
helper, a base class, a middleware, a query builder. The minimum set of files
|
|
56
|
+
then INCLUDES the shared path and EXCLUDES the N call sites a per-caller patch
|
|
57
|
+
would touch: repairing once is both smaller and complete.
|
|
66
58
|
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
**The PRE-fix half of a pair.** The post-fix half ships in
|
|
60
|
+
[`downstream-changes`](downstream-changes.md) § Defect-pattern search — name
|
|
61
|
+
the construct, grep the tree, report the count, AFTER the fix. Enumerate
|
|
62
|
+
before, sweep after; the two run over different sets.
|
|
69
63
|
|
|
70
64
|
## Own-orphan cleanup
|
|
71
65
|
|
|
@@ -16,6 +16,8 @@ self_contained: true
|
|
|
16
16
|
workspaces: [engineering]
|
|
17
17
|
packs: [meta]
|
|
18
18
|
# obligation: line 41
|
|
19
|
+
enforced_by:
|
|
20
|
+
- "instruction-only: nothing can observe an agent concluding that no skill exists; the skill-route concern covers only the prompts where the ranker is confident"
|
|
19
21
|
obligation_frequency: "per-turn"
|
|
20
22
|
---
|
|
21
23
|
|
|
@@ -60,6 +62,16 @@ NEVER REBUILD A CAPABILITY BECAUSE ITS SKILL WAS NOT DELIVERED.
|
|
|
60
62
|
inventing one. A ranked empty list and an unreachable catalogue are
|
|
61
63
|
different answers; the tool distinguishes them (`status: no_catalogue`) and
|
|
62
64
|
so should you.
|
|
65
|
+
5. **If the tool is not registered, say THAT — and proceed.** This rule may
|
|
66
|
+
never instruct a call it cannot verify is possible. The tool arrives with
|
|
67
|
+
this package's MCP server, which `agent-config install` registers for the
|
|
68
|
+
`claude-code` tool in the project's `.mcp.json`. No entry there, or the
|
|
69
|
+
server not started, and there is no tool to call: name the gap in one clause,
|
|
70
|
+
proceed without a skill, and — only if the missing catalogue entry actually
|
|
71
|
+
mattered — point at `agent-config mcp:check`, which reports whether
|
|
72
|
+
`.mcp.json` carries the entry. Never retry a call that is not wired, and
|
|
73
|
+
never report "no skill covers this" when what you learned is "no tool
|
|
74
|
+
answered".
|
|
63
75
|
|
|
64
76
|
## When NOT to fire
|
|
65
77
|
|
|
@@ -70,7 +82,7 @@ NEVER REBUILD A CAPABILITY BECAUSE ITS SKILL WAS NOT DELIVERED.
|
|
|
70
82
|
- A host that delivers its catalogue whole — the rule costs nothing there and
|
|
71
83
|
simply never has a gap to close.
|
|
72
84
|
|
|
73
|
-
## Honest enforcement — `
|
|
85
|
+
## Honest enforcement — `instruction-only`
|
|
74
86
|
|
|
75
87
|
Nothing can observe an agent concluding "no skill exists". The `skill-route`
|
|
76
88
|
concern injects ranked pointers on `user_prompt_submit` when its floor is
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "auto"
|
|
3
|
+
tier: "2a"
|
|
4
|
+
description: "A repository's own playbook outranks a shipped skill for the same task — run its configured steps first, and treat an observed playbook as advisory"
|
|
5
|
+
triggers:
|
|
6
|
+
- keyword: "playbook"
|
|
7
|
+
- keyword: "generator"
|
|
8
|
+
- keyword: "scaffold"
|
|
9
|
+
- phrase: "our own generator"
|
|
10
|
+
- phrase: "add a component"
|
|
11
|
+
- phrase: "new package"
|
|
12
|
+
- phrase: "unser generator"
|
|
13
|
+
applies_to_user_types:
|
|
14
|
+
- "developer"
|
|
15
|
+
- "maintainer"
|
|
16
|
+
# obligation: the precedence question comes due when a task arrives that both a
|
|
17
|
+
# playbook and a shipped skill answer — once per task, not per turn or per edit.
|
|
18
|
+
enforced_by:
|
|
19
|
+
- "instruction-only: no gate can tell a playbook-first run from a skill-first one — both produce a diff, and which answer was consulted leaves no artefact"
|
|
20
|
+
obligation_frequency: "per-task"
|
|
21
|
+
# frequency-override: the prose heuristic reads the Iron Law's "when both match a
|
|
22
|
+
# task" as a turn-level phrase. It is not: the precedence question is settled once
|
|
23
|
+
# per task, and re-deciding it on every turn of the same task would be the churn
|
|
24
|
+
# this rule exists to prevent.
|
|
25
|
+
routes_to:
|
|
26
|
+
- "skill:playbook-authoring"
|
|
27
|
+
workspaces: [engineering]
|
|
28
|
+
packs: [engineering-base]
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# Playbook Precedence
|
|
32
|
+
|
|
33
|
+
A shipped skill is a generic answer to a generic question. A **playbook** (ADR-244) is *this*
|
|
34
|
+
repository's answer to the same question, carrying decisions the repository already made —
|
|
35
|
+
file layout, barrel exports, test co-location, naming — that no generic skill can know.
|
|
36
|
+
When both match a task, running the generic one produces output that looks right and is
|
|
37
|
+
wrong for this repository.
|
|
38
|
+
|
|
39
|
+
## The Iron Law
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
A MATCHING PLAYBOOK GOES FIRST. THE SHIPPED SKILL COVERS ONLY WHAT IT DOES NOT.
|
|
43
|
+
`configured` STEPS ARE RUN. AN `observed` PLAYBOOK IS ADVISORY — READ IT, AND THE
|
|
44
|
+
SHIPPED SKILL'S GATES STILL APPLY IN FULL.
|
|
45
|
+
NEVER RUN A PLAYBOOK'S COMMAND SILENTLY — PROPOSE IT, THE HUMAN RUNS IT.
|
|
46
|
+
NEVER SYNTHESISE A COMMAND A PLAYBOOK DID NOT NAME.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Routing — matched on scope, dispatched on grade
|
|
50
|
+
|
|
51
|
+
A playbook matches when its `scope` contains the current `scope_root`, or is the literal
|
|
52
|
+
`repo`. **The `grade` axis then decides what the match buys:**
|
|
53
|
+
|
|
54
|
+
| `grade` | What the agent does | Why |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `configured` | run its steps first; the shipped skill covers only the remainder | every step's `invokes` id was resolved in the tree, so the procedure is verified, not inferred |
|
|
57
|
+
| `observed` | read it, follow it as advice, keep every shipped-skill gate | at least one id did not resolve — the steps are a hypothesis, and a hypothesis does not get to suspend a gate |
|
|
58
|
+
|
|
59
|
+
The grade is written by [`playbook-authoring`](../skills/playbook-authoring/SKILL.md), which
|
|
60
|
+
refuses to write `configured` for a generator it did not see. That refusal is what makes
|
|
61
|
+
this table safe to act on: without it, precedence would be granted on a claim rather than
|
|
62
|
+
on evidence.
|
|
63
|
+
|
|
64
|
+
## When NOT to fire
|
|
65
|
+
|
|
66
|
+
- **No playbook matches** the task's scope — unchanged behaviour, and the absence is not a
|
|
67
|
+
reason to write one mid-task.
|
|
68
|
+
- **The task is not what the playbook covers.** A playbook for adding a component says
|
|
69
|
+
nothing about deleting one; a partial scope match is not a match.
|
|
70
|
+
- **The playbook's own § What this playbook does NOT cover** names the current task — it
|
|
71
|
+
ends where it says it ends, which is why that section is mandatory.
|
|
72
|
+
|
|
73
|
+
## Failure modes
|
|
74
|
+
|
|
75
|
+
- Running a `configured` command **silently** because the playbook looks authoritative. It
|
|
76
|
+
is still a command the human runs; propose-never-silent-run is unchanged.
|
|
77
|
+
- Treating an `observed` playbook as `configured` because its steps read confidently.
|
|
78
|
+
- **Synthesising a neighbouring command** — the playbook names `turbo gen component`, the
|
|
79
|
+
agent runs `turbo gen page` because the task mentioned a page. A command the playbook did
|
|
80
|
+
not name has no repository authority behind it.
|
|
81
|
+
- Reaching for the shipped skill first *and then* reconciling with the playbook. The
|
|
82
|
+
reconciliation never happens; the generic output is already written.
|
|
83
|
+
|
|
84
|
+
## Provenance
|
|
85
|
+
|
|
86
|
+
The precedence shape — prefer a repository's local generator over a general one, and let the
|
|
87
|
+
local answer bound the generic one — is taken from an external reference's generator skill.
|
|
88
|
+
The source is deliberately not named here: per
|
|
89
|
+
[`source-confidentiality`](source-confidentiality.md), a shipped artifact does not carry
|
|
90
|
+
derivation attribution to a named external project. The attribution lives with the
|
|
91
|
+
maintainer-side record.
|
|
92
|
+
|
|
93
|
+
## See also
|
|
94
|
+
|
|
95
|
+
- [`playbook-authoring`](../skills/playbook-authoring/SKILL.md) — writes the playbooks and owns the grade.
|
|
96
|
+
- **ADR-244** — the artefact class, its home, and the two deferred generator kinds. Cited by number rather than linked: `docs/` is not projected into a consumer install, so a relative link here resolves in this repository and nowhere else.
|
|
97
|
+
- [`agents-md-thin-root`](../skills/agents-md-thin-root/SKILL.md) § Workspace files — the per-workspace pointer list.
|
|
98
|
+
- [`standards-from-config`](../skills/standards-from-config/SKILL.md) — the Class-A rule this applies to procedure.
|
|
99
|
+
|
|
100
|
+
## Honest enforcement — `instruction-only`
|
|
101
|
+
|
|
102
|
+
Nothing can see which answer was consulted. A playbook-first run and a
|
|
103
|
+
skill-first run both produce a diff, and the precedence decision leaves no
|
|
104
|
+
artefact a gate could read — so this rule is model-carried, and saying so is
|
|
105
|
+
cheaper than a check that would have to guess.
|
|
@@ -21,6 +21,8 @@ workspaces: [agent-config-maintainer, engineering]
|
|
|
21
21
|
packs: [meta]
|
|
22
22
|
collision_ok:
|
|
23
23
|
"schon wieder": "active-remediation makes a user 'leave it' terminal against the AGENT re-raising a closed item; this rule fires only when the USER brings it back — a decision-maker reopening their own decision is not the nagging that rule prevents"
|
|
24
|
+
enforced_by:
|
|
25
|
+
- "instruction-only: the earlier disposition, the three outcomes and the hardening are all prose; the self-repair occurrence counter covers only detector-matched defects"
|
|
24
26
|
obligation_frequency: "per-task"
|
|
25
27
|
---
|
|
26
28
|
|
|
@@ -85,7 +87,7 @@ analysis prose by design, so "I found nothing" means *prose was grepped*, never
|
|
|
85
87
|
- **The agent is the one repeating** — that is [`no-cheap-questions`](no-cheap-questions.md).
|
|
86
88
|
- **Already resolved this task.** Once decided, it is decided.
|
|
87
89
|
|
|
88
|
-
## Honest enforcement — `
|
|
90
|
+
## Honest enforcement — `instruction-only`
|
|
89
91
|
|
|
90
92
|
One narrow deterministic signal exists. `src/scripts/_lib/self_repair.ts` keeps one
|
|
91
93
|
record per defect fingerprint with an `occurrences` counter and reopens a released
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "1"
|
|
4
|
+
norm:
|
|
5
|
+
tokens: 2400
|
|
6
|
+
remainder:
|
|
7
|
+
- "../docs/guidelines/agent-infra/roadmap-progress-mechanics.md"
|
|
8
|
+
- "../docs/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md"
|
|
4
9
|
description: "Any roadmap touch (file move, checkbox flip, phase change) regens dashboard same response; archive at 0 open"
|
|
5
10
|
triggers:
|
|
6
11
|
- path_prefix: "agents/roadmaps/"
|
|
@@ -9,6 +14,7 @@ triggers:
|
|
|
9
14
|
- command: "/roadmap:process-full"
|
|
10
15
|
routes_to:
|
|
11
16
|
- "guideline:agent-infra/roadmap-progress-mechanics"
|
|
17
|
+
- "guideline:agent-infra/roadmap-deferred-resolution-provenance"
|
|
12
18
|
workspaces: [agent-config-maintainer, engineering]
|
|
13
19
|
packs: [meta]
|
|
14
20
|
roles: [planner]
|
|
@@ -86,16 +92,12 @@ in the estate?**
|
|
|
86
92
|
blocker id · every option · verdict + one-sentence rationale · dissent ·
|
|
87
93
|
destination when carried · what closes it. A verdict with no record is a
|
|
88
94
|
silent drop wearing a procedure.
|
|
89
|
-
- **The residual hole,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
review). The prior text — *"Wait for the user"* — handed back a fully
|
|
96
|
-
analysed choice with four costed options, the low-value interruption
|
|
97
|
-
[`no-cheap-questions`](no-cheap-questions.md) forbids. The gate protects the
|
|
98
|
-
item, not the maintainer's attention.
|
|
95
|
+
- **The residual hole, and why the test changed** — a carried follow-up can
|
|
96
|
+
still become an indefinite deferral, so this test bounds *who decides*, not
|
|
97
|
+
*whether the work happens*; only fix-now discharges it, and a carried item
|
|
98
|
+
untouched at the next task boundary is raised again per
|
|
99
|
+
[`active-remediation`](active-remediation.md). Provenance and the argument:
|
|
100
|
+
[`roadmap-deferred-resolution-provenance`](../docs/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md).
|
|
99
101
|
|
|
100
102
|
### `deferred_policy` — a declared contract removes the round, never the route
|
|
101
103
|
|
|
@@ -112,9 +114,8 @@ It changes **when the round happens**, never **who decides**:
|
|
|
112
114
|
Recorded-or-it-did-not-happen applies unchanged to an automatic spawn, and
|
|
113
115
|
fail-closed binds hardest here: a spawn naming a follow-up that does not exist
|
|
114
116
|
yet reaches the user, because a contract cannot pre-authorize a promise.
|
|
115
|
-
Reversible — `wait` is the default, so removing the field restores always-wait
|
|
116
|
-
|
|
117
|
-
`agents/evidence/council/drain-blocker-dispositions-a.md`).
|
|
117
|
+
Reversible — `wait` is the default, so removing the field restores always-wait;
|
|
118
|
+
provenance in the mechanics guideline.
|
|
118
119
|
|
|
119
120
|
## Later disposition — blocked-for-later roadmaps are parked, never left active
|
|
120
121
|
|