@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
@@ -101,7 +101,7 @@ Run, in order:
101
101
  | Gate | Overlapping open PR touches same files? | Action |
102
102
  |---|---|---|
103
103
  | exit `0`, prints `branch is current` | — | Proceed to Step 2 |
104
- | exit `1` | No | **Merge the base in** — `git fetch origin && git merge origin/{resolved-base} --no-edit` — then run the regeneration set below, then proceed. No need to ask; state that you did it. |
104
+ | exit `1` | No | **Bring the base in** per `git.update_strategy` ([`branch-update`](../../../../skills/git-workflow/references/branch-update.md)). `merge` (default): `git fetch origin && git merge origin/{resolved-base} --no-edit` — no need to ask; state that you did it. `rebase`: ask first unless `git-history-discipline` already authorises the rewrite (see `branch-update` for the three cases), never fall back to a merge, and on an already-pushed branch run `branch-update`'s pre-rewrite stop and push with its `--force-with-lease` form. Then run the regeneration set below, then proceed. |
105
105
  | exit `1` | **Yes** | STOP — surface the overlapping PR number, ask: stack on top of it / wait for it to land / proceed-anyway-and-accept-conflicts / cancel |
106
106
  | exit `0`, prints `NOT VERIFIED` | — | The base could not be reached, so freshness is **unknown** — not confirmed. Re-run once; if it persists, say the check did not run rather than reporting a pass. A base that `ls-remote` cannot resolve (deleted or renamed after the PR opened, or a fork base) lands here too. |
107
107
  | warns `could not ask the forge` | — | The **default** base was checked and an open PR against a different base was **not** ruled out. Say so; do not report it as a clean freshness pass. |
@@ -137,8 +137,22 @@ a generated-file conflict never is.
137
137
 
138
138
  The gate above is not creation-only. **Every subsequent push** to a branch with
139
139
  an open PR (a CI fix, a review response, a follow-up commit) re-runs the same
140
- sequence first: `check_branch_freshness` → on exit `1`, merge
141
- `origin/{resolved-base}` in → regenerate the derived files → verify → push.
140
+ sequence first: `check_branch_freshness` → on exit `1`, bring
141
+ `origin/{resolved-base}` in per `git.update_strategy` (merge by default; under
142
+ `rebase` a rebase that is asked for, never a merge, and `sync_pr_branch` refuses
143
+ a behind branch with exit 3)
144
+ → regenerate the derived files → verify → push (after a rebase:
145
+ `git push --force-with-lease=refs/heads/<b>:<sha> <remote> HEAD:refs/heads/<b>`,
146
+ never a plain push). A rebase runs only through § The rebase sequence in
147
+ [`branch-update`](../../../../skills/git-workflow/references/branch-update.md):
148
+ the ref the branch publishes is resolved from `@{push}` or the pull request's
149
+ head repository — never `@{u}`, and an unresolved target means no rewrite — its
150
+ SHA is pinned once after the fetch, must already be in `HEAD`, and is the lease
151
+ unchanged — so a collaborator's push lands either before the pin and halts the
152
+ stop, or after it and fails the lease, and is never overwritten.
153
+ Its steps 1–3 rebase and report, then stop: the regenerate → verify above runs
154
+ on the rebased tree, and only then does its step 4 publish, re-running step 1
155
+ with the `SAVE` and `EXPECTED` step 3 printed.
142
156
  A PR that sits open while its base advances goes stale silently; keeping the
143
157
  base merged **at every touch** means it stays `mergeStateStatus: CLEAN` instead
144
158
  of accumulating conflicts for the moment the user wants to merge. If the gate
@@ -160,9 +174,13 @@ runner; the hook never merges, because a merge inside `pre-push` rewrites the
160
174
  tree at the moment you believe your work is finished.
161
175
 
162
176
  **The resolution is executable now, not just described.**
