@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
@@ -35,6 +35,28 @@
35
35
  # eight new concerns spread across eight events violate it zero times.
36
36
  #
37
37
  # `decision: rejected` is a first-class row. A recorded refusal is the point.
38
+ #
39
+ # `effect:` — what a concern DELIVERS to a turn, from a closed set. Read by the
40
+ # neighbour census (`agent-config doctor neighbours`), which has to say what
41
+ # sharing an event with another package's hook entry actually risks.
42
+ #
43
+ # The axis is OBSERVABLE DELIVERY, never primary purpose. An independent review
44
+ # found the distinction load-bearing: a shadow concern whose purpose is
45
+ # verification but which emits nothing and never blocks delivers a RECORD, so it
46
+ # is `telemetry`. Classify by what a turn can tell happened.
47
+ #
48
+ # permission can REFUSE the thing it fires on. Equivalent to
49
+ # `severity: blocking`, and `lint_hook_manifest` enforces the
50
+ # equivalence in both directions. "Can refuse" is the whole
51
+ # definition — it is not "decides authorization", so a gate that
52
+ # refuses on a quality threshold is `permission` too.
53
+ # context puts text in front of the model
54
+ # verification checks a claim or a shape and REPORTS what it found
55
+ # telemetry records state, a ledger, a counter
56
+ # memory reads or writes the memory layer
57
+ # notification tells the human something and changes nothing else
58
+ # formatting reshapes a command or a generated file
59
+ #
38
60
  schema_version: 1
39
61
 
40
62
  concerns:
@@ -43,6 +65,7 @@ concerns:
43
65
  args: [hook-dispatch]
44
66
  fail_closed: false
45
67
  severity: advisory
68
+ effect: telemetry
46
69
  needs_payload_bodies: [result]
47
70
  # Restore persisted memory session index (road-to-memory-retrieval-economy
48
71
  # P5). session_start only: the dispatcher forwards the returned `context`
@@ -56,6 +79,7 @@ concerns:
56
79
  args: []
57
80
  fail_closed: false
58
81
  severity: advisory
82
+ effect: memory
59
83
  # One-shot handoff injection (road-to-agent-handoff-resume Phase 3).
60
84
  # session_start only: if `agent-config handoff` wrote
61
85
  # agents/runtime/state/handoff-context.md, inject it as spotlighted DATA
@@ -67,6 +91,7 @@ concerns:
67
91
  args: []
68
92
  fail_closed: false
69
93
  severity: advisory
94
+ effect: context
70
95
  # Debounced since road-to-per-turn-hook-economy step 3.1 (D-3). It used to
71
96
  # re-shell the dashboard regenerator through tsx on EVERY roadmap write — a
72
97
  # cold tsx start per write, in exactly the roadmap-heavy workflow this repo
@@ -90,17 +115,20 @@ concerns:
90
115
  args: []
91
116
  fail_closed: false
92
117
  severity: advisory
118
+ effect: formatting
93
119
  needs_payload_bodies: [input]
94
120
  onboarding-gate:
95
121
  script: src/scripts/onboarding_gate_hook.ts
96
122
  args: []
97
123
  fail_closed: false
98
124
  severity: advisory
125
+ effect: notification
99
126
  context-hygiene:
100
127
  script: src/scripts/context_hygiene_hook.ts
101
128
  args: []
102
129
  fail_closed: false
103
130
  severity: advisory
131
+ effect: telemetry
104
132
  # Phase 5 — Tier-1 hook for the verify-before-complete rule. Records
105
133
  # observable evidence of verification commands (tests, quality tools,
106
134
  # builds) into agents/state/verify-before-complete/<digest>.json — ONE FILE
@@ -120,6 +148,7 @@ concerns:
120
148
  args: []
121
149
  fail_closed: false
122
150
  severity: advisory
151
+ effect: verification
123
152
  needs_payload_bodies: [input, result]
124
153
  # Phase 5 — Tier-1 hook for the minimal-safe-diff rule. Counts unique
125
154
  # files touched per turn into agents/runtime/state/minimal-safe-diff.json and
@@ -139,12 +168,14 @@ concerns:
139
168
  args: []
140
169
  fail_closed: false
141
170
  severity: advisory
171
+ effect: verification
142
172
  needs_payload_bodies: [input]
143
173
  minimal-safe-diff:
144
174
  script: src/scripts/minimal_safe_diff_hook.ts
145
175
  args: []
146
176
  fail_closed: false
147
177
  severity: advisory
178
+ effect: verification
148
179
  needs_payload_bodies: [input]
149
180
  # road-to-security-pillar.md P3.2 — PostToolUse prompt-injection scanner.
150
181
  # Warn-in-context (exit 2), never blocks. Default-OFF: no-ops unless
@@ -170,6 +201,7 @@ concerns:
170
201
  args: []
171
202
  fail_closed: false
172
203
  severity: advisory
204
+ effect: verification
173
205
  needs_payload_bodies: [input, result]
174
206
  # road-to-security-hardening Phase 3 — PreToolUse guard turning the
