@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
@@ -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.
@@ -32,7 +32,7 @@ adds a router rather than a 295th entry to it.
32
32
  | Verb | Routes to | What it does |
33
33
  |---|---|---|
34
34
  | `audit` | `agent-config ui:audit` | Inventory the tree into `agents/runtime/state/ui-audit.json`. Class A. |
35
- | `render` | `agent-config ui:render` | Capture desktop / 375 / 320 into `agents/runtime/state/render/`. Class A. |
35
+ | `render` | `agent-config ui:render` | Capture desktop / 375 / 320 into `agents/runtime/state/render/`; `--profile asset` renders one SVG per asset class on a light and a dark background instead. Class A. |
36
36
  | `review` | [`design-review`](../../../skills/design-review/SKILL.md) | Two-pass review โ€” judgement before detector, or the `DEGRADED: single-context` banner. |
37
37
  | `polish` | [`fe-design`](../../../skills/fe-design/SKILL.md) | Spacing, rhythm, alignment. |
38
38
  | `quieter` | `fe-design` | Spacing, weight, contrast within the palette. |
@@ -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
  ```
@@ -96,8 +96,21 @@ branch** โ€” that is what makes the deliverable remote. Then:
96
96
  1. Commit the fix (chunked, the agent picks the split per
97
97
  [`commit-policy`](../../../rules/commit-policy.md) โ€” never ask how).
98
98
  2. Update the branch against its PR base first:
99
- `./scripts-run src/scripts/sync_pr_branch`, then regenerate any derived files
100
- the merge touched (`task sync && task generate-tools`). A PR left behind its
99
+ `agent-config git:convention sync --base origin/<base>`, `<base>` being the
100
+ `baseRefName` of the branch's `OPEN` pull request (`gh pr view --json
101
+ state,baseRefName`; a closed or merged one does not count) โ€” otherwise, and
102
+ without `--base`, the target is the default branch, wrong for any other base โ€” then regenerate any derived files
103
+ the merge touched (`task sync && task generate-tools`). Under
104
+ `git.update_strategy: rebase` the script refuses a behind branch (exit 3); rebase on the user's request
105
+ instead ([`branch-update`](../../../../skills/git-workflow/references/branch-update.md)),
106
+ never merge the base in. An exit 3 whose line reads `TARGET_POLICY_STALE`
107
+ is not this branch's update: the branch is current with the pull request's
108
+ non-default target, and that target is itself behind the default branch its
109
+ convergence policy requires, so a rebase cannot clear it โ€” report it as the target's update and leave the branch. On exit 4 the strategy could not be read โ€” a
110
+ settings file that does not parse, a value outside the schema, or a value
111
+ only a user-global file sets; the line names the reason code and the file.
112
+ Nothing was merged: stop, report that line, and do not push until the file
113
+ is fixed. A PR left behind its
101
114
  base accumulates conflicts for the moment someone wants to merge it, and a
102
115
  push against a moved base is rejected โ€” both cost a round trip that this one
103
116
  call prevents.
@@ -107,7 +120,8 @@ branch** โ€” that is what makes the deliverable remote. Then:
107
120
  settle the check set on the new head. Report the *remote* verdict, never the
108
121
  local one.
109
122
 
110
- Bounded by N=3 per failing target ([`autonomous-execution`](../../../rules/autonomous-execution.md)).
123
+ Bounded by the `execution.fix_loop_max` budget (default 10) and its ladder,
124
+ per failing target ([`autonomous-execution`](../../../rules/autonomous-execution.md)).
111
125
 
112
126
  ### Rules
113
127
 
@@ -62,8 +62,15 @@ Stop and report โ€” do not proceed to step 2 โ€” when any holds:
62
62
  Run `## Procedure: Establish the house convention` from
63
63
  [`conventional-commits-writing`](../../../skills/conventional-commits-writing/SKILL.md)
64
64
  verbatim: tier-1 sources first (opened and read, never taken from a grep hit),