163
- `./scripts-run src/scripts/sync_pr_branch` resolves the base from the open PR
164
- (so a stacked or release-line PR is measured against what it actually merges
165
- into), fetches, and merges it in when the branch is behind. The base is a
177
+ `agent-config git:convention sync --base origin/<base>`, `<base>` being the
178
+ `baseRefName` of the branch's `OPEN` pull request (`gh pr view --json
179
+ state,baseRefName`; a closed or merged one does not count, and without an open
180
+ one the base is the default branch), fetches and merges that
181
+ base in when the branch is behind, so a stacked or release-line PR is measured
182
+ against what it actually merges into. It never asks the forge itself: without
183
+ `--base` the target is the default branch, which is right only for a PR into it. The base is a
166
184
  **set**: when the PR targets something other than the default branch, whether
167
185
  the default branch joins the set is a per-target policy read from the *target's
168
186
  own commit*, never from this branch — see `src/scripts/_lib/branch_convergence.ts`.
@@ -255,9 +273,9 @@ Run `/create-pr:description-only` Steps 1–4 to generate the PR title and body.
255
273
  This handles: Jira ticket extraction, diff analysis, commit messages, **PR template filling**.
256
274
 
257
275
  The generation honors the cached content flags from step 1 (§4f):
258
- `detail_level` sets the Description tier (default `min`), `api_examples`
259
- adds a grounded JSON block for API-endpoint changes, and `screenshots`
260
- (capability-gated) adds frontend screenshots. Critical-info callouts
276
+ `detail_level` sets the Description tier (default `min`) and `screenshots`
277
+ (capability-gated) adds frontend screenshots; a grounded JSON block for
278
+ API-endpoint changes is always added (`/create-pr:description-only` § 4.3). Critical-info callouts
261
279
  (breaking changes / migrations / security / rollback) appear at every tier.
262
280
 
263
281
  **CRITICAL**: The PR body MUST use the project's PR template (`.github/pull_request_template.md`).
@@ -321,18 +339,15 @@ user request.
321
339
  - **Head branch**: EXACT output of `git branch --show-current` from step 1.
322
340
  - **Base branch**: default branch (`main` / `master`).
323
341
 
324
- **Behavior change vs. legacy:** with `verbosity.routine_confirmations:
325
- false` (default), `/create-pr` creates the PR as draft silently. Override
326
- per-invocation with `:ready` / `:final` / `:draft`. Restore the prompt
327
- by flipping `routine_confirmations: true`. See
328
- [`docs/customization.md` § Verbosity](../../docs/customization.md#verbosity).
342
+ `/create-pr` creates the PR as draft silently — draft-or-ready is a routine
343
+ confirmation with one obvious answer, so it is never asked. Override
344
+ per-invocation with `:ready` / `:final` / `:draft`.
329
345
 
330
346
  Resolve `"draft"` (first match wins):
331
347
 
332
348
  1. `:ready` / `:final` arg → `false`.
333
349
  2. `:draft` arg → `true`.
334
- 3. `routine_confirmations: true` → ask `1. draft / 2. ready`.
335
- 4. Default → `true` (silent draft).
350
+ 3. Default → `true` (silent draft).
336
351
 
337
352
  #### 3a. Tool selection — single-call mandate
338
353
 
@@ -382,7 +397,7 @@ gh pr view {number} --json isDraft --jq '.isDraft'
382
397
  # returns true → gh pr ready {number}
383
398
  ```
384
399
 
385
- **Silent-draft postscript** (rule 4) → see step 4b.
400
+ **Silent-draft postscript** (rule 3) → see step 4b.
386
401
 
387
402
  ### 4. After creation
388
403
 
@@ -420,14 +435,10 @@ Run this strip-pass **after PR creation and after every body PATCH**:
420
435
  the line entirely when nothing was stripped — silence is the
421
436
  expected path, not "no footers found").
422
437
 
423
- #### 4b. Show the PR URL (verbosity-gated)
438
+ #### 4b. Show the PR URL
424
439
 
425
- Per `verbosity.post_action_reports` (default `minimal`):
426
-
427
- - `off` → nothing.
428
- - `minimal` → `→ #N opened: <url>`. Append `→ created as draft — run
429
- \`gh pr ready N\` to flip` when silent-draft (rule 4); omit on ready.
430
- - `full` → multi-line: PR number, URL, draft state, base/head, ready-reminder.
440
+ `→ #N opened: <url>`. Append `→ created as draft — run \`gh pr ready N\` to
441
+ flip` when silent-draft (rule 3); omit on ready.
431
442
 
432
443
  #### 4c. Status claims — verified facts only (MANDATORY)
433
444
 
@@ -498,7 +509,8 @@ turns on `gh pr checks` every minute is the tool-loop
498
509
  untracked-`dist/` cases). When local and CI disagree, CI is authoritative.
499
510
  3. **Fix, then re-verify locally** with the narrowest command that proves the
500
511
  target green.
501
- 4. **Bounded at N=3 per failing target** ([`autonomous-execution`](../rules/autonomous-execution.md)).
512
+ 4. **Bounded by the `execution.fix_loop_max` budget (default 10) and its
513
+ ladder, per failing target** ([`autonomous-execution`](../rules/autonomous-execution.md)).
502
514
  Same failure signature twice → the hypothesis is wrong; change approach