175
207
  # git-history-discipline Iron Law into a deterministic gate. Blocks
@@ -183,6 +215,7 @@ concerns:
183
215
  args: []
184
216
  fail_closed: true
185
217
  severity: blocking
218
+ effect: permission
186
219
  needs_payload_bodies: [input]
187
220
  # road-to-ai-employee-borrowings Phase 1 — kernel immutability Layer 1.
188
221
  # PreToolUse guard: DENIES Write/Edit/NotebookEdit (and cross-platform
@@ -200,6 +233,7 @@ concerns:
200
233
  args: []
201
234
  fail_closed: true
202
235
  severity: blocking
236
+ effect: permission
203
237
  needs_payload_bodies: [input]
204
238
  # road-to-a-kernel-that-guards-its-plumbing 1.2 — the build-output half of
205
239
  # "one mechanism per file class". PreToolUse guard: DENIES Write/Edit/
@@ -221,6 +255,7 @@ concerns:
221
255
  args: []
222
256
  fail_closed: true
223
257
  severity: blocking
258
+ effect: permission
224
259
  needs_payload_bodies: [input]
225
260
  # road-to-asked-not-parked Phase 5.1 — one question per structured-ask call.
226
261
  # PreToolUse guard: DENIES a call to a host's native question picker whose
@@ -250,6 +285,7 @@ concerns:
250
285
  args: []
251
286
  fail_closed: false
252
287
  severity: blocking
288
+ effect: permission
253
289
  tools: [AskUserQuestion, AskQuestion, UserQuestion, ask_user_question, ask_question, user_question]
254
290
  needs_payload_bodies: [input]
255
291
  # road-to-source-silence Phase 4.2 — the write-time half of source
@@ -272,6 +308,7 @@ concerns:
272
308
  args: []
273
309
  fail_closed: false
274
310
  severity: blocking
311
+ effect: permission
275
312
  needs_payload_bodies: [input]
276
313
  # road-to-renewal-leverage Phase 2 — "fix the code, not the config".
277
314
  # PreToolUse guard over the recorded allowlist-growth antipattern
@@ -288,6 +325,7 @@ concerns:
288
325
  args: []
289
326
  fail_closed: false
290
327
  severity: blocking
328
+ effect: permission
291
329
  needs_payload_bodies: [input]
292
330
  # token-saving Phase 3 — PreToolUse RTK-wrap nudge. DETERMINISTIC: keys off a
293
331
  # live `which rtk` probe (not the self-reported flag). When rtk is installed
@@ -302,6 +340,7 @@ concerns:
302
340
  args: []
303
341
  fail_closed: false
304
342
  severity: advisory
343
+ effect: formatting
305
344
  needs_payload_bodies: [input]
306
345
  # road-to-anti-slop-detector Phase 3 — OPTIONAL PreToolUse anti-slop nudge.
307
346
  # Runs the lint_design_slop registry against about-to-be-written UI content
@@ -315,6 +354,7 @@ concerns:
315
354
  args: []
316
355
  fail_closed: false
317
356
  severity: advisory
357
+ effect: verification
318
358
  needs_payload_bodies: [input]
319
359
  # road-to-frontend-power E1.1 / E1.2 / E1.3 — the DELIVERY carrier the 0.0 %
320
360
  # UI-write measurement never had. One script on two slots:
@@ -341,6 +381,7 @@ concerns:
341
381
  args: []
342
382
  fail_closed: false
343
383
  severity: advisory
384
+ effect: notification
344
385
  needs_payload_bodies: [input]
345
386
  # `advisory`, and the code MATCHES the declaration rather than the prose.
346
387
  #
@@ -366,6 +407,7 @@ concerns:
366
407
  args: ['--slot', 'stop']
367
408
  fail_closed: false
368
409
  severity: advisory
410
+ effect: notification
369
411
  # road-to-frontend-skill-application Phase 4 — OPTIONAL PreToolUse UI-route
370
412
  # nudge. On a Write/Edit to a UI surface with no design consultation latched
371
413
  # this session, WARNS (exit 2) naming the route; a read or search touching a
@@ -381,6 +423,7 @@ concerns:
381
423
  args: []
382
424
  fail_closed: false
383
425
  severity: advisory
426
+ effect: notification
384
427
  needs_payload_bodies: [input]
385
428
  # road-to-a-graph-that-is-shipped 1.2 — PreToolUse code-graph CONTEXT line,
386
429
  # replacing the ADR-124 Phase 4 nudge concern, whose hook was deleted in the
@@ -437,6 +480,7 @@ concerns:
437
480
  args: []
438
481
  fail_closed: false
439
482
  severity: advisory
483
+ effect: telemetry
440
484
  # road-to-autonomous-auto-mode — the carrier for `token-efficiency` § One
441
485
  # command per Bash call. That rule is `type: auto`, so its triggers match the
442
486
  # PROMPT, and no prompt announces that the next tool call will be chained;
@@ -483,20 +527,31 @@ concerns:
483
527
  args: []
484
528
  fail_closed: false
485
529
  severity: advisory
