@event4u/agent-config 16.3.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 (486) 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 +251 -0
  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/estimate-ticket.md +1 -1
  16. package/dist/agent-src/commands/feature/explore.md +3 -3
  17. package/dist/agent-src/commands/feature/plan.md +1 -1
  18. package/dist/agent-src/commands/fix/ci.md +17 -3
  19. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  20. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  21. package/dist/agent-src/commands/implement-ticket.md +3 -3
  22. package/dist/agent-src/commands/memory/add.md +4 -16
  23. package/dist/agent-src/commands/memory/load.md +5 -6
  24. package/dist/agent-src/commands/memory/promote.md +3 -16
  25. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  26. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  27. package/dist/agent-src/commands/optimize/deep.md +4 -2
  28. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  29. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  30. package/dist/agent-src/commands/pr/create.md +42 -34
  31. package/dist/agent-src/commands/pr/merge.md +136 -9
  32. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  33. package/dist/agent-src/commands/project/analyze.md +7 -35
  34. package/dist/agent-src/commands/refine-ticket.md +1 -1
  35. package/dist/agent-src/commands/review/changes.md +14 -19
  36. package/dist/agent-src/commands/roadmap/next.md +10 -1
  37. package/dist/agent-src/commands/roadmap/process-full.md +52 -38
  38. package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
  39. package/dist/agent-src/commands/worktree/create.md +7 -3
  40. package/dist/agent-src/commands/worktree/verify.md +2 -1
  41. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  42. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  43. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  44. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  45. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  46. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  47. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  48. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  49. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  50. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  51. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
  52. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  53. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  54. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  55. package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
  56. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  57. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  58. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  59. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  60. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  61. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  62. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  63. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  64. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  65. package/dist/agent-src/guidelines/php/git.md +15 -2
  66. package/dist/agent-src/rules/active-remediation.md +0 -1
  67. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  68. package/dist/agent-src/rules/architecture.md +0 -1
  69. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  70. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  71. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  72. package/dist/agent-src/rules/autonomous-execution.md +0 -1
  73. package/dist/agent-src/rules/brand-consistency.md +0 -1
  74. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  75. package/dist/agent-src/rules/broken-access-control.md +0 -1
  76. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  77. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  78. package/dist/agent-src/rules/code-provenance.md +0 -1
  79. package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
  80. package/dist/agent-src/rules/commit-conventions.md +1 -2
  81. package/dist/agent-src/rules/communication-through-line.md +1 -2
  82. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  83. package/dist/agent-src/rules/context-hygiene.md +5 -5
  84. package/dist/agent-src/rules/copilot-routing.md +1 -2
  85. package/dist/agent-src/rules/council-availability.md +4 -4
  86. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  87. package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
  88. package/dist/agent-src/rules/delegation-policy.md +2 -3
  89. package/dist/agent-src/rules/design-fidelity.md +0 -1
  90. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  91. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  92. package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
  93. package/dist/agent-src/rules/docker-commands.md +0 -1
  94. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  95. package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
  96. package/dist/agent-src/rules/domain-safety-pii.md +0 -1
  97. package/dist/agent-src/rules/domain-safety-retention.md +0 -1
  98. package/dist/agent-src/rules/downstream-changes.md +0 -1
  99. package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
  100. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  101. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  102. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
  103. package/dist/agent-src/rules/finance-safety-floor.md +0 -1
  104. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  105. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  106. package/dist/agent-src/rules/git-history-discipline.md +1 -2
  107. package/dist/agent-src/rules/guidelines.md +0 -1
  108. package/dist/agent-src/rules/history-discipline.md +0 -1
  109. package/dist/agent-src/rules/icon-consistency.md +0 -1
  110. package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
  111. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  112. package/dist/agent-src/rules/invite-challenge.md +0 -1
  113. package/dist/agent-src/rules/laravel-routing.md +1 -2
  114. package/dist/agent-src/rules/laravel-translations.md +0 -1
  115. package/dist/agent-src/rules/legal-safety-floor.md +0 -1
  116. package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
  117. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  118. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
  119. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  120. package/dist/agent-src/rules/media-governance-routing.md +1 -2
  121. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  122. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  123. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  124. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  125. package/dist/agent-src/rules/model-recommendation.md +0 -1
  126. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  127. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  128. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  129. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  130. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  131. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  132. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  133. package/dist/agent-src/rules/output-discipline.md +0 -1
  134. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  135. package/dist/agent-src/rules/persona-governance.md +2 -3
  136. package/dist/agent-src/rules/php-coding.md +0 -1
  137. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  138. package/dist/agent-src/rules/preservation-guard.md +0 -1
  139. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
  140. package/dist/agent-src/rules/question-not-instruction.md +0 -1
  141. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  142. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  143. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
  144. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  145. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  146. package/dist/agent-src/rules/runtime-safety.md +0 -1
  147. package/dist/agent-src/rules/scale-discipline.md +0 -1
  148. package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
  149. package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
  150. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  151. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  152. package/dist/agent-src/rules/session-canary.md +0 -1
  153. package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
  154. package/dist/agent-src/rules/size-enforcement.md +0 -1
  155. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  156. package/dist/agent-src/rules/skill-quality.md +0 -1
  157. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  158. package/dist/agent-src/rules/source-confidentiality.md +0 -1
  159. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  160. package/dist/agent-src/rules/source-of-truth.md +0 -1
  161. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  162. package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
  163. package/dist/agent-src/rules/symfony-routing.md +1 -2
  164. package/dist/agent-src/rules/think-before-action.md +0 -1
  165. package/dist/agent-src/rules/token-budget-discipline.md +12 -46
  166. package/dist/agent-src/rules/token-efficiency.md +0 -1
  167. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  168. package/dist/agent-src/rules/tool-safety.md +0 -1
  169. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  170. package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
  171. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  172. package/dist/agent-src/rules/user-interaction.md +0 -1
  173. package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
  174. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  175. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  176. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  177. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  178. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  179. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  180. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  181. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  182. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  183. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  184. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  185. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  186. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  187. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  188. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  189. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  190. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  191. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  192. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  193. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  194. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  195. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  196. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  197. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  198. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
  199. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  200. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
  201. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  202. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  203. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  204. package/dist/agent-src/templates/AGENTS.md +1 -1
  205. package/dist/agent-src/templates/agent-settings.md +46 -129
  206. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  207. package/dist/agent-src/templates/command.md +2 -2
  208. package/dist/agent-src/templates/roadmaps.md +6 -1
  209. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  210. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  211. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  212. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  213. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  214. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  215. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  216. package/dist/agent-src/templates/skill.md +1 -1
  217. package/dist/cli/registry.js +1 -0
  218. package/dist/cli-delegate/check_update_banner.js +195 -119
  219. package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
  220. package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
  221. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  222. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  223. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  224. package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-AED2VQGM.js} +65 -11
  225. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  226. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  227. package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
  228. package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
  229. package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
  230. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  231. package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
  232. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  233. package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
  234. package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-MSUL5NYP.js} +5 -5
  235. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  236. package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
  237. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  238. package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
  239. package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
  240. package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
  241. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  242. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  243. package/dist/cli-delegate/cmd_conformance.js +105 -35
  244. package/dist/cli-delegate/cmd_converge.js +3 -3
  245. package/dist/cli-delegate/cmd_doctor.js +15 -12
  246. package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
  247. package/dist/cli-delegate/cmd_explain.js +43 -19
  248. package/dist/cli-delegate/cmd_export.js +10 -10
  249. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  250. package/dist/cli-delegate/cmd_handoff.js +40 -21
  251. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  252. package/dist/cli-delegate/cmd_migrate.js +3 -3
  253. package/dist/cli-delegate/cmd_packs_active.js +4 -3
  254. package/dist/cli-delegate/cmd_prune.js +10 -10
  255. package/dist/cli-delegate/cmd_route_audit.js +7 -7
  256. package/dist/cli-delegate/cmd_route_explain.js +5 -5
  257. package/dist/cli-delegate/cmd_session_recycle.js +9 -7
  258. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  259. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  260. package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
  261. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  262. package/dist/cli-delegate/cmd_sync.js +10 -10
  263. package/dist/cli-delegate/cmd_uninstall.js +10 -10
  264. package/dist/cli-delegate/cmd_update.js +7 -7
  265. package/dist/cli-delegate/cmd_upgrade.js +7 -7
  266. package/dist/cli-delegate/cmd_validate.js +10 -10
  267. package/dist/cli-delegate/cmd_versions.js +5 -5
  268. package/dist/cli-delegate/gate_budget.js +1 -1
  269. package/dist/cli-delegate/gate_execute.js +2 -2
  270. package/dist/cli-delegate/roadmap_gates.js +2 -2
  271. package/dist/discovery/deprecation-report.md +1 -1
  272. package/dist/discovery/discovery-manifest.json +129 -90
  273. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  274. package/dist/discovery/discovery-manifest.summary.md +3 -3
  275. package/dist/discovery/dormancy-report.md +1 -1
  276. package/dist/discovery/orphan-report.md +1 -1
  277. package/dist/discovery/packs.json +24 -9
  278. package/dist/discovery/trust-report.md +3 -3
  279. package/dist/discovery/workspaces.json +5 -4
  280. package/dist/hooks/dispatch.js +2151 -1820
  281. package/dist/hooks/dispatch.sha256 +1 -1
  282. package/dist/install/install.mjs +462 -431
  283. package/dist/install/installThinLayer.js +40 -12
  284. package/dist/install/installedRuleLinks.js +105 -19
  285. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  286. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  287. package/dist/mcp/registry-manifest.json +5 -5
  288. package/dist/mcp/server.json +2 -2
  289. package/dist/mcp/server.mjs +2702 -1995
  290. package/dist/router.json +1 -1
  291. package/dist/scripts/_lib/agent_settings.js +15 -120
  292. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  293. package/dist/scripts/_lib/git_convention.js +232 -0
  294. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  295. package/dist/scripts/_lib/installed_layer.js +344 -18
  296. package/dist/scripts/_lib/package_root.js +68 -0
  297. package/dist/scripts/_lib/rule_law_section.js +1 -1
  298. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  299. package/dist/scripts/_lib/thin_rules.js +80 -3
  300. package/dist/server/app.js +2 -1
  301. package/dist/server/gitKeysGate.js +105 -0
  302. package/dist/server/routes/settings.js +67 -8
  303. package/dist/server/routes/wizard.js +4 -0
  304. package/dist/server/schemas/settings.js +23 -81
  305. package/dist/shared/skillRanking.js +30 -4
  306. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  307. package/dist/ui/index.html +1 -1
  308. package/docs/MIGRATION.md +72 -1
  309. package/docs/contracts/settings-classes.md +35 -65
  310. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  311. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  312. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  313. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  314. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  315. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  316. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  317. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  318. package/docs/guidelines/php/git.md +15 -2
  319. package/package.json +1 -1
  320. package/src/agent-src/scripts/gate_budget.ts +47 -23
  321. package/src/agent-src/scripts/gate_execute.ts +12 -4
  322. package/src/agent-src/templates/AGENTS.md +1 -1
  323. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  324. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  325. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  326. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  327. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  328. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  329. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  330. package/src/config/agent-settings.template.yml +79 -312
  331. package/src/config/agents-paths.yml +16 -0
  332. package/src/config/assurance-capability-registry.json +7 -3
  333. package/src/config/ci-local-parity.yml +3 -0
  334. package/src/config/continuity-surface.json +3 -3
  335. package/src/config/discovery/packs.yml +17 -1
  336. package/src/config/evaluator-budgets.json +19 -6
  337. package/src/config/gate-coverage.yml +65 -23
  338. package/src/config/gate-violation-baselines.json +53 -13
  339. package/src/config/gitignore-block.txt +19 -0
  340. package/src/config/hook-bundle-budget.json +1 -1
  341. package/src/config/release-gate-locality.yml +2 -1
  342. package/src/config/routing-coverage-seed.json +48 -6
  343. package/src/config/rule-law-ceilings.json +12 -6
  344. package/src/config/rule-obligations.json +833 -0
  345. package/src/install/installThinLayer.ts +76 -10
  346. package/src/install/installedRuleLinks.ts +105 -17
  347. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  348. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  349. package/src/scripts/_cli/cmd_doctor.ts +10 -10
  350. package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
  351. package/src/scripts/_cli/cmd_explain.ts +72 -14
  352. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  353. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  354. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  355. package/src/scripts/_cli/doctor_execution.ts +72 -1
  356. package/src/scripts/_dispatch.bash +37 -2
  357. package/src/scripts/_lib/agent_settings.ts +15 -124
  358. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  359. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  360. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  361. package/src/scripts/_lib/git_base_ref.ts +92 -0
  362. package/src/scripts/_lib/git_convention.ts +291 -0
  363. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  364. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  365. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  366. package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
  367. package/src/scripts/_lib/graph_feeder_record.ts +236 -13
  368. package/src/scripts/_lib/installed_layer.ts +448 -23
  369. package/src/scripts/_lib/knowledge_global.ts +14 -1
  370. package/src/scripts/_lib/module_reach.ts +456 -0
  371. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  372. package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
  373. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  374. package/src/scripts/_lib/ratification_subject.ts +92 -0
  375. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  376. package/src/scripts/_lib/release_highlights.ts +5 -0
  377. package/src/scripts/_lib/rule_law_section.ts +1 -1
  378. package/src/scripts/_lib/rule_obligations.ts +205 -0
  379. package/src/scripts/_lib/self_repair.ts +1 -1
  380. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  381. package/src/scripts/_lib/test_red_state.ts +5 -0
  382. package/src/scripts/_lib/thin_rules.ts +83 -3
  383. package/src/scripts/_lib/touched_file_quality.ts +142 -6
  384. package/src/scripts/_lib/worker_budget.ts +1 -1
  385. package/src/scripts/adr/regenerate_index.ts +16 -1
  386. package/src/scripts/ai_council/config.ts +7 -7
  387. package/src/scripts/ai_council/modification_review.ts +100 -0
  388. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  389. package/src/scripts/ai_council/orchestrator.ts +5 -5
  390. package/src/scripts/ai_council/spend_gate.ts +18 -7
  391. package/src/scripts/ai_team/config.ts +11 -16
  392. package/src/scripts/audit_user_type_axis.ts +20 -8
  393. package/src/scripts/bench_ab_clone.ts +1 -2
  394. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  395. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  396. package/src/scripts/check_agent_artifact_location.ts +36 -0
  397. package/src/scripts/check_branch_freshness.ts +147 -24
  398. package/src/scripts/check_enforcement_coverage.ts +130 -0
  399. package/src/scripts/check_evaluator_budgets.ts +4 -0
  400. package/src/scripts/check_finding_dispositions.ts +88 -25
  401. package/src/scripts/check_gate_coverage.ts +4 -3
  402. package/src/scripts/check_gate_reachability.ts +48 -1
  403. package/src/scripts/check_generator_sync.ts +48 -0
  404. package/src/scripts/check_hook_bundle_composition.ts +107 -0
  405. package/src/scripts/check_kernel_edit_ratified.ts +86 -6
  406. package/src/scripts/check_pack_size.ts +1 -1
  407. package/src/scripts/check_release_manifest_content.ts +189 -0
  408. package/src/scripts/check_standing_rule_delivery.ts +96 -0
  409. package/src/scripts/check_suppression_hygiene.ts +2 -5
  410. package/src/scripts/ci_settle.ts +42 -5
  411. package/src/scripts/classify_merge_risk.ts +320 -0
  412. package/src/scripts/closure_scan.ts +91 -1
  413. package/src/scripts/command_suggester/settings.ts +8 -108
  414. package/src/scripts/command_suggester/types.ts +4 -5
  415. package/src/scripts/consumer_matrix.ts +102 -0
  416. package/src/scripts/context_hygiene_hook.ts +13 -23
  417. package/src/scripts/cost/preflight.mjs +12 -1
  418. package/src/scripts/council_cli.ts +7 -7
  419. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  420. package/src/scripts/explain_run.ts +8 -13
  421. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  422. package/src/scripts/generate_host_cost_table.ts +20 -3
  423. package/src/scripts/handoff_context_hook.ts +86 -37
  424. package/src/scripts/hook_manifest.json +1 -1
  425. package/src/scripts/hook_manifest.yaml +25 -6
  426. package/src/scripts/hooks/block_config_weakening.ts +48 -5
  427. package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
  428. package/src/scripts/hooks/concern_registry.ts +2 -0
  429. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  430. package/src/scripts/hooks/evidence_independence.ts +12 -4
  431. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  432. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  433. package/src/scripts/hooks/rule_inject_hook.ts +44 -3
  434. package/src/scripts/hooks/state_io.ts +8 -4
  435. package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
  436. package/src/scripts/hooks/turn_end_gate_hook.ts +1 -0
  437. package/src/scripts/install-hooks.sh +42 -14
  438. package/src/scripts/install.ts +7 -31
  439. package/src/scripts/lint_blocker_citations.ts +198 -0
  440. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  441. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  442. package/src/scripts/lint_pack_boundaries.ts +406 -28
  443. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  444. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  445. package/src/scripts/lint_rule_law_section.ts +151 -21
  446. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  447. package/src/scripts/lint_settings_classes.ts +1 -1
  448. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  449. package/src/scripts/lint_workflow_security.ts +12 -1
  450. package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
  451. package/src/scripts/model_rule_injection.ts +3 -3
  452. package/src/scripts/onboarding_gate_hook.ts +7 -6
  453. package/src/scripts/print_required_checks.ts +15 -3
  454. package/src/scripts/probe_host_compliance.ts +33 -5
  455. package/src/scripts/probe_turnaround.ts +183 -3
  456. package/src/scripts/ratification_header.ts +77 -0
  457. package/src/scripts/refusal_envelope.ts +138 -0
  458. package/src/scripts/release_publication.ts +29 -3
  459. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  460. package/src/scripts/report_installed_rule_links.ts +118 -1
  461. package/src/scripts/report_module_reach.ts +212 -0
  462. package/src/scripts/report_obligation_mechanism.ts +16 -18
  463. package/src/scripts/report_parked_blockers.ts +222 -0
  464. package/src/scripts/report_required_checks_drift.ts +196 -0
  465. package/src/scripts/report_skill_ranker_confusion.ts +103 -2
  466. package/src/scripts/report_standing_payload_by_host.ts +1 -1
  467. package/src/scripts/routing_doctor.ts +2 -2
  468. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  469. package/src/scripts/schemas/command.schema.json +1 -1
  470. package/src/scripts/schemas/skill.schema.json +1 -1
  471. package/src/scripts/self_review_gate.ts +39 -2
  472. package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
  473. package/src/scripts/sync_pr_branch.ts +403 -132
  474. package/src/scripts/trigger_eval_grandfather.json +0 -16
  475. package/src/server/schemas/settings.ts +33 -177
  476. package/src/shared/skillRanking.ts +53 -4
  477. package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
  478. package/src/scripts/_lib/config_chain.ts +0 -477
  479. package/src/scripts/_lib/conformance_report.ts +0 -403
  480. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  481. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  482. package/src/scripts/_lib/file_slicer.ts +0 -117
  483. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  484. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  485. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  486. package/src/scripts/_lib/role_split.ts +0 -338
