@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
package/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  [![Smoke](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [![Public install smoke (3 OS × 2 Node)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [![npm](https://img.shields.io/npm/v/@event4u/agent-config?style=flat-square&label=npm&color=orange)](https://www.npmjs.com/package/@event4u/agent-config) [![agent-config MCP server](https://glama.ai/mcp/servers/event4u-app/agent-config/badges/score.svg)](https://glama.ai/mcp/servers/event4u-app/agent-config) [![MCP Toplist](https://mcptoplist.com/badge/glama%2Fevent4u-app%2Fagent-config.svg)](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
6
6
 
7
- [![Skills](https://img.shields.io/badge/Skills-299-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-121-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-203-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-121-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/) <!-- claim:published-artifact-counts -->
7
+ [![Skills](https://img.shields.io/badge/Skills-299-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-122-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-205-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-121-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/) <!-- claim:published-artifact-counts -->
8
8
 
9
- <sub>**How these are counted** — one canonical counter, `agent-config` → `update_counts --check`, re-derives all six from the tree and fails CI on a drift of one. Two bases are not what the linked directory shows, so they are stated here rather than left to be inferred: **Commands 202** counts every command file **recursively** (the linked directory holds 61 at its top level), and **Rules 121** counts the **source** rules while the linked projection holds 120 — one rule is dormant and is not projected. **Personas 29** excludes the directory README. Counts are of files and directories: none of them measures quality, activation, or adoption. <!-- claim:published-artifact-counts --></sub>
9
+ <sub>**How these are counted** — one canonical counter, `agent-config` → `update_counts --check`, re-derives all six from the tree and fails CI on a drift of one. Two bases are not what the linked directory shows, so they are stated here rather than left to be inferred: **Commands 205** counts every command file **recursively** (the linked directory holds 60 at its top level), and **Rules 121** counts the **source** rules while the linked projection holds 120 — one rule is dormant and is not projected. **Personas 29** excludes the directory README. Counts are of files and directories: none of them measures quality, activation, or adoption. <!-- claim:published-artifact-counts --></sub>
10
10
 
11
11
  **Try it in 30 seconds** — drop one read-only subagent into any repo and watch it gate "done": `@production-validator check this branch is actually done`. No wizard, no lock-in, nothing else installed — the [30-second wedge ↓](#quickstart) is the whole first step. Start at the proof, not the catalog: **[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)**.
12
12
 
@@ -20,6 +20,18 @@
20
20
 
21
21
  ## Try it in 30 seconds
22
22
 
23
+ ```bash
24
+ # 1. Install — on a terminal with a display, the browser wizard launches
25
+ # automatically; the same TypeScript installer runs the real install behind it.
26
+ npx -y @event4u/agent-config init
27
+
28
+ # 2. Pick your profile + tools in the wizard, click Finish.
29
+ # (Writes ~/.event4u/agent-config/, ~/.claude/, ~/.cursor/, …)
30
+
31
+ # 3. First real task — agent refines, plans, verifies.
32
+ /work "your first real task"
33
+ ```
34
+
23
35
  **Try one thing in 30 seconds** — before the full suite, drop in a single
24
36
  self-contained subagent and see the discipline on your own repo:
25
37
 
@@ -165,17 +177,7 @@ How *long* it takes is not: that is dominated by network and registry latency.
165
177
  CI measures the install → `doctor` wall-clock on every umbrella run and
166
178
  publishes it with its conditions, as evidence rather than as a promise.
167
179
 
168
- ```bash
169
- # 1. Install — on a terminal with a display, the browser wizard launches
170
- # automatically; the same TypeScript installer runs the real install behind it.
171
- npx -y @event4u/agent-config init
172
-
173
- # 2. Pick your profile + tools in the wizard, click Finish.
174
- # (Writes ~/.event4u/agent-config/, ~/.claude/, ~/.cursor/, …)
175
-
176
- # 3. First real task — agent refines, plans, verifies.
177
- /work "your first real task"
178
- ```
180
+ **The one command is [above ↑](#try-it-in-30-seconds).**
179
181
 
180
182
  **Headless / CI:** `init` skips the GUI on CI, a non-TTY, a headless host, or any CLI-mode flag, and runs the non-interactive installer instead. The GUI and the CLI share one installer (`src/scripts/install.ts`), so both produce identical results. Flags, the full opt-out set and `--dry-run`: [`docs/wizard.md`](docs/wizard.md) · [`gui-wizard` § When the GUI is skipped](docs/contracts/gui-wizard.md#when-the-gui-is-skipped).
181
183
 
@@ -29,9 +29,14 @@
29
29
  # `api` rung. A vendor CLI under your subscription is preferred whenever one
30
30
  # resolves, so the common case costs nothing per token — run
31
31
  # `agent-config council status` to see the resolved transport and billing class
32
- # per member before invoking. The autonomy directive does NOT silently spend
33
- # tokens — the /council command always asks before invoking, even under
34
- # autonomy: on.
32
+ # per member before invoking.
33
+ #
34
+ # This block used to end "the /council command always asks before invoking,
35
+ # even under autonomy: on". That was already untrue when ADR-230 replaced the
36
+ # unconditional ask with a three-case bound, and ADR-279 has since removed the
37
+ # last case that asked. The command does not ask; it shows the estimate as
38
+ # information. What bounds a billable run is a ceiling you set below — and
39
+ # with nothing set, nothing bounds it.
35
40
 
36
41
  # Master switch (true, false). REQUIRED — the loader has no default for it,
37
42
  # so this file's value is the only value.
@@ -138,11 +143,21 @@ defaults:
138
143
  # Prices come from agents/.agent-prices.md (gitignored, refreshed weekly
139
144
  # by `python3 scripts/update_prices.py`; bootstrapped from
140
145
  # scripts/ai_council/_default_prices.py on first run).
146
+ #
147
+ # These ship at 0 — no ceiling on tokens or money unless you set one
148
+ # (ADR-279). `max_calls` is NOT a ceiling on money: it bounds fan-out per
149
+ # invocation, so it keeps its value. To get a bound back, replace a 0 with the
150
+ # figure you want; the units are TOKENS for the first two and US DOLLARS for
151
+ # `max_total_usd`.
152
+ #
153
+ # If you copied this file before 2026-10-06 it carries 500000 / 200000 / 20.0
154
+ # explicitly. Those are YOUR figures now and nothing rewrites them — delete the
155
+ # lines to become unbounded, or keep them to stay bounded.
141
156
  cost_budget:
142
- max_input_tokens: 500000
143
- max_output_tokens: 200000
157
+ max_input_tokens: 0
158
+ max_output_tokens: 0
144
159
  max_calls: 50
145
- max_total_usd: 20.0
160
+ max_total_usd: 0.0
146
161
 
147
162
  # Phase 8 — Debate cost-visibility + hard refusal cap.
148
163
  #
@@ -150,7 +165,10 @@ cost_budget:
150
165
  # high-end estimate (expected × 1.20 over-run buffer) exceeds the cap,
151
166
  # `/council debate` refuses to start — the user must lower `--rounds`,
152
167
  # drop members, or raise the cap explicitly. No --proceed-anyway override.
153
- # Set to 0 to disable the cap (not recommended).
168
+ #
169
+ # It ships at 0 — disabled, per ADR-279. Set a USD figure to get the refusal
170
+ # back. The between-round confirmation below is a separate control and is NOT
171
+ # a money ceiling: it stays on whatever this is set to.
154
172
  #
155
173
  # `cost_disclosure.mode` ∈ {"always", "above_threshold", "off"}:
156
174
  # always — emit the disclosure block before every debate.
@@ -165,7 +183,7 @@ cost_budget:
165
183
  # mode: above_threshold
166
184
  # threshold_usd: 0.50
167
185
  debate:
168
- max_cost_usd: 5.00
186
+ max_cost_usd: 0.00
169
187
  cost_disclosure:
170
188
  mode: always
171
189
  threshold_usd: 1.00
@@ -672,13 +672,16 @@ attempt. At the third, write the row with what was observed and move on.
672
672
 
673
673
  This cap is **this phase's own**, and the divergence from
674
674
  [`autonomous-execution`](../../../../rules/autonomous-execution.md)
675
- § Validation-loop budget is deliberate rather than an oversight: that rule's N=3
676
- governs a *validation target* it defines as "a single identifiable artefact (file
677
- path, lint rule ID, test name)", explicitly excluding natural-language clusters —
678
- and a verbatim step out of a prose file is exactly such a cluster. Its remedy is
679
- also different (STOP and ask the user). Borrowing the number while failing the
680
- definition, and then citing the rule as authority, would weaken the rule it
681
- claims to obey. So: same number, stated here, for a reason stated here.
675
+ § Validation-loop budget is deliberate rather than an oversight: that rule's
676
+ `execution.fix_loop_max` budget (default 10, with a strategy-shift ladder)
677
+ governs a *validation target* it defines as "a single identifiable artefact
678
+ (file path, lint rule ID, test name)", explicitly excluding natural-language
679
+ clusters — and a verbatim step out of a prose file is exactly such a cluster.
680
+ This phase's own remedy is also different: STOP and ask the user, where the
681
+ rule's remedy at the same count is a mandatory strategy shift, never a stop.
682
+ Borrowing the number while failing the definition, and then citing the rule
683
+ as authority, would weaken the rule it claims to obey. So: same number,
684
+ stated here, for a reason stated here.
682
685
 
683
686
  One row per selected step:
684
687
 
@@ -1189,7 +1192,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
1189
1192
  `lint_roadmap_producers`: a producer that does not end here reds CI.
1190
1193
 
1191
1194
  Read `planning.closure_pass` (missing = `true`). When active, run
1192
- [`/challenge-me closure`](../../../meta/challenge-me/closure/command.md) on the
1195
+ `/challenge-me closure` on the
1193
1196
  roadmap this command just produced, before handing back:
1194
1197
 
1195
1198
  ```bash
@@ -140,7 +140,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
140
140
  `lint_roadmap_producers`: a producer that does not end here reds CI.
141
141
 
142
142
  Read `planning.closure_pass` (missing = `true`). When active, run
143
- [`/challenge-me closure`](../../../meta/challenge-me/closure/command.md) on the
143
+ `/challenge-me closure` on the
144
144
  roadmap this command just produced, before handing back:
145
145
 
146
146
  ```bash
@@ -5,14 +5,13 @@ pack: engineering-base
5
5
  visibility: internal
6
6
  sub: fix
7
7
  cluster: bug
8
- skills: [bug-analyzer, pest-testing]
8
+ skills: [bug-analyzer, test-case-discovery]
9
9
  description: Plan and implement a bug fix — based on investigation, with quality checks and test verification
10
10
  argument-hint: "[bug-description]"
11
11
  council_depth: deep
12
12
  suggestion:
13
13
  eligible: false
14
14
  rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
15
- framework: laravel
16
15
  workspaces:
17
16
  - agent-config-maintainer
18
17
  packs:
@@ -104,6 +103,22 @@ Show results and fix any issues.
104
103
 
105
104
  ### 5. Tests
106
105
 
106
+ Resolve the test framework via the
107
+ [`toolchain-resolver`](../../contexts/execution/toolchain-resolver.md) before
108
+ writing anything — write the regression test in the framework the project
109
+ actually uses, never a hard-coded one.
110
+
111
+ **The resolver is the only stack authority, and `skills:` deliberately names
112
+ no single-stack skill.** This command's 195 lines of body mention no framework
113
+ at all, so the `pest-testing` binding and the `framework: laravel` marker it
114
+ used to carry made a Python or Go repository load PHP testing guidance for a
115
+ command that never asks for it. The load is **resolver-conditional**: once the
116
+ runner is named, load the skill for THAT runner if one exists —
117
+ `pest-testing` for pest, `laravel` for `php artisan test`,
118
+ `playwright-testing` for playwright. Unconditional became conditional; it did
119
+ not become nothing. Same contract as `/tests create` and `/tests execute`,
120
+ which were de-bound first.
121
+
107
122
  Check for existing tests that cover the affected code:
108
123
 
109
124
  ```
@@ -26,7 +26,7 @@ packs:
26
26
 
27
27
  Run `git branch --show-current` and extract ticket IDs:
28
28
 
29
- - Match pattern: `[A-Z]+-[0-9]+` (e.g., `DEV-1234`, `PROJ-567`)
29
+ - Read it with `agent-config git:convention ticket` ([`commit-subject`](../../../../skills/git-workflow/references/commit-subject.md) § Reading the ticket; e.g. `DEV-1234`, `PROJ-567`)
30
30
  - Common branch formats: `fix/DEV-1234/description`, `hotfix/DEV-999`, `fix/bug-description`
31
31
 
32
32
  If a ticket ID is found:
@@ -43,10 +43,16 @@ If there are no uncommitted changes (staged or unstaged), report
43
43
 
44
44
  ### 2. Determine the ticket number
45
45
 
46
- - Extract the ticket ID from the current branch name (e.g. `feat/DEV-1234/...`
47
- → `DEV-1234`).
48
- - If no ticket ID is found, omit the scope from the messages — write
49
- `chore: ...` not `chore(): ...`. Do **not** ask the user for one.
46
+ - Read the ticket exactly as [`/commit`](../commit.md) step 2 does
47
+ (`agent-config git:convention ticket`, with the card's `ticket_keys` line as
48
+ `--keys`) and place it per the convention in force —
49
+ [`commit-subject`](../../../../skills/git-workflow/references/commit-subject.md),
50
+ including its area-scope clause. A candidate marked `unknown-key` is omitted,
51
+ never asked about.
52
+ - If no ticket ID is found, omit it — write `chore: ...` not `chore(): ...`.
53
+ Do **not** ask the user for one.
54
+ Under an approved convention card this is never a stop: the family's form
55
+ without the ticket part is valid (`commit-subject` § Placing the ticket).
50
56
 
51
57
  ### 3. Analyze and split
52
58
 
@@ -69,6 +75,12 @@ Splitting rules:
69
75
 
70
76
  Generate commit messages per [`commit-conventions`](../../rules/commit-conventions.md).
71
77
 
78
+ **No convention established — never ask.** When `agent-config git:convention
79
+ show --key commit_format` prints `no convention established`, run
80
+ `agent-config git:convention measure`, carry its `verdict` line into the summary,
81
+ and generate under the convention in force (the default). Asking and writing the
82
+ card belong to the interactive [`/commit`](../commit.md) step 3c only.
83
+
72
84
  ### 3b. Secret-leak pre-flight — MANDATORY, not autonomy-lifted
73
85
 
74
86
  Run `./scripts-run src/scripts/check_secret_leak`. A high-confidence hit is a
@@ -79,14 +91,22 @@ strip one.
79
91
 
80
92
  ### 4. Validate, then commit immediately
81
93
 
82
- Before staging anything, run the same `preview-on-error` validator as
83
- [`/commit`](../commit.md) step 5. Each generated message must match
84
- `^(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+`.
94
+ Before staging anything, pipe every generated subject through
95
+ `agent-config git:convention subject`, as [`/commit`](../commit.md) step 5 does.
96
+
97
+ - **Exit `0`** → proceed silently; a `note:` line naming a `commit-msg` hook
98
+ or a commitlint config is not a stop — that validator runs at commit, and a
99
+ rejection there stops the run like any failed commit.
100
+ - **Exit `1`** → stop, print the verb's output (each failed subject and its
101
+ rule, or the format it could not read), hand back to the user.
102
+ Do **not** auto-commit broken messages even though confirmation is
103
+ otherwise suppressed.
85
104
 
86
- - **All valid** → proceed silently.
87
- - **Any invalid** → stop, print the failed message(s) + the regex,
88
- hand back to the user. Do **not** auto-commit broken messages even
89
- though confirmation is otherwise suppressed.
105
+ An approved convention card an earlier [`/commit`](../commit.md) wrote and left
106
+ uncommitted (`agents/memory/curated/conventions/approved/commit-subject.md`,
107
+ unstaged or untracked) rides in the first chunk: add it with that chunk's files
108
+ (`git add -- agents/memory/curated/conventions/approved/commit-subject.md`), so
109
+ every worktree and clone reads the convention it was approved under.
90
110
 
91
111
  For each planned commit in order:
92
112
 
@@ -98,29 +118,18 @@ git commit -m "{message}"
98
118
  No "looks good?" prompt. No confirmation step. The user invoked this
99
119
  command knowing the plan would be executed.
100
120
 
101
- ### 5. Report (verbosity-gated)
102
-
103
- Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
104
- `minimal`). Same contract as [`/commit`](../commit.md) step 7.
105
-
106
- - `off` → emit nothing (still run `git log --oneline -N` silently for
107
- the agent's own verification).
108
- - `minimal` (default) → one line:
121
+ ### 5. Report
109
122
 
110
- ```
111
- → N commits created
112
- ```
123
+ Same contract as [`/commit`](../commit.md) step 7 — one line (run
124
+ `git log --oneline -N` silently for the agent's own verification):
113
125
 
114
- - `full` → full summary:
115
-
116
- ```
117
- Created N commits:
118
- 1. {sha1} feat(DEV-1234): {summary}
119
- 2. {sha2} test(DEV-1234): {summary}
120
- 3. {sha3} chore: {summary}
121
- ```
126
+ ```
127
+ → N commits created
128
+ ```
122
129
 
123
- Include `git log --oneline -N` output for verification.
130
+ A run that measured because no convention was
131
+ established adds the verb's `verdict` line and `→ run /commit once to choose and
132
+ record the convention`.
124
133
 
125
134
  ## Rules
126
135
 
@@ -57,7 +57,13 @@ If there are no uncommitted changes (staged or unstaged), report "Nothing to com
57
57
 
58
58
  ### 2. Determine the ticket number
59
59
 
60
- - Extract the ticket ID from the current branch name (e.g. `feat/DEV-1234/...` → `DEV-1234`).
60
+ - Read the ticket from the current branch name:
61
+ `agent-config git:convention ticket --keys "<the ticket_keys line of the approved convention card>"`
62
+ (no card → no `--keys`). The first line is `ticket <ID>` or `ticket none`
63
+ (`feat/DEV-1234/...`, `fix/DEV-1234-quantity` → `DEV-1234`; `fix/CVE-2026-12345-patch` → none).
64
+ A candidate marked `unknown-key` → ask the user whether it is a ticket; a yes
65
+ adds its key to the card's `ticket_keys`. A `proposal` line → offer it for the
66
+ card, never write it unasked.
61
67
  - If no ticket ID is found in the branch name, ask the user:
62
68
  ```
63
69
  > No Jira ticket found in branch name. Do you want to include one?
@@ -65,8 +71,9 @@ If there are no uncommitted changes (staged or unstaged), report "Nothing to com
65
71
  > 1. Yes — I'll provide the ticket number
66
72
  > 2. No — skip ticket number
67
73
  ```
68
- - If the user provides a ticket number, use it as the scope in all commit messages.
69
- - If skipped, omit the scope entirely — write `chore: ...` not `chore(): ...`.
74
+ - Place the ticket (given or read) in every message per the convention in force —
75
+ [`commit-subject`](../../../skills/git-workflow/references/commit-subject.md) § Placing the ticket;
76
+ skipped → omit it, never `chore(): …`.
70
77
 
71
78
  ### 3. Analyze the changes
72
79
 
@@ -95,6 +102,43 @@ once the user resolves it (move to a store, or add an audited
95
102
  `# secret-allow` / `.secret-allow` entry for a confirmed false positive). Never
96
103
  silently commit a secret; never silently strip one.
97
104
 
105
+ ### 3c. Establish the convention — once per repository
106
+
107
+ Before any subject is generated, run
108
+ `agent-config git:convention show --key commit_format`. It prints
109
+ `no convention established — run git:convention measure` only when there is
110
+ no declaration, no approved card and no commitlint config; otherwise skip this step.
111
+
112
+ 1. Run `agent-config git:convention measure`. Its `verdict` line is the input to
113
+ the one question below; the thresholds behind it are the `measure` rows of
114
+ [`commit-subject`](../../../skills/git-workflow/references/commit-subject.md) § The grammar.
115
+ 2. Ask **once**, as numbered options, naming the family, its share, the capped
116
+ total and the author count from the verb's output:
117
+ - `verdict established: <family>` → the established family (recommended) vs
118
+ Conventional Commits;
119
+ - `verdict below the bar` → the two strongest families (each with its share)
120
+ vs Conventional Commits, quoting the verb's reasons.
121
+ 3. Run `agent-config git:convention measure --family <answer>` (Conventional
122
+ Commits is `--family conventional`) and write its `card` block to
123
+ `agents/memory/curated/conventions/approved/commit-subject.md` — **also when
124
+ the answer is Conventional Commits**, so this question is never asked again in
125
+ this repository. The card is the one file this command writes. Stage it
126
+ explicitly with `git add -- agents/memory/curated/conventions/approved/commit-subject.md`
127
+ and commit it in the first commit of this run — the commit it was approved
128
+ for — so a worktree or a fresh clone reads the same answer instead of asking
129
+ again; name it in the report.
130
+ 4. When the same output carries a `team file` block, show it: it is the
131
+ ready-to-commit `.git-convention.yml` (`commit_format`, `branch_pattern`,
132
+ never `update_strategy`). Ask once whether to create it. Only on the user's
133
+ explicit yes this turn run `agent-config git:convention init --yes` with the
134
+ shown values (`--commit-format`, `--branch-pattern`); it creates the file once,
135
+ refuses when one exists and never commits it — name it in the report. On no,
136
+ print the content for a human to create and commit. Never write the file by
137
+ hand, and never change an existing one.
138
+
139
+ Then generate every subject under the answer: `git:convention subject` reads the
140
+ card the moment it exists.
141
+
98
142
  ### 4. Plan the commits
99
143
 
100
144
  For each logical group, determine the commit message following the commit conventions rule
@@ -107,40 +151,42 @@ Rules for splitting:
107
151
  - **Style-only changes** (formatter / auto-refactor output — ECS, Prettier, Ruff) may get their own `style:` or `chore:` commit
108
152
  if they are large and mixed with logic changes.
109
153
 
110
- ### 5. Present the commit plan (verbosity-gated)
111
-
112
- Read `verbosity.preview_artifacts` and `verbosity.routine_confirmations`
113
- from `.agent-settings.yml`. Both default to `false`.
154
+ ### 5. Present the commit plan
114
155
 
115
- **Terse path** — `preview_artifacts: false` AND `routine_confirmations: false`:
156
+ **Terse path** — the default; there is no setting that turns it off:
116
157
 
117
- 1. Validate every generated commit message against the
118
- conventional-commits regex
119
- `^(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+`.
158
+ 1. Pipe every generated subject, one per line, through
159
+ `agent-config git:convention subject` — it resolves the convention in force
160
+ and validates against it. Act on the exit code: `0` valid · `1` the output
161
+ lists each failure and its rule → treat as invalid. A `note:` line naming a
162
+ `commit-msg` hook or a commitlint config means that validator also runs at
163
+ commit and may be stricter; it never changes the exit.
120
164
  2. **All messages valid** → skip the preview block and the confirmation
121
165
  prompt. Print one line summarising the plan and proceed to step 6:
122
166
 
123
167
  ```
124
- → 3 commits planned: feat, test, chore (scope: DEV-1234)
168
+ → 3 commits planned: feat, test, chore (ticket: DEV-1234)
125
169
  ```
126
170
 
127
171
  3. **Any message invalid** → `preview-on-error` safety net fires:
128
- force the full preview block below + the numbered confirm prompt,
129
- regardless of the two flags. The user must approve before step 6.
172
+ force the full preview block below + the numbered confirm prompt.
173
+ The user must approve before step 6.
130
174
  4. **Hard-Floor diff** (bulk deletion ≥5 unrelated files, infra changes
131
175
  touching Terraform / Pulumi / k8s / Ansible / cloud-config) →
132
- ALWAYS preview + confirm regardless of flags, per
176
+ ALWAYS preview + confirm, per
133
177
  [`non-destructive-by-default`](../rules/non-destructive-by-default.md).
134
178
 
135
- **Preview path** — `preview_artifacts: true` OR `routine_confirmations: true`
136
- (or `preview-on-error` triggered):
179
+ **Preview path** — `preview-on-error` or a Hard-Floor diff triggered it, or the
180
+ user asked for the preview (override below):
137
181
 
138
182
  Show the proposed commits as a numbered list, including which files go into each:
139
183
 
140
184
  ```
141
185
  Proposed commits:
142
186
 
143
- (Laravel-project example)
187
+ (Laravel-project example, `git.commit_format: ticket-scope`; under
188
+ `ticket-conventional` the first subject reads
189
+ `DEV-1234 feat(working-time): add absence type filter to working time report`)
144
190
  1. feat(DEV-1234): add absence type filter to working time report
145
191
  → app/Services/WorkingTimeService.php
146
192
  → app/Http/Controllers/WorkingTimeController.php
@@ -163,8 +209,8 @@ Then ask:
163
209
  Wait for the user's response before doing anything.
164
210
 
165
211
  **Override:** the user may force the preview at any time with
166
- *"show me the commit plan first"* / *"preview commits"* — treat as a
167
- one-shot `preview_artifacts: true` for this invocation.
212
+ *"show me the commit plan first"* / *"preview commits"* — take the preview
213
+ path for this invocation.
168
214
 
169
215
  ### 6. Commit
170
216
 
@@ -175,26 +221,19 @@ For each planned commit in order:
175
221
  1. Stage only the files for that commit: `git add {files...}`
176
222
  2. Commit: `git commit -m "{message}"`
177
223
 
178
- ### 7. Report (verbosity-gated)
179
-
180
- Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
181
- `minimal`).
182
-
183
- - `off` → emit nothing.
184
- - `minimal` (default) → one line:
224
+ ### 7. Report
185
225
 
186
- ```
187
- → 3 commits created
188
- ```
226
+ One line:
189
227
 
190
- - `full` → multi-line summary: number of commits + commit messages
191
- (one per line).
228
+ ```
229
+ → 3 commits created
230
+ ```
192
231
 
193
232
  ## Rules
194
233
 
195
234
  - **Preview path: never commit before the user confirms the plan — once, for the whole plan.** On the terse path (`preview_artifacts: false` AND `routine_confirmations: false`) the `/commit` invocation itself is the confirmation (`commit-policy` exception 3); proceed without a prompt.
196
235
  - **Never push** — pushing is left to the user.
197
- - **Never modify files** — only stage and commit existing changes.
236
+ - **Never modify files** — only stage and commit existing changes. The one exception is the convention card step 3c writes after the user's answer, committed with the first commit of the run.
198
237
  - **Do NOT add untracked files** unless they are clearly part of the change (check with `git status`).
199
238
  - **Follow commit conventions** as defined in `.augment/rules/commit-conventions.md`.
200
239
 
@@ -89,15 +89,9 @@ Must show ✅ (`dist/agent-src/` in sync with source).
89
89
  Must show **zero 🔴 errors**. Warnings (🟡) are acceptable.
90
90
  If any 🔴 errors remain: go back and fix those files before finishing.
91
91
 
92
- ## Step 5: Summary (verbosity-gated)
92
+ ## Step 5: Summary
93
93
 
94
- Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
95
- `minimal`).
96
-
97
- - `off` → emit nothing on success; surface errors only.
98
- - `minimal` (default) → one line: `→ N files synced`.
99
- - `full` → multi-line table with per-category stats (files synced,
100
- stale files reaped).
94
+ One line on success: `→ N files synced`. Errors are always surfaced.
101
95
 
102
96
  ## Iron Laws — preserved by construction
103
97
 
@@ -67,20 +67,24 @@ this automatically when invoked via `debate`). The estimate covers
67
67
  projection. Surface the projection to the user with a clear note that
68
68
  progressive disclosure may stop the debate early.
69
69
 
70
- ### 4. Spend bound (ask when a billable member has no ceiling)
70
+ ### 4. Spend projection (information, never a prompt)
71
71
 
72
- Per [`ai-council` skill § Procedure 3](../../skills/ai-council/SKILL.md)
73
- and ADR-230, surface the projected total spend in every case, and ask
74
- only when a billable member is in the fan-out AND both
75
- `cost_budget.max_total_usd` and `daily_limit_usd` are `0`.
72
+ Per [`ai-council` skill § Procedure 3](../../skills/ai-council/SKILL.md),
73
+ ADR-230 and ADR-279, surface the projected total spend in every case and
74
+ **do not ask** because no cap is set. A cap nobody configured is not a
75
+ bound, and its absence is not a reason to ask.
76
76
 
77
77
  A debate multiplies the per-round cost by `N`, so quote the worst case,
78
78
  not one round — that is what a ceiling has to cover. The between-rounds
79
79
  confirmation gate is unaffected: it is a separate, per-round control and
80
80
  it still fires, which is where a debate that turns out expensive gets
81
- stopped.
81
+ stopped. `debate.max_cost_usd` likewise still refuses above whatever
82
+ figure someone set; it ships at `0`, i.e. no refusal cap.
82
83
 
83
- Numbered options, when the ask applies:
84
+ The round shape is still the user's choice, and it is not a spend
85
+ question — it decides whether the between-round confirmation fires,
86
+ which this change does not touch. Offer it regardless of whether a cap
87
+ is set:
84
88
 
85
89
  > The debate is projected to cost **$X.XXXX** ($Y.YYYY × N rounds, worst case).
86
90
  >
@@ -151,22 +151,23 @@ Construct each member from the resolved mode:
151
151
  - `manual` → `ManualClient` from `scripts.ai_council.clients`
152
152
  (`billable=False`, no API key, no SDK call).
153
153
 
154
- ### 3. Spend bound — ASK when a billable member has no ceiling
154
+ ### 3. Spend estimate — information, never a prompt
155
155
 
156
- Council calls to billable members spend money, so a bound is mandatory.
157
- Per ADR-230 the bound is a **ceiling**, not a per-invocation approval —
158
- the same three cases the `ai-council` skill resolves in its Procedure § 3:
156
+ Per ADR-230 the bound is a **ceiling**, not a per-invocation approval,
157
+ and per ADR-279 a ceiling applies only where someone set one. The three
158
+ cases the `ai-council` skill resolves in its Procedure § 3 now agree on
159
+ the ask and differ only in what a cap does once it exists:
159
160
 
160
161
  | Situation | Behaviour |
161
162
  |---|---|
162
163
  | No billable member (all `mode: cli`, subscription auth) | No gate. Estimate is information; go to Step 4. Spend is $0. |
163
164
  | Billable member **with** `cost_budget.max_total_usd` or `daily_limit_usd` non-zero | No per-run ask. The ceiling is the authorization the user already gave; `on_overrun` still pauses per member on breach. |
164
- | Billable member with **both** caps `0` | **Ask.** Nothing bounds the spend, so the user must. |
165
+ | Billable member with **both** caps `0` — the shipped default | No ask. Render the estimate and go to Step 4; no cap exists, so nothing can breach. |
165
166
 
166
- `personal.autonomy` neither creates nor lifts that bound — autonomy is
167
- not a ceiling. Consumers who want a per-invocation gate set a small
168
- `cost_budget.max_total_usd`; every call then breaches and `on_overrun`
169
- asks per member.
167
+ `personal.autonomy` neither creates nor lifts a bound — autonomy is
168
+ not a ceiling, and neither is its absence. Consumers who want a
169
+ per-invocation gate set a small `cost_budget.max_total_usd`; every call
170
+ then breaches and `on_overrun` asks per member.
170
171
 
171
172
  Run the CLI in **estimate** mode first — it bundles the artefact, runs
172
173
  redaction, and prints the per-member preview without spending:
@@ -34,7 +34,7 @@ sub-command swaps the mode-specific addendum.
34
34
 
35
35
  1. Resolve the target + capture the original ask.
36
36
  2. Check the council is configured + price table fresh.
37
- 3. Spend bound (ask only when a billable member has no ceiling — ADR-230).
37
+ 3. Spend estimate — rendered as information, never a prompt (ADR-230, ADR-279).
38
38
  4. Run the CLI.
39
39
  5. Render the report (5 / 5a / 5b — render → critical lens → user options).
40
40
  6. Hard floor — text only.
@@ -28,7 +28,7 @@ packs:
28
28
  Accept the same four input paths as [`/refine-ticket`](refine-ticket.md):
29
29
 
30
30
  1. **Explicit key** — `/estimate-ticket PROJ-123`
31
- 2. **Branch detection** — no arg → `git branch --show-current` + regex `[A-Z]+-[0-9]+`
31
+ 2. **Branch detection** — no arg → `agent-config git:convention ticket` on the current branch ([`commit-subject`](../../../skills/git-workflow/references/commit-subject.md) § Reading the ticket)
32
32
  3. **Pasted text** — markdown block under the command
33
33
  4. **URL** — `/estimate-ticket https://…/browse/PROJ-123`
34
34
 
@@ -38,8 +38,8 @@ Before entering brainstorm mode, check whether the input looks like an
38
38
  **existing ticket** rather than a fresh idea. If any of the following
39
39
  match, surface the hint below and let the user pick:
40
40
 
41
- - A Jira/Linear URL is present (`https://.../browse/[A-Z]+-[0-9]+`)
42
- - The current branch name contains a ticket key (`[A-Z]+-[0-9]+`)
41
+ - A Jira/Linear URL is present (`https://.../browse/<ticket key>`)
42
+ - The current branch name contains a ticket key (`agent-config git:convention ticket` prints one)
43
43
  - The pasted text contains structured AC bullets (`- [ ]`, "Acceptance Criteria", "AC:")
44
44
 
45
45
  Prompt:
@@ -56,7 +56,7 @@ continue with Step 2.
56
56
  ### 2. Gather external context
57
57
 
58
58
  **Auto-detect ticket from branch:**
59
- Run `git branch --show-current` and extract ticket IDs (pattern: `[A-Z]+-[0-9]+`).
59
+ Read the ticket ID from the current branch with `agent-config git:convention ticket` ([`commit-subject`](../../../../skills/git-workflow/references/commit-subject.md) § Reading the ticket).
60
60
 
61
61
  If a ticket ID is found:
62
62
  ```
@@ -53,7 +53,7 @@ Then, once that is answered:
53
53
  ### 2. Gather external context
54
54
 
55
55
  **Auto-detect ticket from branch:**
56
- Run `git branch --show-current` and extract ticket IDs (pattern: `[A-Z]+-[0-9]+`).
56
+ Read the ticket ID from the current branch with `agent-config git:convention ticket` ([`commit-subject`](../../../../skills/git-workflow/references/commit-subject.md) § Reading the ticket).
57
57
 
58
58
  If a ticket ID is found:
59
59
  ```
@@ -402,7 +402,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
402
402
  `lint_roadmap_producers`: a producer that does not end here reds CI.
403
403
 
404
404
  Read `planning.closure_pass` (missing = `true`). When active, run
405
- [`/challenge-me closure`](../../../meta/challenge-me/closure/command.md) on the
405
+ `/challenge-me closure` on the
406
406
  roadmap this command just produced, before handing back:
407
407
 
408
408
  ```bash