@event4u/agent-config 16.3.0 → 16.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +178 -78
  5. package/README.md +2 -2
  6. package/agents/templates/.ai-council.yml.example +26 -8
  7. package/dist/agent-src/commands/analyze/inbox.md +10 -7
  8. package/dist/agent-src/commands/bug/investigate.md +1 -1
  9. package/dist/agent-src/commands/commit/in-chunks.md +40 -31
  10. package/dist/agent-src/commands/commit.md +72 -33
  11. package/dist/agent-src/commands/condense.md +2 -8
  12. package/dist/agent-src/commands/council/debate.md +11 -7
  13. package/dist/agent-src/commands/council/default.md +10 -9
  14. package/dist/agent-src/commands/council.md +1 -1
  15. package/dist/agent-src/commands/design.md +1 -1
  16. package/dist/agent-src/commands/estimate-ticket.md +1 -1
  17. package/dist/agent-src/commands/feature/explore.md +3 -3
  18. package/dist/agent-src/commands/feature/plan.md +1 -1
  19. package/dist/agent-src/commands/fix/ci.md +17 -3
  20. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  21. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  22. package/dist/agent-src/commands/implement-ticket.md +3 -3
  23. package/dist/agent-src/commands/memory/add.md +4 -16
  24. package/dist/agent-src/commands/memory/load.md +5 -6
  25. package/dist/agent-src/commands/memory/promote.md +3 -16
  26. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  27. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  28. package/dist/agent-src/commands/optimize/deep.md +4 -2
  29. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  30. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  31. package/dist/agent-src/commands/pr/create.md +42 -34
  32. package/dist/agent-src/commands/pr/merge.md +136 -9
  33. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  34. package/dist/agent-src/commands/project/analyze.md +7 -35
  35. package/dist/agent-src/commands/refine-ticket.md +1 -1
  36. package/dist/agent-src/commands/review/changes.md +14 -19
  37. package/dist/agent-src/commands/roadmap/next.md +10 -1
  38. package/dist/agent-src/commands/roadmap/process-full.md +52 -38
  39. package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
  40. package/dist/agent-src/commands/worktree/create.md +7 -3
  41. package/dist/agent-src/commands/worktree/verify.md +2 -1
  42. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  43. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  44. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  45. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  46. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  47. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  48. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  49. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  50. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  51. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  52. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
  53. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  54. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  55. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  56. package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
  57. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  58. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  59. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  60. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  61. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  62. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  63. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  64. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  65. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  66. package/dist/agent-src/guidelines/design-antipatterns.md +1 -1
  67. package/dist/agent-src/guidelines/php/git.md +15 -2
  68. package/dist/agent-src/rules/active-remediation.md +0 -1
  69. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  70. package/dist/agent-src/rules/architecture.md +0 -1
  71. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  72. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  73. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  74. package/dist/agent-src/rules/autonomous-execution.md +0 -1
  75. package/dist/agent-src/rules/brand-consistency.md +0 -1
  76. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  77. package/dist/agent-src/rules/broken-access-control.md +0 -1
  78. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  79. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  80. package/dist/agent-src/rules/code-provenance.md +0 -1
  81. package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
  82. package/dist/agent-src/rules/commit-conventions.md +1 -2
  83. package/dist/agent-src/rules/communication-through-line.md +1 -2
  84. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  85. package/dist/agent-src/rules/context-hygiene.md +5 -5
  86. package/dist/agent-src/rules/copilot-routing.md +1 -2
  87. package/dist/agent-src/rules/council-availability.md +4 -4
  88. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  89. package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
  90. package/dist/agent-src/rules/delegation-policy.md +2 -3
  91. package/dist/agent-src/rules/design-fidelity.md +0 -1
  92. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  93. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  94. package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
  95. package/dist/agent-src/rules/docker-commands.md +0 -1
  96. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  97. package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
  98. package/dist/agent-src/rules/domain-safety-pii.md +0 -1
  99. package/dist/agent-src/rules/domain-safety-retention.md +0 -1
  100. package/dist/agent-src/rules/downstream-changes.md +0 -1
  101. package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
  102. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  103. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  104. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
  105. package/dist/agent-src/rules/finance-safety-floor.md +0 -1
  106. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  107. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  108. package/dist/agent-src/rules/git-history-discipline.md +1 -2
  109. package/dist/agent-src/rules/guidelines.md +0 -1
  110. package/dist/agent-src/rules/history-discipline.md +0 -1
  111. package/dist/agent-src/rules/icon-consistency.md +0 -1
  112. package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
  113. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  114. package/dist/agent-src/rules/invite-challenge.md +0 -1
  115. package/dist/agent-src/rules/laravel-routing.md +1 -2
  116. package/dist/agent-src/rules/laravel-translations.md +0 -1
  117. package/dist/agent-src/rules/legal-safety-floor.md +0 -1
  118. package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
  119. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  120. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
  121. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  122. package/dist/agent-src/rules/media-governance-routing.md +1 -2
  123. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  124. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  125. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  126. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  127. package/dist/agent-src/rules/model-recommendation.md +0 -1
  128. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  129. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  130. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  131. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  132. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  133. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  134. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  135. package/dist/agent-src/rules/output-discipline.md +0 -1
  136. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  137. package/dist/agent-src/rules/persona-governance.md +2 -3
  138. package/dist/agent-src/rules/php-coding.md +0 -1
  139. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  140. package/dist/agent-src/rules/preservation-guard.md +0 -1
  141. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
  142. package/dist/agent-src/rules/question-not-instruction.md +0 -1
  143. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  144. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  145. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
  146. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  147. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  148. package/dist/agent-src/rules/runtime-safety.md +0 -1
  149. package/dist/agent-src/rules/scale-discipline.md +0 -1
  150. package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
  151. package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
  152. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  153. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  154. package/dist/agent-src/rules/session-canary.md +0 -1
  155. package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
  156. package/dist/agent-src/rules/size-enforcement.md +0 -1
  157. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  158. package/dist/agent-src/rules/skill-quality.md +0 -1
  159. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  160. package/dist/agent-src/rules/source-confidentiality.md +0 -1
  161. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  162. package/dist/agent-src/rules/source-of-truth.md +0 -1
  163. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  164. package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
  165. package/dist/agent-src/rules/symfony-routing.md +1 -2
  166. package/dist/agent-src/rules/think-before-action.md +0 -1
  167. package/dist/agent-src/rules/token-budget-discipline.md +14 -48
  168. package/dist/agent-src/rules/token-efficiency.md +0 -1
  169. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  170. package/dist/agent-src/rules/tool-safety.md +0 -1
  171. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  172. package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
  173. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  174. package/dist/agent-src/rules/user-interaction.md +0 -1
  175. package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
  176. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  177. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  178. package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +2 -0
  179. package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
  180. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  181. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  182. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  183. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  184. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  185. package/dist/agent-src/skills/canvas-design/SKILL.md +4 -2
  186. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  187. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  188. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  189. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  190. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  191. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  192. package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +13 -10
  193. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  194. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  195. package/dist/agent-src/skills/fe-design/references/design-patterns.md +49 -2
  196. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  197. package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
  198. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  199. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  200. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  201. package/dist/agent-src/skills/iconography/SKILL.md +4 -2
  202. package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
  203. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  204. package/dist/agent-src/skills/logo-generation/SKILL.md +12 -8
  205. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  206. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  207. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  208. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  209. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
  210. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  211. package/dist/agent-src/skills/svg-authoring/SKILL.md +318 -0
  212. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
  213. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  214. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  215. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  216. package/dist/agent-src/skills/wireframe/SKILL.md +5 -2
  217. package/dist/agent-src/templates/AGENTS.md +1 -1
  218. package/dist/agent-src/templates/agent-settings.md +46 -129
  219. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  220. package/dist/agent-src/templates/command.md +2 -2
  221. package/dist/agent-src/templates/roadmaps.md +6 -1
  222. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  223. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  224. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  225. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  226. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  227. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  228. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  229. package/dist/agent-src/templates/skill.md +1 -1
  230. package/dist/cli/commands/uiRender.js +201 -4
  231. package/dist/cli/commands/uiRenderAsset.js +1308 -0
  232. package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
  233. package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
  234. package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
  235. package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
  236. package/dist/cli/commands/uiRenderAssetTypes.js +145 -0
  237. package/dist/cli/main.js +47 -1
  238. package/dist/cli/registry.js +2 -1
  239. package/dist/cli-delegate/check_update_banner.js +195 -119
  240. package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-4DBG5K7M.js} +5 -5
  241. package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
  242. package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
  243. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  244. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  245. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  246. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  247. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  248. package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
  249. package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
  250. package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
  251. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  252. package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
  253. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  254. package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
  255. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  256. package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
  257. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  258. package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
  259. package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-TMWYUOK4.js} +75 -12
  260. package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
  261. package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
  262. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  263. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  264. package/dist/cli-delegate/cmd_conformance.js +489 -238
  265. package/dist/cli-delegate/cmd_converge.js +3 -3
  266. package/dist/cli-delegate/cmd_doctor.js +15 -12
  267. package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
  268. package/dist/cli-delegate/cmd_explain.js +43 -19
  269. package/dist/cli-delegate/cmd_export.js +10 -10
  270. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  271. package/dist/cli-delegate/cmd_handoff.js +40 -21
  272. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  273. package/dist/cli-delegate/cmd_migrate.js +3 -3
  274. package/dist/cli-delegate/cmd_packs_active.js +4 -3
  275. package/dist/cli-delegate/cmd_prune.js +10 -10
  276. package/dist/cli-delegate/cmd_route_audit.js +7 -7
  277. package/dist/cli-delegate/cmd_route_explain.js +5 -5
  278. package/dist/cli-delegate/cmd_session_recycle.js +9 -7
  279. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  280. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  281. package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
  282. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  283. package/dist/cli-delegate/cmd_sync.js +10 -10
  284. package/dist/cli-delegate/cmd_uninstall.js +10 -10
  285. package/dist/cli-delegate/cmd_update.js +7 -7
  286. package/dist/cli-delegate/cmd_upgrade.js +7 -7
  287. package/dist/cli-delegate/cmd_validate.js +10 -10
  288. package/dist/cli-delegate/cmd_versions.js +5 -5
  289. package/dist/cli-delegate/gate_budget.js +1 -1
  290. package/dist/cli-delegate/gate_execute.js +2 -2
  291. package/dist/cli-delegate/roadmap_gates.js +2 -2
  292. package/dist/discovery/deprecation-report.md +1 -1
  293. package/dist/discovery/discovery-manifest.json +171 -107
  294. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  295. package/dist/discovery/discovery-manifest.summary.md +7 -7
  296. package/dist/discovery/dormancy-report.md +1 -1
  297. package/dist/discovery/orphan-report.md +1 -1
  298. package/dist/discovery/packs.json +41 -22
  299. package/dist/discovery/trust-report.md +3 -3
  300. package/dist/discovery/workspaces.json +16 -11
  301. package/dist/hooks/dispatch.js +2520 -1924
  302. package/dist/hooks/dispatch.sha256 +1 -1
  303. package/dist/hooks/svg_rules.chunk.cjs +1626 -0
  304. package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
  305. package/dist/install/install.mjs +462 -431
  306. package/dist/install/installThinLayer.js +40 -12
  307. package/dist/install/installedRuleLinks.js +105 -19
  308. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  309. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  310. package/dist/mcp/registry-manifest.json +5 -5
  311. package/dist/mcp/server.json +2 -2
  312. package/dist/mcp/server.mjs +3063 -2160
  313. package/dist/router.json +1 -1
  314. package/dist/scripts/_lib/agent_settings.js +15 -120
  315. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  316. package/dist/scripts/_lib/git_convention.js +232 -0
  317. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  318. package/dist/scripts/_lib/installed_layer.js +344 -18
  319. package/dist/scripts/_lib/package_root.js +68 -0
  320. package/dist/scripts/_lib/rule_law_section.js +1 -1
  321. package/dist/scripts/_lib/scan_scope.js +105 -0
  322. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  323. package/dist/scripts/_lib/svg_dom.js +284 -0
  324. package/dist/scripts/_lib/svg_geometry.js +477 -0
  325. package/dist/scripts/_lib/svg_motion.js +179 -0
  326. package/dist/scripts/_lib/svg_rules.js +1337 -0
  327. package/dist/scripts/_lib/svg_urls.js +67 -0
  328. package/dist/scripts/_lib/thin_rules.js +80 -3
  329. package/dist/scripts/lint_svg_asset.js +324 -0
  330. package/dist/server/app.js +2 -1
  331. package/dist/server/gitKeysGate.js +105 -0
  332. package/dist/server/routes/settings.js +67 -8
  333. package/dist/server/routes/wizard.js +4 -0
  334. package/dist/server/schemas/settings.js +23 -81
  335. package/dist/shared/skillRanking.js +30 -4
  336. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  337. package/dist/ui/index.html +1 -1
  338. package/docs/MIGRATION.md +72 -1
  339. package/docs/contracts/settings-classes.md +35 -65
  340. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  341. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  342. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  343. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  344. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  345. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  346. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  347. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  348. package/docs/guidelines/design-antipatterns.md +1 -1
  349. package/docs/guidelines/php/git.md +15 -2
  350. package/package.json +4 -3
  351. package/src/agent-src/scripts/gate_budget.ts +47 -23
  352. package/src/agent-src/scripts/gate_execute.ts +12 -4
  353. package/src/agent-src/templates/AGENTS.md +1 -1
  354. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  355. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  356. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  357. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  358. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  359. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  360. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  361. package/src/config/agent-settings.template.yml +79 -312
  362. package/src/config/agents-paths.yml +16 -0
  363. package/src/config/assurance-capability-registry.json +7 -3
  364. package/src/config/ci-local-parity.yml +3 -0
  365. package/src/config/continuity-surface.json +3 -3
  366. package/src/config/discovery/packs.yml +17 -1
  367. package/src/config/evaluator-budgets.json +19 -6
  368. package/src/config/gate-coverage.yml +65 -23
  369. package/src/config/gate-violation-baselines.json +56 -16
  370. package/src/config/gitignore-block.txt +19 -0
  371. package/src/config/hook-bundle-budget.json +1 -1
  372. package/src/config/release-gate-locality.yml +2 -1
  373. package/src/config/routing-coverage-seed.json +55 -6
  374. package/src/config/rule-law-ceilings.json +12 -6
  375. package/src/config/rule-obligations.json +833 -0
  376. package/src/install/installThinLayer.ts +76 -10
  377. package/src/install/installedRuleLinks.ts +105 -17
  378. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  379. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  380. package/src/scripts/_cli/cmd_doctor.ts +10 -10
  381. package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
  382. package/src/scripts/_cli/cmd_explain.ts +72 -14
  383. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  384. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  385. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  386. package/src/scripts/_cli/doctor_execution.ts +72 -1
  387. package/src/scripts/_dispatch.bash +37 -2
  388. package/src/scripts/_lib/agent_settings.ts +15 -124
  389. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  390. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  391. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  392. package/src/scripts/_lib/git_base_ref.ts +92 -0
  393. package/src/scripts/_lib/git_convention.ts +291 -0
  394. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  395. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  396. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  397. package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
  398. package/src/scripts/_lib/graph_feeder_record.ts +236 -13
  399. package/src/scripts/_lib/installed_layer.ts +448 -23
  400. package/src/scripts/_lib/knowledge_global.ts +14 -1
  401. package/src/scripts/_lib/module_reach.ts +456 -0
  402. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  403. package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
  404. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  405. package/src/scripts/_lib/ratification_subject.ts +92 -0
  406. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  407. package/src/scripts/_lib/release_highlights.ts +5 -0
  408. package/src/scripts/_lib/rule_law_section.ts +1 -1
  409. package/src/scripts/_lib/rule_obligations.ts +205 -0
  410. package/src/scripts/_lib/self_repair.ts +1 -1
  411. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  412. package/src/scripts/_lib/svg_dom.ts +318 -0
  413. package/src/scripts/_lib/svg_geometry.ts +480 -0
  414. package/src/scripts/_lib/svg_motion.ts +208 -0
  415. package/src/scripts/_lib/svg_rules.ts +1453 -0
  416. package/src/scripts/_lib/svg_urls.ts +72 -0
  417. package/src/scripts/_lib/test_red_state.ts +5 -0
  418. package/src/scripts/_lib/thin_rules.ts +83 -3
  419. package/src/scripts/_lib/touched_file_quality.ts +142 -6
  420. package/src/scripts/_lib/verification_command.ts +59 -0
  421. package/src/scripts/_lib/verify_clause.ts +27 -17
  422. package/src/scripts/_lib/worker_budget.ts +1 -1
  423. package/src/scripts/adr/regenerate_index.ts +16 -1
  424. package/src/scripts/ai_council/config.ts +7 -7
  425. package/src/scripts/ai_council/modification_review.ts +100 -0
  426. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  427. package/src/scripts/ai_council/orchestrator.ts +5 -5
  428. package/src/scripts/ai_council/spend_gate.ts +18 -7
  429. package/src/scripts/ai_team/config.ts +11 -16
  430. package/src/scripts/audit_user_type_axis.ts +20 -8
  431. package/src/scripts/bench_ab_clone.ts +1 -2
  432. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  433. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  434. package/src/scripts/check_agent_artifact_location.ts +36 -0
  435. package/src/scripts/check_branch_freshness.ts +147 -24
  436. package/src/scripts/check_enforcement_coverage.ts +130 -0
  437. package/src/scripts/check_evaluator_budgets.ts +4 -0
  438. package/src/scripts/check_finding_dispositions.ts +88 -25
  439. package/src/scripts/check_gate_coverage.ts +4 -3
  440. package/src/scripts/check_gate_reachability.ts +48 -1
  441. package/src/scripts/check_generator_sync.ts +48 -0
  442. package/src/scripts/check_hook_bundle_composition.ts +107 -0
  443. package/src/scripts/check_kernel_edit_ratified.ts +86 -6
  444. package/src/scripts/check_pack_size.ts +1 -1
  445. package/src/scripts/check_release_manifest_content.ts +189 -0
  446. package/src/scripts/check_standing_rule_delivery.ts +96 -0
  447. package/src/scripts/check_suppression_hygiene.ts +2 -5
  448. package/src/scripts/ci_settle.ts +42 -5
  449. package/src/scripts/classify_merge_risk.ts +320 -0
  450. package/src/scripts/closure_scan.ts +91 -1
  451. package/src/scripts/command_suggester/settings.ts +8 -108
  452. package/src/scripts/command_suggester/types.ts +4 -5
  453. package/src/scripts/consumer_matrix.ts +102 -0
  454. package/src/scripts/context_hygiene_hook.ts +13 -23
  455. package/src/scripts/cost/preflight.mjs +12 -1
  456. package/src/scripts/council_cli.ts +7 -7
  457. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  458. package/src/scripts/explain_run.ts +8 -13
  459. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  460. package/src/scripts/generate_host_cost_table.ts +20 -3
  461. package/src/scripts/handoff_context_hook.ts +86 -37
  462. package/src/scripts/hook_manifest.json +1 -1
  463. package/src/scripts/hook_manifest.yaml +25 -6
  464. package/src/scripts/hooks/block_config_weakening.ts +48 -5
  465. package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
  466. package/src/scripts/hooks/block_speaking_inbox_dir.ts +16 -1
  467. package/src/scripts/hooks/concern_registry.ts +2 -0
  468. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  469. package/src/scripts/hooks/design_pass_hook.ts +157 -3
  470. package/src/scripts/hooks/evidence_independence.ts +12 -4
  471. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  472. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  473. package/src/scripts/hooks/rule_inject_hook.ts +44 -3
  474. package/src/scripts/hooks/state_io.ts +8 -4
  475. package/src/scripts/hooks/svg_obligation.ts +497 -0
  476. package/src/scripts/hooks/svg_rules_loader.ts +133 -0
  477. package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
  478. package/src/scripts/hooks/turn_end_gate_hook.ts +6 -3
  479. package/src/scripts/install-hooks.sh +42 -14
  480. package/src/scripts/install.ts +7 -31
  481. package/src/scripts/lint_blocker_citations.ts +198 -0
  482. package/src/scripts/lint_consolidation_lineage.ts +6 -3
  483. package/src/scripts/lint_design_quality.ts +60 -12
  484. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  485. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  486. package/src/scripts/lint_motion_authority_drift.ts +27 -0
  487. package/src/scripts/lint_pack_boundaries.ts +406 -28
  488. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  489. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  490. package/src/scripts/lint_rule_law_section.ts +151 -21
  491. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  492. package/src/scripts/lint_settings_classes.ts +1 -1
  493. package/src/scripts/lint_svg_asset.ts +365 -0
  494. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  495. package/src/scripts/lint_workflow_security.ts +12 -1
  496. package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
  497. package/src/scripts/model_rule_injection.ts +3 -3
  498. package/src/scripts/onboarding_gate_hook.ts +7 -6
  499. package/src/scripts/print_required_checks.ts +15 -3
  500. package/src/scripts/probe_host_compliance.ts +33 -5
  501. package/src/scripts/probe_turnaround.ts +183 -3
  502. package/src/scripts/ratification_header.ts +77 -0
  503. package/src/scripts/refusal_envelope.ts +138 -0
  504. package/src/scripts/release_publication.ts +29 -3
  505. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  506. package/src/scripts/report_installed_rule_links.ts +118 -1
  507. package/src/scripts/report_module_reach.ts +212 -0
  508. package/src/scripts/report_obligation_mechanism.ts +16 -18
  509. package/src/scripts/report_parked_blockers.ts +222 -0
  510. package/src/scripts/report_required_checks_drift.ts +196 -0
  511. package/src/scripts/report_skill_ranker_confusion.ts +103 -2
  512. package/src/scripts/report_standing_payload_by_host.ts +1 -1
  513. package/src/scripts/routing_doctor.ts +2 -2
  514. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  515. package/src/scripts/schemas/command.schema.json +1 -1
  516. package/src/scripts/schemas/skill.schema.json +1 -1
  517. package/src/scripts/self_review_gate.ts +39 -2
  518. package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
  519. package/src/scripts/sync_pr_branch.ts +403 -132
  520. package/src/scripts/trigger_eval_grandfather.json +0 -16
  521. package/src/server/schemas/settings.ts +33 -177
  522. package/src/shared/skillRanking.ts +53 -4
  523. package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
  524. package/src/scripts/_lib/config_chain.ts +0 -477
  525. package/src/scripts/_lib/conformance_report.ts +0 -403
  526. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  527. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  528. package/src/scripts/_lib/file_slicer.ts +0 -117
  529. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  530. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  531. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  532. package/src/scripts/_lib/role_split.ts +0 -338