@@ -0,0 +1,205 @@
1
+ # The ticket, the commit subject and the branch name
2
+
3
+ Detail for [`git-workflow`](../SKILL.md) and
4
+ [`conventional-commits-writing`](../../conventional-commits-writing/SKILL.md).
5
+ The one place that says how a ticket is read out of a branch name, where it goes
6
+ in a commit subject, which convention is in force, and how a branch name is
7
+ rendered. `/commit`, `/commit:in-chunks`, `/fix:commit-messages`,
8
+ `/create-pr:description-only`, `/worktree:create` and the `jira-integration`
9
+ skill defer here.
10
+
11
+ The rules are code: `agent-config git:convention` runs them, and the commands
12
+ call it. This page is what a command reads **when the verb cannot run** — no
13
+ `agent-config` on `PATH`, or exit `2` for a usage or unknown-verb error. Then
14
+ apply the generated block below by reading, say once that the verb was
15
+ unavailable, and never invent a grammar the block does not show. Exit `2` with
16
+ `no subjects on stdin — the verb ran` is not that case: the verb ran and
17
+ received nothing, so pipe the subjects again rather than falling back.
18
+
19
+ ## Reading the ticket
20
+
21
+ `agent-config git:convention ticket [BRANCH] [--keys "<line>"]` — the current
22
+ branch when `BRANCH` is omitted. It prints `ticket <ID>` or `ticket none`, then
23
+ every candidate with its status:
24
+
25
+ - **Every match counts**, in order, wherever it sits (`feat/DEV-1234/...`,
26
+ `DEV-1234-device-export`, `fix/DEV-1234-quantity` → `DEV-1234`). The match
27
+ never depends on `git.branch_pattern`, so a branch named before the pattern was
28
+ set still yields its ticket. The first candidate with status `ticket` wins.
29
+ - **`standard-name`** — a key in the denylist (`UTF-8`, `ISO-8601`, `SHA-256`,
30
+ `CVE-2026-12345`, `CWE-79`) is never a ticket, with or without a card:
31
+ `fix/CVE-2026-12345-patch` yields none.
32
+ - **`version-like`** — without a card, a protocol or language name followed
33
+ by a one-digit number (`HTTP-2`, `PHP-8`; the list is the `version-like names`
34
+ row below) is a major version, not a ticket: `feat/HTTP-2-support` yields
35
+ none. Two or more digits (`PHP-12`) read as a ticket, and a card that lists
36
+ the key keeps it a ticket.
37
+ - **Case** — without a card only an upper-case key is detected, so
38
+ `feat/dev-12-export` yields none. With `--keys`, a key written in any case is
39
+ matched against the card and reported upper-cased (`dev-12` → `DEV-12`).
40
+ - **`unknown-key`** — `--keys` takes the `ticket_keys` line of the approved
41
+ convention card (`agents/memory/curated/conventions/approved/commit-subject.md`,
42
+ see the [`conventional-commits-writing`](../../conventional-commits-writing/SKILL.md)
43
+ skill § 4), as the caller reads it. A candidate whose key is not on it is
44
+ asked about by `/commit` — a yes adds the key to the card — and omitted by
45
+ `/commit:in-chunks`. Without a card the grammar, the denylist and the
46
+ version-like names decide alone.
47
+ - **`proposal`** — without `--keys`, a commitlint config's `issuePrefixes` are
48
+ printed as a proposed `ticket_keys` line. Offer it; the verb writes nothing.
49
+
50
+ ## Placing the ticket
51
+
52
+ | `git.commit_format` | With a ticket | Without a ticket |
53
+ |---|---|---|
54
+ | `ticket-scope` (default) | `feat(DEV-1234): add export filter` | `feat: add export filter` — never `feat(): …` |
55
+ | `ticket-conventional` | `DEV-1234 feat(exporter): add export filter` | `feat(exporter): add export filter` |
56
+
57
+ Under `ticket-conventional` **a ticket is never in the scope** — not as the
58
+ scope, not inside a compound one (`feat(api,DEV-1234)` fails). The scope names
59
+ the system area (`api/audio`, `ci`), only where it adds clarity.
60
+
61
+ **Under an approved family** (the card's `dominant_family`) the ticket is
62
+ optional, as under `ticket-conventional`: with a ticket it stands in the
63
+ family's leading position (`[DEV-1234] Add export filter`), without one the
64
+ subject is the family's form without the ticket part (`Add export filter`), and
65
+ a ticket anywhere else fails. A branch without a ticket is therefore never a
66
+ stop under a card.
67
+
68
+ Git's own `fixup!`, `squash!`, `amend!` and `Revert "…"` subjects are valid under
69
+ both `git.commit_format` values and under every family: git writes them itself,
70
+ so the same rule holds everywhere a subject is checked.
71
+
72
+ **Area scope under `/commit:in-chunks`.** Several commits on one branch carry the
73
+ same ticket in front of each; the scope is chosen per commit from the area that
74
+ commit touches, and dropped where no single area fits. A chunk never inherits
75
+ another chunk's scope.
76
+
77
+ ## Which convention is in force
78
+
79
+ `agent-config git:convention subject` reads subjects on stdin, one per line, and
80
+ resolves the convention in this order — the first that applies decides:
81
+
82
+ 1. **A declaration** — `git.commit_format` in `.git-convention.yml` (either
83
+ value; ADR-283), or a developer settings file value other than the template
84
+ default. The rule is one for both values: `settings:sync` writes the
85
+ template default into every project file, so a default there cannot be told
86
+ apart from an insert and never outranks an approved card, whichever value
87
+ the default is; today that makes `ticket-conventional` the only developer
88
+ value that counts.
89
+ 2. **An approved measurement** — the card's `dominant_family`.
90
+ 3. **The default** — Conventional Commits (`ticket-scope`).
91
+
92
+ When the third case decides — no declaration and no approved card — and the
93
+ repository has no commitlint config, `subject` and `show` add the line `no convention established — run git:convention measure`
94
+ (`convention_established: false` under `--json`); the exit is unchanged.
95
+ A commitlint config is the repository's own subject validator, so it
96
+ establishes the convention: no such line, and `measure` says the config governs.
97
+ `agent-config git:convention measure [--limit N] [--family F] [--json]` then reads
98
+ the history of the default branch — the one the server names, else
99
+ `refs/remotes/origin/HEAD`; with neither it samples nothing, exits 1 and says so
100
+ (`trunk_unresolved` under `--json`) rather than guess one. It proposes a subject family when one clears the `measure bar` row
101
+ of the block below, otherwise names the two strongest; it proposes a
102
+ `branch_pattern` from the remote branch names, or `no clear pattern`; and it
103
+ shows the observed update style, which is never adopted. Where the chosen family
104
+ maps to a `git.commit_format` value or a pattern was proposed, it prints the
105
+ ready-to-commit content of `.git-convention.yml` (`commit_format`,
106
+ `branch_pattern`, never `update_strategy`); the verb writes nothing. A human
107
+ creates and commits that file, or, on the user's yes this turn,
108
+ `agent-config git:convention init --yes [--commit-format F] [--branch-pattern P]`
109
+ creates it once — never over an existing carrier, never `update_strategy`, and
110
+ uncommitted (ADR-283 § Creation). `/commit` asks the user once and writes the answer
111
+ to the approved card.
112
+
113
+ A repository validator — a `commit-msg` hook, a commitlint config (any of its
114
+ config files, or a `commitlint` key in the package manifest) — does not decide, and
115
+ the verb never guesses what it accepts: a hook's existence says nothing about
116
+ what it checks, and a config is only known by running it. Each one found adds a
117
+ `note:` line (and a `notes` entry under `--json`) saying it also runs at commit
118
+ time and may be stricter; the exit is the verdict of the order above alone. A
119
+ hook counts only where git will run it — the path git resolves, so
120
+ `core.hooksPath` is respected and `.husky/commit-msg` counts only when
121
+ `core.hooksPath` points at `.husky`. When the validator rejects a commit the
122
+ verb passed, the rejection is the answer: fix the subject or settle the two in
123
+ `.git-convention.yml`.
124
+
125
+ A format that cannot be read (`malformed`, `invalid`, `discarded`), or an
126
+ approved family with no grammar, exits `1` with the line that says why; it is
127
+ never read as the default.
128
+ Exit `1` also lists each failing subject with the rule it broke. Exit `2` is a
129
+ usage error; an empty stdin is one, and says `the verb ran`. How a family is measured and approved is the
130
+ [`conventional-commits-writing`](../../conventional-commits-writing/SKILL.md)
131
+ skill's procedure; this page only consumes its card.
132
+
133
+ ## A title that becomes a commit
134
+
135
+ Where the forge squash-merges — the method `/pr:merge` § 9 reads — the pull
136
+ request title becomes the commit subject on the base, so `/create-pr:description-only`
137
+ § 3 builds it as a subject in the convention in force and checks it through
138
+ `git:convention subject`, for `ticket-scope` as well as for `ticket-conventional`.
139
+ Under any other merge method the title stays `DEV-1234: summary`.
140
+
141
+ ## Rendering a branch name
142
+
143
+ `agent-config git:convention branch --slug <slug> [--type <type>] [--ticket <ID>]`
144
+ renders `git.branch_pattern` (default `{type}/{slug}`) and prints the name:
145
+
146
+ - an empty placeholder drops with the separator after it, or the one before it
147
+ when it is last (`{ticket}-{slug}` without a ticket → `<slug>`);
148
+ - a ticket the pattern has no slot for prefixes the slug
149
+ (`{type}/{slug}` → `feat/DEV-1234-export`);
150
+ - a literal character of the pattern is never rewritten, and a value outside
151
+ `[A-Za-z0-9._-]` is refused (exit `1`), not repaired.
152
+
153
+ A guideline that shows another shape, such as `{type}/{ticket-id}/{short-description}`,
154
+ describes a team habit; the name the agent creates follows the declared pattern.
155
+
156
+ ## The grammar
157
+
158
+ <!-- BEGIN GENERATED: git-convention-grammar -->
159
+ <!-- Written by `./scripts-run src/scripts/generate_git_convention_grammar` from `src/scripts/_lib/git_convention_grammar.ts` and `src/scripts/_lib/git_convention_measure.ts`; edit the modules, never this block. -->
160
+
161
+ ```
162
+ ticket [A-Z][A-Z0-9]+-[0-9]+
163
+ ticket in text (?<![A-Za-z0-9])[A-Z][A-Z0-9]+-[0-9]+(?![0-9])
164
+ standard names UTF ISO SHA RFC CVE CWE GHSA
165
+ version-like names HTTP HTTPS TLS SSL OAUTH PHP PYTHON JAVA JDK NODE ES HTML CSS (one-digit number, no card)
166
+ format ticket-scope ^(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+
167
+ format ticket-conventional ^([A-Z][A-Z0-9]+-[0-9]+ )?(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+
168
+ family conventional ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([^)]+\))?!?:
169
+ family ticket-conventional ^[A-Z][A-Z0-9]+-[0-9]+ (build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([^)]+\))?!?:
170
+ family ticket-prefix ^\[[A-Z][A-Z0-9]+-[0-9]+\][: ]|^[A-Z][A-Z0-9]+-[0-9]+[: ]
171
+ family gitmoji ^:[a-z0-9_+-]+:[[:space:]]|^[^ -~[:cntrl:][:space:]]
172
+ family imperative-plain ^[A-Z][a-z]+[[:space:]].*[^.]$
173
+ family ticket-prefix, no ticket ^\S.* (no ticket elsewhere in the subject)
174
+ family ticket-conventional, no ticket ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([^)]+\))?!?: (no ticket elsewhere in the subject)
175
+ any format or family ^((fixup|squash|amend)! .+|Revert ".+")$ (git's own subjects)
176
+ measure sample newest 200 non-merge commits since 24 months ago, or regardless of age when that window yields fewer than 30; bots, automation subjects, commits over 500 files dropped
177
+ measure bar n >= 30; >= 80 % capped at 20 per author per half (3+ authors), else >= 90 % uncapped; both halves agree
178
+ measure migration the newer half, or the newest 30 commits, clearing the bar on another family than the dominant one: "migrating to <family>", and that family is proposed
179
+ measure branches >= 10 remote branch names, top shape >= 80 %
180
+ ```
181
+
182
+ Formats are JavaScript / PCRE syntax; families are POSIX extended, matched in
183
+ order, first hit wins. Under `format ticket-conventional` and `family
184
+ ticket-conventional` a ticket anywhere inside the scope fails, and a standard
185
+ name in the ticket position fails. A ticket is found in a branch or scope only as
186
+ a whole token (`ticket in text`). Without a card, a version-like name — one of
187
+ the keys above with a one-digit number, such as `HTTP-2` or `PHP-8` — is not a
188
+ ticket; `HTTP2-1` still has the ticket shape. A convention card's `ticket_keys`
189
+ settles both, and matches a key written in lower case; without a card a
190
+ lower-case key is never detected.
191
+ <!-- END GENERATED: git-convention-grammar -->
192
+
193
+ ## Patterns that are not this grammar
194
+
195
+ - **Suggester metadata.** The `trigger_context:` frontmatter of
196
+ `src/domains/engineering-base/implement-ticket/command.md` and
197
+ `src/domains/product-basic/estimate-ticket/command.md`, and the same literal in
198
+ `src/scripts/migrate_command_suggestions.ts`, match a bare-key ticket in a
199
+ prompt to decide when a command is suggested. They keep their own pattern:
200
+ changing it changes when a command is offered.
201
+ - **The suggester's matcher.** `src/scripts/command_suggester/match.ts` carries
202
+ the ticket grammar above; a test pins the two equal.
203
+ - **A project key in a ticket body.** `src/scripts/refine_ticket_detect.ts` reads
204
+ a project key out of ticket text, not a branch, and is intentionally
205
+ independent.
@@ -54,7 +54,7 @@ fix/DEV-5678/null-pointer → DEV-5678
54
54
  hotfix/DEV-999/critical-fix → DEV-999
55
55
  ```
56
56
 
57
- Pattern: `[A-Z]+-[0-9]+` anywhere in the branch name.
57
+ Read it with `agent-config git:convention ticket` — [`commit-subject`](../git-workflow/references/commit-subject.md) § Reading the ticket.
58
58
 
59
59
  Use `git branch --show-current` to detect, then fetch the ticket:
60
60
 
@@ -147,8 +147,8 @@ POST /issue/DEV-1234/transitions
147
147
  ## Linking to PRs
148
148
 
149
149
  When creating PRs, include the Jira ticket in:
150
- - **Branch name:** `feat/DEV-1234/description`
151
- - **PR title:** `feat(DEV-1234): description`
150
+ - **Branch name and PR title:** rendered by `agent-config git:convention branch` and
151
+ built per [`commit-subject`](../git-workflow/references/commit-subject.md)
152
152
  - **PR description:** Link to the ticket
153
153
 
154
154
  ## Related
@@ -222,10 +222,16 @@ git add .
222
222
 
223
223
  | Approach | When to use |
224
224
  |---|---|
225
- | `git merge main` | Default — preserves history, safer for shared branches |
226
- | `git rebase main` | Only when explicitly asked — rewrites history, cleaner log |
227
-
228
- **Never rebase without explicit permission** (per `no-commit` rule).
225
+ | `git merge main` | Default (`git.update_strategy: merge`) — preserves history, safer for shared branches |
226
+ | `git rebase origin/main` | `git.update_strategy: rebase` picks it — rewrites history, linear log |
227
+
228
+ The setting picks the operation; it never authorises it. A rebase of a branch
229
+ that is already pushed still needs the user's answer this turn, per
230
+ [`git-history-discipline`](../../rules/git-history-discipline.md) § When rewrite is
231
+ allowed — an explicit ask, an unrevoked standing instruction, or a `pull
232
+ --rebase` the user started. Under `rebase` conflicts surface per commit, and the protocol — permission,
233
+ stops, recovery ref, the equivalence report afterwards — is
234
+ [`git-workflow` › branch-update](../git-workflow/references/branch-update.md).
229
235
 
230
236
  ## Output format
231
237
 
@@ -81,7 +81,7 @@ not name an implementation**. Use Given / When / Then or a numbered
81
81
  list. Reject ACs that hide assumptions ("works correctly", "is fast
82
82
  enough") — replace with measurable thresholds or strike them.
83
83
 
84
- **Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md), gated by `consistency.cross_source`): when the raw input includes a screenshot / mockup alongside the story text, check the sources against each other and surface any conflict as a `gap` / open question — never resolve it silently. Watch for: story text contradicting an attached screenshot; the AC contradicting the description; a clearly-needed behavior the input never states (weekend/holiday shift, empty/error state). Batch them into one clarifying question. Taxonomy: [`cross-source-consistency-mechanics`](../../guidelines/agent-infra/cross-source-consistency-mechanics.md).
84
+ **Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md)): when the raw input includes a screenshot / mockup alongside the story text, check the sources against each other and surface any conflict as a `gap` / open question — never resolve it silently. Watch for: story text contradicting an attached screenshot; the AC contradicting the description; a clearly-needed behavior the input never states (weekend/holiday shift, empty/error state). Batch them into one clarifying question. Taxonomy: [`cross-source-consistency-mechanics`](../../guidelines/agent-infra/cross-source-consistency-mechanics.md).
85
85
 
86
86
  ### 5. Surface non-functional gaps
87
87
 
@@ -86,8 +86,8 @@ selected language.
86
86
  Reuses the `jira-ticket` command's loader. Accepts:
87
87
 
88
88
  1. **Ticket key** — `/refine-ticket PROJ-123`
89
- 2. **Branch detection** — `/refine-ticket` with no arg; regex
90
- `[A-Z]+-[0-9]+` against `git branch --show-current`
89
+ 2. **Branch detection** — `/refine-ticket` with no arg; `agent-config git:convention ticket`
90
+ on the current branch ([`commit-subject`](../git-workflow/references/commit-subject.md) § Reading the ticket)
91
91
  3. **Pasted text** — `/refine-ticket` followed by a markdown block
92
92
  4. **URL** — `/refine-ticket https://acme.atlassian.net/browse/PROJ-123`
93
93
 
@@ -144,7 +144,7 @@ Check the loaded ticket for clarity signals before orchestrating:
144
144
  - Is the scope one feature, or multiple tangled together?
145
145
  - Any sentence that references an existing module name, feature flag, or domain concept?
146
146
 
147
- **Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md), gated by `consistency.cross_source`): the ticket is rarely a single source. Compare every source against the others and surface any conflict as an *Open question* — never resolve it silently:
147
+ **Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md)): the ticket is rarely a single source. Compare every source against the others and surface any conflict as an *Open question* — never resolve it silently:
148
148
  - **text ↔ attachment** — does the ticket text agree with every attached mockup / screenshot / diagram? (Canonical miss: text says "birthdays **today**", the mockup shows a birthday from two days ago.) If an attachment cannot be read, say so — do not assume it agrees.