65
- then the capped-weighted consensus pass with bots, merges, reverts and release
66
- automation excluded.
65
+ then the capped-weighted consensus pass โ€” `agent-config git:convention measure` โ€” with bots, merges, reverts and release
66
+ automation excluded. When that tier-1 search found no configured source, a
67
+ declared `git.commit_format: ticket-conventional` (the skill's tier 1b; `ticket-scope`
68
+ is the template default and declares nothing) is the target: report it as
69
+ `Declared : git.commit_format: โ€ฆ`, skip step 3's style question, and keep the
70
+ other authorisations. A configured source always outranks it โ€” including step
71
+ 3's tier-1 veto.
72
+
73
+ Ticket reading, placement and precedence: [`commit-subject`](../../../../skills/git-workflow/references/commit-subject.md).
67
74
 
68
75
  Report what it found, in one block, before offering anything:
69
76
 
@@ -190,7 +197,7 @@ Then, in one block, state:
190
197
  for a branch a teammate already has;
191
198
  - whether the range crosses the **default branch** โ€” rewriting merged history
192
199
  is a different order of disruption and gets its own sentence;
193
- - the backup ref you are about to write.
200
+ - the recovery ref you are about to write.
194
201
 
195
202
  **Ask for the rewrite and, when the range is already pushed, the force-push in
196
203
  the same block.** [`git-history-discipline`](../../../rules/git-history-discipline.md)
@@ -207,10 +214,19 @@ Wait. Do not run anything in the turn you ask.
207
214
 
208
215
  ### 7. Rewrite
209
216
 
