@event4u/agent-config 16.3.0 → 16.5.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 (532) 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 +178 -78
  5. package/README.md +2 -2
  6. package/agents/templates/.ai-council.yml.example +26 -8
  7. package/dist/agent-src/commands/analyze/inbox.md +10 -7
  8. package/dist/agent-src/commands/bug/investigate.md +1 -1
  9. package/dist/agent-src/commands/commit/in-chunks.md +40 -31
  10. package/dist/agent-src/commands/commit.md +72 -33
  11. package/dist/agent-src/commands/condense.md +2 -8
  12. package/dist/agent-src/commands/council/debate.md +11 -7
  13. package/dist/agent-src/commands/council/default.md +10 -9
  14. package/dist/agent-src/commands/council.md +1 -1
  15. package/dist/agent-src/commands/design.md +1 -1
  16. package/dist/agent-src/commands/estimate-ticket.md +1 -1
  17. package/dist/agent-src/commands/feature/explore.md +3 -3
  18. package/dist/agent-src/commands/feature/plan.md +1 -1
  19. package/dist/agent-src/commands/fix/ci.md +17 -3
  20. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  21. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  22. package/dist/agent-src/commands/implement-ticket.md +3 -3
  23. package/dist/agent-src/commands/memory/add.md +4 -16
  24. package/dist/agent-src/commands/memory/load.md +5 -6
  25. package/dist/agent-src/commands/memory/promote.md +3 -16
  26. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  27. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  28. package/dist/agent-src/commands/optimize/deep.md +4 -2
  29. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  30. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  31. package/dist/agent-src/commands/pr/create.md +42 -34
  32. package/dist/agent-src/commands/pr/merge.md +136 -9
  33. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  34. package/dist/agent-src/commands/project/analyze.md +7 -35
  35. package/dist/agent-src/commands/refine-ticket.md +1 -1
  36. package/dist/agent-src/commands/review/changes.md +14 -19
  37. package/dist/agent-src/commands/roadmap/next.md +10 -1
  38. package/dist/agent-src/commands/roadmap/process-full.md +52 -38
  39. package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
  40. package/dist/agent-src/commands/worktree/create.md +7 -3
  41. package/dist/agent-src/commands/worktree/verify.md +2 -1
  42. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  43. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  44. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  45. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  46. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  47. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  48. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  49. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  50. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  51. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  52. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
  53. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  54. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  55. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  56. package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
  57. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  58. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  59. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  60. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  61. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  62. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  63. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  64. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  65. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  66. package/dist/agent-src/guidelines/design-antipatterns.md +1 -1
  67. package/dist/agent-src/guidelines/php/git.md +15 -2
  68. package/dist/agent-src/rules/active-remediation.md +0 -1
  69. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  70. package/dist/agent-src/rules/architecture.md +0 -1
  71. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  72. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  73. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  74. package/dist/agent-src/rules/autonomous-execution.md +0 -1
  75. package/dist/agent-src/rules/brand-consistency.md +0 -1
  76. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  77. package/dist/agent-src/rules/broken-access-control.md +0 -1
  78. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  79. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  80. package/dist/agent-src/rules/code-provenance.md +0 -1
  81. package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
  82. package/dist/agent-src/rules/commit-conventions.md +1 -2
  83. package/dist/agent-src/rules/communication-through-line.md +1 -2
  84. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  85. package/dist/agent-src/rules/context-hygiene.md +5 -5
  86. package/dist/agent-src/rules/copilot-routing.md +1 -2
  87. package/dist/agent-src/rules/council-availability.md +4 -4
  88. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  89. package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
  90. package/dist/agent-src/rules/delegation-policy.md +2 -3
  91. package/dist/agent-src/rules/design-fidelity.md +0 -1
  92. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  93. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  94. package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
  95. package/dist/agent-src/rules/docker-commands.md +0 -1
  96. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  97. package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
  98. package/dist/agent-src/rules/domain-safety-pii.md +0 -1
  99. package/dist/agent-src/rules/domain-safety-retention.md +0 -1
  100. package/dist/agent-src/rules/downstream-changes.md +0 -1
  101. package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
  102. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  103. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  104. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
  105. package/dist/agent-src/rules/finance-safety-floor.md +0 -1
  106. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  107. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  108. package/dist/agent-src/rules/git-history-discipline.md +1 -2
  109. package/dist/agent-src/rules/guidelines.md +0 -1
  110. package/dist/agent-src/rules/history-discipline.md +0 -1
  111. package/dist/agent-src/rules/icon-consistency.md +0 -1
  112. package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
  113. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  114. package/dist/agent-src/rules/invite-challenge.md +0 -1
  115. package/dist/agent-src/rules/laravel-routing.md +1 -2
  116. package/dist/agent-src/rules/laravel-translations.md +0 -1
  117. package/dist/agent-src/rules/legal-safety-floor.md +0 -1
  118. package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
  119. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  120. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
  121. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  122. package/dist/agent-src/rules/media-governance-routing.md +1 -2
  123. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  124. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  125. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  126. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  127. package/dist/agent-src/rules/model-recommendation.md +0 -1
  128. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  129. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  130. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  131. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  132. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  133. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  134. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  135. package/dist/agent-src/rules/output-discipline.md +0 -1
  136. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  137. package/dist/agent-src/rules/persona-governance.md +2 -3
  138. package/dist/agent-src/rules/php-coding.md +0 -1
  139. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  140. package/dist/agent-src/rules/preservation-guard.md +0 -1
  141. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
  142. package/dist/agent-src/rules/question-not-instruction.md +0 -1
  143. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  144. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  145. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
  146. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  147. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  148. package/dist/agent-src/rules/runtime-safety.md +0 -1
  149. package/dist/agent-src/rules/scale-discipline.md +0 -1
  150. package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
  151. package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
  152. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  153. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  154. package/dist/agent-src/rules/session-canary.md +0 -1
  155. package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
  156. package/dist/agent-src/rules/size-enforcement.md +0 -1
  157. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  158. package/dist/agent-src/rules/skill-quality.md +0 -1
  159. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  160. package/dist/agent-src/rules/source-confidentiality.md +0 -1
  161. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  162. package/dist/agent-src/rules/source-of-truth.md +0 -1
  163. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  164. package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
  165. package/dist/agent-src/rules/symfony-routing.md +1 -2
  166. package/dist/agent-src/rules/think-before-action.md +0 -1
  167. package/dist/agent-src/rules/token-budget-discipline.md +14 -48
  168. package/dist/agent-src/rules/token-efficiency.md +0 -1
  169. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  170. package/dist/agent-src/rules/tool-safety.md +0 -1
  171. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  172. package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
  173. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  174. package/dist/agent-src/rules/user-interaction.md +0 -1
  175. package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
  176. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  177. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  178. package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +2 -0
  179. package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
  180. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  181. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  182. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  183. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  184. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  185. package/dist/agent-src/skills/canvas-design/SKILL.md +4 -2
  186. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  187. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  188. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  189. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  190. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  191. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  192. package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +13 -10
  193. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  194. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  195. package/dist/agent-src/skills/fe-design/references/design-patterns.md +49 -2
  196. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  197. package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
  198. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  199. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  200. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  201. package/dist/agent-src/skills/iconography/SKILL.md +4 -2
  202. package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
  203. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  204. package/dist/agent-src/skills/logo-generation/SKILL.md +12 -8
  205. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  206. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  207. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  208. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  209. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
  210. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  211. package/dist/agent-src/skills/svg-authoring/SKILL.md +318 -0
  212. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
  213. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  214. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  215. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  216. package/dist/agent-src/skills/wireframe/SKILL.md +5 -2
  217. package/dist/agent-src/templates/AGENTS.md +1 -1
  218. package/dist/agent-src/templates/agent-settings.md +46 -129
  219. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  220. package/dist/agent-src/templates/command.md +2 -2
  221. package/dist/agent-src/templates/roadmaps.md +6 -1
  222. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  223. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  224. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  225. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  226. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  227. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  228. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  229. package/dist/agent-src/templates/skill.md +1 -1
  230. package/dist/cli/commands/uiRender.js +201 -4
  231. package/dist/cli/commands/uiRenderAsset.js +1308 -0
  232. package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
  233. package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
  234. package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
  235. package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
  236. package/dist/cli/commands/uiRenderAssetTypes.js +145 -0
  237. package/dist/cli/main.js +47 -1
  238. package/dist/cli/registry.js +2 -1
  239. package/dist/cli-delegate/check_update_banner.js +195 -119
  240. package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-4DBG5K7M.js} +5 -5
  241. package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
  242. package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
  243. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  244. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  245. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  246. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  247. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  248. package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
  249. package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
  250. package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
  251. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  252. package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
  253. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  254. package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
  255. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  256. package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
  257. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  258. package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
  259. package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-TMWYUOK4.js} +75 -12
  260. package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
  261. package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
  262. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  263. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  264. package/dist/cli-delegate/cmd_conformance.js +489 -238
  265. package/dist/cli-delegate/cmd_converge.js +3 -3
  266. package/dist/cli-delegate/cmd_doctor.js +15 -12
  267. package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
  268. package/dist/cli-delegate/cmd_explain.js +43 -19
  269. package/dist/cli-delegate/cmd_export.js +10 -10
  270. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  271. package/dist/cli-delegate/cmd_handoff.js +40 -21
  272. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  273. package/dist/cli-delegate/cmd_migrate.js +3 -3
  274. package/dist/cli-delegate/cmd_packs_active.js +4 -3
  275. package/dist/cli-delegate/cmd_prune.js +10 -10
  276. package/dist/cli-delegate/cmd_route_audit.js +7 -7
  277. package/dist/cli-delegate/cmd_route_explain.js +5 -5
  278. package/dist/cli-delegate/cmd_session_recycle.js +9 -7
  279. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  280. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  281. package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
  282. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  283. package/dist/cli-delegate/cmd_sync.js +10 -10
  284. package/dist/cli-delegate/cmd_uninstall.js +10 -10
  285. package/dist/cli-delegate/cmd_update.js +7 -7
  286. package/dist/cli-delegate/cmd_upgrade.js +7 -7
  287. package/dist/cli-delegate/cmd_validate.js +10 -10
  288. package/dist/cli-delegate/cmd_versions.js +5 -5
  289. package/dist/cli-delegate/gate_budget.js +1 -1
  290. package/dist/cli-delegate/gate_execute.js +2 -2
  291. package/dist/cli-delegate/roadmap_gates.js +2 -2
  292. package/dist/discovery/deprecation-report.md +1 -1
  293. package/dist/discovery/discovery-manifest.json +171 -107
  294. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  295. package/dist/discovery/discovery-manifest.summary.md +7 -7
  296. package/dist/discovery/dormancy-report.md +1 -1
  297. package/dist/discovery/orphan-report.md +1 -1
  298. package/dist/discovery/packs.json +41 -22
  299. package/dist/discovery/trust-report.md +3 -3
  300. package/dist/discovery/workspaces.json +16 -11
  301. package/dist/hooks/dispatch.js +2520 -1924
  302. package/dist/hooks/dispatch.sha256 +1 -1
  303. package/dist/hooks/svg_rules.chunk.cjs +1626 -0
  304. package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
  305. package/dist/install/install.mjs +462 -431
  306. package/dist/install/installThinLayer.js +40 -12
  307. package/dist/install/installedRuleLinks.js +105 -19
  308. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  309. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  310. package/dist/mcp/registry-manifest.json +5 -5
  311. package/dist/mcp/server.json +2 -2
  312. package/dist/mcp/server.mjs +3063 -2160
  313. package/dist/router.json +1 -1
  314. package/dist/scripts/_lib/agent_settings.js +15 -120
  315. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  316. package/dist/scripts/_lib/git_convention.js +232 -0
  317. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  318. package/dist/scripts/_lib/installed_layer.js +344 -18
  319. package/dist/scripts/_lib/package_root.js +68 -0
  320. package/dist/scripts/_lib/rule_law_section.js +1 -1
  321. package/dist/scripts/_lib/scan_scope.js +105 -0
  322. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  323. package/dist/scripts/_lib/svg_dom.js +284 -0
  324. package/dist/scripts/_lib/svg_geometry.js +477 -0
  325. package/dist/scripts/_lib/svg_motion.js +179 -0
  326. package/dist/scripts/_lib/svg_rules.js +1337 -0
  327. package/dist/scripts/_lib/svg_urls.js +67 -0
  328. package/dist/scripts/_lib/thin_rules.js +80 -3
  329. package/dist/scripts/lint_svg_asset.js +324 -0
  330. package/dist/server/app.js +2 -1
  331. package/dist/server/gitKeysGate.js +105 -0
  332. package/dist/server/routes/settings.js +67 -8
  333. package/dist/server/routes/wizard.js +4 -0
  334. package/dist/server/schemas/settings.js +23 -81
  335. package/dist/shared/skillRanking.js +30 -4
  336. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  337. package/dist/ui/index.html +1 -1
  338. package/docs/MIGRATION.md +72 -1
  339. package/docs/contracts/settings-classes.md +35 -65
  340. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  341. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  342. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  343. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  344. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  345. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  346. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  347. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  348. package/docs/guidelines/design-antipatterns.md +1 -1
  349. package/docs/guidelines/php/git.md +15 -2
  350. package/package.json +4 -3
  351. package/src/agent-src/scripts/gate_budget.ts +47 -23
  352. package/src/agent-src/scripts/gate_execute.ts +12 -4
  353. package/src/agent-src/templates/AGENTS.md +1 -1
  354. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  355. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  356. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  357. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  358. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  359. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  360. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  361. package/src/config/agent-settings.template.yml +79 -312
  362. package/src/config/agents-paths.yml +16 -0
  363. package/src/config/assurance-capability-registry.json +7 -3
  364. package/src/config/ci-local-parity.yml +3 -0
  365. package/src/config/continuity-surface.json +3 -3
  366. package/src/config/discovery/packs.yml +17 -1
  367. package/src/config/evaluator-budgets.json +19 -6
  368. package/src/config/gate-coverage.yml +65 -23
  369. package/src/config/gate-violation-baselines.json +56 -16
  370. package/src/config/gitignore-block.txt +19 -0
  371. package/src/config/hook-bundle-budget.json +1 -1
  372. package/src/config/release-gate-locality.yml +2 -1
  373. package/src/config/routing-coverage-seed.json +55 -6
  374. package/src/config/rule-law-ceilings.json +12 -6
  375. package/src/config/rule-obligations.json +833 -0
  376. package/src/install/installThinLayer.ts +76 -10
  377. package/src/install/installedRuleLinks.ts +105 -17
  378. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  379. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  380. package/src/scripts/_cli/cmd_doctor.ts +10 -10
  381. package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
  382. package/src/scripts/_cli/cmd_explain.ts +72 -14
  383. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  384. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  385. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  386. package/src/scripts/_cli/doctor_execution.ts +72 -1
  387. package/src/scripts/_dispatch.bash +37 -2
  388. package/src/scripts/_lib/agent_settings.ts +15 -124
  389. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  390. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  391. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  392. package/src/scripts/_lib/git_base_ref.ts +92 -0
  393. package/src/scripts/_lib/git_convention.ts +291 -0
  394. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  395. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  396. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  397. package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
  398. package/src/scripts/_lib/graph_feeder_record.ts +236 -13
  399. package/src/scripts/_lib/installed_layer.ts +448 -23
  400. package/src/scripts/_lib/knowledge_global.ts +14 -1
  401. package/src/scripts/_lib/module_reach.ts +456 -0
  402. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  403. package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
  404. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  405. package/src/scripts/_lib/ratification_subject.ts +92 -0
  406. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  407. package/src/scripts/_lib/release_highlights.ts +5 -0
  408. package/src/scripts/_lib/rule_law_section.ts +1 -1
  409. package/src/scripts/_lib/rule_obligations.ts +205 -0
  410. package/src/scripts/_lib/self_repair.ts +1 -1
  411. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  412. package/src/scripts/_lib/svg_dom.ts +318 -0
  413. package/src/scripts/_lib/svg_geometry.ts +480 -0
  414. package/src/scripts/_lib/svg_motion.ts +208 -0
  415. package/src/scripts/_lib/svg_rules.ts +1453 -0
  416. package/src/scripts/_lib/svg_urls.ts +72 -0
  417. package/src/scripts/_lib/test_red_state.ts +5 -0
  418. package/src/scripts/_lib/thin_rules.ts +83 -3
  419. package/src/scripts/_lib/touched_file_quality.ts +142 -6
  420. package/src/scripts/_lib/verification_command.ts +59 -0
  421. package/src/scripts/_lib/verify_clause.ts +27 -17
  422. package/src/scripts/_lib/worker_budget.ts +1 -1
  423. package/src/scripts/adr/regenerate_index.ts +16 -1
  424. package/src/scripts/ai_council/config.ts +7 -7
  425. package/src/scripts/ai_council/modification_review.ts +100 -0
  426. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  427. package/src/scripts/ai_council/orchestrator.ts +5 -5
  428. package/src/scripts/ai_council/spend_gate.ts +18 -7
  429. package/src/scripts/ai_team/config.ts +11 -16
  430. package/src/scripts/audit_user_type_axis.ts +20 -8
  431. package/src/scripts/bench_ab_clone.ts +1 -2
  432. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  433. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  434. package/src/scripts/check_agent_artifact_location.ts +36 -0
  435. package/src/scripts/check_branch_freshness.ts +147 -24
  436. package/src/scripts/check_enforcement_coverage.ts +130 -0
  437. package/src/scripts/check_evaluator_budgets.ts +4 -0
  438. package/src/scripts/check_finding_dispositions.ts +88 -25
  439. package/src/scripts/check_gate_coverage.ts +4 -3
  440. package/src/scripts/check_gate_reachability.ts +48 -1
  441. package/src/scripts/check_generator_sync.ts +48 -0
  442. package/src/scripts/check_hook_bundle_composition.ts +107 -0
  443. package/src/scripts/check_kernel_edit_ratified.ts +86 -6
  444. package/src/scripts/check_pack_size.ts +1 -1
  445. package/src/scripts/check_release_manifest_content.ts +189 -0
  446. package/src/scripts/check_standing_rule_delivery.ts +96 -0
  447. package/src/scripts/check_suppression_hygiene.ts +2 -5
  448. package/src/scripts/ci_settle.ts +42 -5
  449. package/src/scripts/classify_merge_risk.ts +320 -0
  450. package/src/scripts/closure_scan.ts +91 -1
  451. package/src/scripts/command_suggester/settings.ts +8 -108
  452. package/src/scripts/command_suggester/types.ts +4 -5
  453. package/src/scripts/consumer_matrix.ts +102 -0
  454. package/src/scripts/context_hygiene_hook.ts +13 -23
  455. package/src/scripts/cost/preflight.mjs +12 -1
  456. package/src/scripts/council_cli.ts +7 -7
  457. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  458. package/src/scripts/explain_run.ts +8 -13
  459. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  460. package/src/scripts/generate_host_cost_table.ts +20 -3
  461. package/src/scripts/handoff_context_hook.ts +86 -37
  462. package/src/scripts/hook_manifest.json +1 -1
  463. package/src/scripts/hook_manifest.yaml +25 -6
  464. package/src/scripts/hooks/block_config_weakening.ts +48 -5
  465. package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
  466. package/src/scripts/hooks/block_speaking_inbox_dir.ts +16 -1
  467. package/src/scripts/hooks/concern_registry.ts +2 -0
  468. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  469. package/src/scripts/hooks/design_pass_hook.ts +157 -3
  470. package/src/scripts/hooks/evidence_independence.ts +12 -4
  471. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  472. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  473. package/src/scripts/hooks/rule_inject_hook.ts +44 -3
  474. package/src/scripts/hooks/state_io.ts +8 -4
  475. package/src/scripts/hooks/svg_obligation.ts +497 -0
  476. package/src/scripts/hooks/svg_rules_loader.ts +133 -0
  477. package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
  478. package/src/scripts/hooks/turn_end_gate_hook.ts +6 -3
  479. package/src/scripts/install-hooks.sh +42 -14
  480. package/src/scripts/install.ts +7 -31
  481. package/src/scripts/lint_blocker_citations.ts +198 -0
  482. package/src/scripts/lint_consolidation_lineage.ts +6 -3
  483. package/src/scripts/lint_design_quality.ts +60 -12
  484. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  485. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  486. package/src/scripts/lint_motion_authority_drift.ts +27 -0
  487. package/src/scripts/lint_pack_boundaries.ts +406 -28
  488. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  489. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  490. package/src/scripts/lint_rule_law_section.ts +151 -21
  491. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  492. package/src/scripts/lint_settings_classes.ts +1 -1
  493. package/src/scripts/lint_svg_asset.ts +365 -0
  494. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  495. package/src/scripts/lint_workflow_security.ts +12 -1
  496. package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
  497. package/src/scripts/model_rule_injection.ts +3 -3
  498. package/src/scripts/onboarding_gate_hook.ts +7 -6
  499. package/src/scripts/print_required_checks.ts +15 -3
  500. package/src/scripts/probe_host_compliance.ts +33 -5
  501. package/src/scripts/probe_turnaround.ts +183 -3
  502. package/src/scripts/ratification_header.ts +77 -0
  503. package/src/scripts/refusal_envelope.ts +138 -0
  504. package/src/scripts/release_publication.ts +29 -3
  505. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  506. package/src/scripts/report_installed_rule_links.ts +118 -1
  507. package/src/scripts/report_module_reach.ts +212 -0
  508. package/src/scripts/report_obligation_mechanism.ts +16 -18
  509. package/src/scripts/report_parked_blockers.ts +222 -0
  510. package/src/scripts/report_required_checks_drift.ts +196 -0
  511. package/src/scripts/report_skill_ranker_confusion.ts +103 -2
  512. package/src/scripts/report_standing_payload_by_host.ts +1 -1
  513. package/src/scripts/routing_doctor.ts +2 -2
  514. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  515. package/src/scripts/schemas/command.schema.json +1 -1
  516. package/src/scripts/schemas/skill.schema.json +1 -1
  517. package/src/scripts/self_review_gate.ts +39 -2
  518. package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
  519. package/src/scripts/sync_pr_branch.ts +403 -132
  520. package/src/scripts/trigger_eval_grandfather.json +0 -16
  521. package/src/server/schemas/settings.ts +33 -177
  522. package/src/shared/skillRanking.ts +53 -4
  523. package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
  524. package/src/scripts/_lib/config_chain.ts +0 -477
  525. package/src/scripts/_lib/conformance_report.ts +0 -403
  526. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  527. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  528. package/src/scripts/_lib/file_slicer.ts +0 -117
  529. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  530. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  531. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  532. package/src/scripts/_lib/role_split.ts +0 -338