149
149
  - **silent-but-needed** — is the spec silent on a clearly-needed behavior (weekend/holiday shift, empty state, error path, timezone, permissions)? Surface it and ask before it becomes an implementation assumption — an inferred behavior is a scope expansion, not a given.
150
150
  - **intra-ticket** — do the AC, description, and comments contradict each other?
@@ -347,7 +347,7 @@ DoR check — not automatically on every refinement.
347
347
  - The model tends to invent risks that sound plausible but aren't anchored in the ticket text. Every risk in Top-5 must cite a phrase, AC bullet, or sub-skill finding — no hypotheticals.
348
348
  - Persona voices degrade into generic platitudes when the ticket is already tight. If a persona has nothing real to flag, write one sentence stating that — do not pad.
349
349
  - Sub-skills (`validate-feature-fit`, `threat-modeling`) cost tokens; orchestrate only when the trigger matrix actually matches, not defensively on every run.
350
- - Branch-detection matches the first `[A-Z]+-[0-9]+` in the branch name; chained keys (e.g. `feat/PROJ-1-and-PROJ-2`) pick the first and note the rest.
350
+ - Branch-detection takes the first `ticket` that `git:convention ticket` prints; chained keys (e.g. `feat/PROJ-1-and-PROJ-2`) pick the first and note the rest.
351
351
 