530
+ effect: notification
486
531
  needs_payload_bodies: [input]
487
532
  code-graph-context:
488
533
  script: src/scripts/hooks/code_graph_context_hook.ts
489
534
  args: []
490
535
  fail_closed: false
491
536
  severity: advisory
537
+ effect: context
492
538
  # Per-concern tool filter — the dispatcher skips this concern in-process on
493
539
  # any other tool. See `_concern_matches_tool` in hooks/dispatch_hook.ts for
494
540
  # the semantics (absent = every event, "*" = the same, non-tool events are
495
541
  # never filtered) and for why the filter is NOT a host `matcher`.
496
542
  #
497
543
  # This set is not a guess: the hook's entire branch surface is
498
- # `name === 'Grep' || name === 'Glob'` and `name === 'Read'`
499
- # (code_graph_context_hook.ts), and a test pins the manifest list against it.
544
+ # `name === 'Grep' || name === 'Glob'`, `name === 'Read'` and
545
+ # `name === 'Bash'` (code_graph_context_hook.ts), and a test pins the
546
+ # manifest list against it.
547
+ #
548
+ # `Bash` is the ONE host-named tool declared here, and the caveat the
549
+ # blocking-guard paragraph below raises applies to it: on a host that calls
550
+ # the shell `launch-process` or `BashTool` this concern will not see it. That
551
+ # is a missed advisory line, not a disabled guard — the trade the paragraph
552
+ # below refuses for a security hook is the right one for a context line, and
553
+ # the alternative (dropping the filter) would dispatch this concern on every
554
+ # tool call in the session.
500
555
  #
501
556
  # Deliberately NOT declared on the four blocking PreToolUse guards
502
557
  # (block-no-verify, block-kernel-rule-writes, block-plumbing-writes,
@@ -508,7 +563,7 @@ concerns:
508
563
  # re-read `tool_name` and return early; paying one dispatch to keep a guard
509
564
  # correct is the right trade, and the cheap filter is reserved for advisory
510
565
  # concerns whose set is provable from their own source.
511
- tools: [Grep, Glob, Read]
566
+ tools: [Grep, Glob, Read, Bash]
512
567
  needs_payload_bodies: [input]
513
568
  # road-to-reachable-code-memory Phase 4 — session_end learning-sidecar
514
569
  # aggregation. Joins the EXISTING session_end concern set (no new platform
@@ -524,6 +579,7 @@ concerns:
524
579
  args: []
525
580
  fail_closed: false
526
581
  severity: advisory
582
+ effect: memory
527
583
  # Phase 2 of road-to-hooks-actually-fire-in-consumers — session_start
528
584
  # gate that surfaces the marketplace-install-but-unscaffolded shape.
529
585
  # Writes .augment/.first-run-action-needed.md + one stderr line so
@@ -534,6 +590,7 @@ concerns:
534
590
  args: []
535
591
  fail_closed: false
536
592
  severity: advisory
593
+ effect: notification
537
594
  # session-profile-activation Phase 1 — emits a one-line staleness notice
538
595
  # when a new session starts with a `runtime.active_packs` overlay carried
539
596
  # over from a previous session. Never resets (option a, explicit
@@ -543,6 +600,7 @@ concerns:
543
600
  args: []
544
601
  fail_closed: false
545
602
  severity: advisory
603
+ effect: notification
546
604
  # Defense-in-depth twin of the update-command wrapper refresh
547
605
  # (cmd_upgrade / cmd_refresh). On session_start, re-stamps a stale
548
606
  # project-local ./agent-config wrapper from the canonical template so
@@ -553,6 +611,7 @@ concerns:
553
611
  args: []
554
612
  fail_closed: false
555
613
  severity: advisory
614
+ effect: notification
556
615
  # road-to-install-path-convergence Phase 4 — duplicate-surface probe.
557
616
  # Reads src/config/surface-matrix.yml, existence-checks declared duplicate
558
617
  # classes, nudges ONCE per day (state: agents/runtime/state/
@@ -563,6 +622,7 @@ concerns:
563
622
  args: []
564
623
  fail_closed: false
565
624
  severity: advisory
625
+ effect: telemetry
566
626
  # road-to-team-mode Phase 4 — managed Review-Gate circuit breaker.
567
627
  # Runs AFTER the plugin's own Stop gate: reads the persisted gate job
568
628
  # record, counts consecutive BLOCK verdicts per session, injects the
@@ -575,6 +635,7 @@ concerns:
575
635
  args: []
576
636
  fail_closed: false
577
637
  severity: advisory
638
+ effect: verification
578
639
  # Reply-shape backstop for the direct-answers rule (reply-close): a PR
579
640
  # created THIS turn must end the reply as the literal last raw URL. This
580
641
  # PostToolUse hook fires right after a PR *create* (gh pr create, or a
@@ -587,6 +648,7 @@ concerns:
587
648
  args: []
588
649
  fail_closed: false
589
650
  severity: advisory
651
+ effect: notification
590
652
  needs_payload_bodies: [input, result]
591
653
  # Push-settle reminder — the second half of "a push closes its own loop".