@@ -34,6 +34,11 @@ hotfix/DEV-999/critical-payment-bug
34
34
  - Always include the Jira ticket ID when one exists
35
35
  - Use kebab-case for the description part
36
36
  - Keep branch names short but descriptive
37
+ - The shape above is this guideline's convention; the agent renders branches from `git.branch_pattern` per [`commit-subject`](../../skills/git-workflow/references/commit-subject.md).
38
+ - A team declares `git.branch_pattern`, `git.commit_format` and
39
+ `git.update_strategy` in `.git-convention.yml` at the repository root, committed
40
+ so every checkout, worktree and CI run reads the same value; there either value
41
+ is a declaration. `agent-config git:convention show` prints what is in force.
37
42
 
38
43
  ## Commit Messages
39
44
 
@@ -68,9 +73,14 @@ that is not better classified as `build`, `ci`, or `docs`.
68
73
 
69
74
  Use a scope when it adds clarity. Good scopes:
70
75
 
71
- - Jira ticket ID: `DEV-1234`
76
+ - Jira ticket ID: placed per [`commit-subject`](../../skills/git-workflow/references/commit-subject.md) § Placing the ticket
72
77
  - Module/area: `api`, `auth`, `skills`, `rules`, `ci`, `frontend`, `linter`
73
78
 