352
352
  ## Do NOT
353
353
 
@@ -100,8 +100,8 @@ roadmaps.
100
100
  When the roadmap originates from a ticket/spec that carries a second
101
101
  source — an attached mockup/screenshot, a code reality, or an internal
102
102
  contradiction — run the **cross-source discrepancy scan** (per
103
- [`cross-source-consistency`](../../rules/cross-source-consistency.md),
104
- gated by `consistency.cross_source`) before writing phases. A phase plan
103
+ [`cross-source-consistency`](../../rules/cross-source-consistency.md))
104
+ before writing phases. A phase plan
105
105
  built over a text↔image contradiction or a silent-but-needed behavior
106
106
  (weekend/holiday shift, empty/error state) bakes the wrong assumption into
107
107
  every downstream step. Surface each discrepancy as one batched open
@@ -242,6 +242,8 @@ finding never silently becomes a hard gate. Both halves, specified in
242
242
  - **Reflexion** — [arxiv.org/abs/2303.11366](https://arxiv.org/abs/2303.11366)
243
243
  Language agents that reinforce from verbal self-reflection on past
244
244
  trials. This pipeline adapts Reflexion by gating promotion with a
245
- human review step — learnings only harden into rules/skills after
246
- explicit approval, never auto-commit.
245
+ review step — learnings only harden into rules/skills after explicit
246
+ approval, never auto-commit: for a proposal scoped to the package, on
247
+ the AI council's ratification record (user as last rung, ADR-281); for
248
+ a change a user asked for, on that user's approval.
247
249
 
@@ -117,7 +117,7 @@ card may exist in the per-user file-first store
117
117
  `evidence_report.ts add --bucket assumed --origin global …` and **re-confirm it
118
118
  against the live source this session** before use (version skew / schema drift
119
119
  across projects). Never "Verified" on the global card alone.
120
- - A `public`/`vendor` card seen in ≥ `auto_promote_threshold` distinct repos
120
+ - A `public`/`vendor` card seen in ≥ 2 distinct repos
121
121
  triggers a one-tap promotion **suggestion** (never silent). `proprietary` cards
122
122
  are manual-only and never auto-shared. Record sightings via
123
123
  `_lib/knowledge_global_promote.ts record-seen`.
@@ -97,7 +97,9 @@ Token authoring (DTCG 3-layer model, CSS-var/Tailwind generation) lives
97
97
  in [`design-tokens`](../design-tokens/SKILL.md); its
98
98
  `tokens.ts validate --dir <path>` is the **single token-discipline
99
99
  linter** — the mechanical check behind this rule (no hardcoded hex / px /
100
- rem outside the token files). Greenfield Tailwind config: bundled
100
+ rem outside the token files). That skill ships with the `frontend-design`
101
+ pack: without it the rule above still binds and is checked by reading,
102
+ not by a linter. Greenfield Tailwind config: bundled
101
103
  `scripts/tailwind_config_gen.ts` (Apache-2.0-derived, pure templating)