@@ -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.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: inherit
3
3
  name: iconography
4
- description: "Resolve an icon request to a concrete Iconify name and emit the embedding for the project's stack. Use when adding icons, picking an icon set, or wiring Lucide/Heroicons/Phosphor/Tabler."
4
+ description: "Resolve an icon request to an Iconify name and emit the stack's embedding. Use when adding icons, picking an icon set, or wiring Lucide/Heroicons/Phosphor/Tabler."
5
5
  domain: product
6
6
  personas: []
7
7
  workspaces:
@@ -102,7 +102,9 @@ Inspect stage of the
102
102
  - **No hand-rolled icons when a set exists.** If the project has an icon library
103
103
  or brand mark, use it — do not hand-author a one-off SVG that drifts from the
104
104
  system. Hand-rolling is for a genuinely missing glyph, and then it matches the
105
- set's grid + stroke.
105
+ set's grid + stroke — read the grid, stroke and padding off the set's OWN
106
+ SVGs and author it under [`svg-authoring`](../svg-authoring/SKILL.md), which
107
+ checks the result instead of trusting that it matched.
106
108
  - **Flag substitutions when the exact asset is absent.** When the needed icon or
107
109
  brand mark does not exist in the set, pick the nearest and **state the
108
110
  substitution** ("no exact 'sync' glyph in Heroicons; used `arrow-path`") rather
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: inherit
3
3
  name: image-provider-routing