503
515
  rather than spending the third attempt on a near-identical retry.
504
516
  5. **The push stays gated — and a fix-the-CI instruction IS the gate being
@@ -571,19 +583,15 @@ an actual Jira API call succeeded** — never announce "skipped".
571
583
 
572
584
  #### 4f. Settings short-circuit — single read per run
573
585
 
574
- `verbosity.routine_confirmations`, `verbosity.post_action_reports`,
575
- `commands.create_pr.preview_description`, `commands.create_pr.detail_level`,
576
- `commands.create_pr.api_examples`, `commands.create_pr.screenshots`,
577
- `commands.create_pr.ui_paths`, and `commands.create_pr.api_paths` are read
578
- **once** at the top of the run and cached for the whole `/create-pr`
586
+ `commands.create_pr.preview_description`, `commands.create_pr.detail_level`
587
+ and `commands.create_pr.screenshots` are read **once** at the top of the run and cached for the whole `/create-pr`
579
588
  invocation. Do **not** re-read `.agent-settings.yml` in Step 2 or 4b / 4e —
580
589
  every branch resolves from the cached values from step 1. The content flags
581
- (`detail_level`, `api_examples`, `screenshots`, `ui_paths`, `api_paths`) are
582
- consumed by the `/create-pr:description-only` generation step (Step 2); the
590
+ (`detail_level`, `screenshots`) are consumed by the `/create-pr:description-only` generation step (Step 2); the
583
591
  confirmation/report flags by steps 3–4.
584
592
 
585
- When all three resolve to their silent defaults (`false` / `minimal` /
586
- `false`), steps 4b + 4e collapse to the single `→ #N opened: <url>` line
593
+ When `preview_description` resolves to its silent default (`false`), steps
594
+ 4b + 4e collapse to the single `→ #N opened: <url>` line
587
595
  from 4b and a silent 4e. No extra file reads, no "checking settings…"
588
596
  narration, no confirmation prompts. Step 4c is never collapsed — status
589
597
  claims always carry evidence.
@@ -2,7 +2,7 @@
2
2
  model_tier: medium
3
3
  name: git-pr-merge
4
4
  disable-model-invocation: true
5
- argument-hint: "[all|<pr-number>] [--no-merge]"
5
+ argument-hint: "[all|<pr-number>] [--merge|--no-merge]"
6
6
  pack: git
7
7
  intent: "Prepare an open PR to mergeable — sync the base in, resolve conflicts semantically, drive required checks green — then merge what the invocation named"
8
8
  routes_to: [git-workflow, github-ci]
@@ -35,6 +35,9 @@ AN EXPLICIT `/pr:merge` INVOCATION IS THE THIS-TURN CONFIRMATION, AND IT
35
35
  REACHES EXACTLY THE PRs § 1's MANIFEST SNAPSHOTTED FROM IT. IT NEVER REACHES
36
36
  A PR THAT ARRIVED LATER, A HEAD THE MANIFEST DID NOT RECORD, OR ANY OTHER
37
37
  HARD-FLOOR ACTION. `--no-merge` STILL STOPS BEFORE § 9.