102
104
  scaffolds `tailwind.config.{js,ts}` per framework.
103
105
 
@@ -206,7 +206,7 @@ Backstop grep — skip/xfail added to chase green (a hit in a diff that also "fi
206
206
  rg -n '\b(it|test|describe)\.skip\b|\.only\b|xit\(|xdescribe\(|@pytest\.mark\.(skip|xfail)|@Disabled|->markTestSkipped\(' .
207
207
  ```
208
208
 
209
- This is the test-surface instance of the `autonomous-execution` N=3 / allowlist-growth antipattern (bulk `skip`/`xfail` to force green counts as the tool being wrong, not the content) and the `verify-before-complete` floor (green must be *earned*, not manufactured).
209
+ This is the test-surface instance of the `autonomous-execution` allowlist-growth antipattern (bulk `skip`/`xfail` to force green counts as the tool being wrong, not the content) and the `verify-before-complete` floor (green must be *earned*, not manufactured).
210
210
 
211
211
  ### The named smells — canonical vocabulary, and what it does NOT cover
212
212
 
@@ -136,7 +136,7 @@ passes. For the global location, skip — path is outside the repo.
136
136
  ### 4. Create the worktree
137
137
 
138
138
  ```bash
139
- git worktree add .worktrees/<branch-name> -b <branch-name>
139
+ git worktree add ".worktrees/<branch-name>" -b "<branch-name>"
140
140
  ```
141
141
 
142
142
  **Then address the worktree by flag, not by `cd`.** Every tool that matters
@@ -75,7 +75,7 @@ regressions are detectable. Pick the verdict commands per the project's
75
75
  |---|---|---|
76
76
  | `threshold` | all targeted checks green | numeric pass bar, **absolute** (fraction of total), not "± N tests" |
77
77
  | `allow_regressions` | `false` | a revision breaking a baseline-green check stops the loop |
78
- | `max_attempts` | **3** | hard cap (test feedback is more actionable than diff critique → one more than `do-and-judge`'s 2; bounded by [`autonomous-execution`](../../rules/autonomous-execution.md) N=3) |
78
+ | `max_attempts` | **3** | hard cap, this loop's own number (test feedback is more actionable than diff critique → one more than `do-and-judge`'s 2); independent of [`autonomous-execution`](../../rules/autonomous-execution.md)'s `execution.fix_loop_max` budget, which now defaults to 10 |
79
79
  | `plateau_window` | 3 | stop if the last *window* scores sit within `tolerance` |
80
80
  | `tolerance` | small absolute fraction | flake jitter that does **not** count as improvement |
81
81
 
@@ -294,7 +294,7 @@ iter2 fixes A, breaks B, 92% → "PASS" ✗ regression ignored
294
294
  phantom-verification check bound at step 3.4, with its fixture corpus in
295
295
  `tests/fixtures/tamper-corpus/` and its polarity proven both ways by
296
296
  `--self-test`.
297
- * [`autonomous-execution`](../../rules/autonomous-execution.md) — the N=3 cap.
297
+ * [`autonomous-execution`](../../rules/autonomous-execution.md) — the `execution.fix_loop_max` cap (this loop's own `max_attempts` is a separate, smaller number).
298
298
  * [`resident-process-governance`](../../docs/contracts/resident-process-governance.md) — the
299
299
  runtime-free constraint this loop honors.
300
300
  * Optional impact pre-step (when a code-graph is present, ADR-124): run
@@ -14,7 +14,7 @@
14
14
  ## Pointers
15
15
 
16
16
  - **Filling out this AGENTS.md** — section templates, capability bullets, multi-agent entry flow, monorepo layout: [`consumer-agents-md-guide`](.augment/contexts/contracts/consumer-agents-md-guide.md).
17
- - **Behavior rules** (9 always-on; rest routed) — [`.augment/rules/`](.augment/rules/). Kernel rules are **immutable**; tighten only via the override registry.
17
+ - **Behavior rules** (9 always-on; rest routed) — [`.augment/rules/`](.augment/rules/). Kernel rules change only by a ratified edit; overrides may tighten.
18
18
  - **Skills (on-demand expertise)** — domain skills surfaced by description, invoked on trigger match: [`.augment/skills/`](.augment/skills/).
19
19
  - **Commands (workflows)** — slash-commands the agent runs end-to-end (`/work`, `/create-pr`, …): [`.augment/commands/`](.augment/commands/).
20
20
  - **Project-specific docs** — your own architecture notes, roadmaps, sessions, contexts: [`agents/`](agents/).