4
- description: "Select the right image-generation provider from job shape — text-in-image to Ideogram, photoreal to Flux, vector/logo to Recraft, general to Gemini/GPT."
4
+ description: "Pick the image provider from job shape — text-in-image to Ideogram, photoreal to Flux, illustrative vector to Recraft, general to Gemini/GPT."
5
5
  domain: product
6
6
  personas: []
7
7
  workspaces:
@@ -37,13 +37,24 @@ promotion per `provider-lifecycle-discipline`.
37
37
  |---|---|---|
38
38
  | Text-in-image (logo, banner, typographic art) | **Ideogram** | Best glyph rendering; raster models garble text |
39
39
  | Photoreal (product shot, portrait, scene) | **Flux** | Photorealism specialist; routed via fal/Replicate |
40
- | Vector / SVG logo or icon | **Recraft** | Produces genuine `<path>` SVG; raster cannot |
40
+ | Icon the set lacks | `iconography` first, then [`svg-authoring`](../svg-authoring/SKILL.md) | The incumbent set wins; a missing glyph is hand-authored against its grid and checked — no provider involved |
41
+ | Simple geometric mark | [`svg-authoring`](../svg-authoring/SKILL.md) | A `rect`/`circle`/`path` mark is cheaper and more editable hand-authored than generated, and it ends in a file rather than a plan |
42
+ | Complex illustrative vector art | **Recraft** | The only job shape left for a vector provider. State the adapter's lifecycle in the answer: `experimental — scaffold tier, dry-run plumbing only`, so the caller knows no asset is produced |
41
43
  | General art / edit / multimodal | **Gemini-image** or **GPT Image 2** | Broad capability; natural-language prompts |