79
+ Under `git.commit_format: ticket-conventional` the ticket leads the subject and is
80
+ **never** in the scope (`DEV-1234 feat(exporter-models): …`); tooling that parses
81
+ subjects (commitlint, release automation, changelog generators) must be
82
+ configured for that prefixed form.
83
+
74
84
  Do not add a scope if it adds no value. `fix(core): fix typo` → just `fix: fix typo`.
75
85
 
76
86
  ### Description rules
@@ -157,7 +167,10 @@ Before writing the commit message:
157
167
 
158
168
  ## Pull Requests
159
169
 
160
- - PR title follows commit message format: `feat(DEV-1234): short description`
170
+ - PR title per [`commit-subject`](../../skills/git-workflow/references/commit-subject.md) § A title that becomes a commit
171
+ - Bring the branch up to date per `git.update_strategy` — merge the base in
172
+ (default) or rebase onto `origin/main` and push with `--force-with-lease`;
173
+ see `git-workflow` › `references/branch-update.md`
161
174
  - Fill in the PR template (checklist, description, testing notes)
162
175
  - Link the Jira ticket in the PR description
163
176
  - Ensure all quality gates pass before requesting review
@@ -20,7 +20,6 @@ enforced_by:
20
20
  - "instruction-only: the note, the ask and the user decision are all prose, so no gate can tell a discharged issue from a mentioned one"