210
- **7a. Backup, and capture what the verification will compare against.**
217
+ **7a. Pin the published ref, keep the old head, and capture what the
218
+ verification will compare against.** When the range is already pushed, first
219
+ run the `resolve` block of
220
+ [`branch-update.md` ยง The rebase sequence](../../../../skills/git-workflow/references/branch-update.md#the-rebase-sequence)
221
+ to set `REMOTE` and `RB` โ€” never `@{u}`, which is the base for a branch pushed
222
+ without `-u`. An unresolved target means no rewrite.
211
223
 
212
224
  ```bash
213
- git tag "backup/pre-message-fix-$(date +%Y%m%d-%H%M%S)"
225
+ PUBLISHED=$(git ls-remote "$REMOTE" "refs/heads/$RB") \
226
+ || { echo "STOP: could not read $REMOTE/$RB โ€” nothing was rewritten" >&2; exit 1; } # pushed range only
227
+ EXPECTED=$(cut -f1 <<<"$PUBLISHED")
228
+ SAVE="refs/agent-config/rewrites/$(date -u +%Y%m%dT%H%M%SZ)-msgfix/before"
229
+ git update-ref "$SAVE" HEAD
214
230
  git rev-list --count HEAD > /tmp/precount.txt
215
231
  git log ${BASE:+$BASE..}HEAD --pretty=format:'%aN%x09%aE%x09%ad%x09%s' > /tmp/preplan.txt
216
232
  ```
@@ -229,17 +245,21 @@ bracketed form:
229
245
  ```bash
230
246
  git filter-repo --force --refs "${BASE:+$BASE..}HEAD" \
231
247
  --commit-callback '
232
- import re
248
+ import json, re, subprocess
233
249
  ME = {b"me@example.com"} # the step-5 address set, bare, no <>
234
- PAT = re.compile(rb"^\[?([A-Z][A-Z0-9]+-[0-9]+)\]?[: ]\s*(.+)$")
235
250
  if len(commit.parents) > 1:
236
251
  return
237
252
  if commit.author_email not in ME:
238
253
  return
239
254
  subject, sep, body = commit.message.partition(b"\n")
240
- m = PAT.match(subject)
241
- if m:
242
- commit.message = b"[" + m.group(1) + b"] " + m.group(2) + sep + body
255
+ out = subprocess.run(["agent-config", "git:convention", "ticket", subject.decode(), "--json"],
256
+ capture_output=True, text=True, check=True).stdout
257
+ ticket = json.loads(out)["ticket"]
258
+ if ticket is None:
259
+ return
260
+ lead = re.compile(rb"^\[?" + re.escape(ticket.encode()) + rb"\]?[: ]\s*")
261
+ if lead.match(subject):
262
+ commit.message = b"[" + ticket.encode() + b"] " + lead.sub(b"", subject, count=1) + sep + body
243
263
  '
244
264
  ```
245
265
 
@@ -254,10 +274,12 @@ rewriting nothing:
254
274
  cross-wire precisely because they need opposite forms.
255
275
  - **Merges are skipped in the callback too**, or the rewrite touches commits the
256
276
  step-6 table did not list.
257
- - **`PAT` and the replacement are the step-3 pattern**, substituted for real.
258
- A callback that references a helper nothing defines is not a callback that
259
- failed loudly โ€” Python evaluates the name only if control reaches it, so a
260
- wrong author filter hides the missing helper completely.
277
+ - **The ticket comes from `agent-config git:convention ticket`**, never a regex
278
+ literal, so the rewrite reads tickets exactly as `/commit` does โ€” the verb must
279
+ be on `PATH`, and `check=True` makes a missing one fail loudly. A callback that
280
+ references a helper nothing defines is not a callback that failed loudly โ€”
281
+ Python evaluates the name only if control reaches it, so a wrong author filter
282
+ hides the missing helper completely.
261
283
 
262
284
  `--refs` implies partial mode, which is what keeps the `origin` remote that
263
285
  plain `filter-repo` strips as a safety measure; `--partial` is not needed
@@ -286,7 +308,7 @@ not exit that state.
286
308
 
287
309
  ```bash
288
310
  git rev-list --count HEAD # equals /tmp/precount.txt
289
- git diff <backup-tag> HEAD --stat # MUST be empty
311
+ git diff "$SAVE" HEAD --stat # MUST be empty
290
312
  git log ${BASE:+$BASE..}HEAD --pretty=format:'%aN%x09%aE%x09%ad%x09%s' > /tmp/postplan.txt
291
313
  diff /tmp/preplan.txt /tmp/postplan.txt
292
314
  ```
@@ -304,21 +326,24 @@ The authorisation was taken in step 6, together with the rewrite's. Push in this
304
326
  turn:
305
327
 
306
328
  ```bash
307
- git push --force-with-lease origin <branch>
308
- git log --oneline -3 origin/<branch>
329
+ git push --force-with-lease="refs/heads/$RB:$EXPECTED" "$REMOTE" "HEAD:refs/heads/$RB"
330
+ [ "$(git ls-remote "$REMOTE" "refs/heads/$RB" | cut -f1)" = "$(git rev-parse HEAD)" ]
309
331
  ```
310
332
 
311
- `--force-with-lease`, never bare `--force`. Leave the backup tag in place. Tell
312
- the user its name, and that recovery is `git reset --hard <backup-tag>` โ€” plus a
313
- force-push, since the rewrite was already pushed.
333
+ The lease carries the SHA pinned in 7a, never a bare `--force-with-lease`, and
334
+ never `--force`; a rejected lease is a stop โ€” refetch and report. Leave the
335
+ recovery ref in place: it lives outside `refs/tags/`, so `git push --tags`
336
+ cannot publish it. Tell the user its name, that recovery is
337
+ `git reset --keep <ref>` โ€” plus a leased force-push, since the rewrite was
338
+ already pushed โ€” and that `git update-ref -d <ref>` removes it.
314
339
 
315
340
  ### 9. Report
316
341
 
317
342
  - Convention chosen, and how it was established (measured / user-supplied / tier-1).
318
343
  - Range, author scope, commits rewritten vs unchanged.
319
344
  - The `diff /tmp/preplan.txt /tmp/postplan.txt` result and the
320
- `git diff <backup-tag> HEAD --stat` result, both quoted.
321
- - The backup tag and the one-line recovery command.
345
+ `git diff <recovery-ref> HEAD --stat` result, both quoted.
346
+ - The recovery ref and the one-line recovery command.
322
347
  - Whether it was pushed, and to where.
323
348
 
324
349
  ## Do NOT
@@ -329,7 +354,7 @@ force-push, since the rewrite was already pushed.
329
354
  instruction โ€” and never by offering it as a menu option they did not raise.
330
355
  - Do NOT compare `commit.author_email` against a bracketed address, or pass a
331
356
  bare address to `--author`.
332
- - Do NOT treat an empty `git diff <backup> HEAD` as proof the rewrite happened.
357
+ - Do NOT treat an empty `git diff <recovery-ref> HEAD` as proof the rewrite happened.
333
358
  - Do NOT use `git filter-branch`, bare `git push --force`, or `--no-verify`.
334
359
  - Do NOT rewrite into a style the repo's own validator rejects.
335
360
  - Do NOT let a chosen style carry an attribution trailer, a subject emoji, or
@@ -183,13 +183,10 @@ already live.
183
183
  `"The fallback covers legacy data where getTime() returns a string."`
184
184
  - Never start multiple replies with "Fixed". Mix it up: "Done", "Good catch", "Yep", etc.
185
185
 
186
- ### Bot icon prefix
186
+ ### No bot icon prefix
187
187
 
188
- Read `personal.pr_comment_bot_icon` from `.agent-settings.yml`. If `true` (default),
189
- prefix every reply with `๐Ÿค– ` so reviewers can see at a glance that the reply was
190
- bot-authored.
191
-
192
- Example: `๐Ÿค– Good catch, fixed.`
188
+ Never prefix a reply with `๐Ÿค– ` โ€” it is on the universal blacklist of
189
+ [`no-decorative-emojis-in-git-surfaces`](../../../rules/no-decorative-emojis-in-git-surfaces.md).
193
190
 
194
191
  If `false` or `.agent-settings.yml` doesn't exist, do NOT add the prefix.
195
192
 
@@ -29,8 +29,8 @@ packs:
29
29
  Accept one of five input paths:
30
30
 
31
31
  1. **Explicit key** โ€” `/implement-ticket PROJ-123`
32
- 2. **Branch detection** โ€” no arg โ†’ `git branch --show-current` + regex
33
- `[A-Z]+-[0-9]+`
32
+ 2. **Branch detection** โ€” no arg โ†’ `agent-config git:convention ticket` on the
33
+ current branch ([`commit-subject`](../../../skills/git-workflow/references/commit-subject.md) ยง Reading the ticket)
34
34
  3. **Pasted text** โ€” markdown block under the command
35
35
  4. **URL** โ€” `/implement-ticket https://โ€ฆ/browse/PROJ-123`
36
36
  5. **Local ticket bundle** โ€” a path to a bundle ticket file,
@@ -131,7 +131,7 @@ On exit `1`, look at the first line after `[halt] outcome=โ€ฆ step=โ€ฆ`:
131
131
  options verbatim, wait for the user, write their answer back onto the
132
132
  matching state slice, then re-run the engine. Never guess.
133
133
 
134
- A **cross-source discrepancy** discovered while planning or applying โ€” ticket text contradicting an attached mockup, a spec silent on a clearly-needed behavior, or a spec-vs-codebase conflict (per [`cross-source-consistency`](../rules/cross-source-consistency.md), gated by `consistency.cross_source`) โ€” is a blocking user question, not a silent resolution: surface it as the `questions[0]` halt and wait, never expand scope on a plausible inference.
134
+ A **cross-source discrepancy** discovered while planning or applying โ€” ticket text contradicting an attached mockup, a spec silent on a clearly-needed behavior, or a spec-vs-codebase conflict (per [`cross-source-consistency`](../rules/cross-source-consistency.md)) โ€” is a blocking user question, not a silent resolution: surface it as the `questions[0]` halt and wait, never expand scope on a plausible inference.
135
135
 
136
136
  ### 4. Directive mapping
137
137
 
@@ -121,22 +121,10 @@ link resolves. Broken link โ†’ block and ask the user to fix.
121
121
  - Duplicate of an existing entry (step 2) โ€” update instead.
122
122
  - Missing `source:` โ€” an entry without evidence cannot be reviewed.
123
123
 
124
- ## Output format (verbosity-gated)
125
-
126
- Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
127
- `minimal`).
128
-
129
- - `off` โ†’ emit nothing on success; surface gate failures only.
130
- - `minimal` (default) โ†’ one line:
131
- `โœ… Added <type>/<id> (gate: PASS)`.
132
- - `full` โ†’ multi-line block:
133
-
134
- ```
135
- โœ… Added <type>/<id> (confidence: <high|medium|low>)
136
- Path: agents/memory/<type>.yml (or agents/memory/<type>/<hash>.yml)
137
- Gate: scripts/check_memory.ts โ†’ PASS
138
- Next: commit and link from the relevant skill/command.
139
- ```
124
+ ## Output format
125
+
126
+ One line on success: `โœ… Added <type>/<id> (gate: PASS)`. Gate failures are
127
+ always surfaced.
140
128
 