38
+ ADR-282: AN OWNER AUTO-MERGE INSTRUCTION (`--merge`, OR THE OWNER'S OWN WORDS IN
39
+ THE SESSION) IS THE SAME CONFIRMATION FOR A `routine` PR. A `needs-council` PR
40
+ MERGES ONLY ON TWO CONVERGENT CLEARING SEATS (§ 9a) — OTHERWISE THE OWNER DECIDES.
38
41
  ```
39
42
 
40
43
  **The invocation is the authorization, and nothing else is.** `pr-merge` is
@@ -76,7 +79,8 @@ merged (§ 5).
76
79
  | `/pr:merge <N>` | exactly PR N | yes | yes — PR N |
77
80
  | `/pr:merge` | ONE PR: green first, then infrastructure/tooling before content, then smallest diff (`changedFiles`, then additions+deletions), tiebreak ascending number | yes | yes — the one PR it selected |
78
81
  | `/pr:merge all` | the whole open-PR list, under § 6's cutoff | yes | yes — the manifest, in queue order |
79
- | `… --no-merge` | as above | yes | **never**, explicitly. This is the form [`/roadmap:process-full`](../../../product-basic/roadmap/process-full/command.md) calls for its delivery loop. |
82
+ | `… --merge` | as above | yes | yes, through § 9a's danger gate — the form [`/roadmap:process-full`](../../../product-basic/roadmap/process-full/command.md) calls when the owner gave an auto-merge instruction (ADR-282) |
83
+ | `… --no-merge` | as above | yes | **never**, explicitly. This is the form [`/roadmap:process-full`](../../../product-basic/roadmap/process-full/command.md) calls for its delivery loop without an auto-merge instruction. |
80
84
 
81
85
  **Bare invocation** (`/pr:merge` with no argument) is a **documented default
82
86
  flow**, not a menu: it runs the auto-selection in row 2 and says which PR it
@@ -132,14 +136,94 @@ says what happens to it instead.
132
136
 
133
137
  ## 2. Sync with the base
134
138
 
139
+ Check the PR out, read the strategy against its base, then let one script do
140
+ the update, so the branch-convergence policy (the base SET a non-default target
141
+ carries) is read on every path. `show` takes the same `--base` as `sync` and
142
+ runs after the checkout: without `--base` both read the default branch, and a PR
143
+ into any other base would be judged against the wrong commit. `--key
144
+ update_strategy` limits `show`'s exit to the strategy, so a `commit_format` or
145
+ `branch_pattern` the PR head breaks does not stop the update.
146
+
135
147
  ```bash
136
148
  git fetch origin
137
149
  gh pr checkout <N>
