@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.
Files changed (651) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +337 -234
  5. package/README.md +15 -13
  6. package/agents/templates/.ai-council.yml.example +26 -8
  7. package/dist/agent-src/commands/analyze/inbox.md +11 -8
  8. package/dist/agent-src/commands/analyze/roadmap-repos.md +1 -1
  9. package/dist/agent-src/commands/bug/fix.md +17 -2
  10. package/dist/agent-src/commands/bug/investigate.md +1 -1
  11. package/dist/agent-src/commands/commit/in-chunks.md +40 -31
  12. package/dist/agent-src/commands/commit.md +72 -33
  13. package/dist/agent-src/commands/condense.md +2 -8
  14. package/dist/agent-src/commands/council/debate.md +11 -7
  15. package/dist/agent-src/commands/council/default.md +10 -9
  16. package/dist/agent-src/commands/council.md +1 -1
  17. package/dist/agent-src/commands/estimate-ticket.md +1 -1
  18. package/dist/agent-src/commands/feature/explore.md +3 -3
  19. package/dist/agent-src/commands/feature/plan.md +2 -2
  20. package/dist/agent-src/commands/feature/roadmap.md +1 -1
  21. package/dist/agent-src/commands/fix/ci.md +18 -4
  22. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  23. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  24. package/dist/agent-src/commands/implement-ticket.md +4 -4
  25. package/dist/agent-src/commands/jira-ticket.md +1 -1
  26. package/dist/agent-src/commands/memory/add.md +4 -16
  27. package/dist/agent-src/commands/memory/load.md +5 -6
  28. package/dist/agent-src/commands/memory/promote.md +3 -16
  29. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  30. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  31. package/dist/agent-src/commands/optimize/deep.md +4 -2
  32. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  33. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  34. package/dist/agent-src/commands/pr/create.md +42 -34
  35. package/dist/agent-src/commands/pr/merge.md +136 -9
  36. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  37. package/dist/agent-src/commands/project/analyze.md +7 -35
  38. package/dist/agent-src/commands/refine-ticket.md +1 -1
  39. package/dist/agent-src/commands/review/changes.md +14 -19
  40. package/dist/agent-src/commands/roadmap/create.md +1 -1
  41. package/dist/agent-src/commands/roadmap/materialize.md +1 -1
  42. package/dist/agent-src/commands/roadmap/next.md +10 -1
  43. package/dist/agent-src/commands/roadmap/process-full.md +56 -42
  44. package/dist/agent-src/commands/roadmap/resolve-blockers.md +411 -0
  45. package/dist/agent-src/commands/roadmap/triage-parked.md +325 -0
  46. package/dist/agent-src/commands/roadmap.md +18 -4
  47. package/dist/agent-src/commands/tests/create.md +17 -3
  48. package/dist/agent-src/commands/tests/execute.md +22 -5
  49. package/dist/agent-src/commands/worktree/create.md +7 -3
  50. package/dist/agent-src/commands/worktree/verify.md +2 -1
  51. package/dist/agent-src/contexts/authority/decision-revisit-gate-enforcement.md +43 -0
  52. package/dist/agent-src/contexts/communication/rules-auto/design-fidelity-enforcement.md +24 -0
  53. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  54. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  55. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  56. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  57. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +7 -7
  58. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  59. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  60. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  61. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  62. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  63. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +99 -54
  64. package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
  65. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  66. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  67. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  68. package/dist/agent-src/contexts/execution/toolchain-resolver.md +95 -7
  69. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  70. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  71. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  72. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  73. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  74. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  75. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  76. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  77. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  78. package/dist/agent-src/guidelines/php/git.md +15 -2
  79. package/dist/agent-src/rules/active-remediation.md +1 -2
  80. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  81. package/dist/agent-src/rules/architecture.md +0 -1
  82. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  83. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  84. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  85. package/dist/agent-src/rules/autonomous-execution.md +1 -1
  86. package/dist/agent-src/rules/brand-consistency.md +0 -1
  87. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  88. package/dist/agent-src/rules/broken-access-control.md +1 -1
  89. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  90. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  91. package/dist/agent-src/rules/code-provenance.md +0 -1
  92. package/dist/agent-src/rules/command-suggestion-policy.md +1 -1
  93. package/dist/agent-src/rules/commit-conventions.md +1 -2
  94. package/dist/agent-src/rules/communication-through-line.md +1 -2
  95. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  96. package/dist/agent-src/rules/context-hygiene.md +6 -6
  97. package/dist/agent-src/rules/copilot-routing.md +1 -2
  98. package/dist/agent-src/rules/council-availability.md +4 -4
  99. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  100. package/dist/agent-src/rules/decision-revisit-gate.md +17 -35
  101. package/dist/agent-src/rules/delegation-policy.md +2 -3
  102. package/dist/agent-src/rules/design-fidelity.md +12 -16
  103. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  104. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  105. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  106. package/dist/agent-src/rules/docker-commands.md +0 -1
  107. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  108. package/dist/agent-src/rules/domain-safety-disclaimer.md +1 -1
  109. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  110. package/dist/agent-src/rules/domain-safety-retention.md +1 -1
  111. package/dist/agent-src/rules/downstream-changes.md +0 -1
  112. package/dist/agent-src/rules/engineering-safety-floor.md +1 -1
  113. package/dist/agent-src/rules/evaluator-independence.md +3 -2
  114. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  115. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  116. package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -2
  117. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  118. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  119. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  120. package/dist/agent-src/rules/git-history-discipline.md +2 -2
  121. package/dist/agent-src/rules/guidelines.md +0 -1
  122. package/dist/agent-src/rules/history-discipline.md +0 -1
  123. package/dist/agent-src/rules/icon-consistency.md +0 -1
  124. package/dist/agent-src/rules/image-likeness-and-rights.md +1 -1
  125. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  126. package/dist/agent-src/rules/invite-challenge.md +0 -1
  127. package/dist/agent-src/rules/laravel-routing.md +1 -2
  128. package/dist/agent-src/rules/laravel-translations.md +0 -1
  129. package/dist/agent-src/rules/legal-safety-floor.md +3 -3
  130. package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -1
  131. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  132. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -1
  133. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  134. package/dist/agent-src/rules/media-governance-routing.md +13 -17
  135. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  136. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  137. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  138. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  139. package/dist/agent-src/rules/model-recommendation.md +0 -1
  140. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  141. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  142. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  143. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  144. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  145. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  146. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  147. package/dist/agent-src/rules/output-discipline.md +0 -1
  148. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  149. package/dist/agent-src/rules/persona-governance.md +4 -5
  150. package/dist/agent-src/rules/php-coding.md +0 -1
  151. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  152. package/dist/agent-src/rules/preservation-guard.md +0 -1
  153. package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -4
  154. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  155. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  156. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  157. package/dist/agent-src/rules/roadmap-progress-sync.md +4 -7
  158. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  159. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  160. package/dist/agent-src/rules/runtime-safety.md +1 -1
  161. package/dist/agent-src/rules/scale-discipline.md +0 -1
  162. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  163. package/dist/agent-src/rules/security-sensitive-stop.md +3 -3
  164. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  165. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  166. package/dist/agent-src/rules/session-canary.md +7 -62
  167. package/dist/agent-src/rules/settings-ask-protocol.md +6 -6
  168. package/dist/agent-src/rules/size-enforcement.md +0 -1
  169. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  170. package/dist/agent-src/rules/skill-quality.md +0 -1
  171. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  172. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  173. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  174. package/dist/agent-src/rules/source-of-truth.md +0 -1
  175. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  176. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  177. package/dist/agent-src/rules/symfony-routing.md +1 -2
  178. package/dist/agent-src/rules/think-before-action.md +0 -1
  179. package/dist/agent-src/rules/token-budget-discipline.md +12 -46
  180. package/dist/agent-src/rules/token-efficiency.md +0 -1
  181. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  182. package/dist/agent-src/rules/tool-safety.md +1 -1
  183. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  184. package/dist/agent-src/rules/untrusted-input-defense.md +1 -1
  185. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  186. package/dist/agent-src/rules/user-interaction.md +0 -1
  187. package/dist/agent-src/rules/user-interrupt-priority.md +1 -1
  188. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
  189. package/dist/agent-src/scripts/deferral_carry.ts +339 -0
  190. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  191. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  192. package/dist/agent-src/scripts/update_roadmap_progress.ts +4 -1
  193. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  194. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  195. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  196. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  197. package/dist/agent-src/skills/api-design/data/manifest.json +2 -2
  198. package/dist/agent-src/skills/api-testing/SKILL.md +17 -0
  199. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  200. package/dist/agent-src/skills/code-intelligence/SKILL.md +14 -2
  201. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  202. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  203. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  204. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  205. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  206. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  207. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  208. package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +1 -1
  209. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  210. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +2 -2
  211. package/dist/agent-src/skills/fe-design/SKILL.md +1 -1
  212. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  213. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  214. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  215. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  216. package/dist/agent-src/skills/iconography/SKILL.md +1 -1
  217. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  218. package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
  219. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  220. package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
  221. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  222. package/dist/agent-src/skills/quality-tools/SKILL.md +11 -1
  223. package/dist/agent-src/skills/quality-tools/references/go-tools.md +76 -0
  224. package/dist/agent-src/skills/quality-tools/references/python-tools.md +104 -0
  225. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  226. package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
  227. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  228. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
  229. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  230. package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
  231. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -2
  232. package/dist/agent-src/skills/test-case-discovery/SKILL.md +7 -0
  233. package/dist/agent-src/skills/test-driven-development/SKILL.md +17 -0
  234. package/dist/agent-src/skills/test-performance/SKILL.md +19 -1
  235. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  236. package/dist/agent-src/skills/ui-component-architect/SKILL.md +2 -2
  237. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  238. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  239. package/dist/agent-src/templates/AGENTS.md +1 -1
  240. package/dist/agent-src/templates/agent-settings.md +46 -129
  241. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  242. package/dist/agent-src/templates/command.md +2 -2
  243. package/dist/agent-src/templates/roadmaps.md +6 -1
  244. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  245. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  246. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
  247. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  248. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  249. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  250. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  251. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  252. package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
  253. package/dist/agent-src/templates/skill.md +1 -1
  254. package/dist/cli/registry.js +2 -1
  255. package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
  256. package/dist/cli-delegate/check_update_banner.js +207 -120
  257. package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
  258. package/dist/cli-delegate/{chunk-FP36SWJD.js → chunk-5GPULQBE.js} +2797 -338
  259. package/dist/cli-delegate/{chunk-IGD6ERX6.js → chunk-6SRJTYJS.js} +42 -176
  260. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  261. package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
  262. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  263. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  264. package/dist/cli-delegate/chunk-7IQE3D5S.js +191 -0
  265. package/dist/cli-delegate/{chunk-YJ72UIAK.js → chunk-AED2VQGM.js} +1245 -249
  266. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  267. package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
  268. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  269. package/dist/cli-delegate/chunk-F3QDG2GT.js +2569 -0
  270. package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-G5VVIZRC.js} +3 -3
  271. package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-H76PHZBI.js} +149 -61
  272. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  273. package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
  274. package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
  275. package/dist/cli-delegate/{chunk-7RQP4UDH.js → chunk-KR6EM23A.js} +235 -1455
  276. package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-KXXWJTDO.js} +6 -11
  277. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  278. package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-MDPPKQCQ.js} +58 -9
  279. package/dist/cli-delegate/{chunk-4XFP2Y3E.js → chunk-MSUL5NYP.js} +5 -5
  280. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  281. package/dist/cli-delegate/{chunk-4E2W63DA.js → chunk-OKJUIAPS.js} +62 -1
  282. package/dist/cli-delegate/{chunk-QAJS5YWY.js → chunk-PHD7OOLE.js} +2 -1
  283. package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-PWX7CKMD.js} +4 -4
  284. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  285. package/dist/cli-delegate/{chunk-7XGBX6ZH.js → chunk-T7XSJSUQ.js} +1144 -589
  286. package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
  287. package/dist/cli-delegate/chunk-WQWXGIWB.js +1779 -0
  288. package/dist/cli-delegate/{chunk-RGNIWTEA.js → chunk-XQTPXKFA.js} +1 -1
  289. package/dist/cli-delegate/{chunk-NUHLI2RX.js → chunk-YCU3TIXH.js} +2 -0
  290. package/dist/cli-delegate/chunk-ZBZV2G5R.js +210 -0
  291. package/dist/cli-delegate/{chunk-WGXTVKCQ.js → chunk-ZUZKZYCN.js} +5 -3
  292. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  293. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  294. package/dist/cli-delegate/cmd_conformance.js +1252 -249
  295. package/dist/cli-delegate/cmd_converge.js +3 -3
  296. package/dist/cli-delegate/cmd_doctor.js +19 -9
  297. package/dist/cli-delegate/cmd_doctor_neighbours.js +30 -0
  298. package/dist/cli-delegate/cmd_explain.js +45 -21
  299. package/dist/cli-delegate/cmd_export.js +13 -10
  300. package/dist/cli-delegate/cmd_fleet.js +3 -3
  301. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  302. package/dist/cli-delegate/cmd_handoff.js +44 -22
  303. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  304. package/dist/cli-delegate/cmd_memory_get.js +3 -1
  305. package/dist/cli-delegate/cmd_migrate.js +3 -3
  306. package/dist/cli-delegate/cmd_packs_active.js +5 -4
  307. package/dist/cli-delegate/cmd_preflight.js +6 -6
  308. package/dist/cli-delegate/cmd_prune.js +14 -11
  309. package/dist/cli-delegate/cmd_refresh.js +2 -1
  310. package/dist/cli-delegate/cmd_route_audit.js +10 -8
  311. package/dist/cli-delegate/cmd_route_explain.js +4 -4
  312. package/dist/cli-delegate/cmd_session_recycle.js +10 -7
  313. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  314. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  315. package/dist/cli-delegate/cmd_settings_migrate.js +13 -10
  316. package/dist/cli-delegate/cmd_settings_set.js +4 -4
  317. package/dist/cli-delegate/cmd_sync.js +14 -11
  318. package/dist/cli-delegate/cmd_uninstall.js +15 -12
  319. package/dist/cli-delegate/cmd_update.js +7 -7
  320. package/dist/cli-delegate/cmd_upgrade.js +9 -8
  321. package/dist/cli-delegate/cmd_validate.js +15 -12
  322. package/dist/cli-delegate/cmd_versions.js +5 -5
  323. package/dist/cli-delegate/deferral_carry.js +16 -0
  324. package/dist/cli-delegate/gate_budget.js +1 -1
  325. package/dist/cli-delegate/gate_execute.js +3 -3
  326. package/dist/cli-delegate/roadmap_gates.js +6 -6
  327. package/dist/cli-delegate/update_roadmap_progress.js +1 -1
  328. package/dist/discovery/deprecation-report.md +1 -1
  329. package/dist/discovery/discovery-manifest.json +232 -141
  330. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  331. package/dist/discovery/discovery-manifest.summary.md +3 -3
  332. package/dist/discovery/dormancy-report.md +1 -1
  333. package/dist/discovery/orphan-report.md +1 -1
  334. package/dist/discovery/packs.json +26 -9
  335. package/dist/discovery/trust-report.md +3 -3
  336. package/dist/discovery/workspaces.json +7 -4
  337. package/dist/hooks/dispatch.js +5655 -6623
  338. package/dist/hooks/dispatch.sha256 +1 -1
  339. package/dist/install/claudePathsPlan.js +47 -6
  340. package/dist/install/claudeRuleRewrite.js +7 -0
  341. package/dist/install/emit_host_rules_cli.js +39 -36
  342. package/dist/install/globalRuleScope.js +87 -0
  343. package/dist/install/host_rule_ownership.js +160 -0
  344. package/dist/install/install.mjs +2336 -1249
  345. package/dist/install/installThinLayer.js +289 -0
  346. package/dist/install/installedRuleLinks.js +262 -0
  347. package/dist/install/wizard-plan.js +24 -0
  348. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  349. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  350. package/dist/mcp/registry-manifest.json +5 -5
  351. package/dist/mcp/server.json +2 -2
  352. package/dist/mcp/server.mjs +36504 -30986
  353. package/dist/router.json +1 -1
  354. package/dist/scripts/_lib/agent_settings.js +26 -120
  355. package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
  356. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  357. package/dist/scripts/_lib/git_convention.js +232 -0
  358. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  359. package/dist/scripts/_lib/installed_layer.js +704 -0
  360. package/dist/scripts/_lib/lean_projection_mode.js +218 -15
  361. package/dist/scripts/_lib/package_root.js +68 -0
  362. package/dist/scripts/_lib/rule_consequence_class.js +45 -0
  363. package/dist/scripts/_lib/rule_injection.js +67 -10
  364. package/dist/scripts/_lib/rule_law_section.js +122 -0
  365. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  366. package/dist/scripts/_lib/thin_rules.js +535 -0
  367. package/dist/scripts/_lib/windsurf_render.js +60 -0
  368. package/dist/scripts/condense.js +14 -26
  369. package/dist/scripts/project_thin_rules.js +14 -294
  370. package/dist/server/app.js +2 -1
  371. package/dist/server/gitKeysGate.js +105 -0
  372. package/dist/server/routes/settings.js +67 -8
  373. package/dist/server/routes/wizard.js +4 -0
  374. package/dist/server/schemas/settings.js +29 -81
  375. package/dist/shared/skillRanking.js +103 -16
  376. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  377. package/dist/ui/index.html +1 -1
  378. package/docs/MIGRATION.md +72 -1
  379. package/docs/contracts/settings-classes.md +39 -67
  380. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  381. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  382. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  383. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  384. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  385. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  386. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  387. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  388. package/docs/guidelines/php/git.md +15 -2
  389. package/package.json +1 -1
  390. package/src/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
  391. package/src/agent-src/scripts/deferral_carry.ts +339 -0
  392. package/src/agent-src/scripts/gate_budget.ts +47 -23
  393. package/src/agent-src/scripts/gate_execute.ts +12 -4
  394. package/src/agent-src/scripts/update_roadmap_progress.ts +4 -1
  395. package/src/agent-src/templates/AGENTS.md +1 -1
  396. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  397. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  398. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
  399. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  400. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  401. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  402. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  403. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  404. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
  405. package/src/config/agent-settings.template.yml +141 -334
  406. package/src/config/agents-paths.yml +16 -0
  407. package/src/config/assurance-capability-registry.json +7 -3
  408. package/src/config/ci-local-parity.yml +3 -0
  409. package/src/config/continuity-surface.json +10 -3
  410. package/src/config/discovery/packs.yml +17 -1
  411. package/src/config/evaluator-budgets.json +23 -10
  412. package/src/config/gate-coverage.yml +138 -3
  413. package/src/config/gate-violation-baselines.json +64 -16
  414. package/src/config/gitignore-block.txt +19 -0
  415. package/src/config/hook-bundle-budget.json +25 -0
  416. package/src/config/hook-token-budget.json +6 -1
  417. package/src/config/host-instruction-limits.json +33 -0
  418. package/src/config/release-gate-locality.yml +2 -1
  419. package/src/config/routing-coverage-seed.json +67 -4
  420. package/src/config/rule-activation-census.json +7 -3
  421. package/src/config/rule-consequence-class.json +161 -0
  422. package/src/config/rule-law-ceilings.json +105 -0
  423. package/src/config/rule-obligations.json +833 -0
  424. package/src/install/claudePathsPlan.ts +46 -4
  425. package/src/install/claudeRuleRewrite.ts +10 -1
  426. package/src/install/emit_host_rules_cli.ts +43 -34
  427. package/src/install/globalRuleScope.ts +109 -0
  428. package/src/install/host_rule_ownership.ts +170 -0
  429. package/src/install/installThinLayer.ts +378 -0
  430. package/src/install/installedRuleLinks.ts +308 -0
  431. package/src/install/wizard-plan.ts +24 -0
  432. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  433. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  434. package/src/scripts/_cli/cmd_doctor.ts +33 -81
  435. package/src/scripts/_cli/cmd_doctor_neighbours.ts +426 -0
  436. package/src/scripts/_cli/cmd_explain.ts +72 -14
  437. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  438. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  439. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  440. package/src/scripts/_cli/doctor_execution.ts +72 -1
  441. package/src/scripts/_dispatch.bash +53 -4
  442. package/src/scripts/_lib/agent_settings.ts +26 -124
  443. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  444. package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
  445. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  446. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  447. package/src/scripts/_lib/estate_offsets.ts +241 -0
  448. package/src/scripts/_lib/exemption_shape.ts +143 -0
  449. package/src/scripts/_lib/fnv.ts +23 -0
  450. package/src/scripts/_lib/foreign_scan.ts +106 -0
  451. package/src/scripts/_lib/git_base_ref.ts +92 -0
  452. package/src/scripts/_lib/git_convention.ts +291 -0
  453. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  454. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  455. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  456. package/src/scripts/_lib/gitignore_block.ts +314 -0
  457. package/src/scripts/_lib/global_deploy_inventory.ts +106 -0
  458. package/src/scripts/_lib/graph_feeder_record.ts +437 -0
  459. package/src/scripts/_lib/hook_settings.ts +73 -0
  460. package/src/scripts/_lib/host_capability.ts +40 -19
  461. package/src/scripts/_lib/host_hook_merge.ts +165 -0
  462. package/src/scripts/_lib/installed_layer.ts +963 -0
  463. package/src/scripts/_lib/json_merge.ts +82 -0
  464. package/src/scripts/_lib/json_pointers.ts +93 -11
  465. package/src/scripts/_lib/knowledge_global.ts +14 -1
  466. package/src/scripts/_lib/lean_projection_mode.ts +275 -15
  467. package/src/scripts/_lib/machine_wake.ts +16 -3
  468. package/src/scripts/_lib/module_reach.ts +456 -0
  469. package/src/scripts/_lib/neighbour_census.ts +760 -0
  470. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  471. package/src/scripts/_lib/neighbour_scan.ts +122 -0
  472. package/src/scripts/_lib/neighbour_tool_use.ts +187 -0
  473. package/src/scripts/_lib/prompt_shape.ts +46 -0
  474. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  475. package/src/scripts/_lib/ratification_subject.ts +92 -0
  476. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  477. package/src/scripts/_lib/release_highlights.ts +5 -0
  478. package/src/scripts/_lib/release_migration_gate.ts +19 -3
  479. package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
  480. package/src/scripts/_lib/review_coverage.ts +134 -0
  481. package/src/scripts/_lib/rule_consequence_class.ts +71 -0
  482. package/src/scripts/_lib/rule_injection.ts +130 -10
  483. package/src/scripts/_lib/rule_law_section.ts +147 -0
  484. package/src/scripts/_lib/rule_layer_overlap.ts +58 -0
  485. package/src/scripts/_lib/rule_obligations.ts +205 -0
  486. package/src/scripts/_lib/self_repair.ts +1 -1
  487. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  488. package/src/scripts/_lib/skill_origin.ts +254 -0
  489. package/src/scripts/_lib/structured_ask.ts +64 -21
  490. package/src/scripts/_lib/test_red_state.ts +5 -0
  491. package/src/scripts/_lib/thin_rules.ts +620 -0
  492. package/src/scripts/_lib/touched_file_quality.ts +570 -0
  493. package/src/scripts/_lib/turn_end_refusals.ts +77 -2
  494. package/src/scripts/_lib/windsurf_render.ts +63 -0
  495. package/src/scripts/_lib/worker_budget.ts +1 -1
  496. package/src/scripts/adr/regenerate_index.ts +16 -1
  497. package/src/scripts/ai_council/cli_call_budget.ts +13 -5
  498. package/src/scripts/ai_council/clients.ts +26 -57
  499. package/src/scripts/ai_council/config.ts +8 -8
  500. package/src/scripts/ai_council/modification_review.ts +100 -0
  501. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  502. package/src/scripts/ai_council/orchestrator.ts +5 -5
  503. package/src/scripts/ai_council/spend_gate.ts +18 -7
  504. package/src/scripts/ai_council/vendor_defaults.ts +45 -0
  505. package/src/scripts/ai_team/config.ts +11 -16
  506. package/src/scripts/audit_skill_overlap.ts +261 -0
  507. package/src/scripts/audit_user_type_axis.ts +20 -8
  508. package/src/scripts/before_complete_hook.ts +243 -12
  509. package/src/scripts/bench_ab_clone.ts +1 -2
  510. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  511. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  512. package/src/scripts/bench_touched_file_quality.ts +238 -0
  513. package/src/scripts/check_agent_artifact_location.ts +36 -0
  514. package/src/scripts/check_branch_freshness.ts +147 -24
  515. package/src/scripts/check_enforcement_coverage.ts +130 -0
  516. package/src/scripts/check_enforcement_matrix.ts +377 -20
  517. package/src/scripts/check_estate_count.ts +130 -153
  518. package/src/scripts/check_evaluator_budgets.ts +4 -0
  519. package/src/scripts/check_finding_dispositions.ts +196 -21
  520. package/src/scripts/check_gate_coverage.ts +4 -3
  521. package/src/scripts/check_gate_reachability.ts +48 -1
  522. package/src/scripts/check_generator_sync.ts +48 -0
  523. package/src/scripts/check_hook_bundle_composition.ts +477 -0
  524. package/src/scripts/check_kernel_edit_ratified.ts +132 -14
  525. package/src/scripts/check_memory.ts +7 -1
  526. package/src/scripts/check_pack_size.ts +1 -1
  527. package/src/scripts/check_release_highlights.ts +10 -0
  528. package/src/scripts/check_release_manifest_content.ts +189 -0
  529. package/src/scripts/check_release_pr_shape.ts +38 -15
  530. package/src/scripts/check_standing_rule_delivery.ts +129 -13
  531. package/src/scripts/check_suppression_hygiene.ts +2 -5
  532. package/src/scripts/check_verify_expectation_delta.ts +521 -0
  533. package/src/scripts/ci_settle.ts +42 -5
  534. package/src/scripts/classify_merge_risk.ts +320 -0
  535. package/src/scripts/closure_scan.ts +91 -1
  536. package/src/scripts/code_graph/detect.ts +127 -7
  537. package/src/scripts/code_graph/foreign.ts +194 -0
  538. package/src/scripts/code_graph/query.ts +217 -4
  539. package/src/scripts/code_graph/types.ts +26 -2
  540. package/src/scripts/code_graph/validate.ts +3 -1
  541. package/src/scripts/code_graph/verbs.ts +103 -0
  542. package/src/scripts/command_suggester/settings.ts +8 -108
  543. package/src/scripts/command_suggester/types.ts +4 -5
  544. package/src/scripts/compile_hook_manifest.ts +33 -1
  545. package/src/scripts/condense.ts +14 -27
  546. package/src/scripts/consumer_matrix.ts +102 -0
  547. package/src/scripts/context_hygiene_hook.ts +13 -23
  548. package/src/scripts/cost/preflight.mjs +12 -1
  549. package/src/scripts/council_cli.ts +7 -7
  550. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  551. package/src/scripts/estate_exemption_shape.ts +202 -0
  552. package/src/scripts/explain_run.ts +8 -13
  553. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  554. package/src/scripts/generate_host_cost_table.ts +21 -4
  555. package/src/scripts/handoff_context_hook.ts +86 -37
  556. package/src/scripts/hook_manifest.json +1 -1
  557. package/src/scripts/hook_manifest.yaml +175 -15
  558. package/src/scripts/hooks/block_config_weakening.ts +115 -7
  559. package/src/scripts/hooks/block_plumbing_writes.ts +37 -5
  560. package/src/scripts/hooks/code_graph_context_hook.ts +252 -23
  561. package/src/scripts/hooks/concern_failure_policy.ts +280 -0
  562. package/src/scripts/hooks/concern_registry.ts +2 -0
  563. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  564. package/src/scripts/hooks/dispatch_hook.ts +52 -52
  565. package/src/scripts/hooks/evidence_independence.ts +12 -4
  566. package/src/scripts/hooks/exit_codes.ts +2 -1
  567. package/src/scripts/hooks/host_lowering.json +1 -1
  568. package/src/scripts/hooks/host_lowering.ts +19 -1
  569. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  570. package/src/scripts/hooks/one_question_per_ask_hook.ts +41 -25
  571. package/src/scripts/hooks/payload_stub.ts +10 -1
  572. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  573. package/src/scripts/hooks/rule_inject_hook.ts +795 -60
  574. package/src/scripts/hooks/state_io.ts +8 -4
  575. package/src/scripts/hooks/table_fingerprint.ts +21 -0
  576. package/src/scripts/hooks/telemetry_usage_hook.ts +24 -7
  577. package/src/scripts/hooks/turn_end_gate_hook.ts +85 -0
  578. package/src/scripts/hooks_status.ts +112 -0
  579. package/src/scripts/injection_scan_hook.ts +7 -0
  580. package/src/scripts/install-hooks.sh +42 -14
  581. package/src/scripts/install.ts +78 -215
  582. package/src/scripts/installed_layer_report.ts +103 -0
  583. package/src/scripts/language_mirror_hook.ts +15 -6
  584. package/src/scripts/learning_sidecar.ts +119 -8
  585. package/src/scripts/lint_blocker_citations.ts +198 -0
  586. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  587. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  588. package/src/scripts/lint_hook_manifest.ts +53 -0
  589. package/src/scripts/lint_major_migration_sections.ts +156 -26
  590. package/src/scripts/lint_pack_boundaries.ts +465 -29
  591. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  592. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  593. package/src/scripts/lint_rule_law_section.ts +647 -0
  594. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  595. package/src/scripts/lint_settings_classes.ts +1 -1
  596. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  597. package/src/scripts/lint_workflow_security.ts +173 -6
  598. package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
  599. package/src/scripts/mcp_server/graph_tools.ts +72 -3
  600. package/src/scripts/measure_routing_signal.ts +54 -16
  601. package/src/scripts/measure_skill_ranker_baseline.ts +221 -8
  602. package/src/scripts/memory_learn_hook.ts +91 -6
  603. package/src/scripts/model_rule_injection.ts +55 -8
  604. package/src/scripts/onboarding_gate_hook.ts +7 -6
  605. package/src/scripts/print_required_checks.ts +15 -3
  606. package/src/scripts/probe_host_compliance.ts +33 -5
  607. package/src/scripts/probe_turnaround.ts +183 -3
  608. package/src/scripts/project_thin_rules.ts +34 -327
  609. package/src/scripts/ratification_header.ts +77 -0
  610. package/src/scripts/refusal_envelope.ts +138 -0
  611. package/src/scripts/release_publication.ts +29 -3
  612. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  613. package/src/scripts/report_evidence_temperature.ts +657 -0
  614. package/src/scripts/report_installed_rule_links.ts +274 -0
  615. package/src/scripts/report_label_agreement.ts +233 -0
  616. package/src/scripts/report_module_reach.ts +212 -0
  617. package/src/scripts/report_obligation_mechanism.ts +228 -0
  618. package/src/scripts/report_parked_blockers.ts +222 -0
  619. package/src/scripts/report_required_checks_drift.ts +196 -0
  620. package/src/scripts/report_single_token_triggers.ts +277 -0
  621. package/src/scripts/report_skill_ranker_confusion.ts +543 -0
  622. package/src/scripts/report_standing_payload_by_host.ts +188 -15
  623. package/src/scripts/report_verification_record_coverage.ts +306 -0
  624. package/src/scripts/routing_doctor.ts +2 -2
  625. package/src/scripts/rule_activation_census.ts +5 -2
  626. package/src/scripts/rule_trigger_eval.ts +9 -9
  627. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  628. package/src/scripts/schemas/command.schema.json +1 -1
  629. package/src/scripts/schemas/review-findings.schema.json +3 -2
  630. package/src/scripts/schemas/rule.schema.json +5 -0
  631. package/src/scripts/schemas/skill.schema.json +1 -1
  632. package/src/scripts/self_review_gate.ts +101 -9
  633. package/src/scripts/skill_tools/score_skill_relevance.ts +314 -40
  634. package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
  635. package/src/scripts/sync_gitignore.ts +29 -235
  636. package/src/scripts/sync_pr_branch.ts +403 -132
  637. package/src/scripts/trigger_eval_grandfather.json +0 -21
  638. package/src/server/schemas/settings.ts +42 -176
  639. package/src/shared/skillRanking.ts +169 -14
  640. package/dist/cli-delegate/chunk-5R7HOLAF.js +0 -99
  641. package/dist/cli-delegate/chunk-JNMVLWLR.js +0 -4457
  642. package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
  643. package/src/scripts/_lib/config_chain.ts +0 -477
  644. package/src/scripts/_lib/conformance_report.ts +0 -403
  645. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  646. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  647. package/src/scripts/_lib/file_slicer.ts +0 -117
  648. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  649. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  650. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  651. 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 max_options, stable tie-break
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
- Per-command frontmatter overrides the global floor and cooldown:
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 `commands.suggestion.enabled` as `false` — degrade
199
- silently, never crash the turn. Local agents (Augment, Claude Code,
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.*` reference
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
- | `verbosity.post_action_reports` | `off` / `minimal` / `full` — multi-line status blocks after a successful action. |
40
- | `verbosity.intent_announcements` | When `false`, writers must not generate "Let me…", "Now I will…", "Found it" openers. |
41
- | `telegraph.speak` | When `false` (the shipped default) the telegraph-speak rule does not ship at all; when `true` its own carve-out list states the grammar's scope — options blocks, Iron-Law literals, code, and paths stay byte-stable. |
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 + `hooks.code_graph.enabled: true` |
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 that flag
236
- was retired (2026-09-07) — not permanently: the 2026-08-15 withdrawal retracted
237
- that, and the figures predate the 2026-08-22 extractor repair. The accelerant
238
- clause above is that bound's escape hatch, reached only when a caller passes 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 N=3 budget any LLM-classification v2 must respect.
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 ≥`auto_promote_threshold`
168
- distinct repos triggers a one-tap **suggestion**; never a silent write.
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
- Three override layers, narrowest wins:
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
- A misbehaving heuristic is disabled by config, not by reverting 6.1.0.
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 globally: `commands.auto_detect: disabled` in
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 the `reasoning:` block in `.agent-settings.yml`:
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 off (e.g. `components.verifier_default: false`) → that
29
- component never fires.
30
- - `auto_gate: false` → skip signal 3 (self-assessment); gate on signal 2 only.
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> (description only — no merge)
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>; any merge
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) | Never merge, never close/retarget; merge is always conversational |
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 merge, close or retarget |
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 | Cumulative **USD 25** per run of variable spend; over that, the owner is asked BEFORE crossing. 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 the ceiling is a violation |
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. **Merge out of scope, always.** | Safety floors only (+ quality-red, + step reveals out-of-roadmap work) |
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 any invocation.
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, closing, or retargeting a PR.
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
- Read `roadmap.skip_pre_run_gate` from `.agent-settings.yml` (default
129
- `true`). The command name already names the scope; asking "Go /
130
- Different roadmap / …" on every run is the noise the gate-skip removes.
131
-
132
- - `true` **and** the roadmap is unambiguous (user named it, or exactly
133
- one active roadmap exists) → **skip the interactive gate.** Emit the
134
- summary block below as a one-shot inline note (no numbered options,
135
- no wait) so the user can still abort mid-stream if the wrong file was
136
- picked, then continue straight into § 3.
137
- - `false`, **or** the roadmap is ambiguous (multiple active roadmaps and
138
- none named), **or** an unresolvable cadence / scope conflict is
139
- detected → show the gate with numbered options and wait for input.
140
-
141
- The gate is **always** shown — regardless of the flag — when the
142
- roadmap is ambiguous or a scope / cadence conflict has no sensible
143
- default. The flag suppresses the confirmation, never a genuine
144
- "which roadmap?" question.
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 the cumulative USD 25 ceiling. If yes → **run it**.
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 both keys from `.agent-settings.yml` once and cache for the whole
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
- **`roadmap.dashboard_regen_cadence`** — when to run the dashboard
528
- subprocess between steps:
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
- | Value | `./agent-config roadmap:progress` runs |
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-gated.** Run
776
- `./agent-config roadmap:progress` when due per
777
- `roadmap.dashboard_regen_cadence` (resolved in § 4; default
778
- `every_5_steps`):
779
- - `per_step` → always after the flip.
780
- - `every_5_steps` → after the 5th, 10th, … closed step **of this
781
- run**, or when the reply ends with closed steps pending regen.
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 `sync_pr_branch` now — already the documented resolution, only push-bound until this row existed. Re-read the current step's files, continue. |
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 up to a cumulative USD 25 per run
1008
- (§ Spend in the wrapper). Uncertainty about the exact cost is explicitly NOT a
1009
- reason to ask.
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. **Merge is out of
1049
- scope in every mode — always conversational.** Without a contract
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
- Before any `git mv` to `archive/`, count `[~]` items in the closing
1060
- roadmap. If `count_deferred > 0`, archival is **blocked** per
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.downshift`, `subagents.quota_arbitrage`, `subagents.model_map`
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 off** (`downshift: false`) → every sub-task runs on the session
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
- 3. **Quota arbitrage** → prefer the **separate** quota pool for the sub-task
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
- 4. **Budget routing — ARCHIVED 2026-08-16, there is no fourth step.** This
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–3: cheapest classifier-adequate tier WITH available budget, an atomic
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 4), covered by
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
- - The N=3 autonomous budget (`autonomous-execution`) binds **per validation
27
- target**: three consecutive failed attempts on the same target halts the run
28
- and surfaces the three attempts. `budgetHalt()` is the deterministic counter.
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 N=3 budget.
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 N=3
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.