592
654
  # The pre-push hook answers "is this push safe to make"; nothing answered "is
@@ -602,6 +664,7 @@ concerns:
602
664
  args: []
603
665
  fail_closed: false
604
666
  severity: advisory
667
+ effect: verification
605
668
  needs_payload_bodies: [input, result]
606
669
  # Language-mirror pin — carries the ONE fact the transcript cannot express:
607
670
  # which language the human actually typed. 47 skill/slash-command bodies were
@@ -615,6 +678,7 @@ concerns:
615
678
  args: []
616
679
  fail_closed: false
617
680
  severity: advisory
681
+ effect: context
618
682
  # Git-authorization ledger — records which git ops the user's OWN WORDS
619
683
  # authorize this turn. Writes state only; never blocks.
620
684
  git-authorization:
@@ -622,6 +686,7 @@ concerns:
622
686
  args: []
623
687
  fail_closed: false
624
688
  severity: advisory
689
+ effect: verification
625
690
  # The blocking half was REMOVED by owner decision on 2026-09-04 (ADR-254).
626
691
  # It refused authorizations the owner had in fact given: a guardrail sentence
627
692
  # inside an authorization ("never merge empty PRs") read as a withdrawal and
@@ -653,6 +718,7 @@ concerns:
653
718
  args: []
654
719
  fail_closed: false
655
720
  severity: blocking
721
+ effect: permission
656
722
  needs_payload_bodies: [input]
657
723
  # Canary injection — deterministic carrier for the
658
724
  # session-canary rule (greet-by-name at task start + reply-close markers
@@ -675,6 +741,7 @@ concerns:
675
741
  args: []
676
742
  fail_closed: false
677
743
  severity: advisory
744
+ effect: context
678
745
  # Council-availability fact. Carries whether a council is configured and from
679
746
  # where, because the always-loaded layer refers to the council conditionally
680
747
  # and never says how to check. Measured 2026-08-08: an agent announced "kein
@@ -687,6 +754,7 @@ concerns:
687
754
  args: []
688
755
  fail_closed: false
689
756
  severity: advisory
757
+ effect: verification
690
758
  # Org-telemetry disclosure (road-to-org-telemetry Phase 3.2; ADR-233 § D5).
691
759
  # `org-pack` is the only consent class in this suite granted by somebody
692
760
  # OTHER than the person it binds — an org administrator, once, for every
@@ -700,6 +768,7 @@ concerns:
700
768
  args: []
701
769
  fail_closed: false
702
770
  severity: advisory
771
+ effect: notification
703
772
  # road-to-org-telemetry Phase 2 (step 2.1) — session-end Class-A flush.
704
773
  # Checks whether the outbound spool has bytes and, if so, spawns a DETACHED
705
774
  # sender and returns. It makes no network call in the session's own process,
@@ -728,6 +797,7 @@ concerns:
728
797
  args: []
729
798
  fail_closed: false
730
799
  severity: advisory
800
+ effect: telemetry
731
801
  # Self-repair intake (road-to-self-repair Phase 1). Two slots, one queue:
732
802
  # user_prompt_submit opens a record when the user states the agent worked
733
803
  # wrongly and injects the open-queue line; stop runs the deterministic
@@ -739,6 +809,7 @@ concerns:
739
809
  args: []
740
810
  fail_closed: false
741
811
  severity: advisory
812
+ effect: telemetry
742
813
  # Shared per-session register (road-to-parallel-session-coordination) — writes
743
814
  # this session into <git-common-dir>/agent-sessions/<session_id>.json so every
744
815
  # other worktree of the repo can see it, and on session_start injects the live
@@ -772,6 +843,7 @@ concerns:
772
843
  args: []
773
844
  fail_closed: false
774
845
  severity: advisory
846
+ effect: telemetry
775
847
  # road-to-orchestrator-discipline-carriers Phase 3 (F6) — deterministic
776
848
  # PostToolUse orchestration-telemetry capture. Fires only on an Agent/Task
777
849
  # tool-use completion (the two observed subagent-dispatch tool names) and
@@ -784,6 +856,7 @@ concerns:
784
856
  args: []
785
857
  fail_closed: false
786
858
  severity: advisory
859
+ effect: telemetry
787
860
  tools: [Agent, Task]
788
861
  needs_payload_bodies: [input, result]
789
862
  # road-to-org-telemetry Phase 1 (step 1.2) — Class-A usage capture. Fires
@@ -827,6 +900,7 @@ concerns:
827
900
  args: []
828
901
  fail_closed: false
829
902
  severity: advisory
903
+ effect: telemetry
830
904
  # Provable from the hook's own source: the only branch surface is
831
905
  # `extractToolName(payload) !== SKILL_TOOL_NAME`.
832
906
  tools: [Skill]
@@ -836,6 +910,25 @@ concerns:
836
910
  # the large one, and this concern records a usage FACT rather than an
837
911
  # outcome, so the result class would be paid for and discarded.
838
912
  needs_payload_bodies: [input]