42
44
  | Budget-conscious 4K upscale | Flux via Replicate | Cost-competitive at high resolution |
43
45
 
44
- Decision order: text-in-image → Ideogram; must-be-vector → Recraft; photoreal → Flux;
45
- everything else → Gemini-image (default) or GPT Image 2 (when OpenAI key available
46
- and editing an existing image).
46
+ Decision order: an icon → the incumbent set, then `svg-authoring` for a missing
47
+ glyph; a simple geometric mark → `svg-authoring`; text-in-image → Ideogram;
48
+ complex illustrative vector art → Recraft, with its scaffold-tier lifecycle
49
+ stated; photoreal → Flux; everything else → Gemini-image (default) or GPT
50
+ Image 2 (when an OpenAI key is available and an existing image is being edited).
51
+
52
+ The split exists because the single "Vector / SVG logo or icon" row sent every
53
+ icon and every geometric mark to an adapter whose header reads `experimental —
54
+ scaffold tier. dry-run plumbing only` and whose live calls exit at
55
+ the adapter's own live-call guard. The routed path ended in a plan;
56
+ the icon floor meanwhile sent icons to the set. Neither produced an asset for
57
+ the one case that needs one — a glyph the set does not have.
47
58
 
48
59
  ## Procedure
49
60
 
@@ -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
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: inherit
3
3
  name: logo-generation