138
- git merge origin/<base> --no-edit
150
+ agent-config git:convention show --key update_strategy --base origin/<base> # value, source, state
151
+ agent-config git:convention sync --base origin/<base>
139
152
  ```
140
153
 
141
- Merge the base **into** the branch. Never rebase a branch that is already
142
- pushed ([`git-history-discipline`](../../../../rules/git-history-discipline.md)).
154
+ A `git.update_strategy` whose state is `malformed`, `invalid`, `discarded` or
155
+ `unresolvable` is not a strategy — `show` exits `1` on it and the script
156
+ refuses it with exit 4, or with exit 1 when the target itself cannot be
157
+ resolved — so stop on this PR and report the line `show` printed. A
158
+ candidate in such a state (this checkout's uncommitted value) is a warning
159
+ `show` prints with exit `0`; the script never reads it, so it does not stop
160
+ the PR.
161
+ The one narrowing: a base the server names whose commit could not be fetched is
162
+ the `unverified` warning below (exit `0`, nothing merged); origin unreachable at
163
+ the ref lookup is exit `1`. Otherwise
164
+ the strategy decides what the script does — under `merge` it merges the base
165
+ set in, under `rebase` it only checks, because a
166
+ `Merge branch '<base>' into …` commit is what that setting excludes and the
167
+ `/pr:merge` sentence authorises merging the named PRs, not rewriting their
168
+ branches ([`git-history-discipline`](../../../../rules/git-history-discipline.md)).
169
+ Read its exit and its line together:
170
+
171
+ - exit `0` with a `✅` line → the PR is current with its base, or under `merge`
172
+ the base was merged in cleanly; go on to § 3.
173
+ - exit `0` with a `⚠️` line reading `unverified` (the base commit or origin could not be fetched)
174
+ or `BYPASSED` (the convergence policy is disabled at the target) → **not
175
+ checked**: nothing is known about freshness. Stop on this PR and report the
176
+ line; it is never read as current.
177
+ - exit `1` → a conflict report goes to § 3; a base that could not be resolved
178
+ (a `--base` the server does not know, no origin, origin unreachable) stops
179
+ this PR.
180
+ - exit `3` → behind under a strategy other than `merge`. This run never
181
+ rebases a PR it did not author — the rebase is the author's, or a separate
182
+ request under
183
+ [`branch-update`](../../../../skills/git-workflow/references/branch-update.md).
184
+ What happens to the PR is an owner decision (recorded
185
+ 2026-10-07), and it turns on one forge setting — whether the base requires an
186
+ up-to-date branch before merging:
187
+
188
+ ```bash
189
+ gh api repos/{owner}/{repo}/branches/<base>/protection \
190
+ --jq .required_status_checks.strict 2>&1; echo "exit=$?"
191
+ gh api repos/{owner}/{repo}/rules/branches/<base> \
192
+ --jq '.[] | select(.type == "required_status_checks") | .parameters.strict_required_status_checks_policy'; echo "exit=$?"
193
+ ```
194
+
195
+ Each read has three outcomes, told apart by the exit code and the message:
196
+
197
+ | Read | Absent | Value | Failed |
198
+ |---|---|---|---|
199
+ | classic protection | non-zero exit **and** the output contains `(HTTP 404)` (`Branch not protected`); or exit `0` with `null` — the branch is protected but requires no status checks | exit `0`: `true` or `false` | any other non-zero exit, or output that is not `true` / `false` / `null` |
200
+ | rulesets | exit `0` with empty output (no rule requiring status checks) | exit `0`: one or more lines, each `true` or `false` | non-zero exit, or a line that is not `true` / `false` |
201
+
202
+ A `404` from the classic endpoint is not a failed read: it is what a branch
203
+ protected only by rulesets, or not protected at all, returns; nor is `null`
204
+ from a `200`, which is a protected branch with no required status checks.
205
+ The rulesets read prints one line per ruleset on the base that requires
206
+ status checks, so a base covered by several prints several lines: **any**
207
+ `true` line reads as `true`; all lines `false` reads as `false`. Either reading
208
+ `true` means the forge requires an up-to-date branch; both absent or `false`
209
+ means it does not; a **failed** read is treated as required. A base
210
+ protected by rulesets alone is decided by the rulesets read.
211
+ - **The forge does not require an up-to-date branch**, and the PR is green
212
+ and conflict-free → it goes on to § 3–§ 9 and is merged behind its base;
213
+ the summary row says so (`merged behind <base>; the forge does not require
214
+ an up-to-date branch`). Its checks never ran against the current base, and
215
+ the summary is where that stays visible.
216
+ - **The forge requires an up-to-date branch** → disposition
217
+ `blocked-external`, the row naming that setting as the reason.
218
+ - **The line reads `TARGET_POLICY_STALE`** → the PR is current with its
219
+ non-default target and that target is itself behind its default branch:
220
+ `blocked-external`, reason "the target's update", whatever the forge
221
+ setting. A PR also behind its target gets the ordinary behind line instead,
222
+ with the target's lag as a note.
223
+ - exit `4` → the strategy could not be read (the line names the reason code
224
+ and the file); nothing was checked or merged. Stop on this PR and report it.
225
+ - any other exit → the check could not run (internal error); stop on this PR
226
+ and report the script's message.
143
227
 
144
228
  ## 3. Resolve conflicts by class, never by taste
145
229
 
@@ -281,6 +365,15 @@ After each merge the base has moved, so the next PR is re-synced against the
281
365
  NEW base — that is the loop, and it is why pre-greening several PRs ahead of
282
366
  their merges is wasted work.
283
367
 
368
+ **Under a strategy other than `merge`**, every PR after the first is behind the
369
+ base the previous merge moved, and this run rebases none of them. Where the
370
+ forge does not require an up-to-date branch, a green, conflict-free PR that is
371
+ behind still merges (§ 2, exit `3`) — three green branches merge without three
372
+ sequential rebases — and each such row says it merged behind its base. Where
373
+ the forge requires an up-to-date branch, the first merge leaves every remaining
374
+ PR `blocked-external`, and the summary names that setting rather than leaving
375
+ the reader to find it.
376
+
284
377
  **Under `--no-merge` that loop does not turn**, and the paragraph above is
285
378
  written for the form that does. Nothing merges, so the base does not advance,
286
379
  no PR leaves the open list, and the run is a **preparation sweep**: it syncs,
@@ -379,12 +472,41 @@ NO ROLLBACK, ONLY COMPENSATION, AND COMPENSATION IS A SEPARATELY AUTHORIZED
379
472
  HUMAN DECISION. STOP, EMIT THE MERGE SHAs AND THE REASON, HAND OVER.
380
473
  ```
381
474
 
475
+ ## 9a. Danger gate — before every merge (ADR-282)
476
+
477
+ Once required checks are green on the manifest head and the PR is mergeable:
478
+
479
+ ```bash
480
+ ./scripts-run src/scripts/classify_merge_risk <N>
481
+ ```
482
+
483
+ The last line is the verdict; each trigger names the rule it comes from. An
484
+ unreadable diff is `needs-council` — the gate fails closed.
485
+
486
+ - **`routine`** → merge in § 9. No review step.
487
+ - **`needs-council`** → the AI council reviews the diff with a **neutral**
488
+ prompt (scope, diff, the triggers, two questions: *does any of the six
489
+ dangerous-action predicates of the authority-routing council record
490
+ (`agents/evidence/council/authority-routing-20261007.md` § 4) apply?* and *is
491
+ an owner review unnecessary?* — never an expected answer, per
492
+ `evaluator-independence`). A council may resolve doubt but cannot waive
493
+ danger: a seat finding that a predicate applies is a "dangerous" seat. Record the prompt and both
494
+ verdicts under `agents/evidence/`. **Both seats: not dangerous, owner review
495
+ unnecessary → merge.** Dangerous, split, degraded quorum, or council
496
+ unavailable → do not merge; record the PR `unauthorized` and hand it to the
497
+ owner with the seats' reasons.
498
+
499
+ A `needs-council` clearance only clears the merge. Deploy, release and every
500
+ other Hard-Floor action keep their own confirmation.
501
+
382
502
  ## 9. Merge, and the summary
