@event4u/agent-config 16.2.0 → 16.4.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 +337 -234
- package/README.md +15 -13
- package/agents/templates/.ai-council.yml.example +26 -8
- package/dist/agent-src/commands/analyze/inbox.md +11 -8
- package/dist/agent-src/commands/analyze/roadmap-repos.md +1 -1
- package/dist/agent-src/commands/bug/fix.md +17 -2
- package/dist/agent-src/commands/bug/investigate.md +1 -1
- package/dist/agent-src/commands/commit/in-chunks.md +40 -31
- package/dist/agent-src/commands/commit.md +72 -33
- package/dist/agent-src/commands/condense.md +2 -8
- package/dist/agent-src/commands/council/debate.md +11 -7
- package/dist/agent-src/commands/council/default.md +10 -9
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/estimate-ticket.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +3 -3
- package/dist/agent-src/commands/feature/plan.md +2 -2
- package/dist/agent-src/commands/feature/roadmap.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +18 -4
- package/dist/agent-src/commands/fix/commit-messages.md +48 -23
- package/dist/agent-src/commands/fix/pr-comments.md +3 -6
- package/dist/agent-src/commands/implement-ticket.md +4 -4
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/memory/add.md +4 -16
- package/dist/agent-src/commands/memory/load.md +5 -6
- package/dist/agent-src/commands/memory/promote.md +3 -16
- package/dist/agent-src/commands/mission/upgrade.md +3 -2
- package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
- package/dist/agent-src/commands/optimize/deep.md +4 -2
- package/dist/agent-src/commands/optimize/rtk.md +4 -26
- package/dist/agent-src/commands/pr/create/description-only.md +18 -15
- package/dist/agent-src/commands/pr/create.md +42 -34
- package/dist/agent-src/commands/pr/merge.md +136 -9
- package/dist/agent-src/commands/prepare-for-review.md +13 -11
- package/dist/agent-src/commands/project/analyze.md +7 -35
- package/dist/agent-src/commands/refine-ticket.md +1 -1
- package/dist/agent-src/commands/review/changes.md +14 -19
- package/dist/agent-src/commands/roadmap/create.md +1 -1
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/next.md +10 -1
- package/dist/agent-src/commands/roadmap/process-full.md +56 -42
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +411 -0
- package/dist/agent-src/commands/roadmap/triage-parked.md +325 -0
- package/dist/agent-src/commands/roadmap.md +18 -4
- package/dist/agent-src/commands/tests/create.md +17 -3
- package/dist/agent-src/commands/tests/execute.md +22 -5
- package/dist/agent-src/commands/worktree/create.md +7 -3
- package/dist/agent-src/commands/worktree/verify.md +2 -1
- package/dist/agent-src/contexts/authority/decision-revisit-gate-enforcement.md +43 -0
- package/dist/agent-src/contexts/communication/rules-auto/design-fidelity-enforcement.md +24 -0
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
- package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +7 -7
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
- package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +99 -54
- package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
- package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
- package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
- package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +95 -7
- package/dist/agent-src/contexts/subagent-configuration.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
- package/dist/agent-src/guidelines/php/git.md +15 -2
- package/dist/agent-src/rules/active-remediation.md +1 -2
- package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
- package/dist/agent-src/rules/architecture.md +0 -1
- package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
- package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
- package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
- package/dist/agent-src/rules/autonomous-execution.md +1 -1
- package/dist/agent-src/rules/brand-consistency.md +0 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
- package/dist/agent-src/rules/broken-access-control.md +1 -1
- package/dist/agent-src/rules/cli-output-handling.md +0 -1
- package/dist/agent-src/rules/code-comment-discipline.md +0 -1
- package/dist/agent-src/rules/code-provenance.md +0 -1
- package/dist/agent-src/rules/command-suggestion-policy.md +1 -1
- package/dist/agent-src/rules/commit-conventions.md +1 -2
- package/dist/agent-src/rules/communication-through-line.md +1 -2
- package/dist/agent-src/rules/content-quoting-floor.md +1 -2
- package/dist/agent-src/rules/context-hygiene.md +6 -6
- package/dist/agent-src/rules/copilot-routing.md +1 -2
- package/dist/agent-src/rules/council-availability.md +4 -4
- package/dist/agent-src/rules/cross-source-consistency.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +17 -35
- package/dist/agent-src/rules/delegation-policy.md +2 -3
- package/dist/agent-src/rules/design-fidelity.md +12 -16
- package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
- package/dist/agent-src/rules/devcontainer-routing.md +1 -2
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
- package/dist/agent-src/rules/docker-commands.md +0 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
- package/dist/agent-src/rules/domain-safety-disclaimer.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/domain-safety-retention.md +1 -1
- package/dist/agent-src/rules/downstream-changes.md +0 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +1 -1
- package/dist/agent-src/rules/evaluator-independence.md +3 -2
- package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
- package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -2
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/fix-what-you-see.md +6 -32
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
- package/dist/agent-src/rules/git-history-discipline.md +2 -2
- package/dist/agent-src/rules/guidelines.md +0 -1
- package/dist/agent-src/rules/history-discipline.md +0 -1
- package/dist/agent-src/rules/icon-consistency.md +0 -1
- package/dist/agent-src/rules/image-likeness-and-rights.md +1 -1
- package/dist/agent-src/rules/improve-before-implement.md +0 -1
- package/dist/agent-src/rules/invite-challenge.md +0 -1
- package/dist/agent-src/rules/laravel-routing.md +1 -2
- package/dist/agent-src/rules/laravel-translations.md +0 -1
- package/dist/agent-src/rules/legal-safety-floor.md +3 -3
- package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -1
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/media-governance-routing.md +13 -17
- package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
- package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
- package/dist/agent-src/rules/missing-tool-handling.md +0 -1
- package/dist/agent-src/rules/model-recommendation.md +0 -1
- package/dist/agent-src/rules/neighbour-precedence.md +64 -0
- package/dist/agent-src/rules/no-attribution-footers.md +0 -1
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
- package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
- package/dist/agent-src/rules/no-roadmap-references.md +0 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
- package/dist/agent-src/rules/onboarding-gate.md +0 -1
- package/dist/agent-src/rules/output-discipline.md +0 -1
- package/dist/agent-src/rules/package-ci-checks.md +0 -1
- package/dist/agent-src/rules/persona-governance.md +4 -5
- package/dist/agent-src/rules/php-coding.md +0 -1
- package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
- package/dist/agent-src/rules/preservation-guard.md +0 -1
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -4
- package/dist/agent-src/rules/question-not-instruction.md +1 -1
- package/dist/agent-src/rules/reviewer-awareness.md +0 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +4 -7
- package/dist/agent-src/rules/role-mode-adherence.md +0 -1
- package/dist/agent-src/rules/rule-type-governance.md +0 -1
- package/dist/agent-src/rules/runtime-safety.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +3 -3
- package/dist/agent-src/rules/self-repair-loop.md +0 -1
- package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
- package/dist/agent-src/rules/session-canary.md +7 -62
- package/dist/agent-src/rules/settings-ask-protocol.md +6 -6
- package/dist/agent-src/rules/size-enforcement.md +0 -1
- package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
- package/dist/agent-src/rules/skill-quality.md +0 -1
- package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
- package/dist/agent-src/rules/source-confidentiality.md +1 -1
- package/dist/agent-src/rules/source-discovery-gate.md +0 -1
- package/dist/agent-src/rules/source-of-truth.md +0 -1
- package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/symfony-routing.md +1 -2
- package/dist/agent-src/rules/think-before-action.md +0 -1
- package/dist/agent-src/rules/token-budget-discipline.md +12 -46
- package/dist/agent-src/rules/token-efficiency.md +0 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
- package/dist/agent-src/rules/tool-safety.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +1 -1
- package/dist/agent-src/rules/upstream-proposal.md +0 -1
- package/dist/agent-src/rules/user-interaction.md +0 -1
- package/dist/agent-src/rules/user-interrupt-priority.md +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/dist/agent-src/scripts/deferral_carry.ts +339 -0
- package/dist/agent-src/scripts/gate_budget.ts +47 -23
- package/dist/agent-src/scripts/gate_execute.ts +12 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +4 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
- package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
- package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
- package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
- package/dist/agent-src/skills/api-design/data/manifest.json +2 -2
- package/dist/agent-src/skills/api-testing/SKILL.md +17 -0
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +14 -2
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
- package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
- package/dist/agent-src/skills/database/data/manifest.json +2 -2
- package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
- package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +2 -2
- package/dist/agent-src/skills/fe-design/SKILL.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
- package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
- package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
- package/dist/agent-src/skills/iconography/SKILL.md +1 -1
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
- package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +11 -1
- package/dist/agent-src/skills/quality-tools/references/go-tools.md +76 -0
- package/dist/agent-src/skills/quality-tools/references/python-tools.md +104 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -2
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +7 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +17 -0
- package/dist/agent-src/skills/test-performance/SKILL.md +19 -1
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +2 -2
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +46 -129
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/roadmaps.md +6 -1
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/dist/agent-src/templates/skill.md +1 -1
- package/dist/cli/registry.js +2 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
- package/dist/cli-delegate/check_update_banner.js +207 -120
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-FP36SWJD.js → chunk-5GPULQBE.js} +2797 -338
- package/dist/cli-delegate/{chunk-IGD6ERX6.js → chunk-6SRJTYJS.js} +42 -176
- package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
- package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
- package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
- package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
- package/dist/cli-delegate/chunk-7IQE3D5S.js +191 -0
- package/dist/cli-delegate/{chunk-YJ72UIAK.js → chunk-AED2VQGM.js} +1245 -249
- package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
- package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
- package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
- package/dist/cli-delegate/chunk-F3QDG2GT.js +2569 -0
- package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-G5VVIZRC.js} +3 -3
- package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-H76PHZBI.js} +149 -61
- package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
- package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
- package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
- package/dist/cli-delegate/{chunk-7RQP4UDH.js → chunk-KR6EM23A.js} +235 -1455
- package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-KXXWJTDO.js} +6 -11
- package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
- package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-MDPPKQCQ.js} +58 -9
- package/dist/cli-delegate/{chunk-4XFP2Y3E.js → chunk-MSUL5NYP.js} +5 -5
- package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
- package/dist/cli-delegate/{chunk-4E2W63DA.js → chunk-OKJUIAPS.js} +62 -1
- package/dist/cli-delegate/{chunk-QAJS5YWY.js → chunk-PHD7OOLE.js} +2 -1
- package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-PWX7CKMD.js} +4 -4
- package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
- package/dist/cli-delegate/{chunk-7XGBX6ZH.js → chunk-T7XSJSUQ.js} +1144 -589
- package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
- package/dist/cli-delegate/chunk-WQWXGIWB.js +1779 -0
- package/dist/cli-delegate/{chunk-RGNIWTEA.js → chunk-XQTPXKFA.js} +1 -1
- package/dist/cli-delegate/{chunk-NUHLI2RX.js → chunk-YCU3TIXH.js} +2 -0
- package/dist/cli-delegate/chunk-ZBZV2G5R.js +210 -0
- package/dist/cli-delegate/{chunk-WGXTVKCQ.js → chunk-ZUZKZYCN.js} +5 -3
- package/dist/cli-delegate/cmd_analyze_session.js +223 -43
- package/dist/cli-delegate/cmd_brand_status.js +3 -2
- package/dist/cli-delegate/cmd_conformance.js +1252 -249
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +19 -9
- package/dist/cli-delegate/cmd_doctor_neighbours.js +30 -0
- package/dist/cli-delegate/cmd_explain.js +45 -21
- package/dist/cli-delegate/cmd_export.js +13 -10
- package/dist/cli-delegate/cmd_fleet.js +3 -3
- package/dist/cli-delegate/cmd_git_convention.js +1851 -0
- package/dist/cli-delegate/cmd_handoff.js +44 -22
- package/dist/cli-delegate/cmd_mcp_available.js +3 -2
- package/dist/cli-delegate/cmd_memory_get.js +3 -1
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +5 -4
- package/dist/cli-delegate/cmd_preflight.js +6 -6
- package/dist/cli-delegate/cmd_prune.js +14 -11
- package/dist/cli-delegate/cmd_refresh.js +2 -1
- package/dist/cli-delegate/cmd_route_audit.js +10 -8
- package/dist/cli-delegate/cmd_route_explain.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +10 -7
- package/dist/cli-delegate/cmd_settings_check.js +54 -7
- package/dist/cli-delegate/cmd_settings_get.js +18 -8
- package/dist/cli-delegate/cmd_settings_migrate.js +13 -10
- package/dist/cli-delegate/cmd_settings_set.js +4 -4
- package/dist/cli-delegate/cmd_sync.js +14 -11
- package/dist/cli-delegate/cmd_uninstall.js +15 -12
- package/dist/cli-delegate/cmd_update.js +7 -7
- package/dist/cli-delegate/cmd_upgrade.js +9 -8
- package/dist/cli-delegate/cmd_validate.js +15 -12
- package/dist/cli-delegate/cmd_versions.js +5 -5
- package/dist/cli-delegate/deferral_carry.js +16 -0
- package/dist/cli-delegate/gate_budget.js +1 -1
- package/dist/cli-delegate/gate_execute.js +3 -3
- package/dist/cli-delegate/roadmap_gates.js +6 -6
- package/dist/cli-delegate/update_roadmap_progress.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +232 -141
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +26 -9
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +7 -4
- package/dist/hooks/dispatch.js +5655 -6623
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/install/claudePathsPlan.js +47 -6
- package/dist/install/claudeRuleRewrite.js +7 -0
- package/dist/install/emit_host_rules_cli.js +39 -36
- package/dist/install/globalRuleScope.js +87 -0
- package/dist/install/host_rule_ownership.js +160 -0
- package/dist/install/install.mjs +2336 -1249
- package/dist/install/installThinLayer.js +289 -0
- package/dist/install/installedRuleLinks.js +262 -0
- package/dist/install/wizard-plan.js +24 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
- package/dist/mcp/registry-manifest.json +5 -5
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +36504 -30986
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +26 -120
- package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
- package/dist/scripts/_lib/compile_time_toggles.js +12 -21
- package/dist/scripts/_lib/git_convention.js +232 -0
- package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
- package/dist/scripts/_lib/installed_layer.js +704 -0
- package/dist/scripts/_lib/lean_projection_mode.js +218 -15
- package/dist/scripts/_lib/package_root.js +68 -0
- package/dist/scripts/_lib/rule_consequence_class.js +45 -0
- package/dist/scripts/_lib/rule_injection.js +67 -10
- package/dist/scripts/_lib/rule_law_section.js +122 -0
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/thin_rules.js +535 -0
- package/dist/scripts/_lib/windsurf_render.js +60 -0
- package/dist/scripts/condense.js +14 -26
- package/dist/scripts/project_thin_rules.js +14 -294
- package/dist/server/app.js +2 -1
- package/dist/server/gitKeysGate.js +105 -0
- package/dist/server/routes/settings.js +67 -8
- package/dist/server/routes/wizard.js +4 -0
- package/dist/server/schemas/settings.js +29 -81
- package/dist/shared/skillRanking.js +103 -16
- package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +72 -1
- package/docs/contracts/settings-classes.md +39 -67
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/docs/guidelines/agent-infra/layered-settings.md +13 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
- package/docs/guidelines/php/git.md +15 -2
- package/package.json +1 -1
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/src/agent-src/scripts/deferral_carry.ts +339 -0
- package/src/agent-src/scripts/gate_budget.ts +47 -23
- package/src/agent-src/scripts/gate_execute.ts +12 -4
- package/src/agent-src/scripts/update_roadmap_progress.ts +4 -1
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/src/config/agent-settings.template.yml +141 -334
- package/src/config/agents-paths.yml +16 -0
- package/src/config/assurance-capability-registry.json +7 -3
- package/src/config/ci-local-parity.yml +3 -0
- package/src/config/continuity-surface.json +10 -3
- package/src/config/discovery/packs.yml +17 -1
- package/src/config/evaluator-budgets.json +23 -10
- package/src/config/gate-coverage.yml +138 -3
- package/src/config/gate-violation-baselines.json +64 -16
- package/src/config/gitignore-block.txt +19 -0
- package/src/config/hook-bundle-budget.json +25 -0
- package/src/config/hook-token-budget.json +6 -1
- package/src/config/host-instruction-limits.json +33 -0
- package/src/config/release-gate-locality.yml +2 -1
- package/src/config/routing-coverage-seed.json +67 -4
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-consequence-class.json +161 -0
- package/src/config/rule-law-ceilings.json +105 -0
- package/src/config/rule-obligations.json +833 -0
- package/src/install/claudePathsPlan.ts +46 -4
- package/src/install/claudeRuleRewrite.ts +10 -1
- package/src/install/emit_host_rules_cli.ts +43 -34
- package/src/install/globalRuleScope.ts +109 -0
- package/src/install/host_rule_ownership.ts +170 -0
- package/src/install/installThinLayer.ts +378 -0
- package/src/install/installedRuleLinks.ts +308 -0
- package/src/install/wizard-plan.ts +24 -0
- package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
- package/src/scripts/_cli/cmd_conformance.ts +13 -2
- package/src/scripts/_cli/cmd_doctor.ts +33 -81
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +426 -0
- package/src/scripts/_cli/cmd_explain.ts +72 -14
- package/src/scripts/_cli/cmd_git_convention.ts +637 -0
- package/src/scripts/_cli/cmd_settings_check.ts +66 -8
- package/src/scripts/_cli/cmd_settings_get.ts +18 -3
- package/src/scripts/_cli/doctor_execution.ts +72 -1
- package/src/scripts/_dispatch.bash +53 -4
- package/src/scripts/_lib/agent_settings.ts +26 -124
- package/src/scripts/_lib/blocked_by_marker.ts +1 -1
- package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
- package/src/scripts/_lib/compile_time_toggles.ts +12 -21
- package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
- package/src/scripts/_lib/estate_offsets.ts +241 -0
- package/src/scripts/_lib/exemption_shape.ts +143 -0
- package/src/scripts/_lib/fnv.ts +23 -0
- package/src/scripts/_lib/foreign_scan.ts +106 -0
- package/src/scripts/_lib/git_base_ref.ts +92 -0
- package/src/scripts/_lib/git_convention.ts +291 -0
- package/src/scripts/_lib/git_convention_carrier.ts +389 -0
- package/src/scripts/_lib/git_convention_grammar.ts +246 -0
- package/src/scripts/_lib/git_convention_measure.ts +344 -0
- package/src/scripts/_lib/gitignore_block.ts +314 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +106 -0
- package/src/scripts/_lib/graph_feeder_record.ts +437 -0
- package/src/scripts/_lib/hook_settings.ts +73 -0
- package/src/scripts/_lib/host_capability.ts +40 -19
- package/src/scripts/_lib/host_hook_merge.ts +165 -0
- package/src/scripts/_lib/installed_layer.ts +963 -0
- package/src/scripts/_lib/json_merge.ts +82 -0
- package/src/scripts/_lib/json_pointers.ts +93 -11
- package/src/scripts/_lib/knowledge_global.ts +14 -1
- package/src/scripts/_lib/lean_projection_mode.ts +275 -15
- package/src/scripts/_lib/machine_wake.ts +16 -3
- package/src/scripts/_lib/module_reach.ts +456 -0
- package/src/scripts/_lib/neighbour_census.ts +760 -0
- package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
- package/src/scripts/_lib/neighbour_scan.ts +122 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +187 -0
- package/src/scripts/_lib/prompt_shape.ts +46 -0
- package/src/scripts/_lib/ratification_artifact.ts +220 -1
- package/src/scripts/_lib/ratification_subject.ts +92 -0
- package/src/scripts/_lib/release_findings_ingest.ts +15 -7
- package/src/scripts/_lib/release_highlights.ts +5 -0
- package/src/scripts/_lib/release_migration_gate.ts +19 -3
- package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
- package/src/scripts/_lib/review_coverage.ts +134 -0
- package/src/scripts/_lib/rule_consequence_class.ts +71 -0
- package/src/scripts/_lib/rule_injection.ts +130 -10
- package/src/scripts/_lib/rule_law_section.ts +147 -0
- package/src/scripts/_lib/rule_layer_overlap.ts +58 -0
- package/src/scripts/_lib/rule_obligations.ts +205 -0
- package/src/scripts/_lib/self_repair.ts +1 -1
- package/src/scripts/_lib/settings_removed_keys.ts +173 -0
- package/src/scripts/_lib/skill_origin.ts +254 -0
- package/src/scripts/_lib/structured_ask.ts +64 -21
- package/src/scripts/_lib/test_red_state.ts +5 -0
- package/src/scripts/_lib/thin_rules.ts +620 -0
- package/src/scripts/_lib/touched_file_quality.ts +570 -0
- package/src/scripts/_lib/turn_end_refusals.ts +77 -2
- package/src/scripts/_lib/windsurf_render.ts +63 -0
- package/src/scripts/_lib/worker_budget.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +16 -1
- package/src/scripts/ai_council/cli_call_budget.ts +13 -5
- package/src/scripts/ai_council/clients.ts +26 -57
- package/src/scripts/ai_council/config.ts +8 -8
- package/src/scripts/ai_council/modification_review.ts +100 -0
- package/src/scripts/ai_council/modification_review_questions.ts +90 -0
- package/src/scripts/ai_council/orchestrator.ts +5 -5
- package/src/scripts/ai_council/spend_gate.ts +18 -7
- package/src/scripts/ai_council/vendor_defaults.ts +45 -0
- package/src/scripts/ai_team/config.ts +11 -16
- package/src/scripts/audit_skill_overlap.ts +261 -0
- package/src/scripts/audit_user_type_axis.ts +20 -8
- package/src/scripts/before_complete_hook.ts +243 -12
- package/src/scripts/bench_ab_clone.ts +1 -2
- package/src/scripts/bench_concern_spawn_path.ts +129 -0
- package/src/scripts/bench_graph_feeder_latency.ts +584 -0
- package/src/scripts/bench_touched_file_quality.ts +238 -0
- package/src/scripts/check_agent_artifact_location.ts +36 -0
- package/src/scripts/check_branch_freshness.ts +147 -24
- package/src/scripts/check_enforcement_coverage.ts +130 -0
- package/src/scripts/check_enforcement_matrix.ts +377 -20
- package/src/scripts/check_estate_count.ts +130 -153
- package/src/scripts/check_evaluator_budgets.ts +4 -0
- package/src/scripts/check_finding_dispositions.ts +196 -21
- package/src/scripts/check_gate_coverage.ts +4 -3
- package/src/scripts/check_gate_reachability.ts +48 -1
- package/src/scripts/check_generator_sync.ts +48 -0
- package/src/scripts/check_hook_bundle_composition.ts +477 -0
- package/src/scripts/check_kernel_edit_ratified.ts +132 -14
- package/src/scripts/check_memory.ts +7 -1
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_release_highlights.ts +10 -0
- package/src/scripts/check_release_manifest_content.ts +189 -0
- package/src/scripts/check_release_pr_shape.ts +38 -15
- package/src/scripts/check_standing_rule_delivery.ts +129 -13
- package/src/scripts/check_suppression_hygiene.ts +2 -5
- package/src/scripts/check_verify_expectation_delta.ts +521 -0
- package/src/scripts/ci_settle.ts +42 -5
- package/src/scripts/classify_merge_risk.ts +320 -0
- package/src/scripts/closure_scan.ts +91 -1
- package/src/scripts/code_graph/detect.ts +127 -7
- package/src/scripts/code_graph/foreign.ts +194 -0
- package/src/scripts/code_graph/query.ts +217 -4
- package/src/scripts/code_graph/types.ts +26 -2
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +103 -0
- package/src/scripts/command_suggester/settings.ts +8 -108
- package/src/scripts/command_suggester/types.ts +4 -5
- package/src/scripts/compile_hook_manifest.ts +33 -1
- package/src/scripts/condense.ts +14 -27
- package/src/scripts/consumer_matrix.ts +102 -0
- package/src/scripts/context_hygiene_hook.ts +13 -23
- package/src/scripts/cost/preflight.mjs +12 -1
- package/src/scripts/council_cli.ts +7 -7
- package/src/scripts/dispatch_r2_reviewer.ts +24 -11
- package/src/scripts/estate_exemption_shape.ts +202 -0
- package/src/scripts/explain_run.ts +8 -13
- package/src/scripts/generate_git_convention_grammar.ts +127 -0
- package/src/scripts/generate_host_cost_table.ts +21 -4
- package/src/scripts/handoff_context_hook.ts +86 -37
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +175 -15
- package/src/scripts/hooks/block_config_weakening.ts +115 -7
- package/src/scripts/hooks/block_plumbing_writes.ts +37 -5
- package/src/scripts/hooks/code_graph_context_hook.ts +252 -23
- package/src/scripts/hooks/concern_failure_policy.ts +280 -0
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/dispatch_hook.ts +52 -52
- package/src/scripts/hooks/evidence_independence.ts +12 -4
- package/src/scripts/hooks/exit_codes.ts +2 -1
- package/src/scripts/hooks/host_lowering.json +1 -1
- package/src/scripts/hooks/host_lowering.ts +19 -1
- package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
- package/src/scripts/hooks/one_question_per_ask_hook.ts +41 -25
- package/src/scripts/hooks/payload_stub.ts +10 -1
- package/src/scripts/hooks/push_settle_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +795 -60
- package/src/scripts/hooks/state_io.ts +8 -4
- package/src/scripts/hooks/table_fingerprint.ts +21 -0
- package/src/scripts/hooks/telemetry_usage_hook.ts +24 -7
- package/src/scripts/hooks/turn_end_gate_hook.ts +85 -0
- package/src/scripts/hooks_status.ts +112 -0
- package/src/scripts/injection_scan_hook.ts +7 -0
- package/src/scripts/install-hooks.sh +42 -14
- package/src/scripts/install.ts +78 -215
- package/src/scripts/installed_layer_report.ts +103 -0
- package/src/scripts/language_mirror_hook.ts +15 -6
- package/src/scripts/learning_sidecar.ts +119 -8
- package/src/scripts/lint_blocker_citations.ts +198 -0
- package/src/scripts/lint_evidence_artifacts.ts +9 -0
- package/src/scripts/lint_hook_concern_budget.ts +10 -21
- package/src/scripts/lint_hook_manifest.ts +53 -0
- package/src/scripts/lint_major_migration_sections.ts +156 -26
- package/src/scripts/lint_pack_boundaries.ts +465 -29
- package/src/scripts/lint_roadmap_blockers.ts +282 -29
- package/src/scripts/lint_roadmap_complexity.ts +4 -2
- package/src/scripts/lint_rule_law_section.ts +647 -0
- package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
- package/src/scripts/lint_settings_classes.ts +1 -1
- package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
- package/src/scripts/lint_workflow_security.ts +173 -6
- package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
- package/src/scripts/mcp_server/graph_tools.ts +72 -3
- package/src/scripts/measure_routing_signal.ts +54 -16
- package/src/scripts/measure_skill_ranker_baseline.ts +221 -8
- package/src/scripts/memory_learn_hook.ts +91 -6
- package/src/scripts/model_rule_injection.ts +55 -8
- package/src/scripts/onboarding_gate_hook.ts +7 -6
- package/src/scripts/print_required_checks.ts +15 -3
- package/src/scripts/probe_host_compliance.ts +33 -5
- package/src/scripts/probe_turnaround.ts +183 -3
- package/src/scripts/project_thin_rules.ts +34 -327
- package/src/scripts/ratification_header.ts +77 -0
- package/src/scripts/refusal_envelope.ts +138 -0
- package/src/scripts/release_publication.ts +29 -3
- package/src/scripts/report_dispatch_import_closure.ts +76 -0
- package/src/scripts/report_evidence_temperature.ts +657 -0
- package/src/scripts/report_installed_rule_links.ts +274 -0
- package/src/scripts/report_label_agreement.ts +233 -0
- package/src/scripts/report_module_reach.ts +212 -0
- package/src/scripts/report_obligation_mechanism.ts +228 -0
- package/src/scripts/report_parked_blockers.ts +222 -0
- package/src/scripts/report_required_checks_drift.ts +196 -0
- package/src/scripts/report_single_token_triggers.ts +277 -0
- package/src/scripts/report_skill_ranker_confusion.ts +543 -0
- package/src/scripts/report_standing_payload_by_host.ts +188 -15
- package/src/scripts/report_verification_record_coverage.ts +306 -0
- package/src/scripts/routing_doctor.ts +2 -2
- package/src/scripts/rule_activation_census.ts +5 -2
- package/src/scripts/rule_trigger_eval.ts +9 -9
- package/src/scripts/schemas/agent-settings.schema.json +17 -31
- package/src/scripts/schemas/command.schema.json +1 -1
- package/src/scripts/schemas/review-findings.schema.json +3 -2
- package/src/scripts/schemas/rule.schema.json +5 -0
- package/src/scripts/schemas/skill.schema.json +1 -1
- package/src/scripts/self_review_gate.ts +101 -9
- package/src/scripts/skill_tools/score_skill_relevance.ts +314 -40
- package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
- package/src/scripts/sync_gitignore.ts +29 -235
- package/src/scripts/sync_pr_branch.ts +403 -132
- package/src/scripts/trigger_eval_grandfather.json +0 -21
- package/src/server/schemas/settings.ts +42 -176
- package/src/shared/skillRanking.ts +169 -14
- package/dist/cli-delegate/chunk-5R7HOLAF.js +0 -99
- package/dist/cli-delegate/chunk-JNMVLWLR.js +0 -4457
- package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
- package/src/scripts/_lib/config_chain.ts +0 -477
- package/src/scripts/_lib/conformance_report.ts +0 -403
- package/src/scripts/_lib/eval_discrimination.ts +0 -95
- package/src/scripts/_lib/evaluator_promotion.ts +0 -225
- package/src/scripts/_lib/file_slicer.ts +0 -117
- package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
- package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
- package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
- package/src/scripts/_lib/role_split.ts +0 -338
|
@@ -36,7 +36,7 @@ match() → raw scored matches per eligible command
|
|
|
36
36
|
│
|
|
37
37
|
▼
|
|
38
38
|
rank() → apply floor, drop blocklisted, anti-noise heuristics,
|
|
39
|
-
cap at
|
|
39
|
+
cap at 4 options, stable tie-break
|
|
40
40
|
│
|
|
41
41
|
▼
|
|
42
42
|
apply_cooldown() → drop (command, evidence) pairs shown in window
|
|
@@ -123,11 +123,13 @@ track separately.
|
|
|
123
123
|
|
|
124
124
|
| Scope | Key | Effect |
|
|
125
125
|
|---|---|---|
|
|
126
|
-
| Whole project | `commands.suggestion.enabled: false` | Layer fully silent; explicit slashes still work |
|
|
127
126
|
| Specific command | `commands.suggestion.blocklist: [cmd1, cmd2]` | Those commands never appear; still callable |
|
|
128
127
|
| Specific conversation | User types `/command-suggestion-off` | Disabled until user types `/command-suggestion-on` or chat ends |
|
|
129
128
|
|
|
130
|
-
|
|
129
|
+
There is no project-wide off switch: `commands.suggestion.enabled` and the
|
|
130
|
+
global floor / cooldown / option-cap keys were retired on 2026-10-09 with their
|
|
131
|
+
defaults (on · `0.6` · 600 s · 4) as fixed behavior. Per-command frontmatter
|
|
132
|
+
still overrides the floor and cooldown for that command:
|
|
131
133
|
|
|
132
134
|
```yaml
|
|
133
135
|
suggestion:
|
|
@@ -195,8 +197,8 @@ Together they enforce:
|
|
|
195
197
|
|
|
196
198
|
On Claude.ai Web / Skills API, the suggester package is **not** part
|
|
197
199
|
of the standard bundle (T2 ZIPs ship rules + skills, not Python
|
|
198
|
-
helpers). Treat
|
|
199
|
-
|
|
200
|
+
helpers). Treat the layer as absent there — degrade silently, never crash
|
|
201
|
+
the turn. Local agents (Augment, Claude Code,
|
|
200
202
|
Cursor, Cline, Windsurf) get the engine via `scripts/`.
|
|
201
203
|
|
|
202
204
|
## See also
|
|
@@ -204,4 +206,4 @@ Cursor, Cline, Windsurf) get the engine via `scripts/`.
|
|
|
204
206
|
- [`command-suggestion`](../../rules/command-suggestion-policy.md) — runtime rule
|
|
205
207
|
- [`adr-command-suggestion.md`](adr-command-suggestion.md) — architectural decision
|
|
206
208
|
- [`command-suggestion-eligibility.md`](command-suggestion-eligibility.md) — locked eligibility table
|
|
207
|
-
- [`agent-settings`](../../templates/agent-settings.md) — `commands.suggestion
|
|
209
|
+
- [`agent-settings`](../../templates/agent-settings.md) — `commands.suggestion.blocklist` reference
|
|
@@ -33,12 +33,15 @@ Live Phase 1 schema (see [`templates/agent-settings.md`](../../templates/agent-s
|
|
|
33
33
|
|
|
34
34
|
| Key | One-line semantics |
|
|
35
35
|
|---|---|
|
|
36
|
-
| `verbosity.preview_artifacts` | When `false`, skip generated commit messages / PR titles / branch names preview before acting. |
|
|
37
|
-
| `verbosity.routine_confirmations` | When `false`, skip "looks good?" gates on routine workflow steps. Iron-Law gates always ask. |
|
|
38
36
|
| `verbosity.offer_council_in_delivery` | When `false`, delivery commands skip the optional "run Council on this?" offer. |
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
|
|
38
|
+
Five former hooks were retired on 2026-10-09 with their defaults as the fixed
|
|
39
|
+
behavior, so writers state the behavior instead of citing a key: no preview of
|
|
40
|
+
generated commit messages / PR titles / branch names before acting; no
|
|
41
|
+
"looks good?" gate on a routine step with one obvious answer (Iron-Law gates
|
|
42
|
+
always ask); after a successful action, a one-line confirmation, never a
|
|
43
|
+
multi-line status block; no "Let me…", "Now I will…", "Found it" openers; and
|
|
44
|
+
the telegraph-speak rule does not ship.
|
|
42
45
|
|
|
43
46
|
Phase 10 adds `verbosity.script_output` (`silent` / `minimal` / `verbose`) and `verbosity.taskfile_command_echo` (`true` / `false`); writer artifacts cite this row when those land.
|
|
44
47
|
|
|
@@ -224,7 +224,7 @@ NEVER A SILENTLY DEGRADED ANSWER. NO LLM CLASSIFIER FALLBACK (CUT C3).
|
|
|
224
224
|
|
|
225
225
|
| Task pattern | Lookup class | Primitive |
|
|
226
226
|
|---|---|---|
|
|
227
|
-
| "where is X defined" / "confirm X's definition location" | `definition` | capped `rg` (definition-shaped patterns, `--max-count`); `code_graph query` only as an opportunistic accelerant when an index is present + fresh
|
|
227
|
+
| "where is X defined" / "confirm X's definition location" | `definition` | capped `rg` (definition-shaped patterns, `--max-count`); `code_graph query` only as an opportunistic accelerant when an index is present + fresh (`hooks.code_graph.enabled` gates nothing — it is inert) |
|
|
228
228
|
| "who calls / imports X" / "confirm call sites" | `references` | capped `rg` (reference-shaped patterns); same optional `code_graph affected` accelerant clause |
|
|
229
229
|
| "does string Y exist" / "probe candidate strings" | `string-existence` | FTS one-shot (`memory_lookup` for the knowledge corpus) or capped `rg -n --max-count` for the codebase |
|
|
230
230
|
| "run report Z" / "run check_*" | `report-run` | direct script run, wrapped per the **measured** rtk allowlist (`internal/bench/rtk-savings/RESULTS.md` — wrap only the ~55%-savings class) |
|
|
@@ -232,11 +232,11 @@ NEVER A SILENTLY DEGRADED ANSWER. NO LLM CLASSIFIER FALLBACK (CUT C3).
|
|
|
232
232
|
**Why rg-first** (council 2026-07-28, 2 rounds): the pre-registered benchmark
|
|
233
233
|
behind the `code-graph-retrieval-null` claim (`docs/CLAIMS.md`) measured
|
|
234
234
|
native-graph recall 0.365 vs grep 0.797 on graph-shaped questions — an
|
|
235
|
-
indexing gap that kept `code_graph.enabled` false BY DEFAULT until
|
|
236
|
-
was
|
|
237
|
-
|
|
238
|
-
clause above is that bound's escape hatch, reached only when a
|
|
239
|
-
usable graph, which no production caller yet does.
|
|
235
|
+
indexing gap that kept `code_graph.enabled` false BY DEFAULT until the hook it
|
|
236
|
+
gated was replaced (2026-09-07), leaving the key inert and still registered —
|
|
237
|
+
not permanently: the figures predate the 2026-08-22 extractor repair. The
|
|
238
|
+
accelerant clause above is that bound's escape hatch, reached only when a
|
|
239
|
+
caller passes a usable graph, which no production caller yet does.
|
|
240
240
|
|
|
241
241
|
**Escalation, not degradation:** a primitive that returns nothing (index miss,
|
|
242
242
|
pattern too ambiguous, report script absent) — **or an unusable result**
|
|
@@ -276,5 +276,5 @@ rung-3 degrade path, the recursive-dispatch guard and every ∅ case.
|
|
|
276
276
|
|
|
277
277
|
- [`auto-orchestration-activation`](auto-orchestration-activation.md) — the enable/auto/manifest gate that runs before classification.
|
|
278
278
|
- [`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md) — the modes this selects.
|
|
279
|
-
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
279
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the fix-loop budget v2 must respect.
|
|
280
280
|
- [`orchestration-telemetry`](orchestration-telemetry.md) § Registered always-on metrics — the judgment-ladder precision metric this ladder feeds.
|
|
@@ -17,7 +17,6 @@ set, and what the host can physically do.
|
|
|
17
17
|
|
|
18
18
|
| Key | Default | Purpose |
|
|
19
19
|
|---|---|---|
|
|
20
|
-
| `subagents.downshift` | `true` | Route delegable sub-tasks to the lowest-capable tier (Phase 2). |
|
|
21
20
|
| `subagents.quota_arbitrage` | `true` | Prefer a separate-quota-pool model where the host manifest allows it (Phase 2 bonus). |
|
|
22
21
|
| `subagents.model_map` | `{}` | Optional per-tier model override for downshift routing. |
|
|
23
22
|
| `emergency.orchestration_halt` | `false` | The ONE audited incident switch — see [`settings-classes.md`](../../docs/contracts/settings-classes.md) § "The one exception". NOT an activation gate: on-by-default, ceremony-free to arm, requires a non-empty `orchestration_halt_justification` to disarm. |
|
|
@@ -164,8 +164,8 @@ explicitly and the default flips back only on a positive reuse signal).
|
|
|
164
164
|
- **Redaction on write.** Promotion runs the `low-impact-corpus-privacy-floor`
|
|
165
165
|
+ `source-confidentiality` pattern set and **halts** on any hit — never
|
|
166
166
|
silent-shares, never auto-rewrites.
|
|
167
|
-
- **Promotion is hybrid.** A `public`/`vendor` card seen in
|
|
168
|
-
|
|
167
|
+
- **Promotion is hybrid.** A `public`/`vendor` card seen in ≥2 distinct repos
|
|
168
|
+
triggers a one-tap **suggestion**; never a silent write.
|
|
169
169
|
|
|
170
170
|
## Evidence v2 rollback target (Phase 0)
|
|
171
171
|
|
|
@@ -104,25 +104,22 @@ black box):
|
|
|
104
104
|
|
|
105
105
|
## 7. Kill-switch — disable auto-detection without a rollback
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
Two override layers, narrowest wins:
|
|
108
108
|
|
|
109
109
|
1. **Per-invocation:** `--no-auto-detect` → fall back to the menu
|
|
110
110
|
(interactive) or `missing_sub_command` (CI).
|
|
111
111
|
2. **Per-orchestrator:** `auto_detect: false` in the command's
|
|
112
112
|
front-matter → that orchestrator always shows the menu.
|
|
113
|
-
3. **Global:** `commands.auto_detect: disabled | warn | enabled` in
|
|
114
|
-
`.agent-settings.yml` (default `enabled`; `warn` = detect but always
|
|
115
|
-
confirm).
|
|
116
113
|
|
|
117
|
-
|
|
114
|
+
There is no global switch: the `commands.auto_detect` settings key was retired
|
|
115
|
+
on 2026-10-09 with its default (`enabled`) as the fixed behavior, so a
|
|
116
|
+
misbehaving heuristic is disabled per orchestrator, not by reverting 6.1.0.
|
|
118
117
|
|
|
119
118
|
## 8. Rollback procedure (every orchestrator references this)
|
|
120
119
|
|
|
121
120
|
1. Re-run with the explicit sub-command (`/judge solo`) — detection is
|
|
122
121
|
skipped.
|
|
123
|
-
2. Disable
|
|
124
|
-
`.agent-settings.yml`.
|
|
125
|
-
3. Disable one orchestrator: set `auto_detect: false` in its
|
|
122
|
+
2. Disable one orchestrator: set `auto_detect: false` in its
|
|
126
123
|
front-matter — the change takes effect on the next projection/sync.
|
|
127
124
|
|
|
128
125
|
## See also
|
|
@@ -23,11 +23,11 @@ maintain a model list, and never ship heavy/light content variants (two variants
|
|
|
23
23
|
|
|
24
24
|
## Three signals (all table-free)
|
|
25
25
|
|
|
26
|
-
1. **User settings** — read
|
|
26
|
+
1. **User settings** — read `reasoning.enabled` in `.agent-settings.yml`:
|
|
27
27
|
- `enabled: false` → the whole layer is inert. Stop here.
|
|
28
|
-
- per-component switch
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
- There is no per-component switch and no switch for signal 3: both were
|
|
29
|
+
retired on 2026-10-09 with their default (`true`) as the fixed behavior,
|
|
30
|
+
so every component follows signals 2 and 3 below.
|
|
31
31
|
2. **Task signal** (knowable per turn, no model lookup):
|
|
32
32
|
- **Skip** RDP when the task is trivial / short / fully-specified (rename,
|
|
33
33
|
typo, format, one-line edit, list files, bump a version).
|
|
@@ -72,7 +72,7 @@ Roadmap: <path> · mode: <autonomous | phase-checkpoints>
|
|
|
72
72
|
|
|
73
73
|
Git: branch <feat/<roadmap-slug>> · commits: chunked (N commit steps
|
|
74
74
|
detected / delivery commits) · push: to feat/<roadmap-slug> ONLY
|
|
75
|
-
· PR: open against <default branch> (
|
|
75
|
+
· PR: open against <default branch> (no merge, except § 5)
|
|
76
76
|
Artifacts: <N> planned (skills/rules/commands/guidelines) —
|
|
77
77
|
batched overlap check: <result — run NOW, against current state>
|
|
78
78
|
Open questions: <N> → decision sheet below (<M> rows); the rest via AI
|
|
@@ -85,7 +85,7 @@ Deferred items: <wait | spawn-follow-up-draft | cancel-with-memo> (default wait)
|
|
|
85
85
|
|
|
86
86
|
Always active regardless of this contract (never lifted):
|
|
87
87
|
• Hard Floor per-commit diff gate (bulk deletions / infra)
|
|
88
|
-
• Push anywhere except feat/<roadmap-slug>;
|
|
88
|
+
• Push anywhere except feat/<roadmap-slug>; merge (§ 5)
|
|
89
89
|
• security-sensitive-stop on auth/billing/tenant/secret paths
|
|
90
90
|
• N=3 validation budget · context-hygiene read-loop abort
|
|
91
91
|
• Deferred-[~] archival gate
|
|
@@ -202,7 +202,7 @@ They are not optional reading: a slug grammar does not imply a namespace, and
|
|
|
202
202
|
| Create feature branch `feat/<roadmap-slug>` (or reuse the current worktree branch) | Never a prod trunk; one branch per run |
|
|
203
203
|
| Chunked commits on that branch | Per-commit Hard-Floor diff gate stays ([`commit-mechanics`](../authority/commit-mechanics.md)); agent picks the split per [`commit-policy`](../../rules/commit-policy.md) |
|
|
204
204
|
| Push to that branch **only** | Push to any other ref = Hard Floor, ask |
|
|
205
|
-
| Open ONE PR (description-only flow) |
|
|
205
|
+
| Open ONE PR (description-only flow) | Acceptance never merges, closes or retargets; merging is § 5's one exception |
|
|
206
206
|
| Batched artifact drafting | The drafting-protocol **Research/overlap pass runs NOW at contract time against current artifact state**; results cached; Understand/Draft phases run non-interactively during the run. Artifacts NOT in the batch still trigger the interactive protocol |
|
|
207
207
|
| Council auto-enable | In-run open questions route to the AI council silently; `high_impact` / `user_required` classifications STILL escalate to the user per [`ask-when-uncertain`](../../rules/ask-when-uncertain.md). **No council configured** → the contract summary says so and in-run true ambiguity halts (never silent guessing) |
|
|
208
208
|
|
|
@@ -211,11 +211,11 @@ the PR has to be able to reach one:
|
|
|
211
211
|
|
|
212
212
|
| Grant | Boundary |
|
|
213
213
|
|---|---|
|
|
214
|
-
| Update the PR after opening it — title, body, further pushes to the same branch | Still never
|
|
214
|
+
| Update the PR after opening it — title, body, further pushes to the same branch | Still never close or retarget; merge only per § 5 |
|
|
215
215
|
| Reversible repository / branch settings the agent can change (branch protection included) | Only settings this run needs to reach a reviewable PR, and only reversible ones; a setting the agent changes it also restores if the run's need ends |
|
|
216
216
|
| Start, re-run and fix CI; update the merge base; resolve conflicts | Standard git and CI operations on the run's own branch |
|
|
217
217
|
| Install project-local dependencies | Inside the repo; never a global or system package manager without its own confirmation |
|
|
218
|
-
| Any tool, CLI, API, model, council or external service the work needs |
|
|
218
|
+
| Any tool, CLI, API, model, council or external service the work needs | Bounded by the **configured `cost.budgets` windows** and by nothing when none is configured (ADR-279). Where the run's spend plus what it reasonably expects would cross a configured window, it **pauses and reports** before crossing rather than asking. Uncertainty is not a reason to ask. Marginal cost of an existing subscription is $0. Splitting spend across services, subagents or rounds to keep each item under a ceiling is a violation. Model-carried: nothing on a run compares a cumulative figure with anything |
|
|
219
219
|
|
|
220
220
|
These grants satisfy [`scope-control`](../../rules/scope-control.md)'s
|
|
221
221
|
"standing instruction" clause for the run — see
|
|
@@ -225,7 +225,7 @@ These grants satisfy [`scope-control`](../../rules/scope-control.md)'s
|
|
|
225
225
|
|
|
226
226
|
| Mode | End state | Halts during run |
|
|
227
227
|
|---|---|---|
|
|
228
|
-
| `autonomous` | All steps `[x]` · quality green per cadence · work committed in chunks on `feat/<roadmap-slug>` · pushed · PR open · archival sweep run. **
|
|
228
|
+
| `autonomous` | All steps `[x]` · quality green per cadence · work committed in chunks on `feat/<roadmap-slug>` · pushed · PR open · archival sweep run. **No merge without an owner auto-merge instruction (§ 5).** | Safety floors only (+ quality-red, + step reveals out-of-roadmap work) |
|
|
229
229
|
| `phase-checkpoints` | Same end state | Safety floors + a compact status + "continue?" prompt at each phase boundary |
|
|
230
230
|
| `interactive` (derived, never from an absent field) | Legacy: work lands, no git delivery without per-op permission | All gates as authored by their owning rules |
|
|
231
231
|
|
|
@@ -238,12 +238,13 @@ git grants are omitted from the contract (nothing to authorize —
|
|
|
238
238
|
**ADR-237 widens § 3 and leaves this section untouched — deliberately.** An
|
|
239
239
|
end-to-end delegation is tolerable precisely because a PR is reviewable before
|
|
240
240
|
it merges, so the boundary that keeps merging out is the one that makes the rest
|
|
241
|
-
safe. Nothing below is reachable by
|
|
241
|
+
safe. Nothing below is reachable by acceptance. A merge comes only from outside
|
|
242
|
+
it: an owner auto-merge instruction (ADR-282, `/pr:merge` § 9a).
|
|
242
243
|
|
|
243
244
|
- Any [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
|
|
244
245
|
trigger beyond the two named grants (own-branch push, PR-open):
|
|
245
246
|
prod-trunk anything, deploys, bulk deletions, infra commits.
|
|
246
|
-
- Merging
|
|
247
|
+
- Merging a PR without an owner auto-merge instruction; closing or retargeting one.
|
|
247
248
|
- Lifting [`security-sensitive-stop`](../../rules/security-sensitive-stop.md),
|
|
248
249
|
the N=3 budget, context-hygiene aborts, or the deferred-`[~]` gate.
|
|
249
250
|
- Work outside the roadmap's scope (halt: scope-out-of-roadmap).
|
|
@@ -125,25 +125,24 @@ that is already done — the exact failure this clause prevents. This is the
|
|
|
125
125
|
|
|
126
126
|
## 2. Pre-run summary — gate or inline note
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
Summary block (shown in both modes; gate-mode appends the numbered
|
|
128
|
+
The command name already names the scope; asking "Go / Different
|
|
129
|
+
roadmap / …" on every run is noise, so there is no confirmation gate and
|
|
130
|
+
no setting to bring one back (the `roadmap.skip_pre_run_gate` key was
|
|
131
|
+
retired on 2026-10-09 with its default, `true`, as fixed behavior).
|
|
132
|
+
|
|
133
|
+
- The roadmap is unambiguous (user named it, or exactly one active
|
|
134
|
+
roadmap exists) → **no interactive gate.** Emit the summary block
|
|
135
|
+
below as a one-shot inline note (no numbered options, no wait) so the
|
|
136
|
+
user can still abort mid-stream if the wrong file was picked, then
|
|
137
|
+
continue straight into § 3.
|
|
138
|
+
- The roadmap is ambiguous (multiple active roadmaps and none named),
|
|
139
|
+
**or** an unresolvable cadence / scope conflict is detected → show the
|
|
140
|
+
gate with numbered options and wait for input.
|
|
141
|
+
|
|
142
|
+
The gate is shown only for a genuine "which roadmap?" or an unresolvable
|
|
143
|
+
conflict — never as a routine confirmation.
|
|
144
|
+
|
|
145
|
+
Summary block (shown in both cases; the gate appends the numbered
|
|
147
146
|
options + wait):
|
|
148
147
|
|
|
149
148
|
> Roadmap: `<resolved-path>`
|
|
@@ -159,10 +158,6 @@ options + wait):
|
|
|
159
158
|
> 1. Go — start processing autonomously
|
|
160
159
|
> 2. Different roadmap · 3. Different scope · 4. Toggle council · 5. Abort
|
|
161
160
|
|
|
162
|
-
The invocation-level skip still applies under `skip_pre_run_gate: false`:
|
|
163
|
-
when scope, roadmap, and council are all unambiguous in the invocation
|
|
164
|
-
(e.g. `/roadmap:process-phase road-to-X.md with council`), the gate
|
|
165
|
-
does not fire.
|
|
166
161
|
|
|
167
162
|
## 3. Pre-scan — execution contract or commit-step ask
|
|
168
163
|
|
|
@@ -334,7 +329,8 @@ report.
|
|
|
334
329
|
run: branches, chunked commits, pushing that branch, opening and updating the
|
|
335
330
|
PR, reversible repository/branch settings, CI runs and re-runs, merge-base
|
|
336
331
|
updates, conflict resolution, project-local dependencies, and paid calls
|
|
337
|
-
inside
|
|
332
|
+
inside whatever `cost.budgets` windows are configured — none configured,
|
|
333
|
+
none applies (ADR-279). If yes → **run it**.
|
|
338
334
|
3. **Is it on the EXCLUDED list?** Merging to a production trunk, deploying,
|
|
339
335
|
production data / secrets / IAM / DNS, bulk deletion outside the roadmap's
|
|
340
336
|
scope, an irreversible external action beyond the PR itself. Those keep their
|
|
@@ -501,11 +497,15 @@ so the shape is settled before the runs rather than designed under pressure:
|
|
|
501
497
|
a branch.
|
|
502
498
|
- **Delivery:** one branch and one PR per lane.
|
|
503
499
|
- **Immediate removal:** a single scope-lock collision with data loss.
|
|
500
|
+
- **Refusal report:** every lane report carries the fixed field
|
|
501
|
+
`classifier_refusals` (an empty list when none) — a report without it is
|
|
502
|
+
malformed, never "clean". At drain end the orchestrator batches every lane's
|
|
503
|
+
field into ONE envelope (§ Host-classifier refusals).
|
|
504
504
|
|
|
505
505
|
## 4. Resolve cadences — read once, cache for the run
|
|
506
506
|
|
|
507
|
-
Read
|
|
508
|
-
run. Do **not** re-read inside the step loop.
|
|
507
|
+
Read `roadmap.quality_cadence` from `.agent-settings.yml` once and cache
|
|
508
|
+
it for the whole run. Do **not** re-read inside the step loop.
|
|
509
509
|
|
|
510
510
|
**`roadmap.quality_cadence`** — when to run the quality pipeline.
|
|
511
511
|
Only relevant when `quality.local_auto_run` is `true`; when it is
|
|
@@ -524,17 +524,12 @@ Missing / unreadable / unknown → fall back to `end_of_roadmap`.
|
|
|
524
524
|
The Iron Law [`verify-before-complete`](../../rules/verify-before-complete.md)
|
|
525
525
|
still forbids claiming quality output that was not produced.
|
|
526
526
|
|
|
527
|
-
|
|
528
|
-
|
|
527
|
+
**Dashboard regen cadence** — fixed, not a setting (the
|
|
528
|
+
`roadmap.dashboard_regen_cadence` key was retired on 2026-10-09 with its
|
|
529
|
+
default as the behavior): `./agent-config roadmap:progress` runs every
|
|
530
|
+
5th closed step, at every phase boundary and at reply end.
|
|
529
531
|
|
|
530
|
-
|
|
531
|
-
|---|---|
|
|
532
|
-
| `per_step` | After every checkbox flip |
|
|
533
|
-
| `every_5_steps` (default) | Every 5th closed step + at phase boundary + at reply end |
|
|
534
|
-
| `phase_boundary` | Only at phase boundaries + run end |
|
|
535
|
-
|
|
536
|
-
`process-step` ignores this — single-step runs always regen at step
|
|
537
|
-
end. Any file-shape touch (rename / phase add / archive — Iron Law 1
|
|
532
|
+
`process-step` always regens at step end. Any file-shape touch (rename / phase add / archive — Iron Law 1
|
|
538
533
|
of [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md))
|
|
539
534
|
forces an immediate regen regardless of cadence. The checkbox flip
|
|
540
535
|
itself is **never** batchable — only the subprocess.
|
|
@@ -772,16 +767,13 @@ Per-class routing, why parking is not deferring, and the scope-growth pointer:
|
|
|
772
767
|
above unchanged (agent-decidable exit/acceptance criteria remain the
|
|
773
768
|
default; `verify:` is the opt-in machine-checkable tightening).
|
|
774
769
|
|
|
775
|
-
6. **Dashboard regen — cadence
|
|
776
|
-
`./agent-config roadmap:progress
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
- `phase_boundary` → skip; the boundary handler in § 5 wrapper /
|
|
783
|
-
§ 6 runs the regen.
|
|
784
|
-
- Any file-shape touch (rename / phase add / archive — Iron Law 1)
|
|
770
|
+
6. **Dashboard regen — fixed cadence** (§ 4). Run
|
|
771
|
+
`./agent-config roadmap:progress`:
|
|
772
|
+
- after the 5th, 10th, … closed step **of this run**, or when the
|
|
773
|
+
reply ends with closed steps pending regen;
|
|
774
|
+
- at a phase boundary — the boundary handler in § 5 wrapper / § 6
|
|
775
|
+
runs it;
|
|
776
|
+
- on any file-shape touch (rename / phase add / archive — Iron Law 1)
|
|
785
777
|
→ run immediately regardless of cadence.
|
|
786
778
|
|
|
787
779
|
Skipped regens accumulate into the next due regen — the markdown
|
|
@@ -843,7 +835,7 @@ and none of them is a `blocked` outcome.
|
|
|
843
835
|
|
|
844
836
|
| # | What the refresh found | Reaction |
|
|
845
837
|
|---|---|---|
|
|
846
|
-
| a | A PR touching my owned paths **merged** since the last refresh | Run `
|
|
838
|
+
| a | A PR touching my owned paths **merged** since the last refresh | Run `agent-config git:convention sync --base origin/<this branch's PR base>` now — already the documented resolution, only push-bound until this row existed. Re-read the current step's files, continue. |
|
|
847
839
|
| b | An **open** PR touches my owned paths | Continue. Name the collision in the PR description and in the final report. **Never rebase onto a foreign branch.** |
|
|
848
840
|
| c | A peer session shows `PATH OVERLAP` | Take disjoint steps first if ordering allows; otherwise name it and continue. The register is advisory, never a lock. |
|
|
849
841
|
| d | The roadmap itself was **archived on `origin/main`** | Stop. The same **selection error** as § 1, detected late — not a halt, and no checkbox is flipped to reach it. |
|
|
@@ -1004,9 +996,11 @@ a violation of the command and the user's will:
|
|
|
1004
996
|
opened" / "a GitHub setting must change" / "CI must be re-run" / "the merge
|
|
1005
997
|
base needs updating" / "there are conflicts" / "tests fail"** — every one is
|
|
1006
998
|
remediation work the invocation authorised (ADR-237 § 1). Do it.
|
|
1007
|
-
- **"a paid service is needed"** — authorised
|
|
1008
|
-
|
|
1009
|
-
|
|
999
|
+
- **"a paid service is needed"** — authorised inside the configured
|
|
1000
|
+
`cost.budgets` windows, and with none configured there is no ceiling to be
|
|
1001
|
+
outside of (§ Spend in the wrapper). A crossing of a configured window pauses
|
|
1002
|
+
and reports; it does not ask. Uncertainty about the exact cost is explicitly
|
|
1003
|
+
NOT a reason to ask.
|
|
1010
1004
|
- **"a maintainer should do this"** when the agent can perform the same action
|
|
1011
1005
|
through git, `gh`, an API or a CLI. **Capability before role**: the role of the
|
|
1012
1006
|
person who conventionally does a thing is not a property of the thing.
|
|
@@ -1045,10 +1039,31 @@ execution either way.
|
|
|
1045
1039
|
[`roadmap-execution-contract § 4`](roadmap-execution-contract.md)):
|
|
1046
1040
|
all steps `[x]` · quality green per cadence · work committed in
|
|
1047
1041
|
chunks on the run's feature branch · pushed to that branch · ONE PR
|
|
1048
|
-
open (description-only flow) · archival sweep run. **
|
|
1049
|
-
|
|
1042
|
+
open (description-only flow) · archival sweep run. **No mode merges by
|
|
1043
|
+
itself:** a merge needs the owner's explicit auto-merge instruction and
|
|
1044
|
+
runs through `/pr:merge` § 9a's danger gate (ADR-282). Without a contract
|
|
1050
1045
|
(interactive mode), the run ends after the archival check with no
|
|
1051
1046
|
git delivery beyond explicitly authorized commit steps.
|
|
1047
|
+
|
|
1048
|
+
### 6-refusals. Host-classifier refusals — hand off, never route around
|
|
1049
|
+
|
|
1050
|
+
When the host's own classifier refuses a step of an owner-directed task, the
|
|
1051
|
+
run never reaches the same outcome by another tool, in smaller pieces or in
|
|
1052
|
+
another encoding, and never records a way around it. It finishes what does not
|
|
1053
|
+
depend on the refused step, then — owner present — asks once in-session for an
|
|
1054
|
+
explicit authorization of that exact step and, on a yes, re-runs the SAME step
|
|
1055
|
+
ONCE so the classifier decides again with the owner's word in front of it
|
|
1056
|
+
(ADR-282 § Part B). Refused again, or no owner present, it writes ONE
|
|
1057
|
+
continuation prompt for the owner and names its path in one line:
|
|
1058
|
+
|
|
1059
|
+
```bash
|
|
1060
|
+
./scripts-run src/scripts/refusal_envelope --input <envelope.json>
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
The input is task · done · refusals · remaining · the owner-directive record
|
|
1064
|
+
when there is one; the envelope lands at `agents/tmp/round-<hex>/prompt.md`.
|
|
1065
|
+
Lane refusals arrive in each lane's `classifier_refusals` field and go into the
|
|
1066
|
+
same single envelope (ADR-282 § Part B).
|
|
1052
1067
|
- **If the entire roadmap reached `count_open == 0`** → run the full
|
|
1053
1068
|
project quality pipeline. On red → stop, surface failures, do **not**
|
|
1054
1069
|
archive. On green → run the **deferred-resolution gate** below before
|
|
@@ -1056,8 +1071,38 @@ execution either way.
|
|
|
1056
1071
|
|
|
1057
1072
|
### 6a. Deferred-resolution gate — Iron Law 3
|
|
1058
1073
|
|
|
1059
|
-
|
|
1060
|
-
|
|
1074
|
+
**Default: the sweep resolves it.** `archive_completed_roadmaps --all` carries
|
|
1075
|
+
every bare `[~]` step, plus every open blocker such a step names, into a
|
|
1076
|
+
`<slug>-carried` follow-up created in the same change (`deferral_carry.ts`),
|
|
1077
|
+
annotates the parent `carried-to=<slug>`, and archives — the "carry item +
|
|
1078
|
+
blocker" council row below, executed deterministically, so a finished
|
|
1079
|
+
`/roadmap:process-full` run ends archived instead of parked at 100 %. The
|
|
1080
|
+
manual flow below applies only to what the sweep refuses: an open blocker no
|
|
1081
|
+
deferred step names, a hand-written annotation that fails validation, or a run
|
|
1082
|
+
with `--no-carry`.
|
|
1083
|
+
|
|
1084
|
+
**Owner-dependent blockers stop the carry.** When a carried step names a blocker
|
|
1085
|
+
whose `Owner:` is the human (`maintainer` / `user` / `owner`, or any value that is
|
|
1086
|
+
not `implementer` / `council` / `agent` / `ai`), the sweep writes nothing and
|
|
1087
|
+
prints a `❓` block plus one `OWNER-DECISION {json}` line. Put that decision to
|
|
1088
|
+
the owner as ONE numbered-options question, never resolve it yourself:
|
|
1089
|
+
|
|
1090
|
+
1. **Archive it** — run the printed `archive_command` (`… --owner-decision later --only <roadmap>`):
|
|
1091
|
+
the parent archives, the steps and their blockers park in
|
|
1092
|
+
`later/<slug>-carried.md`.
|
|
1093
|
+
2. **Step by step** — show the FIRST step (`first_step`, verbatim) with its
|
|
1094
|
+
blocker's question, in the same message, so the owner can answer it or push
|
|
1095
|
+
it to later in one reply. An answer → do the step, flip it, show the next
|
|
1096
|
+
one. "Later" → leave that step `[~]` and show the next one. When no step is
|
|
1097
|
+
left to show, run that `archive_command`: what is still
|
|
1098
|
+
deferred parks, the parent archives.
|
|
1099
|
+
|
|
1100
|
+
A **subagent** never answers this and never passes `--owner-decision` itself: it
|
|
1101
|
+
stops and returns the `OWNER-DECISION` line verbatim, and the orchestrator puts
|
|
1102
|
+
it to the owner. A non-interactive run ends on the question, not on a report.
|
|
1103
|
+
|
|
1104
|
+
Before any `git mv` to `archive/` the sweep refused, count `[~]` items in the
|
|
1105
|
+
closing roadmap. If `count_deferred > 0`, archival is **blocked** per
|
|
1061
1106
|
[`roadmap-progress-sync § Iron Law 3`](../../rules/roadmap-progress-sync.md).
|
|
1062
1107
|
The loop MUST:
|
|
1063
1108
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Session Canary — Enforcement History
|
|
2
|
+
|
|
3
|
+
Loaded by [`session-canary`](../../rules/session-canary.md). Four dated
|
|
4
|
+
conformance audits of the canary carrier, moved here verbatim so the rule
|
|
5
|
+
states its obligation and this file holds the record behind it. Nothing was
|
|
6
|
+
rewritten; the measurements and their stated limits are as they were written.
|
|
7
|
+
|
|
8
|
+
**What that fixed, stated because it was measured.** Conformance audit, 30
|
|
9
|
+
sessions, 2026-08-06, under session-scope-only injection: opening canary dropped
|
|
10
|
+
on ~13 of 15 task starts, often present only in the closing summary, twice
|
|
11
|
+
carrying a name the settings chain did not resolve; the honesty clause fired
|
|
12
|
+
zero times. The frequency join in `check_enforcement_coverage.ts` now reports the
|
|
13
|
+
carrier as covering the obligation — which is a claim about firing, not about
|
|
14
|
+
compliance.
|
|
15
|
+
|
|
16
|
+
**What the second audit found: the carrier fires and compliance did not
|
|
17
|
+
follow.** Conformance round 5, 2026-08-07, reading the five highest-turn
|
|
18
|
+
sessions with the carrier bound per turn: opening canary dropped on **24 of 29**
|
|
19
|
+
task starts, the honesty clause fired **0** times, and the wrong name was
|
|
20
|
+
emitted **twice** — "Mathias", which resolves from no layer of the chain
|
|
21
|
+
(`identity.name` is `Matze`, `git config user.name` is `matze4u`), i.e. inferred
|
|
22
|
+
from the ambient environment rather than read from settings. 24/29 against the
|
|
23
|
+
earlier 13/15 is not a fall, and the two windows are not identical, so they are
|
|
24
|
+
stated side by side rather than as a trend — but nothing here supports the claim
|
|
25
|
+
that the miss rate moved. A reminder in context is therefore not a mechanism for
|
|
26
|
+
this obligation: at higher frequency it is the same request, more often.
|
|
27
|
+
|
|
28
|
+
**What the next mechanism has to be.** Not another injection. It has to be able
|
|
29
|
+
to **refuse** — a check at delivery (`stop` is block-capable on this host, so a
|
|
30
|
+
refused turn-end continues in the same turn) that rejects a task-start reply
|
|
31
|
+
carrying no greeting. Proposed, not shipped; until it is, this obligation is
|
|
32
|
+
model-carried in practice, whatever the frequency join reports.
|
|
33
|
+
|
|
34
|
+
**Round 7 downgrade: that proposed mechanism is UNDECIDABLE as written, and the
|
|
35
|
+
obligation splits into a measured half and an unmeasurable one.** A *task* start
|
|
36
|
+
is recorded nowhere in a transcript — there is no task event on any host, and
|
|
37
|
+
`user-interrupt-priority`'s continuation/clarification/interrupt distinction is a
|
|
38
|
+
judgement, not a field. So a delivery check "that rejects a task-start reply" has
|
|
39
|
+
no way to know a task started. The proposal is not merely unbuilt; as specified it
|
|
40
|
+
cannot be built, and saying "proposed, not shipped" implied otherwise.
|
|
41
|
+
|
|
42
|
+
What IS decidable is the per-**session** instance, and it was measured rather than
|
|
43
|
+
asserted — reproducibly, which took a correction: the probe resolves the name
|
|
44
|
+
through the same settings layers this rule names and REFUSES when no layer carries
|
|
45
|
+
one, so the figure below is reproduced with the name passed explicitly
|
|
46
|
+
(`./scripts-run src/scripts/probe_session_canary --limit 30 --name <your name>`;
|
|
47
|
+
the first version hardcoded a maintainer's nickname as its default, which made the
|
|
48
|
+
number irreproducible for anyone else and silently read 0 %). Over 30 sessions on
|
|
49
|
+
2026-08-12: the opening greeting is present in **25 of 28** sessions carrying
|
|
50
|
+
assistant prose (89.3 %), and in **24 of 25** post-carrier (96.0 %). Of the three
|
|
51
|
+
misses, two predate the carrier (2026-07-21, 2026-07-29) and one is a session whose
|
|
52
|
+
first thirty turns were tool calls.
|
|
53
|
+
|
|
54
|
+
Both halves of that are load-bearing. The carrier works exactly where it has a
|
|
55
|
+
slot — `session_start` — which is why the session-scope figure is high; and the
|
|
56
|
+
24-of-29 task-start figure above is not contradicted by it, because the two count
|
|
57
|
+
different events. The honest statement is therefore: **session-scope compliance is
|
|
58
|
+
measured and good; task-scope compliance is unmeasured and unmeasurable with
|
|
59
|
+
today's transcript, and no gate can change that until a task boundary is recorded
|
|
60
|
+
somewhere.** Do not read the 96 % as covering the obligation as a whole.
|
|
61
|
+
|
|
62
|
+
**The wrong-name half needs nothing, and that is worth stating.** The beat
|
|
63
|
+
already carries the resolved value — `build_canary_reminder` emits
|
|
64
|
+
`Canary active for "<name>"`, and the hook no-ops when no layer resolves a name —
|
|
65
|
+
and both wrong-name occurrences predate it: 2026-08-04, where the per-turn beat
|
|
66
|
+
landed 2026-08-06. The inference path they measure is already closed, so a third
|
|
67
|
+
audit should not re-open it.
|
|
@@ -12,8 +12,10 @@ provider's model or billing rule.
|
|
|
12
12
|
inherit`, per [`model-recommendations`](../model-recommendations.md)).
|
|
13
13
|
`frontier` (ADR-232) is declarable and opt-in; it is never the resolution of
|
|
14
14
|
`inherit` — see the top-band invariant below.
|
|
15
|
-
- `subagents.
|
|
15
|
+
- `subagents.quota_arbitrage`, `subagents.model_map`
|
|
16
16
|
(see [`auto-orchestration-activation`](auto-orchestration-activation.md)).
|
|
17
|
+
Downshift itself is always on — the `subagents.downshift` key was retired on
|
|
18
|
+
2026-10-09 with its default as the fixed behavior.
|
|
17
19
|
- The host-capability manifest's `separate_quota_pool`
|
|
18
20
|
([`host-capability-manifest`](host-capability-manifest.md)).
|
|
19
21
|
|
|
@@ -26,21 +28,19 @@ QUOTA ARBITRAGE IS A BONUS, NEVER LOAD-BEARING — REMOVE IT AND ROUTING IS
|
|
|
26
28
|
THE SAME MINUS THE QUOTA WIN.
|
|
27
29
|
```
|
|
28
30
|
|
|
29
|
-
1. **Downshift
|
|
30
|
-
tier. No routing change.
|
|
31
|
-
2. **Downshift on** → a sub-task runs on its declared tier; an `inherit` task
|
|
31
|
+
1. **Downshift** (always on) → a sub-task runs on its declared tier; an `inherit` task
|
|
32
32
|
runs on the session tier, **bounded by the top-band invariant below**. The
|
|
33
33
|
tier resolves to a model alias via `model_map`; an empty entry means "use
|
|
34
34
|
the tier's runtime default" — never a baked-in provider model name.
|
|
35
|
-
|
|
35
|
+
2. **Quota arbitrage** → prefer the **separate** quota pool for the sub-task
|
|
36
36
|
**only when** `subagents.quota_arbitrage == true` **and**
|
|
37
37
|
`manifest.separate_quota_pool == true`. Otherwise the shared pool is used and
|
|
38
38
|
the tier/model choice is unchanged. This is the only place the
|
|
39
39
|
"Sonnet-has-its-own-allowance" idea lives, and it lives as a runtime-detected
|
|
40
40
|
flag, never as portable prose.
|
|
41
|
-
|
|
41
|
+
3. **Budget routing — ARCHIVED 2026-08-16, there is no third step.** This
|
|
42
42
|
position used to describe a budget relation applied after the tier resolves
|
|
43
|
-
per 1–
|
|
43
|
+
per 1–2: cheapest classifier-adequate tier WITH available budget, an atomic
|
|
44
44
|
pre-dispatch reserve, a cool-down on quota errors. None of it exists any
|
|
45
45
|
more. A converged AI-council verdict (anthropic + openai, 2 of 2) archived
|
|
46
46
|
`pickTier` and the permit lifecycle, because the `routing_switch` they
|
|
@@ -196,7 +196,7 @@ rule, or context asserts "model X is free".
|
|
|
196
196
|
Tier vocabulary + cool-down state:
|
|
197
197
|
[`src/scripts/_lib/tier_budget_routing.ts`](../../../../src/scripts/_lib/tier_budget_routing.ts)
|
|
198
198
|
(`TIER_ORDER`, `readCooldowns` — the budget decision layer that used to live
|
|
199
|
-
there is archived, see step
|
|
199
|
+
there is archived, see step 3), covered by
|
|
200
200
|
[`tests/scripts/tier_budget_routing.test.ts`](../../../../tests/scripts/tier_budget_routing.test.ts);
|
|
201
201
|
live state: `agent-config routing:doctor` (orchestration section).
|
|
202
202
|
|
|
@@ -23,9 +23,11 @@ dispatch → monitor → status → escalate / kill
|
|
|
23
23
|
|
|
24
24
|
## Budget + parallel cap
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
- `budgetHalt()`'s per-target cap (`MAX_ATTEMPTS_PER_TARGET = 3`) is the
|
|
27
|
+
orchestrator's own number, not `autonomous-execution`'s
|
|
28
|
+
`execution.fix_loop_max` budget (now a default-10 ladder): three
|
|
29
|
+
consecutive failed attempts on the same target halts the run and surfaces
|
|
30
|
+
the three attempts. `budgetHalt()` is the deterministic counter.
|
|
29
31
|
- `subagents.max_parallel` caps concurrent dispatch. No speculative fan-out:
|
|
30
32
|
a subagent is spawned only for a classified-delegable target, never on spec.
|
|
31
33
|
|
|
@@ -175,7 +177,7 @@ requires a non-empty `emergency.orchestration_halt_justification`.
|
|
|
175
177
|
|
|
176
178
|
## Related
|
|
177
179
|
|
|
178
|
-
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
180
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the `execution.fix_loop_max` budget and its ladder.
|
|
179
181
|
- [`auto-orchestration-activation`](auto-orchestration-activation.md) — `enabled`/`auto` keys.
|
|
180
182
|
- [`orchestration-telemetry`](orchestration-telemetry.md) — the audit signals the guardrails read.
|
|
181
183
|
- [`subagent-response-contract`](subagent-response-contract.md) — the structured body returned inside this 4-status envelope + the orchestrator's synthesis duties.
|
|
@@ -114,7 +114,7 @@ state is not `success` it names what would change it:
|
|
|
114
114
|
- [`verify-before-complete`](../../rules/verify-before-complete.md) — no
|
|
115
115
|
completion claim without fresh evidence; this names what to claim when the
|
|
116
116
|
claim is not completion.
|
|
117
|
-
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
118
|
-
validation budget whose firing is `exhausted`.
|
|
117
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
118
|
+
`execution.fix_loop_max` validation budget whose firing is `exhausted`.
|
|
119
119
|
- [`autonomy-mechanics`](autonomy-mechanics.md) — the budget's mechanics and the
|
|
120
120
|
adaptive-effort ordering this page's progress-primary section states.
|