4
- description: "Generate a logo or brand mark — structured prompt + provider routing, with a true-vector path (vector-native provider or LLM-authored SVG). Use for logo or brand mark generation."
4
+ description: "Generate a logo or brand mark — structured prompt, provider routing, and a true-vector path. Use for logo or brand mark generation."
5
5
  domain: product
6
6
  personas:
7
7
  - design-director
@@ -40,9 +40,10 @@ governance. All adapters are scaffold-tier (dry-run) until promoted to `stable`.
40
40
  icon mark / combination), colour palette, do/don't constraints (e.g. "no gradients",
41
41
  "must be legible at 16 px").
42
42
  2. **Choose the path** — raster concept (text-in-mark → Ideogram for legible type)
43
- vs. **true vector** (vector-native provider emitting `<path>` SVG for editable
44
- marks, or LLM-authored SVG for simple geometric marks). Raster output is a
45
- concept only — not a shippable logo asset.
43
+ vs. **true vector** (a vector-native provider for editable marks, or a
44
+ hand-authored one for simple geometric marks — authored under
45
+ [`svg-authoring`](../svg-authoring/SKILL.md), never free-hand). Raster output
46
+ is a concept only — not a shippable logo asset.
46
47
  3. **Inject brand tokens when a brand layer is present** (`pack-brand`) — pull the