383
503
 
384
504
  ```bash
385
- gh pr merge <N> --<detected-method> --delete-branch
505
+ gh pr merge <N> --<detected-method> --delete-branch --match-head-commit <manifest-head-sha>
386
506
  ```
387
507
 
508
+ `--match-head-commit` makes the forge refuse a head the manifest did not record.
509
+
388
510
  Detect the method once, at invocation, and reuse it for the whole queue:
389
511
 
390
512
  ```bash
@@ -409,8 +531,11 @@ run, so it does not exist until one has happened): one row per PR with queue
409
531
  position, the `base_ref@base_sha` it was prepared against — without it a
410
532
  "prepared" row records nothing checkable, since mergeability is a fact about a
411
533
  base and not about a queue —
412
- conflict classes hit, CI iterations used, disposition, and any edits dropped in
413
- conflict resolution. The disposition set is closed:
534
+ conflict classes hit, CI iterations used, disposition **with its reason** —
535
+ `merged behind <base>` where § 2 merged a PR its forge let through behind,
536
+ `requires an up-to-date branch` or `TARGET_POLICY_STALE` for a behind PR left
537
+ blocked — and any edits dropped in conflict resolution. Every PR the run saw
538
+ gets a row; none is summarised away. The disposition set is closed:
414
539
 
415
540
  `merged <sha>` · `superseded-closed` · `blocked-external` · `twice-exhausted` ·
416
541
  `unauthorized` · `arrived-after-cutoff`
@@ -430,7 +555,9 @@ ends this run prepared and unmerged.
430
555
  `--no-merge` is the explicit way to say stop before § 9.
431
556
  - **Never widen, patch, or rebuild-around the git guard.** Verification of the
432
557
  authorization window is read-only.
433
- - **Never rebase a pushed branch**; the base is merged in.
558
+ - **The base comes in per `git.update_strategy`**: under `merge` it is merged
559
+ in; under `rebase` this command never rebases — a behind PR is reported
560
+ (exit 3) and the rewrite stays the author's, under `git-history-discipline`.
434
561
  - **Never hand-merge a generated artefact**; regenerate it.
435
562
  - **Never resolve a conflict outside the four classes**; halt instead.
436
563
  - **Never call CI green off a local run**; re-verify on the pushed head.
@@ -73,6 +73,15 @@ git checkout {child-branch}
73
73
  git merge {parent-branch} --no-edit
74
74
  ```
75
75
 
76
+ - **Under `git.update_strategy: rebase`** do not merge the chain: a merge
77
+ commit on a feature branch is what that setting excludes, and this command
78
+ must not leave one behind to be pushed later. Check the target branch back
79
+ out, report which branches are behind their parent, and finish without error
80
+ — the review then runs against `git merge-base HEAD origin/<parent-branch>`
81
+ (the remote ref step 4 fetched; a local branch may be missing or stale), the
82
+ target's direct parent in the chain, so parent PRs stay out of it. Updating the
83
+ chain is a rebase the user asks for
84
+ ([`branch-update`](../../../skills/git-workflow/references/branch-update.md)).
76
85
  - If a **merge conflict** occurs at any point:
77
86
  - Run `git merge --abort`
78
87
  - Abort the entire process immediately
@@ -87,18 +96,11 @@ Once all merges succeed:
87
96
  git checkout {head-branch-of-target-PR}
88
97
  ```
89
98
 
90
- ### 7. Report (verbosity-gated)
99
+ ### 7. Report
91
100
 
92
- Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
93
- `minimal`).
94
-
95
- - `off` → emit nothing on success; surface warnings/errors only.
96
- - `minimal` (default) → one line:
97
- `→ {branch} ready · {N} branches merged · {warnings or "clean"}`.
98
- - `full` → multi-line block listing:
99
- - Which branch chain was processed (in order)
100
- - That the target branch is now checked out and up to date
101
- - Any warnings (e.g. branch was already up to date)
101
+ One line on success:
102
+ `→ {branch} ready · {N} branches merged · {warnings or "clean"}`.
103
+ Warnings and errors are always surfaced.
102
104
 
103
105
  ## Rules
104
106
 
@@ -129,15 +129,8 @@ LEGACY CHECK (indicators):
129
129
  ═══════════════════════════════════════════════
130
130
  ```