21
21
  collision_ok:
22
22
  "refactor": "an explicit clean-up/refactor ask is the remediation ladder's own trigger"
23
- # obligation: line 31
24
23
  obligation_frequency: "per-edit"
25
24
  ---
26
25
 
@@ -10,7 +10,6 @@ routes_to:
10
10
  - "skill:analysis-skill-router"
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
- # obligation: line 19
14
13
  obligation_frequency: "none"
15
14
  ---
16
15
 
@@ -13,7 +13,6 @@ workspaces: [agent-config-maintainer, engineering]
13
13
  packs: [meta]
14
14
  collision_ok:
15
15
  "controller": "thin-handler floor on controller work"
16
- # obligation: line 26
17
16
  obligation_frequency: "per-edit"
18
17
  ---
19
18
 
@@ -14,7 +14,6 @@ routes_to:
14
14
  - "guideline:agent-infra/artifact-drafting-protocol-mechanics"
15
15
  workspaces: [agent-config-maintainer, engineering]
16
16
  packs: [meta]
17
- # obligation: line 41
18
17
  obligation_frequency: "per-task"
19
18
  ---
20
19
 
@@ -13,7 +13,6 @@ load_context:
13
13
  - "../contexts/contracts/artifact-engagement-flow.md"
14
14
  workspaces: [agent-config-maintainer, engineering]
15
15
  packs: [meta]
16
- # obligation: line 22
17
16
  obligation_frequency: "per-task"
18
17
  ---
19
18
 
@@ -19,7 +19,6 @@ workspaces: [agent-config-maintainer]
19
19
  packs: [meta]
20
20
  collision_ok:
21
21
  ".augment/": "portability + sync floors for the .augment tree"
22
- # obligation: line 28
23
22
  obligation_frequency: "per-edit"
24
23
  ---
25
24
 
@@ -14,7 +14,6 @@ triggers:
14
14
  self_contained: true
15
15
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
16
16
  packs: [meta]
17
- # obligation: line 4
18
17
  obligation_frequency: "per-turn"
19
18
  ---
20
19
 
@@ -10,7 +10,6 @@ applies_to_user_types:
10
10
  self_contained: true
11
11
  workspaces: [engineering]
12
12
  packs: [brand]
13
- # obligation: line 20
14
13
  obligation_frequency: "none"
15
14
  ---
16
15
 
@@ -20,7 +20,6 @@ applies_to_user_types:
20
20
  self_contained: true
21
21
  workspaces: [engineering]
22
22
  packs: [brand]
23
- # obligation: line 51
24
23
  obligation_frequency: "per-edit"
25
24
  ---
26
25
 
@@ -24,7 +24,6 @@ collision_ok:
24
24
  "controller": "controllers return user data — the ownership/tenant check floor"
25
25
  "endpoint": "every data-returning endpoint needs the three negative tests"
26
26
  "tenant": "cross-tenant isolation is this rule's core subject"
27
- # obligation: line 55
28
27
  obligation_frequency: "per-edit"
29
28
  evidence:
30
29
  source_type: external-standard