47
48
  registered palette, typeface, and spacing tokens. When no brand layer exists,
48
49
  use the brief's palette and type choices directly.
@@ -51,8 +52,11 @@ governance. All adapters are scaffold-tier (dry-run) until promoted to `stable`.
51
52
  provider-specific grammar (text-literal first for Ideogram, `style: vector` param
52
53
  for a vector-native provider, direct SVG authoring for simple geometric shapes).
53
54
  5. **Dry-run + validate** — invoke the adapter (scaffold-tier; returns a dry-run
54
- plan). If the vector path is taken, validate that the output contains `<path>`
55
- elements before treating it as an editable mark.
55
+ plan). If the vector path is taken, the vector verdict comes from
56
+ `lint_svg_asset`'s vector-honesty family plus the render witness, not from
57
+ counting `<path>` elements: a raster embedded beside one dummy path passes
58
+ that count and is not a vector, and a mark built from `rect`/`circle` fails
59
+ it and is one. See [`svg-authoring`](../svg-authoring/SKILL.md).
56
60
  6. **Rights check** — never reproduce a mark that resembles an existing trademarked
57
61
  logo. Run [`image-likeness-and-rights`](../../rules/image-likeness-and-rights.md)
58
62
  when the brief names a brand, references a known mark style, or targets a
@@ -78,8 +82,8 @@ governance. All adapters are scaffold-tier (dry-run) until promoted to `stable`.
78
82
  is `stable` misleads the caller.
79
83
 
80
84
  **Good example:** Brief for a wordmark → route to a vector-native provider with
81
- `style: vector`, validate `<path>` elements in output, note "experimental —
82
- dry-run plan only."
85
+ `style: vector`, run `lint_svg_asset` over the output and confirm it carries no
86
+ embedded raster, note "experimental — dry-run plan only."
83
87
 
84
88
  **Bad example:** Routing a logo brief to a photoreal raster model and delivering the
85
89
  PNG as the final logo file.
@@ -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`.