131
131
 
132
- Per `verbosity.routine_confirmations` (default `false`):
133
-
134
- - `false` → continue to Phase 2 silently (user invoked `/project-analyze`
135
- for the full pass; "continue" is dominant).
136
- - `true` → ask:
137
- ```
138
- > 1. Continue with Phase 2 — architecture analysis
139
- > 2. Stop here — keep the overview only
140
- ```
132
+ Continue to Phase 2 silently — the user invoked `/project-analyze` for the
133
+ full pass, so "continue" is dominant and asking is a routine confirmation.
141
134
 
142
135
  ### 2. Architecture mapping
143
136
 
@@ -249,15 +242,8 @@ BUSINESS DOMAINS:
249
242
  ═══════════════════════════════════════════════
250
243
  ```
251
244
 
252
- Per `verbosity.routine_confirmations` (default `false`):
253
-
254
- - `false` → create domain analysis files silently (user invoked
255
- `/project-analyze`; "yes, create" is dominant).
256
- - `true` → ask:
257
- ```
258
- > 1. Yes — create domain analysis files
259
- > 2. Skip — continue with next phase
260
- ```
245
+ Create the domain analysis files silently — the user invoked
246
+ `/project-analyze`, so "yes, create" is dominant.
261
247
 
262
248
  For each confirmed domain, create `agents/evidence/analysis/domains/{domain}.md` using the template
263
249
  from the `project-analyzer` skill.
@@ -286,14 +272,7 @@ SERVICE MAP:
286
272
  ═══════════════════════════════════════════════
287
273
  ```
288
274
 
289
- Per `verbosity.routine_confirmations` (default `false`):
290
-
291
- - `false` → create API + service analysis files silently.
292
- - `true` → ask:
293
- ```
294
- > 1. Yes — create API and service analysis files
295
- > 2. Skip — continue with next phase
296
- ```
275
+ Create the API + service analysis files silently.
297
276
 
298
277
  Create:
299
278
  - `agents/evidence/analysis/api/endpoints-v1.md`
@@ -315,15 +294,8 @@ Write all remaining analysis files that haven't been created yet:
315
294
  - `agents/evidence/analysis/modules/{module}.md` — one per module
316
295
  - `agents/evidence/analysis/testing/test-map.md` — test suites, coverage, strategy
317
296
 
318
- Per `verbosity.routine_confirmations` (default `false`):
319
-
320
- - `false` → create all listed files silently (per-file picker is pure
321
- noise once the user invoked `/project-analyze`).
322
- - `true` → for each file, ask:
323
- ```
324
- > 1. Create — {filename}
325
- > 2. Skip
326
- ```
297
+ Create all listed files silently — a per-file picker is pure noise once the
298
+ user invoked `/project-analyze`.
327
299
 
328
300
  ### 8. Gap analysis & action plan
329
301
 
@@ -28,7 +28,7 @@ packs:
28
28
  Accept one of four input paths:
29
29
 
30
30
  1. **Explicit key** — `/refine-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** — `/refine-ticket https://…/browse/PROJ-123`
34
34
 
@@ -39,10 +39,14 @@ to make sure the current branch is up to date with its base chain:
39
39
  - If exactly one open PR is found → invoke `/prepare-for-review`
40
40
  with that PR number. It will update `main`, fetch and merge the
41
41
  full branch chain into the current branch, and leave the current
42
- branch checked out.
42
+ branch checked out — under `git.update_strategy: rebase` it merges
43
+ nothing and reports the behind branches instead.
43
44
  - If no open PR is found → fall back to a minimal local update:
44
45
  `git fetch origin main` and `git merge origin/main --no-edit` on
45
- the current branch. Abort on conflict and report.
46
+ the current branch. Abort on conflict and report. Under
47
+ `git.update_strategy: rebase` skip the merge: `git fetch origin main`
48
+ only, review the diff against `git merge-base HEAD origin/main`, and say
49
+ the branch is behind.
46
50
  - If multiple PRs are found → ask the user which PR to use before
47
51
  proceeding.