@@ -35,7 +35,6 @@ collision_ok:
35
35
  "composer": "composer output is verbose — rtk wrap applies"
36
36
  "docker": "docker output is verbose — rtk wrap applies"
37
37
  "rector": "rector output is verbose — rtk wrap applies"
38
- # obligation: line 42
39
38
  obligation_frequency: "per-edit"
40
39
  ---
41
40
 
@@ -20,7 +20,6 @@ packs: [engineering-base]
20
20
  collision_ok:
21
21
  "refactor": "refactors churn comments — the keep/drop discipline applies"
22
22
  "implement": "fresh implementation is where over-commenting lands"
23
- # obligation: line 5
24
23
  obligation_frequency: "per-edit"
25
24
  enforced_by:
26
25
  - "validator:src/scripts/lint_code_comments.ts"
@@ -23,7 +23,6 @@ packs: [engineering-base]
23
23
  roles: [developer, reviewer, tester, po, incident, planner]
24
24
  enforced_by:
25
25
  - "instruction-only: close-the-source-and-re-derive is a pre-write reasoning step only the model observes; CI checks the ledger, never the derivation"
26
- # obligation: line 40
27
26
  obligation_frequency: "per-edit"
28
27
  evidence:
29
28
  source_type: external-research
@@ -12,7 +12,6 @@ load_context:
12
12
  - "../contexts/contracts/command-suggestion-flow.md"
13
13
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
14
14
  packs: [meta]
15
- # obligation: line 18
16
15
  obligation_frequency: "per-turn"
17
16
  ---
18
17
 
@@ -12,13 +12,12 @@ workspaces: [engineering]
12
12
  packs: [engineering-base]
13
13
  collision_ok:
14
14
  "commit": "format floor for every commit message"
15
- # obligation: line 19
16
15
  obligation_frequency: "per-commit"
17
16
  ---
18
17
 
19
18
  # Commit Conventions
20
19
 
21
- **Iron Law.** Match the repo's configured or approved convention; else Conventional Commits (`feat:`, `fix:` …), branches `<type>/<short-slug>`; never invent one. Subjects + branch names stay emoji-free per [`no-decorative-emojis-in-git-surfaces`](no-decorative-emojis-in-git-surfaces.md); body emojis need an in-artifact legend.
20
+ **Iron Law.** Match a repo's configured, then git.* settings, then approved convention; else Conventional Commits, branches `<type>/<short-slug>`; never invent one. Subjects + branch names stay emoji-free per [`no-decorative-emojis-in-git-surfaces`](no-decorative-emojis-in-git-surfaces.md); body emojis need an in-artifact legend.
22
21
 
23
22
  Body migrated to `skill:conventional-commits-writing` (per P4 of `road-to-kernel-and-router.md`).
24
23
  Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
@@ -8,7 +8,6 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
8
8
  packs: [meta]
9
9
  triggers:
10
10
  - phrase: "reporting progress"
11
- # obligation: line 20
12
11
  obligation_frequency: "per-turn"
13
12
  ---
14
13
 
@@ -34,7 +33,7 @@ CLOSE THE LOOP WITH ONE END-SUMMARY. NEVER MAKE THE USER RE-DERIVE WHERE THINGS
34
33
  ## When NOT to over-apply
35
34
 
36
35
  - A one-shot answer or trivial reply needs no plan-anchor or end-summary (`direct-answers` brevity wins).
37
- - Don't narrate for its own sake — the thread is orientation, not play-by-play (respect `personal.play_by_play`).
36
+ - Don't narrate for its own sake — the thread is orientation, not play-by-play.
38
37
  - Never let the through-line inflate a reply past what the task needs; brevity and the one-recommendation rule win on conflict.
39
38
 
40
39
  ## See also
@@ -9,7 +9,6 @@ triggers:
9
9
  self_contained: true
10
10
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
11
11
  packs: [meta]
12
- # obligation: line 19
13
12
  obligation_frequency: "per-event"
14
13
  ---
15
14
 
@@ -88,7 +87,7 @@ does not substitute for engaging with the source.
88
87
  **markup**: a design artifact the user hands over is their own material, so
89
88
  adapting its code is not a borrow. Third-party code arriving inside that
90
89
  handover is not covered, on either side.
91
- - [`docs/contracts/write-engine.md`](../docs/contracts/write-engine.md) —
90
+ - `docs/contracts/write-engine.md` —
92
91
  ghostwriter's disclosure-footer contract; this rule's quote floor
93
92
  applies to any ghostwriter draft that cites an external source.
94
93
  - [`source-confidentiality`](source-confidentiality.md) — the license-
@@ -16,7 +16,6 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
16
16
  packs: [meta]
17
17
  enforced_by:
18
18
  - "hook:context-hygiene"
19
- # obligation: line 67
20
19
  obligation_frequency: "per-turn"
21
20
  ---
22
21
 
@@ -26,7 +25,7 @@ obligation_frequency: "per-turn"
26
25
  > on Augment + Claude Code (`PostToolUse`). Run `agent-config hooks:status` to
27
26
  > see whether that slot is actually bound on the host you are on — this line is
28
27
  > a statement about the manifest, not about your install. The hook maintains