913
+ # road-to-neighbours-that-pull-their-weight step 3.3, decision D12 (owner,
914
+ # 2026-10-06) — foreign MCP tool NAMES, observed for `doctor neighbours`.
915
+ # DEFAULT-ON LOCAL OBSERVATION THAT BYPASSES THE TELEMETRY OPT-IN, by design:
916
+ # the store is a local census input under gitignored `agents/runtime/`, no
917
+ # transport reads it, and gating it on the org switch would print `0` on
918
+ # every install. A concern of its own rather than a branch of
919
+ # `telemetry-usage`, whose exact-match `tools: [Skill]` filter meant the
920
+ # dispatcher never called that branch (council 2026-10-02, both seats).
921
+ # No `tools:` key — MCP names are not enumerable and matching is exact; the
922
+ # hook's `mcp__` prefix test is the filter. No `needs_payload_bodies` — the
923
+ # dispatcher serves it size-only stubs for `tool_input` and `tool_response`,
924
+ # so it receives the tool name and nothing it could leak. Silent, exit 0
925
+ # always, emits nothing (no hook-token-budget row). fail_closed: false.
926
+ mcp-usage-observation:
927
+ script: src/scripts/hooks/mcp_usage_observation_hook.ts
928
+ args: []
929
+ fail_closed: false
930
+ severity: advisory
931
+ effect: telemetry
839
932
  # road-to-orchestrator-discipline-carriers Phase 4 (F3-lite) — conditional
840
933
  # delegation nudge. Extracts cheap structural signals from the SUBMITTED
841
934
  # prompt (enumerated file lists, "for each"/"alle …" shapes, explicit slice
@@ -873,6 +966,7 @@ concerns:
873
966
  args: []
874
967
  fail_closed: false
875
968
  severity: advisory
969
+ effect: notification
876
970
  nudge_rank: 1
877
971
  # road-to-inbox-harvest-2026-08-d-runtime-skill-routing Phase 2 — binds the
878
972
  # deterministic task→skill ranker, which had shipped with ZERO production
@@ -896,6 +990,7 @@ concerns:
896
990
  args: []
897
991
  fail_closed: false
898
992
  severity: advisory
993
+ effect: context
899
994
  nudge_rank: 2
900
995
  # road-to-trigger-delivered-rule-bodies Phase 1 — the DELIVERY twin of
901
996
  # `skill-route` above: same two slots, opposite payload policy. `skill-route`
@@ -934,6 +1029,7 @@ concerns:
934
1029
  args: []
935
1030
  fail_closed: false
936
1031
  severity: advisory
1032
+ effect: context
937
1033
  needs_payload_bodies: [input]
938
1034
  # road-to-orchestrator-discipline-carriers Phase 5 (F4-lite) — end-review
939
1035
  # nudge. Fires ONLY when the session mutated tracked+untracked, non-doc
@@ -961,11 +1057,13 @@ concerns:
961
1057
  args: []
962
1058
  fail_closed: false
963
1059
  severity: advisory
1060
+ effect: verification
964
1061
  end-review-nudge:
965
1062
  script: src/scripts/hooks/end_review_nudge_hook.ts
966
1063
  args: []
967
1064
  fail_closed: false
968
1065
  severity: advisory
1066
+ effect: notification
969
1067
  # road-to-stop-gate-honesty step 3.1 — skipped on a refusal RETRY.
970
1068
  # ARGUMENT, per concern as that step requires: the F2 fire gate is a
971
1069
  # once-per-session marker, and this concern's own header records that a
@@ -1006,6 +1104,7 @@ concerns:
1006
1104
  args: []
1007
1105
  fail_closed: false
1008
1106
  severity: advisory
1107
+ effect: telemetry
1009
1108
  # road-to-conformance-round5 Phase 3 — the FIRST concern that can refuse a
1010
1109
  # turn-END. Round 5 measured the reason: both blocking carriers reached zero
1011
1110
  # violations, neither advisory carrier did, and 19 language violations
@@ -1029,16 +1128,34 @@ concerns:
1029
1128
  # detector's own trigger conditions, which is the same shape `delegation-nudge`
1030
1129
  # uses — no signal, no output. `hooks.turn_end_gate.*` is in REMOVED_KEYS.
1031
1130
  #