48
52
  - If `/prepare-for-review` aborts (merge conflict, network error,
@@ -324,23 +328,12 @@ before re-review, hand off to
324
328
  generate→run→revise→re-run loop gated by a numeric threshold, then a judge
325
329
  confirms. Surface it as a single follow-up line; do not auto-invoke.
326
330
 
327
- ### 7. Quality tools (verbosity-gated)
331
+ ### 7. Quality tools
328
332
 
329
- Per `verbosity.routine_confirmations` (default `false`):
330
-
331
- - `false` (default) → emit `→ run /quality-fix to format + lint` as a
332
- single follow-up line; do not auto-invoke. User runs explicitly.
333
- - `true` → ask:
334
- ```
335
- > 1. Yes — run quality tools (formatter, static analyzer, linters)
336
- > 2. No — review done
337
- ```
338
- If yes, hand off to the project's quality workflow (e.g.
339
- `/quality-fix` or the equivalent configured command). The quality and
340
- test runners are resolved per-stack via the
341
- [`toolchain-resolver`](../../contexts/execution/toolchain-resolver.md), so
342
- the hand-off adapts to PHP / JS-TS / Python / Go / Rust rather than
343
- assuming one stack.
333
+ Emit `→ run /quality-fix to format + lint` as a single follow-up line; do not
334
+ auto-invoke and do not ask. The user runs it explicitly; its quality and test
335
+ runners are resolved per-stack via the
336
+ [`toolchain-resolver`](../../contexts/execution/toolchain-resolver.md).
344
337
 
345
338
  ## Backward compatibility
346
339
 
@@ -354,7 +347,9 @@ Per `verbosity.routine_confirmations` (default `false`):
354
347
  quality tools hand-off
355
348
  - The new step 1 (`/prepare-for-review`) is **best-effort**: if no
356
349
  open PR exists for the current branch, it falls back to a plain
357
- `git fetch && git merge origin/main`. Existing invocations that
350
+ `git fetch origin main` and, under the default `git.update_strategy:
351
+ merge`, `git merge origin/main --no-edit`; under `rebase` it merges
352
+ nothing and reports the branch as behind. Existing invocations that
358
353
  ran on a fully detached or pre-PR branch keep working
359
354
 
360
355
  ## Use this command when
@@ -417,7 +417,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
417
417
  `lint_roadmap_producers`: a producer that does not end here reds CI.
418
418
 
419
419
  Read `planning.closure_pass` (missing = `true`). When active, run
420
- [`/challenge-me closure`](../../../meta/challenge-me/closure/command.md) on the
420
+ `/challenge-me closure` on the
421
421
  roadmap this command just produced, before handing back:
422
422
 
423
423
  ```bash
@@ -83,7 +83,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
83
83
  `lint_roadmap_producers`: a producer that does not end here reds CI.
84
84
 
85
85
  Read `planning.closure_pass` (missing = `true`). When active, run
86
- [`/challenge-me closure`](../../../meta/challenge-me/closure/command.md) on the
86
+ `/challenge-me closure` on the
87
87
  roadmap this command just produced, before handing back:
88
88
 
89
89
  ```bash
@@ -280,7 +280,16 @@ was for a conflict whose entire existence is a remote fact. That is the friction
280
280
  this clause removes; the floor it keeps is the *unnamed* push.
281
281
 
282
282
  **Before every push to the open PR**, bring the branch up to its base with
283
- `./scripts-run src/scripts/sync_pr_branch` and regenerate afterwards. Measured on
283
+ `agent-config git:convention sync --base origin/<base>` (`<base>` is the
284
+ `baseRefName` of the branch's `OPEN` pull request, read with `gh pr view --json
285
+ state,baseRefName`; without an open one, and without `--base`, the target is the default branch) and regenerate afterwards (under
286
+ `git.update_strategy: rebase` it refuses a behind branch with exit 3 — rebase on request instead, per
287
+ [`branch-update`](../../../../skills/git-workflow/references/branch-update.md); an exit 3
288
+ reading `TARGET_POLICY_STALE` means the branch is current with its non-default
289
+ target and the target is itself behind its default branch — that is the target's update, reported, never a rebase of this
290
+ branch; on exit 4 the
291
+ strategy could not be read, the line names the reason code and the file, nothing
292
+ was merged, and the run stops before the push until that file is fixed). Measured on
284
293
  this run: the base moved three times, the push was rejected twice for it, and the
285
294
  PR reached `CONFLICTING` in between. Verify the result afterwards with
286
295
  `./scripts-run src/scripts/check_pr_ci_current` — a green local gate says nothing