141
129
  ## See also
142
130
 
@@ -134,15 +134,15 @@ After step 4, count unreviewed intake entries for the same type:
134
134
  node -e "const d = []; process.stdin.on('data', c => d.push(c)); process.stdin.on('end', () => console.log(JSON.parse(d.join('')).length))"
135
135
  ```
136
136
 
137
- Read `memory.review_threshold` from `.agent-settings.yml` (default 10).
138
- If the count is **0** or **โ‰ค threshold**, skip this step silently. If
139
- **> threshold**, surface a numbered preview of the top-3 highest-
137
+ The threshold is a fixed **10** (the `memory.review_threshold` key was retired
138
+ on 2026-10-09 with that default as the behavior). If the count is **โ‰ค 10**,
139
+ skip this step silently. If **> 10**, surface a numbered preview of the top-3 highest-
140
140
  confidence intake signals (see
141
141
  [`memory-consolidation`](../../skills/memory-consolidation/SKILL.md)
142
142
  ยง Phase 3 for the consolidation contract):
143
143
 
144
144
  ```
145
- > โš ๏ธ {N} unreviewed intake signals for `{type}` (threshold {T}).
145
+ > โš ๏ธ {N} unreviewed intake signals for `{type}` (threshold 10).
146
146
  > Top 3 by confidence:
147
147
  >
148
148
  > 1. [conf=high] {sig-id} โ€” {one-line observation}
@@ -156,8 +156,7 @@ confidence intake signals (see
156
156
  ```
157
157
 
158
158
  Default action is **skip** โ€” the load completes regardless. This is a
159
- nudge, not a gate. If `memory.review_threshold` is `0`, skip this
160
- step entirely (feature off). Never auto-promote.
159
+ nudge, not a gate. Never auto-promote.
161
160
 
162
161
  ## When to reject
163
162
 
@@ -205,23 +205,10 @@ git push -u origin memory/promote-<curated-id>
205
205
  # Then route to /create-pr with the memory-promote template hint.
206
206
  ```
207
207
 
208
- ### 7. Report (verbosity-gated)
208
+ ### 7. Report
209
209
 
210
- Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
211
- `minimal`).
212
-
213
- - `off` โ†’ emit nothing on success; surface errors only.
214
- - `minimal` (default) โ†’ one line:
215
- `โ†’ Promoted <sig-id> โ†’ <curated-id> (PR: <url or branch>)`.
216
- - `full` โ†’ multi-line block:
217
-
218
- ```
219
- > โœ… Promotion drafted.
220
- > - Signal: <sig-id>
221
- > - Curated: <curated-id> in agents/memory/<type>.yml
222
- > - PR: <url or branch name>
223
- > - Next: review + merge
224
- ```
210
+ One line on success: `โ†’ Promoted <sig-id> โ†’ <curated-id> (PR: <url or branch>)`.
211
+ Errors are always surfaced.
225
212
 
226
213
  ## Safety
227
214