1032
- # fail_closed: FALSE, deliberately and unlike every other blocking concern
1033
- # here: a crash in a turn-end gate must let the turn END. Failing closed on
1034
- # this slot does not degrade the session, it wedges it. Re-entrancy is two
1035
- # independent layers (`stop_hook_active`; a marker keyed on the last USER
1036
- # message, never the reply) — see the hook's file header.
1131
+ # fail_closed: FALSE — and read what that flag still DOES before changing it.
1132
+ # Since the dispatcher resolves rc >= 3 by SEVERITY it no longer decides the
1133
+ # crash branch at all; it decides the stdin-read-failure deny
1134
+ # (`stdin_failure_policy._is_fail_closed_blocking`), and nothing else. An
1135
+ # independent review named the old wording a reviewer trap: an operator
1136
+ # reading "fail_closed: false — a crash must let the turn END" would believe
1137
+ # they were configuring crash behaviour, and flipping it would change the
1138
+ # read-failure deny instead. The REASON it was set false is still true —
1139
+ # failing closed on a turn-end gate does not degrade the session, it wedges
1140
+ # it — but the flag is no longer what delivers it.
1141
+ #
1142
+ # What answers it now lives in the dispatcher, which is the only layer that
1143
+ # can: a blocking `stop` concern spends its refusal ONCE, and on the retry the
1144
+ # host marks (`stop_hook_active`) a crash falls back to fail-open and the turn
1145
+ # ends. The hook's own two re-entrancy layers cannot do this job — both run
1146
+ # INSIDE `main()`, so a crash never reaches them.
1147
+ #
1148
+ # The trade is deliberate: one refused Stop buys a guard that no longer
1149
+ # permits every turn end precisely when it is broken, and the second Stop
1150
+ # releases. Re-entrancy inside the hook stays what it was (`stop_hook_active`;
1151
+ # a marker keyed on the last USER message, never the reply) — see the hook's
1152
+ # file header.
1037
1153
  turn-end-gate:
1038
1154
  script: src/scripts/hooks/turn_end_gate_hook.ts
1039
1155
  args: []
1040
1156
  fail_closed: false
1041
1157
  severity: blocking
1158
+ effect: permission
1042
1159
  # Comment-discipline advisory — the write-time half of
1043
1160
  # `lint_code_comments`. Scans the TEXT JUST WRITTEN (Write ->
1044
1161
  # tool_input.content, Edit -> tool_input.new_string), never the file on
@@ -1059,6 +1176,7 @@ concerns:
1059
1176
  args: []
1060
1177
  fail_closed: false
1061
1178
  severity: advisory
1179
+ effect: verification
1062
1180
  tools: [Write, Edit]
1063
1181
  needs_payload_bodies: [input]
1064
1182
  # road-to-token-economy-cache Phase 5.1/5.2 — edit-shape advisory. Fires
@@ -1076,6 +1194,7 @@ concerns:
1076
1194
  args: []
1077
1195
  fail_closed: false
1078
1196
  severity: advisory
1197
+ effect: verification
1079
1198
  # Provable from the hook's own source: the only branch surface is
1080
1199
  # `toolName !== 'Write'` — same cheap-filter discipline as
1081
1200
  # `orchestration-record`'s [Agent, Task].
@@ -1097,6 +1216,7 @@ concerns:
1097
1216
  args: []
1098
1217
  fail_closed: false
1099
1218
  severity: advisory
1219
+ effect: verification
1100
1220
  # Provable from the hook's own source: READ_TOOLS ∪ WRITE_TOOLS.
1101
1221
  tools: [Read, Edit, Write]
1102
1222
  needs_payload_bodies: [input]
@@ -1131,6 +1251,7 @@ concerns:
1131
1251
  args: []
1132
1252
  fail_closed: false
1133
1253
  severity: advisory
1254
+ effect: memory
1134
1255
  # Provable from the hook's own source: the union of the `tools` sets on
1135
1256
  # RECALL_RULES — COMMAND_TOOLS (rules 1 and 4) ∪ EDIT_TOOLS (rules 2, 3).
1136
1257
  tools: [Bash, Edit, Write, MultiEdit, str-replace-editor, save-file, launch-process]
@@ -1154,6 +1275,7 @@ concerns:
1154
1275
  args: []
1155
1276
  fail_closed: false
1156
1277
  severity: advisory
1278
+ effect: notification
1157
1279
  # road-to-long-horizon-execution Phase 1 (H-1) — the stop slot's first
1158
1280
  # WORK-REMAINING concern. No-op unless this session claimed a roadmap
1159
1281
  # (`sessions:claim`) whose frontmatter says `execution.mode: autonomous`;
@@ -1166,6 +1288,12 @@ concerns:
1166
1288
  # always. Events: agents/runtime/state/run-continuation.jsonl. Kill switch:
1167
1289
  # AGENT_CONFIG_NO_RUN_CONTINUATION=1. fail_closed: false — the only block
1168
1290
  # it ever emits is the one carrying its own continuation text.
1291
+ # fail_closed: false — and as for `turn-end-gate` above, the dispatcher now
1292
+ # resolves rc >= 3 by SEVERITY rather than by this flag, so a crash here
1293
+ # refuses the first Stop and releases on the retry. What the flag still
1294
+ # decides is the stdin-read-failure deny, not crash behaviour; changing it
1295
+ # changes that and nothing else. The only block this concern DECIDES to emit
1296
+ # is still the one carrying its own continuation text.
1169
1297
  run-continuation:
1170
1298
  script: src/scripts/hooks/run_continuation_hook.ts
1171
1299
  args: []
@@ -1179,6 +1307,7 @@ concerns:
1179
1307
  # mechanism was inert on the one verified host. `turn-end-gate` above sits
1180
1308
  # on the same slot and declares `blocking` for exactly this reason.
1181
1309
  severity: blocking