29
- > `agents/state/context-hygiene.json` (tool-call count, loop signal,
28
+ > `agents/state/context-hygiene.json` (tool-call count,
30
29
  > freshness milestones at 20/40/60); the prose below is the spec the
31
30
  > hook implements and the agent-side fallback.
32
31
  >
@@ -53,9 +52,10 @@ topic · branch changed since start · ~24 hours passed.
53
52
 
54
53
  ## The 3-Failure Rule
55
54
 
56
- When **3 consecutive attempts** at the same task fail (code fix, test fix, config change, etc.):
55
+ Counts **strategies**, not attempts. 3 fail at the same task (code fix,
56
+ test fix, config change, etc.):
57
57
 
58
- 1. **STOP** — do not attempt a 4th fix.
58
+ 1. A 4th strategy is wrong — reassess.
59
59
  2. **State dump** — summarize what was tried, what failed, and what you know so far.
60
60
  3. **Recommend fresh start** — suggest a fresh session with the state dump as context, or ask for a different approach.
61
61
 
@@ -66,7 +66,7 @@ When **3 consecutive attempts** at the same task fail (code fix, test fix, confi
66
66
  - **Same failure signature twice → stop and pivot now.** Don't burn the third attempt on a near-identical retry of a fix that already failed the same way — a repeated identical signature means the hypothesis is wrong, not under-applied. Change strategy (re-read source, new hypothesis, ask).
67
67
  - **New error signature each attempt = progress.** Peeling one error to reveal a different one is forward motion; counter continues — learning, not looping.
68
68
 
69
- **Hard-blocker classes — skip retries, go straight to ask/surface.** On the **first** occurrence, do not count toward the 3 — stop and surface: missing credentials / unset secret · permission denied · spend / quota / rate limit reached · external-service 5xx / outage. Retrying a hard-blocker is the canonical wasted attempt; the fix is a decision or external change only the user/environment can make.
69
+ **Hard-blocker classes — skip retries, go straight to ask/surface.** On the **first** occurrence, do not count toward the 3 — halt and surface: missing credentials / unset secret · permission denied · spend / quota / rate limit reached · external-service 5xx / outage. Retrying a hard-blocker is the canonical wasted attempt; the fix is a decision or external change only the user/environment can make.
70
70
 
71
71
  ## Tool Loop Detection
72
72
 
@@ -10,7 +10,6 @@ routes_to:
10
10
  - "skill:copilot-config"
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
- # obligation: line 19
14
13
  obligation_frequency: "none"
15
14
  ---
16
15
 
@@ -18,5 +17,5 @@ obligation_frequency: "none"
18
17
 
19
18
  **Iron Law.** Tuning the GitHub Copilot AI assistant itself (instructions, PR-review patterns, suggestion behavior) → load the `copilot-config` skill, not `devcontainer` (which covers the dev environment Copilot runs inside).
20
19
 
21
- Body migrated to `skill:copilot-config`. Disambiguates the copilot-config ↔ devcontainer cluster head per [`adr-architectural-consensus-mechanism`](../docs/contracts/adr-architectural-consensus-mechanism.md).
20
+ Body migrated to `skill:copilot-config`. Disambiguates the copilot-config ↔ devcontainer cluster head per `docs/contracts/adr-architectural-consensus-mechanism.md`.
22
21
  Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
@@ -14,7 +14,6 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
14
14
  packs: [meta]
15
15
  enforced_by:
16
16
  - "instruction-only: no gate reads a chat claim about availability; check_council_config_location covers the tree side only"
17
- # obligation: line 27
18
17
  obligation_frequency: "per-task"
19
18
  ---
20
19
 
@@ -68,9 +67,10 @@ the user-global config into the repo to "make it work".
68
67
 
69
68
  ## If the probe really says unavailable
70
69
 
71
- State the resolver's own message and stop. A subagent fan-out is a legitimate
72
- substitute **only when named as such** — never as "the council". Same honesty
73
- boundary as [`evaluator-independence`](evaluator-independence.md).
70
+ State the resolver's message and stop. A fan-out substitutes **only when named
71
+ as such**, never as "the council"
72
+ ([`evaluator-independence`](evaluator-independence.md)), nor in a
73
+ modification review (ADR-281).
74
74
 
75
75
  ## When NOT to fire
76
76
 
@@ -26,7 +26,6 @@ packs: [engineering-base, product-basic]
26
26
  collision_ok:
27
27
  "mockup": "a mockup is a second source — discrepancy check against the ticket text"
28
28
  "screenshot": "a screenshot is a second source — discrepancy check"
29
- # obligation: line 71
30
29
  obligation_frequency: "per-task"
31
30
  ---
32
31
 
@@ -59,11 +58,10 @@ OBVIOUS-TO-THE-AGENT ≠ IN-SCOPE.
59
58
 
60
59
  **Fires** while planning, refining, estimating, roadmapping, or implementing from
61
60
  a ticket/spec that carries a second source (an attachment, a code reality, or an
62
- internal contradiction), gated by `consistency.cross_source` in
63
- `.agent-settings.yml` (`on` default · `auto` = high-confidence only · `off` = inert).
64
- That file is the project layer of a cascade that starts user-global — never read
65
- the setting or its absence from it alone; `agent-config settings:get
66
- consistency.cross_source` reports the value and the file it came from.
61
+ internal contradiction). It is always on: the `consistency.cross_source` key that
62
+ offered `auto` (high-confidence only) and `off` was retired on 2026-10-09 with its
63
+ default, `on`, as the fixed behavior. The noise control is the batching and the
64
+ `no-cheap-questions` floor below, not a setting.
67
65
 
68
66
  **Does NOT fire** on a single clear source with no second source to compare
69
67
  against (that is plain vagueness — it belongs to `ask-when-uncertain`), on
@@ -25,7 +25,6 @@ workspaces: [agent-config-maintainer, engineering]
25
25
  packs: [meta]
26
26
  collision_ok:
27
27
  "honest null": "this rule asks whether a recorded null may be REVISITED; evaluator-independence asks how one was PRODUCED — different decision points on the same artefact"
28
- # obligation: line 33
29
28
  enforced_by:
30
29
  - "instruction-only: no gate can observe an agent citing a decision it never opened; adr_cite_check is deterministic where it runs and nothing makes it run"
31
30
  obligation_frequency: "per-task"
@@ -96,7 +95,7 @@ read 6 is the agent's, because reversibility belongs to the proposed transition
96
95
  and no tool reading one record supplies it. What each field means, and what a
97
96
  `[found]` basis ref does NOT claim, is in that script's module docstring. The
98
97
  evidence-priced burden table stays in
99
- [`adr-layout § The reopen record`](../docs/contracts/adr-layout.md).
98
+ `docs/contracts/adr-layout.md` § The reopen record.
100
99
 
101
100
  ```
102
101
  A GRADE IS A MEASUREMENT, NOT A PERMISSION — IT GRANTS NOTHING.
@@ -152,7 +151,7 @@ Field on the ADR: `reopen_policy: directional | owner | unclassified`, absent
152
151
  permitted; only execution of a reserved transition is gated. Absent is
153
152
  deliberately not `owner`: with 146 accepted ADRs that default would encode
154
153
  today's blockage into the new schema. Full contract, the reopen record and the
155
- precedent-creates-no-authority clause: [`adr-layout § Reopen authority`](../docs/contracts/adr-layout.md).
154
+ precedent-creates-no-authority clause: `docs/contracts/adr-layout.md` § Reopen authority.
156
155
 
157
156
  ## See also
158
157
 
@@ -20,7 +20,6 @@ routes_to:
20
20
  - "skill:subagent-orchestration"
21
21
  workspaces: [engineering]
22
22
  packs: [engineering-base]
23
- # obligation: line 35
24
23
  obligation_frequency: "per-task"
25
24
  ---
26
25
 
@@ -69,7 +68,7 @@ primitive → run in-session (clean no-op).
69
68
  `subagents.model_ceiling` caps the tier and the slice does not fit, the worker
70
69
  **escalates and never silently delivers the degraded result**; the
71
70
  orchestrator never raises the ceiling itself, and absent is *uncapped*.
72
- [`subagent-boundary § The model ceiling`](../docs/contracts/subagent-boundary.md).
71
+ `docs/contracts/subagent-boundary.md` § The model ceiling.
73
72
  3. **Dispatch** via the form gate + matching `subagent-orchestration` mode
74
73
  (independent → do-in-parallel; ordered → do-in-steps; risk/correctness →
75
74
  + judge; UI-heavy → live-app judge, efficacy-gated).
@@ -116,6 +115,6 @@ on hosts without hook slots. Per-carrier detail and what each one verifies:
116
115
  ## See also
117
116
 
118
117
  - [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md) — the form gate + 9 modes this selects.
119
- - [`subagent-boundary`](../docs/contracts/subagent-boundary.md) — what a subagent owns vs never owns (task-meaning, memory, pack-surface, safety-floor bypass).
118
+ - `docs/contracts/subagent-boundary.md` — what a subagent owns vs never owns (task-meaning, memory, pack-surface, safety-floor bypass).
120
119
  - [`auto-orchestration-activation`](../contexts/execution/auto-orchestration-activation.md) — the gate.
121
120
  - [`reasoning-orchestrator`](../skills/reasoning-orchestrator/SKILL.md) — RDP dispatch, now gated here.
@@ -41,7 +41,6 @@ collision_ok:
41
41
  "mockup": "a provided mockup is the spec — 1:1 fidelity floor"
42
42
  enforced_by:
43
43
  - "instruction-only: no artifact in this tree records a fidelity comparison. lint_design_slop and lint_design_quality measure generic AI-aesthetic tells and accessibility; neither reads the handover, so a 1:1 claim is model-carried"
44
- # obligation: line 60
45
44
  obligation_frequency: "per-edit"
46
45
  ---
47
46
 
@@ -45,7 +45,6 @@ collision_ok:
45
45
  "*.tsx": "one component file, two obligations: inventory before the write, review after it"
46
46
  "*.jsx": "one component file, two obligations: inventory before the write, review after it"
47
47
  "*.blade.php": "one template file, two obligations: inventory before the write, review after it"
48
- # obligation: line 39
49
48
  obligation_frequency: "per-edit"
50
49
  ---
51
50
 
@@ -74,7 +73,8 @@ STATICALLY CHECKED AND SAY SO. NEVER "LOOKS GOOD" WITH NOTHING BEHIND IT.
74
73
  The verdict is gated on evidence, not on having run a skill:
75
74
 
76
75
  - **Render capability present** (Playwright MCP, Chrome DevTools, or a live
77
- preview URL) → the [design-artifact verification checklist](../docs/contracts/design-artifact-verification.md#verification-checklist)
76
+ preview URL) → the design-artifact verification checklist
77
+ (`docs/contracts/design-artifact-verification.md` § Verification checklist)
78
78
  steps 1–5. A UI task does not pass without render evidence.
79
79
  - **Render capability absent** → the verdict is **scoped to the static checks
80
80
  that actually ran** and says which those were. This is not a downgrade to be
@@ -136,7 +136,7 @@ three `platforms:` rows that carry a `pre_tool_use` key — augment, claude,
136
136
  cowork (**clarified 2026-08-17**: "hosts carrying a slot" read as a host
137
137
  property and is a manifest one; three further hosts alias a native pre-tool
138
138
  event with no binding, and only claude honours a deny — see
139
- [`hook-architecture-v1 § Which hosts carry pre_tool_use`](../docs/contracts/hook-architecture-v1.md)).
139
+ `docs/contracts/hook-architecture-v1.md` § Which hosts carry pre_tool_use).
140
140
  The verdict is unchanged either way: a nudge that can be ignored is not
141
141
  enforcement, so `enforced_by:` stays `none` — it moves the day a mechanism can
142
142
  refuse, not the day a reminder appears. `agent-config hooks:status` answers
@@ -11,7 +11,6 @@ routes_to:
11
11
  - "skill:devcontainer"
12
12
  workspaces: [agent-config-maintainer, engineering]
13
13
  packs: [meta]
14
- # obligation: line 20
15
14
  obligation_frequency: "none"
16
15
  ---
17
16
 
@@ -19,5 +18,5 @@ obligation_frequency: "none"
19
18
 
20
19
  **Iron Law.** Wiring the dev environment itself (DevContainers, Codespaces, `devcontainer.json`, VS Code features) → load the `devcontainer` skill, not `copilot-config` (which tunes the Copilot AI on top).
21
20
 
22
- Body migrated to `skill:devcontainer`. Disambiguates the devcontainer ↔ copilot-config cluster head per [`adr-architectural-consensus-mechanism`](../docs/contracts/adr-architectural-consensus-mechanism.md).
21
+ Body migrated to `skill:devcontainer`. Disambiguates the devcontainer ↔ copilot-config cluster head per `docs/contracts/adr-architectural-consensus-mechanism.md`.
23
22
  Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
@@ -28,7 +28,6 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
28
28
  packs: [meta]
29
29
  collision_ok:
30
30
  "screenshot": "a screenshot shipping into docs is the PII/anonymization gate"
31
- # obligation: line 49
32
31
  obligation_frequency: "per-event"
33
32
  ---
34
33
 
@@ -15,7 +15,6 @@ collision_ok:
15
15
  "artisan": "artisan runs inside the project container, never on the host"
16
16
  "composer": "composer runs inside the project container"
17
17
  "docker": "its own core subject"
18
- # obligation: line 22
19
18
  obligation_frequency: "per-edit"
20
19
  ---
21
20
 
@@ -18,7 +18,6 @@ workspaces: [agent-config-maintainer]
18
18
  packs: [meta]
19
19
  collision_ok:
20
20
  "src/skills/": "a skill in a fresh vertical is exactly the domain-gate surface"
21
- # obligation: line 38
22
21
  obligation_frequency: "per-task"
23
22
  ---
24
23
 
@@ -43,7 +43,6 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
43
43
  packs: [meta]
44
44
  collision_ok:
45
45
  "review this contract": "contract review is advisory-shaped — the not-legal-advice footer floor"
46
- # obligation: line 52
47
46
  obligation_frequency: "per-task"
48
47
  ---
49
48
 
@@ -43,7 +43,6 @@ applies_to_user_types:
43
43
  - "all"
44
44
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
45
45
  packs: [meta]
46
- # obligation: line 52
47
46
  obligation_frequency: "per-task"
48
47
  evidence:
49
48
  source_type: external-standard
@@ -28,7 +28,6 @@ applies_to_user_types:
28
28
  - "gtm"
29
29
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
30
30
  packs: [meta]
31
- # obligation: line 47
32
31
  obligation_frequency: "per-turn"
33
32
  evidence:
34
33
  source_type: external-standard
@@ -11,7 +11,6 @@ triggers:
11
11
  self_contained: true
12
12
  workspaces: [engineering]
13
13
  packs: [engineering-base]
14
- # obligation: line 30
15
14
  obligation_frequency: "per-edit"
16
15
  ---
17
16
 
@@ -29,7 +29,6 @@ workspaces: [engineering]
29
29
  packs: [engineering-base]
30
30
  collision_ok:
31
31
  "migration": "a prod migration is a hard-floor evidence surface (rollback path, blast radius)"
32
- # obligation: line 49
33
32
  obligation_frequency: "per-commit"
34
33
  evidence:
35
34
  source_type: own-analysis
@@ -17,7 +17,6 @@ applies_to_user_types:
17
17
  self_contained: true
18
18
  workspaces: [engineering]
19
19
  packs: [meta]
20
- # obligation: line 37
21
20
  obligation_frequency: "per-turn"
22
21
  ---
23
22
 
@@ -10,7 +10,6 @@ triggers:
10
10
  self_contained: true
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
- # obligation: line 20
14
13
  obligation_frequency: "per-task"
15
14
  ---
16
15
 
@@ -15,7 +15,6 @@ validator_ignore:
15
15
  self_contained: true
16
16
  workspaces: [agent-config-maintainer, engineering]
17
17
  packs: [meta]
18
- # obligation: line 30
19
18
  obligation_frequency: "per-turn"
20
19
  ---
21
20
 
@@ -81,6 +80,6 @@ this rule does not constrain their output.
81
80
 
82
81
  ## See also
83
82
 
84
- - [`ai-council-config § Low-impact council opt-in`](../docs/contracts/ai-council-config.md#low-impact-council-opt-in)
83
+ - `docs/contracts/ai-council-config.md` § Low-impact council opt-in
85
84
  - [`direct-answers`](direct-answers.md) — invented-facts Iron Law (provenance kin).
86
85
  - `scripts/ai_council/low_impact.ts` — marker source.
@@ -34,7 +34,6 @@ packs: [finance-basic, finance-advanced]
34
34
  trust:
35
35
  level: advisory
36
36
  human_review_required: true
37
- # obligation: line 53
38
37
  obligation_frequency: "per-task"
39
38
  ---
40
39
  <!-- agent-config:human-review-banner -->
@@ -74,43 +74,17 @@ asks; the ask becomes the work, not the exit.
74
74
  **Does NOT fire:** user fenced the scope this turn · no falsifiable break (a
75
75
  preference, not a red) · already decided by the user.
76
76
 
77
- ## Why separate from `active-remediation`
77
+ ## Why a separate rule, and its activation gap
78
78
 
79
- That rule forbids ignoring a spotted issue and its ladder permits **note + ask**.
80
- Two properties made it insufficient, both measured 2026-08-20: it is `type: auto`
81
- on `refactor`/`legacy`/`cleanup` triggers — **none of which a failing CI job
82
- matches**, so it does not load when the obligation matters most — and its
83
- note-and-ask tier is what let a session name a red check's cause, name the
84
- file's author, and hand it back still red.
85
-
86
- Mechanics (fix-now size criteria, follow-up shape) stay there; this rule only
87
- deletes the two escapes.
88
-
89
- ## Honest activation gap — this rule is `auto`, and it wanted to be `always`
90
-
91
- It shipped `auto` for a budget reason, not a design one, and the gap that leaves
92
- is exactly the one it was written to close: **a red check the agent sees in tool
93
- output triggers nothing.** Keyword triggers match the PROMPT. So the rule loads
94
- when a human says "CI is red" or "not my test", and does NOT load when a test
95
- run comes back red and nobody has said a word.
96
-
97
- `check_always_budget` is the reason: the extended always-budget sat at
98
- 60,252 / 60,254 chars — **two characters of headroom** — and the cap is a
99
- ratchet that may only move down. The other nine always-rules are the kernel,
100
- which `block_kernel_rule_writes` denies agent writes to, so no room can be made
101
- from this side. A 2,332-char rule puts the total at 103.9 %.
102
-
103
- Closing the gap needs one of: the ext-cap ratchet opened deliberately (a
104
- maintainer decision, recorded), a kernel rule shortened to make room, or a
105
- `post_tool_use` carrier that notices a non-zero verification exit — the only
106
- option that would fire on tool output rather than on wording. Until then, `auto`
107
- plus this paragraph is the honest state: the obligation is real, its delivery is
108
- partial, and the partiality is named rather than implied away.
79
+ Why `active-remediation` alone was insufficient, and why this rule ships `auto`
80
+ although it wanted `always` — so a red check seen only in tool output triggers
81
+ nothing — are in
82
+ `guideline:agent-infra/active-remediation-mechanics` § fix-what-you-see.
109
83
 
110
84
  ## Honest enforcement — `instruction-only`
111
85
 
112
86
  Nothing observes a disposition. "I fixed it", "I landed a roadmap for it" and
113
87
  "I named the author and moved on" are the same prose to every gate in this tree,
114
88
  and the issue set is whatever the agent happened to see. So the two dispositions
115
- above are model-carried, and the activation gap named in the previous section
89
+ above are model-carried, and the activation gap named above
116
90
  sits on top of that rather than beside it.
@@ -43,7 +43,6 @@ collision_ok:
43
43
  "formrequest": "FormRequest named in a generic artifact is leakage — the lint surface"
44
44
  "phpstan": "phpstan named in a generic artifact is leakage — the lint surface"
45
45
  "rector": "rector named in a generic artifact is leakage — the lint surface"
46
- # obligation: line 65
47
46
  obligation_frequency: "per-edit"
48
47
  ---
49
48
 
@@ -24,7 +24,6 @@ workspaces: [engineering]
24
24
  packs: [engineering-base]
25
25
  enforced_by:
26
26
  - "hook:block-no-verify"
27
- # obligation: line 35
28
27
  obligation_frequency: "per-commit"
29
28
  ---
30
29
 
@@ -87,6 +86,6 @@ Trigger-set above activates this routing on demand, independent of the disciplin
87
86
  - [`skill:git-workflow`](../skills/git-workflow/SKILL.md) — Safe Squash-After-Push protocol and Divergent-State Recovery decision tree.
88
87
  - `git … --no-verify` / `core.hooksPath` overrides — deterministically blocked by the `block-no-verify` PreToolUse guard (`src/scripts/hooks/block_no_verify.ts`, registered in `hook_manifest.yaml`) **on `claude`, the one host that both binds `pre_tool_use` and honours a deny**. It is *bound* on augment and cowork too, and ignored there. Everywhere else the Iron Laws above are model-carried and "deterministically blocked" is not a claim this rule can make. To check the host you are on rather than trusting this sentence, run `agent-config hooks:status`.
89
88
 
90
- **Corrected 2026-08-17, in both directions, because this line was wrong on each side.** It read "the guard has nowhere to bind" on cursor, cline, windsurf, gemini and copilot — refuted for three of the five by the manifest's own `native_event_aliases` table, which already maps `preToolUse`, `PreToolUse` and `BeforeTool` onto `pre_tool_use`: there the guard is **unbound, not unbindable**, and only windsurf and copilot carry no pre-tool alias row here. And it certified augment, claude and cowork as the enforcing set — `host_semantics.ts` verifies **claude alone**, while the augment and cowork trampolines discard dispatcher output and `exit 0` unconditionally, so a guard bound there runs and is then ignored. Both halves are the same failure: a host-capability claim this tree never established. The four states are tabulated once in [`hook-architecture-v1 § Which hosts carry pre_tool_use`](../docs/contracts/hook-architecture-v1.md).
89
+ **Corrected 2026-08-17, in both directions, because this line was wrong on each side.** It read "the guard has nowhere to bind" on cursor, cline, windsurf, gemini and copilot — refuted for three of the five by the manifest's own `native_event_aliases` table, which already maps `preToolUse`, `PreToolUse` and `BeforeTool` onto `pre_tool_use`: there the guard is **unbound, not unbindable**, and only windsurf and copilot carry no pre-tool alias row here. And it certified augment, claude and cowork as the enforcing set — `host_semantics.ts` verifies **claude alone**, while the augment and cowork trampolines discard dispatcher output and `exit 0` unconditionally, so a guard bound there runs and is then ignored. Both halves are the same failure: a host-capability claim this tree never established. The four states are tabulated once in `docs/contracts/hook-architecture-v1.md` § Which hosts carry pre_tool_use.
91
90
 
92
91
  The frequency join in `check_enforcement_coverage.ts` reports this obligation uncovered on **four** platforms — cursor, cline, windsurf, gemini. It skips `fallback_only` platforms before computing, so copilot never appears in its output and must not be quoted as if it did; copilot is uncovered because this package binds nothing there.