1310
+ effect: permission
1182
1311
  # road-to-user-out-of-the-loop Phase 0 Step 1 — the interruption ledger.
1183
1312
  # Every Stop, classifies whether the turn that just ended put a synchronous
1184
1313
  # contact to the user and appends one `{run_id, turn, kind, class, roadmap}`
@@ -1204,6 +1333,7 @@ concerns:
1204
1333
  args: []
1205
1334
  fail_closed: false
1206
1335
  severity: advisory
1336
+ effect: telemetry
1207
1337
  # road-to-stop-gate-honesty step 3.1 — skipped on a refusal RETRY, and this
1208
1338
  # is the flag with the real saving.
1209
1339
  # ARGUMENT, per concern: `alreadyRecorded(ledgerPath, run_id, turn)` dedupes
@@ -1237,6 +1367,7 @@ concerns:
1237
1367
  args: []
1238
1368
  fail_closed: false
1239
1369
  severity: advisory
1370
+ effect: telemetry
1240
1371
  # road-to-inbox-harvest-2026-08-d-context-ledger Phase 1 Step 1.1 — the
1241
1372
  # tool-result byte counter. `hook-token-budget.json` registers the gap it
1242
1373
  # closes in its own words: bytes-into-context from tool RESULTS are
@@ -1261,6 +1392,7 @@ concerns:
1261
1392
  args: []
1262
1393
  fail_closed: false
1263
1394
  severity: advisory
1395
+ effect: telemetry
1264
1396
  # road-to-subagent-lifecycle-integrity Phase 3 Step 1 — spawn guard, SHADOW
1265
1397
  # ONLY, per docs/contracts/concern-activation-policy.md. On every Agent/Task
1266
1398
  # call it appends one `spawn_guard_shadow` line recording what a guard WOULD
@@ -1281,6 +1413,7 @@ concerns:
1281
1413
  args: []
1282
1414
  fail_closed: false
1283
1415
  severity: advisory
1416
+ effect: telemetry
1284
1417
  tools: [Agent, Task]
1285
1418
  # road-to-source-first-frontend Phase 3 Steps 1-2 — source-first gate, SHADOW
1286
1419
  # ONLY, per docs/contracts/concern-activation-policy.md. On every
@@ -1305,11 +1438,15 @@ concerns:
1305
1438
  # to advisory is pre-registered in the hook header.
1306
1439
  #
1307
1440
  # Never blocks, never warns: exit 0 on every path. fail_closed: false.
1441
+ # `effect: telemetry`, not `verification`, and the script's own header is why:
1442
+ # "it emits nothing to the model and it never blocks". A shadow concern
1443
+ # records what a gate WOULD have said; recording is what it delivers.
1308
1444
  source-first-gate:
1309
1445
  script: src/scripts/hooks/source_first_gate_hook.ts
1310
1446
  args: []
1311
1447
  fail_closed: false
1312
1448
  severity: advisory
1449
+ effect: telemetry
1313
1450
  needs_payload_bodies: [input]
1314
1451
  # road-to-runtime-event-journal Phase 1 step 1.4 — the journal's hook binding
1315
1452
  # (AI council 2026-08-28, decision 3). `_lib/runtime_journal.ts` shipped bound
@@ -1353,6 +1490,7 @@ concerns:
1353
1490
  args: []
1354
1491
  fail_closed: false
1355
1492
  severity: advisory
1493
+ effect: telemetry
1356
1494
 
1357
1495
  # Role axis (road-to-token-economy-dispatch Phase 2). The dispatcher reads
1358
1496
  # AGENT_CONFIG_SESSION_ROLE (resolved via _lib/session_role.ts — set ONLY by
@@ -1425,11 +1563,21 @@ platforms:
1425
1563
  session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush]
1426
1564
  stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
1427
1565
  pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-plumbing-writes, block-config-weakening, block-speaking-inbox-dir, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, memory-recall]
1428
- post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1566
+ post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, mcp-usage-observation, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1429
1567
 
1430
1568
  claude:
1431
1569
  ask: native
1432
- session_start: [chat-history, hot-context, handoff-context, session-canary, council-availability, telemetry-disclosure, first-run-gate, onboarding-gate, verify-before-complete, minimal-safe-diff, profile-staleness, wrapper-freshness, surface-probe, session-register, review-baseline, journal-record]
1570
+ session_start: [chat-history, hot-context, handoff-context, session-canary, council-availability, telemetry-disclosure, first-run-gate, onboarding-gate, verify-before-complete, minimal-safe-diff, profile-staleness, wrapper-freshness, surface-probe, session-register, review-baseline, journal-record, rule-inject]
1571
+ # `rule-inject` is bound here for ONE source: `compact`
1572
+ # (road-to-a-rule-carrier-that-works-outside-the-repo step 1.6). The concern
1573
+ # returns before reading anything on `startup`, `resume`, `clear` and
1574
+ # `fork`, so this binding costs a function call per session on every other
1575
+ # source. It exists because `pre_compact` can only re-ARM delivery — it
1576
+ # cannot deliver, since the host is about to discard the context it would
1577
+ # emit into. The law sections of the pre-compaction seen-set are sent here
1578
+ # instead, under the same 8,000-character budget, which is the half the
1579
+ # concern's own header used to end at: a rule whose trigger does not recur
1580
+ # was not restored at all.
1433
1581
  session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush, journal-record]
1434
1582
  stop: [chat-history, verify-before-complete, team-review-gate, end-review-nudge, obligation-settle, turn-end-gate, self-repair, session-register, session-eol, interruption-ledger, roadmap-progress, design-pass-stop, suggestion-capture, journal-record, run-continuation]
1435
1583
  user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, delegation-nudge, skill-route, git-authorization, session-canary, self-repair, session-register, rule-inject, suggestion-capture, journal-record]
@@ -1457,7 +1605,7 @@ platforms:
1457
1605
  # `project_thin_rules.path_only_ids`; the receiver is
1458
1606
  # `agents/roadmaps/stubs/road-to-a-path-route-under-delivery.md`.
1459
1607
  pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-plumbing-writes, block-config-weakening, block-speaking-inbox-dir, one-question-per-ask, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, spawn-guard-shadow, source-first-gate, memory-recall]
1460
- post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, language-mirror, design-pass, journal-record]
1608
+ post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, mcp-usage-observation, tool-result-bytes, edit-shape, comment-discipline, language-mirror, design-pass, journal-record]
1461
1609
  # `language-mirror` — round-5 § 6.1. `pre_compact` sets a pin-lost marker;
1462
1610
  # the `post_tool_use` entry above re-emits the pin exactly once while that
1463
1611
  # marker is set, then clears it. One extra injection per compaction EVENT —
@@ -1504,7 +1652,7 @@ platforms:
1504
1652
  stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
1505
1653
  user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, git-authorization, session-canary, self-repair, session-register]
1506
1654
  pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-plumbing-writes, block-config-weakening, block-speaking-inbox-dir, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, spawn-guard-shadow, source-first-gate, memory-recall]
1507
- post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1655
+ post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, mcp-usage-observation, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1508
1656
  # subagent-ledger IS bound here, unlike the two nudges above, and the
1509
1657
  # difference is the delivery channel rather than the platform: the nudges
1510
1658
  # depend on stdout reaching the model, which this trampoline discards by
@@ -1529,7 +1677,7 @@ platforms:
1529
1677
  session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush]
1530
1678
  stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
1531
1679
  user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, git-authorization, session-canary, self-repair, session-register]
1532
- post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1680
+ post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, mcp-usage-observation, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1533
1681
 
1534
1682
  # Phase 7.6 — Cline. Hooks live under `.clinerules/hooks/<HookName>`
1535
1683
  # (project, no file extension, must be executable per Cline docs) or
@@ -1545,7 +1693,7 @@ platforms:
1545
1693
  session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush]
1546
1694
  stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
1547
1695
  user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, git-authorization, session-canary, self-repair, session-register]
1548
- post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1696
+ post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, mcp-usage-observation, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1549
1697
 
1550
1698
  # Phase 7.7 — Windsurf (Cascade). Hooks live at `.windsurf/hooks.json`
1551
1699
  # (project) or `~/.codeium/windsurf/hooks.json` (user). Cascade has
@@ -1583,7 +1731,7 @@ platforms:
1583
1731
  session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush]
1584
1732
  stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
1585
1733
  user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, git-authorization, session-canary, self-repair, session-register]
1586
- post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1734
+ post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, mcp-usage-observation, tool-result-bytes, edit-shape, comment-discipline, design-pass]
1587
1735
 
1588
1736
  # Phase 7.9 — this package binds no hook on Copilot and has measured none
1589
1737
  # there. Concerns route through rule-only fallback; the dispatcher silently
@@ -1608,6 +1756,18 @@ native_event_aliases:
1608
1756
  Stop: stop
1609
1757
  UserPromptSubmit: user_prompt_submit
1610
1758
  PostToolUse: post_tool_use
1759
+ # A FAILING tool call does not fire `PostToolUse` at all — it fires
1760
+ # `PostToolUseFailure`, which until now was bound to nothing, so the
1761
+ # verification recorder never saw a red command and `verification_runs`
1762
+ # could only ever hold passes. Observed on 2.1.286, three one-shot sessions,
1763
+ # exactly one of the two events per call — not inferred from the event list.
1764
+ # Lowered onto the SAME canonical slot rather than given a canonical event
1765
+ # of its own: one slot, one concern list, no change to the event vocabulary.
1766
+ # Deliberately claude-only. Cowork is Claude Code underneath and the rows
1767
+ # below duplicate this vocabulary, but this pair was measured on claude and
1768
+ # on no other host, and an alias row asserting a host behaviour nobody
1769
+ # observed is the defect class this suite keeps finding in its own tables.
1770
+ PostToolUseFailure: post_tool_use
1611
1771
  PreToolUse: pre_tool_use
1612
1772
  PreCompact: pre_compact
1613
1773
  # road-to-subagent-lifecycle-integrity Phase 1 Step 1. Both tokens were