@event4u/agent-config 9.16.0 → 9.18.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 (227) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/AGENTS.md +1 -1
  3. package/CHANGELOG.md +80 -130
  4. package/README.md +1 -1
  5. package/dist/agent-src/commands/agent-handoff.md +100 -48
  6. package/dist/agent-src/commands/challenge-me/vision.md +5 -0
  7. package/dist/agent-src/commands/commit.md +1 -1
  8. package/dist/agent-src/commands/condense.md +19 -64
  9. package/dist/agent-src/commands/evals/agent-handoff.json +13 -1
  10. package/dist/agent-src/commands/evals/rule-compliance-audit.json +46 -0
  11. package/dist/agent-src/commands/feature/plan.md +20 -0
  12. package/dist/agent-src/commands/feature/roadmap.md +19 -0
  13. package/dist/agent-src/commands/memory/promote.md +14 -1
  14. package/dist/agent-src/commands/mode.md +9 -5
  15. package/dist/agent-src/commands/optimize/deep.md +72 -11
  16. package/dist/agent-src/commands/pr/create.md +29 -0
  17. package/dist/agent-src/commands/roadmap/create.md +29 -0
  18. package/dist/agent-src/commands/rule-compliance-audit.md +28 -5
  19. package/dist/agent-src/contexts/authority/commit-mechanics.md +5 -5
  20. package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
  21. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  22. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +6 -1
  23. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +4 -1
  24. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +27 -1
  25. package/dist/agent-src/contexts/execution/plan-confidence-gate.md +133 -0
  26. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +5 -2
  27. package/dist/agent-src/profiles/agency.yml +3 -3
  28. package/dist/agent-src/profiles/content_creator.yml +2 -2
  29. package/dist/agent-src/profiles/developer.yml +2 -2
  30. package/dist/agent-src/profiles/finance.yml +1 -1
  31. package/dist/agent-src/profiles/founder.yml +2 -2
  32. package/dist/agent-src/profiles/ops.yml +2 -2
  33. package/dist/agent-src/rules/active-remediation.md +2 -0
  34. package/dist/agent-src/rules/architecture.md +4 -2
  35. package/dist/agent-src/rules/augment-edit-discipline.md +2 -0
  36. package/dist/agent-src/rules/autonomous-execution.md +1 -1
  37. package/dist/agent-src/rules/brand-consistency.md +10 -62
  38. package/dist/agent-src/rules/brand-source-of-truth.md +62 -11
  39. package/dist/agent-src/rules/broken-access-control.md +4 -0
  40. package/dist/agent-src/rules/cli-output-handling.md +5 -0
  41. package/dist/agent-src/rules/code-comment-discipline.md +3 -0
  42. package/dist/agent-src/rules/commit-conventions.md +2 -0
  43. package/dist/agent-src/rules/context-hygiene.md +3 -2
  44. package/dist/agent-src/rules/cross-source-consistency.md +3 -0
  45. package/dist/agent-src/rules/design-fidelity.md +2 -0
  46. package/dist/agent-src/rules/doc-screenshot-hygiene.md +2 -0
  47. package/dist/agent-src/rules/docker-commands.md +4 -0
  48. package/dist/agent-src/rules/domain-adoption-policy.md +2 -0
  49. package/dist/agent-src/rules/domain-safety-disclaimer.md +5 -2
  50. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  51. package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
  52. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +9 -0
  53. package/dist/agent-src/rules/image-likeness-and-rights.md +4 -0
  54. package/dist/agent-src/rules/improve-before-implement.md +4 -0
  55. package/dist/agent-src/rules/laravel-routing.md +4 -0
  56. package/dist/agent-src/rules/legal-safety-floor.md +3 -0
  57. package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
  58. package/dist/agent-src/rules/media-governance-routing.md +5 -0
  59. package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
  60. package/dist/agent-src/rules/no-roadmap-references.md +2 -0
  61. package/dist/agent-src/rules/notes-first-reasoning.md +2 -0
  62. package/dist/agent-src/rules/output-discipline.md +9 -2
  63. package/dist/agent-src/rules/php-coding.md +2 -0
  64. package/dist/agent-src/rules/prefer-enums-over-literals.md +3 -0
  65. package/dist/agent-src/rules/provider-lifecycle-discipline.md +5 -0
  66. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +2 -0
  67. package/dist/agent-src/rules/roadmap-progress-sync.md +2 -0
  68. package/dist/agent-src/rules/rule-type-governance.md +2 -0
  69. package/dist/agent-src/rules/scale-discipline.md +3 -0
  70. package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
  71. package/dist/agent-src/rules/security-sensitive-stop.md +9 -2
  72. package/dist/agent-src/rules/senior-engineering-discipline.md +6 -0
  73. package/dist/agent-src/rules/skill-quality.md +2 -0
  74. package/dist/agent-src/rules/source-confidentiality.md +4 -0
  75. package/dist/agent-src/rules/source-discovery-gate.md +3 -0
  76. package/dist/agent-src/rules/source-of-truth.md +2 -0
  77. package/dist/agent-src/rules/strategy-safety-floor.md +2 -0
  78. package/dist/agent-src/rules/think-before-action.md +5 -0
  79. package/dist/agent-src/rules/token-budget-discipline.md +2 -2
  80. package/dist/agent-src/rules/ui-audit-gate.md +2 -0
  81. package/dist/agent-src/rules/user-interaction.md +3 -4
  82. package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
  83. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +4 -4
  84. package/dist/agent-src/skills/copilot-config/SKILL.md +1 -1
  85. package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +7 -4
  86. package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
  87. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -180
  88. package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +100 -0
  89. package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +91 -0
  90. package/dist/agent-src/skills/design-review/SKILL.md +4 -141
  91. package/dist/agent-src/skills/design-review/references/review-communication.md +92 -0
  92. package/dist/agent-src/skills/design-review/references/verification-automation.md +61 -0
  93. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +8 -27
  94. package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +31 -0
  95. package/dist/agent-src/skills/fe-design/SKILL.md +4 -289
  96. package/dist/agent-src/skills/fe-design/references/design-patterns.md +227 -0
  97. package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +75 -0
  98. package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
  99. package/dist/agent-src/skills/persona-writing/SKILL.md +2 -2
  100. package/dist/agent-src/skills/readme-reviewer/SKILL.md +2 -1
  101. package/dist/agent-src/skills/roadmap-management/SKILL.md +10 -0
  102. package/dist/agent-src/skills/roadmap-writing/SKILL.md +12 -1
  103. package/dist/agent-src/skills/rule-writing/SKILL.md +4 -2
  104. package/dist/agent-src/skills/skill-reviewer/SKILL.md +1 -1
  105. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  106. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
  107. package/dist/agent-src/skills/token-optimizer/SKILL.md +2 -2
  108. package/dist/agent-src/skills/ui-component-architect/SKILL.md +6 -3
  109. package/dist/agent-src/templates/agent-settings.md +13 -15
  110. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +6 -2
  111. package/dist/agent-src/templates/persona.md +2 -2
  112. package/dist/agent-src/templates/roadmaps.md +13 -1
  113. package/dist/agent-src/templates/rule.md +1 -1
  114. package/dist/agent-src/templates/scripts/work_engine/directives/ui/_fix_lane.ts +52 -0
  115. package/dist/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +8 -0
  116. package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +6 -0
  117. package/dist/agent-src/templates/scripts/work_engine/intent/classify.ts +56 -4
  118. package/dist/agent-src/templates/skill.md +1 -1
  119. package/dist/cli/registry.js +3 -0
  120. package/dist/cli/registry.js.map +1 -1
  121. package/dist/cli-delegate/chunk-AIIUU73N.js +2040 -0
  122. package/dist/cli-delegate/{chunk-ZXXJLL5K.js → chunk-BSLUHV2F.js} +127 -1487
  123. package/dist/cli-delegate/{chunk-H574KOUH.js → chunk-ELMFOQPW.js} +35 -1
  124. package/dist/cli-delegate/chunk-LF2KKJ4Q.js +183 -0
  125. package/dist/cli-delegate/chunk-VSYT7OHO.js +1382 -0
  126. package/dist/cli-delegate/chunk-XGA2NTU4.js +3727 -0
  127. package/dist/cli-delegate/cmd_conformance.js +4 -3
  128. package/dist/cli-delegate/cmd_converge.js +3 -3
  129. package/dist/cli-delegate/cmd_doctor.js +3 -2
  130. package/dist/cli-delegate/cmd_explain.js +36 -36
  131. package/dist/cli-delegate/cmd_export.js +4 -4
  132. package/dist/cli-delegate/cmd_handoff.js +1169 -0
  133. package/dist/cli-delegate/cmd_memory_get.js +35 -3754
  134. package/dist/cli-delegate/cmd_migrate.js +2 -2
  135. package/dist/cli-delegate/cmd_prune.js +4 -4
  136. package/dist/cli-delegate/cmd_route_audit.js +249 -0
  137. package/dist/cli-delegate/cmd_route_explain.js +285 -0
  138. package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
  139. package/dist/cli-delegate/cmd_sync.js +4 -4
  140. package/dist/cli-delegate/cmd_uninstall.js +4 -4
  141. package/dist/cli-delegate/cmd_update.js +3 -3
  142. package/dist/cli-delegate/cmd_upgrade.js +3 -3
  143. package/dist/cli-delegate/cmd_validate.js +4 -4
  144. package/dist/cli-delegate/cmd_versions.js +3 -3
  145. package/dist/discovery/deprecation-report.md +1 -1
  146. package/dist/discovery/discovery-manifest.json +84 -84
  147. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  148. package/dist/discovery/discovery-manifest.summary.md +1 -1
  149. package/dist/discovery/orphan-report.md +1 -1
  150. package/dist/discovery/packs.json +2 -2
  151. package/dist/discovery/trust-report.md +1 -1
  152. package/dist/discovery/workspaces.json +2 -2
  153. package/dist/hooks/dispatch.js +602 -507
  154. package/dist/install/install.mjs +34 -0
  155. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  156. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  157. package/dist/mcp/registry-manifest.json +4 -4
  158. package/dist/mcp/server.json +2 -2
  159. package/dist/mcp/server.mjs +25 -3
  160. package/dist/router.json +1 -1
  161. package/dist/scripts/_lib/agent_src.js +39 -6
  162. package/dist/scripts/_lib/agent_src.js.map +1 -1
  163. package/dist/server/schemas/settings.js +25 -0
  164. package/dist/server/schemas/settings.js.map +1 -1
  165. package/docs/guidelines/abstraction-thresholds.md +53 -0
  166. package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +1 -1
  167. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +7 -0
  168. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +2 -2
  169. package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +5 -3
  170. package/docs/guidelines/agent-infra/size-and-scope.md +8 -2
  171. package/docs/guidelines/component-oriented-and-oop-development.md +11 -6
  172. package/docs/guidelines/docs/readme-size-and-splitting.md +5 -2
  173. package/llms.txt +1 -0
  174. package/package.json +1 -1
  175. package/src/agent-src/templates/scripts/work_engine/directives/ui/_fix_lane.ts +52 -0
  176. package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +8 -0
  177. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +6 -0
  178. package/src/agent-src/templates/scripts/work_engine/intent/classify.ts +56 -4
  179. package/src/config/agent-settings.template.yml +68 -0
  180. package/src/config/evaluator-budgets.json +8 -11
  181. package/src/config/gate-coverage.yml +70 -0
  182. package/src/scripts/_cli/cmd_explain.ts +41 -36
  183. package/src/scripts/_cli/cmd_handoff.ts +405 -0
  184. package/src/scripts/_cli/cmd_route_audit.ts +290 -0
  185. package/src/scripts/_cli/cmd_route_explain.ts +269 -0
  186. package/src/scripts/_cli/handoff_generate.ts +453 -0
  187. package/src/scripts/_cli/handoff_sessions.ts +435 -0
  188. package/src/scripts/_dispatch.bash +32 -0
  189. package/src/scripts/_lib/agent_src.ts +36 -6
  190. package/src/scripts/_lib/git_env.ts +40 -0
  191. package/src/scripts/_lib/md_table.ts +27 -0
  192. package/src/scripts/_lib/planning_settings.ts +43 -0
  193. package/src/scripts/_lib/release_material.ts +156 -0
  194. package/src/scripts/_lib/router_match.ts +301 -0
  195. package/src/scripts/annotate_r1_outcomes.ts +258 -0
  196. package/src/scripts/check_completion_review.ts +1140 -0
  197. package/src/scripts/check_condensation.ts +2 -1
  198. package/src/scripts/check_finding_dispositions.ts +278 -0
  199. package/src/scripts/check_pack_size.ts +4 -3
  200. package/src/scripts/check_references.ts +1 -0
  201. package/src/scripts/check_release_highlights.ts +300 -0
  202. package/src/scripts/check_release_pr_shape.ts +4 -0
  203. package/src/scripts/check_release_surface_equality.ts +132 -0
  204. package/src/scripts/check_reply_consistency.ts +187 -138
  205. package/src/scripts/compile_router.ts +20 -3
  206. package/src/scripts/dispatch_r2_reviewer.ts +968 -0
  207. package/src/scripts/eval_ui_triviality.ts +156 -0
  208. package/src/scripts/handoff_context_hook.ts +148 -0
  209. package/src/scripts/hook_manifest.yaml +17 -7
  210. package/src/scripts/hooks/concern_registry.ts +2 -0
  211. package/src/scripts/lint_abstraction_thresholds.ts +327 -0
  212. package/src/scripts/lint_framework_leakage_allowlist.json +2 -2
  213. package/src/scripts/lint_plan_risk_register.ts +931 -0
  214. package/src/scripts/lint_profile_personas.ts +153 -0
  215. package/src/scripts/lint_token_budget_discipline.ts +148 -0
  216. package/src/scripts/lint_trigger_collisions.ts +257 -0
  217. package/src/scripts/release.ts +156 -32
  218. package/src/scripts/release_drill.ts +491 -0
  219. package/src/scripts/router_telemetry.ts +16 -290
  220. package/src/scripts/schemas/command.schema.json +33 -0
  221. package/src/scripts/schemas/rule.schema.json +10 -0
  222. package/src/scripts/self_review_gate.ts +41 -3
  223. package/src/scripts/skill_linter.ts +3 -1
  224. package/src/scripts/smoke/router.sh +1 -1
  225. package/src/scripts/update_counts.ts +60 -12
  226. package/src/server/schemas/settings.ts +41 -0
  227. package/dist/cli-delegate/{chunk-XX6TOPD7.js → chunk-WR6GTRHJ.js} +3 -3
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
9
- "version": "9.16.0",
9
+ "version": "9.18.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/AGENTS.md CHANGED
@@ -24,7 +24,7 @@ task ci # full pipeline — green before PR
24
24
  - **Content pipelines** (A→D): [`docs/architecture.md`](docs/architecture.md).
25
25
  - **Editing this repo**: [`source-of-truth`](src/rules/source-of-truth.md) + [`agents-md-thin-root`](src/skills/agents-md-thin-root/SKILL.md).
26
26
  - **Consumer story** — `npx` + `scripts/install.sh`: [`README.md`](README.md).
27
- - **Personas** — 11 review lenses (6 + 5): [`docs/personas.md`](docs/personas.md).
27
+ - **Personas** — 34 lenses (5 core + 24 specialists + 5 advisors): [`docs/personas.md`](docs/personas.md).
28
28
  - **Discovery** — workspaces/packs: [`ADR-013`](docs/decisions/ADR-013-discovery-frontmatter-contract.md) + [`customization`](docs/customization.md#workspaces--packs-discovery).
29
29
  - **Root & `agents/` layout** — `src/` = source ([`ADR-050`](docs/decisions/ADR-050-workspace-vs-package-root-boundary.md)); `agents/` contract: [`agents-layout`](docs/contracts/agents-layout.md).
30
30
  - **Security** — [`SECURITY.md`](SECURITY.md); [`docs/threat-model.md`](docs/threat-model.md).
package/CHANGELOG.md CHANGED
@@ -255,159 +255,109 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
255
255
  > keeps the active era under the 250-line drift cap enforced by
256
256
  > `tests/test_changelog_eras.py`.
257
257
 
258
- # Era: 9.15.x — current
258
+ # Era: pre-9.18.0 — archived
259
259
 
260
- > Started at `9.15.0`. Full entries live inline below.
261
- > The drift test caps this era at 250 lines of entry body; growth past
262
- > that forces a new era split (`# Era: 9.16.x`, etc.) — see
263
- > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
264
-
265
- ## [9.16.0](https://github.com/event4u-app/agent-config/compare/9.15.0...9.16.0) (2026-08-03)
266
-
267
- ### Release highlights
268
-
269
- <!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
270
- - **Behaviour changes:** _none_
271
- - **Default changes + migration:** _none_
272
- - **Security and correctness:** _none_
273
- - **Honest nulls:** _none_
274
- - **Known limitations:** _none_
275
-
276
- ### Features
277
-
278
- * **gates:** fail the PR that moves the CLI registry without the evaluator budget ([84740f3](https://github.com/event4u-app/agent-config/commit/84740f3aba1cd7e9fd3e2fa6eb304a1ad106e149))
279
-
280
- ### Chores
260
+ > All entries before `9.18.0` live in
261
+ > [`docs/archive/CHANGELOG-pre-9.18.0.md`](docs/archive/CHANGELOG-pre-9.18.0.md).
262
+ > The archive is read-only; git tags remain the canonical
263
+ > source for what shipped. Splitting them out of the main file
264
+ > keeps the active era under the 250-line drift cap enforced by
265
+ > `tests/test_changelog_eras.py`.
281
266
 
282
- * **deps:** bump the github-actions group across 1 directory with 5 updates ([5e272d8](https://github.com/event4u-app/agent-config/commit/5e272d89e6e9b5bcc1fff053e9448da294998221))
267
+ # Era: 9.18.x — current
283
268
 
284
- Tests: 10588 (+8 since 9.15.0)
269
+ > Started at `9.18.0`. Full entries live inline below.
270
+ > The drift test caps this era at 250 lines of entry body; growth past
271
+ > that forces a new era split (`# Era: 9.19.x`, etc.) — see
272
+ > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
285
273
 
286
- ## [9.15.0](https://github.com/event4u-app/agent-config/compare/9.14.0...9.15.0) (2026-08-03)
274
+ ## [9.18.0](https://github.com/event4u-app/agent-config/compare/9.17.0...9.18.0) (2026-08-04)
287
275
 
288
276
  ### Release highlights
289
277
 
290
278
  <!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
291
- - **Behaviour changes:** _none_
292
- - **Default changes + migration:** _none_
293
- - **Security and correctness:** _none_
294
- - **Honest nulls:** _none_
295
- - **Known limitations:** _none_
279
+ - **Behaviour changes:** rule triggers were re-cut — the brand pair is merged into one rule and the `disclaimer`/`finance` plus `secret`/`security` trigger sets are disjoined, so a prompt that used to load two rules now loads one (71c3527); `existing-ui-audit` moved its required sections back into the skill body and `references/output-and-pitfalls.md` is removed (b3cc0ad); an unknown router `tier` value now fails compilation instead of silently downgrading to tier-2 (02960bf); a new trigger-collision disposition gate lands with a reproducible census (b71e36c).
280
+ - **Default changes + migration:** the new `planning` settings section (Gate C/R1/R2) ships with defaults, so omitting it stays legal (4bd8813, 74afbf9) — no data or config migration.
281
+ - **Security and correctness:** the `secret`/`security` trigger overlap was disjoined so a secret-shaped edit routes to exactly one floor (71c3527); round-2 review of the new gate scripts closed eight findings, two of which were fail-open — a missing `maxBuffer` switched R2 off on large PRs, and the documented `planning.completion_review: false` escape hatch was read by nobody (8a2bf76).
282
+ - **Honest nulls:** the R2 review of the merge scope returned a binding honest-null (6c6fc15); the Stage-A metrics protocol is pre-registered but unmeasured, so no effectiveness claim ships with it (01323d1); an honest-null verdict no longer suppresses the risk-table checks it previously masked (65fe441).
283
+ - **Known limitations:** R2 (completion review) has **no blocking path in this release** — every wired call site passes `--advisory`, which downgrades every violation kind including dead-scan-scope; the gate-coverage note that claimed a trippable floor was withdrawn, and teeth arrive when Stage B drops the flag (f2c6971).
296
284
 
297
285
  ### Features
298
286
 
299
- * **routing:** budget-aware cheap-request delegation (budget_routing) ([c3e98dd](https://github.com/event4u-app/agent-config/commit/c3e98dda535413e6d5e40cc463f88628c8b2ff27))
300
- * **eval:** rules mode for the live trigger eval + weekly canary leg ([69fda7d](https://github.com/event4u-app/agent-config/commit/69fda7ddadbb60581f33ec3403609a34edaeed8b))
301
- * **routing:** word-boundary-anchored keyword matching ([1975323](https://github.com/event4u-app/agent-config/commit/197532342bbac44adfc1e5e486f8e485a95e1d6a))
302
- * **routing:** per-rule routing matrices for all 97 rules + derived coverage corpus ([f5ea58f](https://github.com/event4u-app/agent-config/commit/f5ea58f458865ad5ba60713e918acab301a76ffb))
303
- * **routing:** routing:doctor + composed session_start chain tests ([bc9d3a2](https://github.com/event4u-app/agent-config/commit/bc9d3a249649a4fd063d316fdc42f2f5404246e7))
304
- * **hooks:** daily throttle for session_start probes ([db1cdef](https://github.com/event4u-app/agent-config/commit/db1cdef2b45b7944dd056648768acb4194675d31))
305
- * **cli:** dispatch:hook fast path in the bin launcher ([048757d](https://github.com/event4u-app/agent-config/commit/048757dc0fc2c21cc1ea862c4690cc5cbeb03d3b))
306
- * **hooks:** claude hook command invokes the dispatcher bundle directly ([a8b2bdd](https://github.com/event4u-app/agent-config/commit/a8b2bddd916d6e129c4db255094a369a6b7b6972))
307
- * **bench:** measure the real hook invocation path and gate CI on it ([832480a](https://github.com/event4u-app/agent-config/commit/832480ac961f3c1c0815219d95653c398ff7059d))
308
- * **router:** reconcile the routes_to contract via an explicit self-contained class (ADR-210) ([4f24152](https://github.com/event4u-app/agent-config/commit/4f2415250e8b3f5a9e235c0f99ef2707a0df99ec))
309
- * **adr:** retrofit event-based review_trigger on 11 time-bound ADRs ([6dd0375](https://github.com/event4u-app/agent-config/commit/6dd03758a73a7a0682f8b4543fe45954a5cb6f56))
310
- * **adr:** projection-era corrections via ADR-209 — ADR-030 carve-out retired, ADR-089 superseded ([73b3fd8](https://github.com/event4u-app/agent-config/commit/73b3fd804a666e1bed5b58ca67b35b0669c49daf))
311
- * **adr:** decide the ADR-201 open question — dist/agent-src is kept forever ([693fc3d](https://github.com/event4u-app/agent-config/commit/693fc3d172e0e9a6286d161c59035e848715dfd5))
312
- * **adr:** drain the perma-proposed sweep — five accepts, one supersede ([3ab49ff](https://github.com/event4u-app/agent-config/commit/3ab49ff992a4bafd4bbe9b7bc2a625c45427f439))
313
- * **adr:** supersede ADR-085 with ADR-207 — stdio-lite restated on Node-only grounds ([3874e58](https://github.com/event4u-app/agent-config/commit/3874e58267f684a8a479130ae1db20f1ab5e5ad5))
314
- * **adr:** batch-disposition the drive-loop era via ADR-206 ([0052f65](https://github.com/event4u-app/agent-config/commit/0052f657238794fce1144bfbf9a8f2864b569f01))
315
- * **hooks:** add the block-config-weakening PreToolUse guard ([d158f2d](https://github.com/event4u-app/agent-config/commit/d158f2dcfd69f4a71d97dd5bd30e9774aa95162e))
316
- * **router:** ratchet short keyword triggers, and stop the contract lying about activation ([9f9e273](https://github.com/event4u-app/agent-config/commit/9f9e273d5d3d8736542723be5ca4df1b32627229))
317
- * **projection:** project the colon command form and drop the twinned wrappers ([002697c](https://github.com/event4u-app/agent-config/commit/002697c891a9fde2a7e05a9f6b895bc189eeb80e))
318
- * **projection:** derive the rule pack axis from the active-pack set ([37900a9](https://github.com/event4u-app/agent-config/commit/37900a92badba9dec34cd6e84918581154365b26))
319
- * **gates:** put the repaired scan roots under the coverage census ([df1e736](https://github.com/event4u-app/agent-config/commit/df1e736b9d775d7870a1a2d1d7fc467c47ded858))
320
- * **release:** name failing checks + mid-release-fix guidance at the failure point ([a3ce993](https://github.com/event4u-app/agent-config/commit/a3ce9939fa02a3510882ac5e85a40e070e1c313a))
321
- * **ci:** commit the measurement set and warn on main, fail on release ([6eebc02](https://github.com/event4u-app/agent-config/commit/6eebc021cd8ac43a32625fa939898054e94f238b))
322
- * **gates:** extend default-entry coverage and add the mutation canary ([fc05f30](https://github.com/event4u-app/agent-config/commit/fc05f30f080b799d781e401fa500ede4d8bb340e))
323
- * **gates:** generate the scan-scope census over the full gate population ([301116f](https://github.com/event4u-app/agent-config/commit/301116f6f53d08d82806914bd1bf719f22ad6412))
324
- * **gates:** add a violation ratchet for repaired scan roots ([190d53d](https://github.com/event4u-app/agent-config/commit/190d53deca65c3c01c9fff619aaf0e0e136e92c6))
287
+ * **ci:** local mirror for the R2 manifest re-derivation (parity) ([3e014b2](https://github.com/event4u-app/agent-config/commit/3e014b2196a1caf8ebfc404dd492cb500acf5126))
288
+ * **metrics:** pre-register Stage-A protocol; close + archive the roadmap ([01323d1](https://github.com/event4u-app/agent-config/commit/01323d17b03e01610c526cf34cd5134002899518))
289
+ * **ci:** enforce R1 + advisory R2 at pre-push and CI, register gate coverage ([21810f2](https://github.com/event4u-app/agent-config/commit/21810f2bd443310591bbaa7c83d54133477ab902))
290
+ * **gates:** wire C/R1/R2 into the authoring and delivery surfaces ([3622d09](https://github.com/event4u-app/agent-config/commit/3622d09d4154e97fb2736cf5f08dc8eb2f7e0ba1))
291
+ * **gates:** R1/R2 validators, R2 reviewer dispatcher, R1 annotation helper ([37389c9](https://github.com/event4u-app/agent-config/commit/37389c9ef8ae7420eaaab98484b53f362d34168b))
292
+ * **settings:** add planning gate keys (Gate C/R1/R2) to template + Zod schema ([74afbf9](https://github.com/event4u-app/agent-config/commit/74afbf973bd34d8572f63b8e47ae29ebeefc43b1))
293
+ * **work-engine:** ui-fix intent — fix-lane enters the chain at apply ([f29cc7c](https://github.com/event4u-app/agent-config/commit/f29cc7cb33b6247da197348d6e0a8e74ef74617d))
294
+ * **work-engine:** trivial-lane recall 0.60 -> 1.00 against the pre-registered corpus ([07a32d4](https://github.com/event4u-app/agent-config/commit/07a32d4985cd89cba46474d7ffabff52ccd1b497))
295
+ * **eval:** pre-register the ui-triviality golden corpus (40 tasks, council-labelled) ([f71a41c](https://github.com/event4u-app/agent-config/commit/f71a41c821f81cd0bb78bc427e2eba47b0ac0fd4))
296
+ * **lint:** trigger-collision disposition gate + reproducible census ([b71e36c](https://github.com/event4u-app/agent-config/commit/b71e36c317385701d3b8577770130075c1b08754))
297
+ * **routing:** one shared trigger matcher + route:explain / route:audit CLI ([e3af5ca](https://github.com/event4u-app/agent-config/commit/e3af5cacc496228794acf5a86fe799785ddbe19d))
325
298
 
326
299
  ### Bug Fixes
327
300
 
328
- * **cli:** register routing:doctor in the CLI registry ([f02db54](https://github.com/event4u-app/agent-config/commit/f02db54c2cae449e730742f7396af5ac812bf0e8))
329
- * **ci:** waive pre-existing SC2016 in bench-drift comment renderer ([bb4c605](https://github.com/event4u-app/agent-config/commit/bb4c6058177ccbdcdd3157a26c9818f1bcd3cc94))
330
- * **deps-dev:** keep web-tree-sitter on the 0.24.7 ABI pin ([3e76cb2](https://github.com/event4u-app/agent-config/commit/3e76cb2515d6b4c183b7305b49dd7084b1cd59b4))
331
- * **deps:** settle the preact floor and adopt the group bumps into the baseline ([b9c9c14](https://github.com/event4u-app/agent-config/commit/b9c9c14d6c43b51ee857a422ec35a4c559cd3a2e))
332
- * **sweep:** keep the kernel rule language-and-tone out of the dead-tree sweep ([80c323a](https://github.com/event4u-app/agent-config/commit/80c323ac27c024f85426ee63a03c51a2e02ac964))
333
- * **tests:** use src/rules fixture paths in the self-contained carve-out tests ([c541100](https://github.com/event4u-app/agent-config/commit/c541100cb8e9ed836dc3cd7ba54414a0c6783d65))
334
- * **adr-index:** stop the index header naming the retired Python generator ([a26756e](https://github.com/event4u-app/agent-config/commit/a26756e9f9da1cdb79ab29deaed6dd3238def969))
335
- * **hooks:** resolve the session-canary name user-globally, not per project ([9c3b779](https://github.com/event4u-app/agent-config/commit/9c3b7791fad2fa2d987b279a0951e662ff3c3ab1))
336
- * **hooks:** rebuild stale tsc output after pull / branch-switch ([d2122e9](https://github.com/event4u-app/agent-config/commit/d2122e936033262a9dbe429dd21a2a6e7e23efe6))
337
- * **roadmap-management:** tighten the awaiting-evidence section to clear the overlap gate ([5b6f141](https://github.com/event4u-app/agent-config/commit/5b6f141a8be8da01f7f231608de3a7d374b88e03))
338
- * **worktree:** name the dependency tree by ecosystem peers, not one stack ([eafeced](https://github.com/event4u-app/agent-config/commit/eafecedebbd207c97c37f2f380e718c37512b34b))
339
- * **clusters:** enumerate the filesystem in check_cluster_patterns ([a1cb83e](https://github.com/event4u-app/agent-config/commit/a1cb83e86648774cbbce7bc089640438a99626b5))
340
- * **registries:** register the new command generator and its output root ([2e57080](https://github.com/event4u-app/agent-config/commit/2e570802e170ff7ccd97476902b4dcdff8aac570))
341
- * **mcp:** price tool schemas per transport and stop shipping stub schemas ([040c8be](https://github.com/event4u-app/agent-config/commit/040c8bee1d3a7a02ec1bde7409c98e2f38881d4a))
342
- * **deps:** bump the npm-production group with 4 updates ([2795154](https://github.com/event4u-app/agent-config/commit/27951548d89bb575b8d08bffc2269a55f6e9f414))
343
- * **gates:** stop a check_ script from mutating a tracked report on every run ([d478b7a](https://github.com/event4u-app/agent-config/commit/d478b7a0f45373e9dd7f49b6427f93e101c77bea))
344
- * **condense:** wire thin-mode instead of throwing on it ([092e535](https://github.com/event4u-app/agent-config/commit/092e5354440dbc114e059a008139168e29e8eb42))
345
- * **docs:** drop the roadmap path from the branch-protection contract ([6927770](https://github.com/event4u-app/agent-config/commit/69277700fd91cf538cfb243700efcd748054dec7))
346
- * **gates:** repair five gates that were scanning a deleted root ([e89c1b7](https://github.com/event4u-app/agent-config/commit/e89c1b733a61bd6cd722c86488ee7f727e1e64f1))
347
- * **ci:** make ci-strict a superset of ci by construction ([10908cf](https://github.com/event4u-app/agent-config/commit/10908cf31919e615bb727a86b892cdfbcc38ca58))
348
- * **ci:** reconcile the required-check matrix with what is actually enforced ([9b6b016](https://github.com/event4u-app/agent-config/commit/9b6b016343a63d80db8d549b194b93200ad55798))
349
- * **ci:** satisfy actionlint on the newly-linted workflow and explain the plumbing failure ([f1e3518](https://github.com/event4u-app/agent-config/commit/f1e351811ac6ff53c80692ea94eee56fa30e4434))
350
- * **gates:** repair the last dead scan root and pin the exit contract on a fixture ([683d493](https://github.com/event4u-app/agent-config/commit/683d493ec5bed63b1ac023064ed7b4da2016f066))
351
- * **gates:** close four first-match-wins collisions over the repo's own conventions ([7dcc6f0](https://github.com/event4u-app/agent-config/commit/7dcc6f0f1cfc3e3cd8ba3b57f549b910cee931b4))
352
- * **release:** ratchet existing legacy roots and stop the lockfile drift ([3bba94e](https://github.com/event4u-app/agent-config/commit/3bba94e2e479f93d8a8bf27e191b8a6accccaace))
353
- * **ci:** run the release-gated checks on the PR that causes them ([7d25422](https://github.com/event4u-app/agent-config/commit/7d2542289748c8a768258389718e1870dbe67df9))
354
- * **gates:** repair thirteen dead scan roots so the gates read real artefacts ([47bb0f0](https://github.com/event4u-app/agent-config/commit/47bb0f099c248d9ab1669c589158bb8908b275db))
301
+ * **gates:** stop claiming a blocking floor the advisory window does not have ([f2c6971](https://github.com/event4u-app/agent-config/commit/f2c6971913d19afe14523d460df996aa8d2adf82))
302
+ * **metrics:** create the metrics dir before appending an outcome ([4931eda](https://github.com/event4u-app/agent-config/commit/4931eda2dd968e365b7666856353d63e14f61dfe))
303
+ * **gates:** slug comes from git, not the CI branch env ([a8b04e1](https://github.com/event4u-app/agent-config/commit/a8b04e14dfdafdfffdd38f4966a6f04f60c175ac))
304
+ * **settings:** planning section defaults, so omitting it is legal ([4bd8813](https://github.com/event4u-app/agent-config/commit/4bd881354fdce7f053ce4b1135a650d11ab71898))
305
+ * **gates:** cwd decides, never an inherited GIT_DIR ([022f381](https://github.com/event4u-app/agent-config/commit/022f3819b17d3c80afbbad4b8aa30ce0f05dc5da))
306
+ * **gates:** honest-null no longer suppresses the risk-table checks ([65fe441](https://github.com/event4u-app/agent-config/commit/65fe4418126751d2833156b5debfa17fba2d17b5))
307
+ * **gates:** pin the diff bytes; malformed-row reporting; shared row split ([e023ac7](https://github.com/event4u-app/agent-config/commit/e023ac70df800380214dd7ade34ae266f842ae03))
308
+ * **ci:** full history for the plan-governance gates ([323ab06](https://github.com/event4u-app/agent-config/commit/323ab068eb8f70348478127768b54273a582dc8c))
309
+ * **metrics:** annotate helper exits on EOF instead of hanging ([6fd7fa9](https://github.com/event4u-app/agent-config/commit/6fd7fa9296b50e90d120ed7575c6cdd5c2a554f7))
310
+ * **gates:** exclude the mandated metrics path from the review scope ([cc82999](https://github.com/event4u-app/agent-config/commit/cc82999ceb937ef58543415c9abe45b1eb073eb7))
311
+ * **gates:** escape-aware markdown row split; scanned on every exit path ([05b4d44](https://github.com/event4u-app/agent-config/commit/05b4d44f4edffe90c305f1aa9f34ced8543c7002))
312
+ * **gates:** close the eight script findings of round 2 — two were fail-open ([8a2bf76](https://github.com/event4u-app/agent-config/commit/8a2bf767be47c081a0f94bd5f2dd69b45cce2e28))
313
+ * **ci,pr:** no-fetch base sha, in-script artefact selection, scope-hash re-use (R2 round-2 findings 1,3,5) ([f9102d7](https://github.com/event4u-app/agent-config/commit/f9102d7bea877822b1d82f8a1650083fab4919b0))
314
+ * **gates:** contract §2.0/§2.6, dispatcher scope binding, precise dead-scope trigger ([cd52b53](https://github.com/event4u-app/agent-config/commit/cd52b53458d18ec9f3ad2e7e1f65067b118a2a5d))
315
+ * **bundle,roadmaps:** drop worktree path leak; R1 adoption + corrected claims (R2 findings 3,6,7) ([54e60db](https://github.com/event4u-app/agent-config/commit/54e60dbf814614c27ce94232b8c63f0893816849))
316
+ * **ci:** verify every review artefact, block on dead scope (R2 findings 2,8,9) ([962699d](https://github.com/event4u-app/agent-config/commit/962699d5108ca12219ecf18c1c9e19e068b210b9))
317
+ * **gates:** bind R2 to a review-scope hash, not a head sha (R2 findings 1,2,4,5,10,11) ([8b4ec9f](https://github.com/event4u-app/agent-config/commit/8b4ec9f75b09eaac913271e6e8dd8bd365c72371))
318
+ * **lint:** repoint the fe-design abstraction-threshold pin to its reference file ([428bbd2](https://github.com/event4u-app/agent-config/commit/428bbd2513afe15a59600752244edd72b30a74b8))
319
+ * **lint:** escape the NUL key separator in lint_trigger_collisions ([e359256](https://github.com/event4u-app/agent-config/commit/e359256e2498719afc508625c3c46cd3f93ff155))
320
+ * **skills:** keep required sections in existing-ui-audit's body ([b3cc0ad](https://github.com/event4u-app/agent-config/commit/b3cc0ada669c2011de9c64623680ca4664552123))
321
+ * **config:** surgical schema + budget edits instead of whole-file JSON rewrites ([2e1b377](https://github.com/event4u-app/agent-config/commit/2e1b3776edd2c960d0c9170bee60648875acf055))
322
+ * **router:** unknown tier value fails compilation instead of silent tier-2 downgrade ([02960bf](https://github.com/event4u-app/agent-config/commit/02960bf5e8fab4c11aafaad29b5f4b5cde52ccd2))
355
323
 
356
324
  ### Documentation
357
325
 
358
- * **roadmap:** road-to-tested-routing complete — 37/37, archived ([9a0fed9](https://github.com/event4u-app/agent-config/commit/9a0fed9c8809d68706ea0b16a0ba920414fcd087))
359
- * **adr:** ADR-212 — declarative routing with a quantified resolver reopen ([9c6fbff](https://github.com/event4u-app/agent-config/commit/9c6fbfff23f11a0df6d24b3a55a931350f0f7097))
360
- * **roadmap:** road-to-tested-routing — council-locked plan, phases 1/2/6 progress ([5a04b3a](https://github.com/event4u-app/agent-config/commit/5a04b3aa013d43f9e0105169bf20e5bcce366363))
361
- * **roadmap:** close and archive road-to-hook-latency-repair ([3c0af7e](https://github.com/event4u-app/agent-config/commit/3c0af7e384badd218a4712caf93a1279dc972022))
362
- * **claims:** hook-dispatch-latency claim pinned to the real path ([fc31783](https://github.com/event4u-app/agent-config/commit/fc31783d672e1599041ed3bfa789ba4cbb94c765))
363
- * **adr:** renumber the harvest-freeze record 206 -> 210 (numbers 206-209 landed on main via #1123) ([bce530d](https://github.com/event4u-app/agent-config/commit/bce530dd5685932bdbf319369eea1f050f1feeac))
364
- * **roadmap:** pull Codex into agent-handoff v2 scope ([eb15183](https://github.com/event4u-app/agent-config/commit/eb15183e249fec1ed51e07b52785d3f8614e56fd))
365
- * **roadmap:** re-audit the parked feedback-sweep items against ADR-206 ([6216751](https://github.com/event4u-app/agent-config/commit/6216751849726b6738c04c31c5af8c8759494e8f))
366
- * **adr:** canonicalize the harvest freeze as ADR-206 with amended resume conditions ([7ebbe0e](https://github.com/event4u-app/agent-config/commit/7ebbe0e414321b2c4d57b3e0c5b5b7480db4cae0))
367
- * **roadmap:** plan the agent-handoff v2 resume-style overhaul ([62895b1](https://github.com/event4u-app/agent-config/commit/62895b1bccd9fa65f24e3a78f40e91602b47070c))
368
- * **roadmap:** reword tier-value tokens so check_references stops reading them as rule names ([5bc8124](https://github.com/event4u-app/agent-config/commit/5bc81249c94dd39a0271311206d85546d64bd318))
369
- * **roadmap:** land the three feedback-sweep repair roadmaps + dashboard ([beb0560](https://github.com/event4u-app/agent-config/commit/beb0560e9b49760f696dbd127ccec6c259f57228))
370
- * **roadmap:** park the four freeze-gated feedback-sweep proposals in later/ ([e669f0f](https://github.com/event4u-app/agent-config/commit/e669f0f01424d921fa798ad69ad7c20763d040b2))
371
- * **roadmap:** close road-to-renewal-leverage with its findings ([bcc85d0](https://github.com/event4u-app/agent-config/commit/bcc85d0c593b46d83e9455139937b73061ca64b4))
372
- * **roadmap-management:** name the awaiting-evidence signal ([e008f19](https://github.com/event4u-app/agent-config/commit/e008f191ddc2eeaa18931259e11c852ec6e101c6))
373
- * **worktree:** encode the seeding allow/deny list in the creation flow ([6743690](https://github.com/event4u-app/agent-config/commit/6743690f226242a2fed6d4a45195202342fd2878))
374
- * **roadmap:** pre-register the resolver spike, park it, and archive Foundation ([0e49f83](https://github.com/event4u-app/agent-config/commit/0e49f83d013a242c94baf320b13249ac3f496942))
375
- * **roadmap:** record Phase 2 with both figures, and the two honest misses ([8de0e6c](https://github.com/event4u-app/agent-config/commit/8de0e6c088b9f6d7fde94815dc2fe235c211815a))
376
- * **roadmap:** record the umbrella-runner spike result — import-safety GO, timing LOSS ([0551a7c](https://github.com/event4u-app/agent-config/commit/0551a7cce2b312cf3d018967aa8e606f0f2ecda2))
377
- * **roadmap:** decline CI build-artifact sharing on measurement, record the Phase 2 token baseline ([fa244c1](https://github.com/event4u-app/agent-config/commit/fa244c1a8878696ab2398ca6279ad9544b1269b1))
378
- * **roadmap:** close Foundation P1 required-checks, ci-strict, dependabot and baseline steps ([cbc1217](https://github.com/event4u-app/agent-config/commit/cbc12170722ad3a5d5e091f290d263fff9adad96))
379
- * **roadmap:** close the phases of road-to-gates-that-can-fail ([a6af14f](https://github.com/event4u-app/agent-config/commit/a6af14ff088e5836bc20f769e67a820e267defc6))
326
+ * **review:** binding R2 honest-null for the merge scope ([6c6fc15](https://github.com/event4u-app/agent-config/commit/6c6fc15a983c8c685820c5e5eac2dd21ba0ab228))
327
+ * **contracts:** label the terminal-before-rename rule enforced_by: none ([911505e](https://github.com/event4u-app/agent-config/commit/911505e0207ab5715894e931b45f87a065b22b8a))
328
+ * **contracts:** name the superseded-round convention (§2.7) ([ba202e2](https://github.com/event4u-app/agent-config/commit/ba202e2dd261ea3d194799946a2dc1924024bef3))
329
+ * **review:** close round-4 findings — 4 fixed, 0 open ([7bb24d8](https://github.com/event4u-app/agent-config/commit/7bb24d879ecc9f512f9429e3c78a88959c7b6c50))
330
+ * **gates:** withdraw three claims that had no mechanism behind them ([2529f53](https://github.com/event4u-app/agent-config/commit/2529f53e91c68a670667ea2fa2971cc262241404))
331
+ * **review:** close round-3 findings — 11 fixed, 1 accepted-risk ([9603e29](https://github.com/event4u-app/agent-config/commit/9603e29f610dc1566bf1931ea6daf784e9f31725))
332
+ * **review:** R2 round-3 findings — 12 open ([7a88b1a](https://github.com/event4u-app/agent-config/commit/7a88b1af2d2283ae1b3c8866d689241a4af9dda3))
333
+ * **review:** close round-2 findings — 11 fixed ([6f0934c](https://github.com/event4u-app/agent-config/commit/6f0934c561223a8dd4424fa109b4c8b5701d38a7))
334
+ * **review:** close round-1 findings — 10 fixed, 1 accepted-risk ([6bc2a26](https://github.com/event4u-app/agent-config/commit/6bc2a2673daf568d39de86710625108a84a03e13))
335
+ * **review:** R2 completion-review findings — fresh blind reviewer, 11 open ([e7d0dca](https://github.com/event4u-app/agent-config/commit/e7d0dca86111dfe52247539630f11ff21f4c3c67))
336
+ * **contracts:** add plan-review-gates v1 — R1/R2 grammars, C-to-R1 handoff, exit codes ([aa69cdd](https://github.com/event4u-app/agent-config/commit/aa69cdd39adb4e7c12f95881a2243a785093c734))
337
+ * **roadmap:** adjudicate advisory-gate blocker findings for plan-governance-gates ([b35b2aa](https://github.com/event4u-app/agent-config/commit/b35b2aa088e6d0236d9a28107f7726d76b9530f8))
338
+ * **roadmap:** inline council trace per no-roadmap-references council clause ([c355c3b](https://github.com/event4u-app/agent-config/commit/c355c3b00b3a8ce031b7017bf12734908e1fd485))
339
+ * **roadmap:** add plan-governance-gates roadmap (confidence gate + review gates) ([810caa7](https://github.com/event4u-app/agent-config/commit/810caa74529577049bc55778fe82eb5936ce79e1))
340
+ * **evidence:** pre-register the UI-skill progressive-disclosure threshold ([0914f65](https://github.com/event4u-app/agent-config/commit/0914f65b24dd76f50ba073f375d6b0cb7d69ff2b))
341
+ * **roadmap:** flip census + collision-lint checkboxes (landed in b71e36c31) ([f49df8b](https://github.com/event4u-app/agent-config/commit/f49df8bf766462e1a60dae3f41d2974a81bee814))
342
+ * **roadmap:** routing-correctness — Phases 1, 2 and 4 landed ([010d733](https://github.com/event4u-app/agent-config/commit/010d73359ced4c9700ef4f40cc948216b0d6a070))
343
+ * **commands:** routing-audit surface on /rule-compliance-audit ([61ade3f](https://github.com/event4u-app/agent-config/commit/61ade3f78f8f5956ec66413890b692055fef319d))
344
+
345
+ ### Refactoring
346
+
347
+ * **skills:** compress the gate additions under the size threshold ([015ec87](https://github.com/event4u-app/agent-config/commit/015ec8752dc6b5bc4e0e5c9098fc34b044bc9c61))
348
+ * **skills:** progressive disclosure for the four heavy UI reference skills ([709f010](https://github.com/event4u-app/agent-config/commit/709f0105a2b305f7c1b53ad561ceb964c5616157))
349
+ * **rules:** merge brand pair, disjoin disclaimer/finance and secret/security triggers ([71c3527](https://github.com/event4u-app/agent-config/commit/71c35279a774a42557f91d9f769ad0bdcf2386ba))
380
350
 
381
351
  ### Tests
382
352
 
383
- * **orchestration:** dispatch-decision matrices + council-path routing invariants ([8d48180](https://github.com/event4u-app/agent-config/commit/8d48180064458dd5a75559465a20ea5424f1264c))
384
- * **portability:** build fixtures under the live scan root ([e02dd0b](https://github.com/event4u-app/agent-config/commit/e02dd0bfaf0f2b8aaaaccec9d1a82409fa2bdb98))
385
- * **gates:** exercise the two happy-path-only gates through their real entry point ([365da5b](https://github.com/event4u-app/agent-config/commit/365da5b9fcc887864d344b94301836ce5cef928e))
386
-
387
- ### Build
388
-
389
- * **install:** refresh the committed installer output for the rule-packs change ([8bcccc7](https://github.com/event4u-app/agent-config/commit/8bcccc7ef575420f9074307cee33721d80c6df7a))
353
+ * **gates:** cover the annotation helper and the R2 artifact parser ([72eabe0](https://github.com/event4u-app/agent-config/commit/72eabe01025f6a399ff0818b173d17c8546ed737))
390
354
 
391
355
  ### Chores
392
356
 
393
- * **deps-dev:** bump @types/node from 20.19.41 to 26.1.2 ([fd0d6f6](https://github.com/event4u-app/agent-config/commit/fd0d6f6493f78b31454ebd202008f3fbd46a3da9))
394
- * **deps-dev:** bump @inquirer/prompts from 7.10.1 to 8.5.2 ([7dfea4b](https://github.com/event4u-app/agent-config/commit/7dfea4bbc26e8b04d2c73bc9cbe4d813dc64c724))
395
- * **deps-dev:** bump typescript in /deploy/telemetry-worker ([fdbff3f](https://github.com/event4u-app/agent-config/commit/fdbff3f293b3eaa6a6b1d8d5c7ba8e0769a2daab))
396
- * **deps:** bump marocchino/sticky-pull-request-comment from 2 to 3 ([7d4d9cb](https://github.com/event4u-app/agent-config/commit/7d4d9cb81bd95faf851cf16bb06c87d2df871d9b))
397
- * **deps-dev:** bump tsx from 4.22.3 to 4.23.1 in deploy/telemetry-worker ([ea561ea](https://github.com/event4u-app/agent-config/commit/ea561ea964fda776c02df3a280aaa1d9c188eac6))
398
- * **deps-dev:** bump the npm-development group across 1 directory with 7 updates ([fe05c7f](https://github.com/event4u-app/agent-config/commit/fe05c7fe02b2d9dca60887fe23b92b1d5fe3024e))
399
- * **deps:** bump actions/upload-artifact from 4 to 7 ([a2a2423](https://github.com/event4u-app/agent-config/commit/a2a2423776510471a17ebf0631fad2cba9cd50d1))
400
- * **roadmap:** close and archive road-to-renewal-adr-hygiene ([ab432b0](https://github.com/event4u-app/agent-config/commit/ab432b0247b21a21b6961de20ca1ef1584c96367))
401
- * **adr:** regenerate the index for the hygiene batch ([61dc94f](https://github.com/event4u-app/agent-config/commit/61dc94f98f48ef508986050728d04c47125c6718))
402
- * **docs:** sweep non-gate .agent-src.uncondensed references to the src/ truth ([9d987a0](https://github.com/event4u-app/agent-config/commit/9d987a086363b933505d6290fc111f9763f8810d))
403
- * **roadmap:** default dashboard_regen_cadence to every_5_steps ([d40f676](https://github.com/event4u-app/agent-config/commit/d40f676326f034affe8a0c15e4835bc4a6143fe2))
404
- * **deps:** bump the site group in /site with 3 updates ([ddb92d4](https://github.com/event4u-app/agent-config/commit/ddb92d4399ee35137b8c0a557345f6104b069915))
405
- * **deps:** bump actions/configure-pages from 5 to 6 ([c2fe6bc](https://github.com/event4u-app/agent-config/commit/c2fe6bc26f123bfd0eaf8a88d5ba2c9cb70cf6bc))
406
- * **deps:** bump actions/upload-pages-artifact from 3 to 5 ([6998b77](https://github.com/event4u-app/agent-config/commit/6998b77bbddfd85f8346c751f0a8679f13129dcc))
407
- * **deps:** schedule dependency updates via dependabot ([d9e4a8d](https://github.com/event4u-app/agent-config/commit/d9e4a8de95ef246311b85a85fd5189892ce21161))
408
- * **reports:** refresh the derived reports the consistency gate regenerates ([ee73e3f](https://github.com/event4u-app/agent-config/commit/ee73e3feab59cf2df2a1f6b1bc35ff6e1e032359))
409
-
410
- Tests: 10580 (+524 since 9.14.0)
357
+ * **index:** regenerate artefact index, catalog and command flows ([71aacc6](https://github.com/event4u-app/agent-config/commit/71aacc6f675def21773d13f3fd927bcdc2519a99))
358
+ * **tests:** drop unused import in the fix-lane test ([b18e77f](https://github.com/event4u-app/agent-config/commit/b18e77f78c426493ba3ff6a2ee8dc9c9ce068253))
359
+
360
+ Tests: 10944 (+252 since 9.17.0)
411
361
 
412
362
  # Era: pre-4.0.0 — archived
413
363
 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Smoke](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [![Public install smoke (3 OS × 2 Node)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [![npm](https://img.shields.io/npm/v/@event4u/agent-config?style=flat-square&label=npm&color=orange)](https://www.npmjs.com/package/@event4u/agent-config) [![agent-config MCP server](https://glama.ai/mcp/servers/event4u-app/agent-config/badges/score.svg)](https://glama.ai/mcp/servers/event4u-app/agent-config) [![MCP Toplist](https://mcptoplist.com/badge/glama%2Fevent4u-app%2Fagent-config.svg)](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
6
6
 
7
- [![Skills](https://img.shields.io/badge/Skills-288-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-111-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-193-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-101-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
7
+ [![Skills](https://img.shields.io/badge/Skills-288-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-111-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-193-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-102-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
8
8
 
9
9
  **Try it in 30 seconds** — drop one read-only subagent into any repo and watch it gate "done": `@production-validator check this branch is actually done`. No wizard, no lock-in, nothing else installed — the [30-second wedge ↓](#quickstart) is the whole first step. Start at the proof, not the catalog: **[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)**.
10
10
 
@@ -2,18 +2,18 @@
2
2
  model_tier: medium
3
3
  name: agent-handoff
4
4
  pack: meta
5
- intent: "Generate a session-handoff summary to continue work in a fresh chat"
5
+ intent: "Resume a previous session in a fresh chat: pick a session, generate a handoff, auto-seed the next session"
6
6
  routes_to: [agent-docs-writing]
7
7
  replaces: []
8
8
  tier: 0
9
9
  visibility: visible
10
10
  skills: [agent-docs-writing]
11
- description: Generate a context summary for continuing work in a fresh chat. Replaces the session system.
12
- argument-hint: "[with tasks]"
11
+ description: Pick a recent session, generate a handoff from its transcript, and seed a fresh session with it — or summarize the live conversation for copy-paste.
12
+ argument-hint: "[--print | --file | with tasks]"
13
13
  suggestion:
14
14
  eligible: true
15
- trigger_description: "user asks for an agent handoff, fresh-chat summary, or context-summary to paste into a new chat"
16
- trigger_context: "explicit verbatim ask — 'agent handoff', 'agend handoff' (typo), 'fasse für neuen chat zusammen', 'handoff summary', 'context summary for fresh chat'. Never inferred without a direct handoff / summary intent."
15
+ trigger_description: "user asks for an agent handoff, to resume/continue a previous session in a fresh chat, or a context-summary to paste into a new chat"
16
+ trigger_context: "explicit ask — 'agent handoff'/'agend handoff' (typo), 'handoff summary', 'context summary for fresh chat', 'resume/continue an old session in a fresh chat', 'fasse für neuen chat zusammen', 'neue session mit altem stand'. Never inferred."
17
17
  workspaces:
18
18
  - agent-config-maintainer
19
19
  packs:
@@ -22,24 +22,63 @@ packs:
22
22
 
23
23
  # /agent-handoff
24
24
 
25
- Generates a concise handoff prompt the user can paste into a new chat.
26
- This replaces the old session system — no files to save/load, just a copy-paste prompt.
25
+ Resume-style flow: pick one of the recent sessions, a handoff is generated
26
+ deterministically from its transcript, and the next session starts with that
27
+ handoff already injected as context. The legacy copy-paste summary of the
28
+ *live* conversation stays available as `--print`.
27
29
 
28
- ## Steps
30
+ ## Steps — primary flow (CLI-backed session picker)
29
31
 
30
- ### 1. Gather context
32
+ ### 1. List the recent sessions
31
33
 
32
- Collect the following from the current conversation:
34
+ ```bash
35
+ agent-config handoff --list
36
+ ```
37
+
38
+ Sources, merged newest-first: the cross-host chat-history log (primary),
39
+ native Claude Code transcripts (`~/.claude/projects/<slug>/`), and the Codex
40
+ session store (`~/.codex/sessions/`, Codex's only source).
33
41
 
34
- - **Branch**: `git branch --show-current`
35
- - **Uncommitted changes**: `git status --short`
36
- - **Recent commits**: `git log --oneline -5`
37
- - **Active roadmap**: Check `agents/roadmaps/` for any active roadmap
38
- - **Task list**: Only include if the user explicitly asks for it (e.g., "/agent-handoff with tasks")
42
+ ### 2. Present the picker
39
43
 
40
- ### 2. Generate handoff prompt
44
+ Show the sessions as ONE numbered-options block (per `user-interaction` —
45
+ date · branch · summary per line) and let the user pick. One question, then
46
+ wait.
41
47
 
42
- Create a fenced code block the user can copy-paste into a new chat:
48
+ ### 3. Generate the handoff for the pick
49
+
50
+ ```bash
51
+ agent-config handoff --session <id>
52
+ ```
53
+
54
+ The generator extracts the handoff sections deterministically from the
55
+ transcript — no LLM spend, reproducible, privacy-floored per line (violating
56
+ lines are DROPPED and counted, never rewritten) — and writes the result
57
+ atomically to `agents/runtime/state/handoff-context.md` (gitignored runtime
58
+ state, one-shot).
59
+
60
+ ### 4. Hand over to the fresh session
61
+
62
+ Tell the user: **start a new session — the handoff is injected
63
+ automatically** (the `handoff-context` session_start hook consumes the file
64
+ exactly once, then deletes it). In a terminal-capable context, offer
65
+ `agent-config handoff --session <id> --launch claude` (or `--launch codex`)
66
+ to spawn the fresh session directly:
67
+
68
+ - `claude` — seeds via the session_start hook (clean first message).
69
+ - `codex` — no hook surface there; the adapter passes the handoff as the
70
+ initial prompt instead. Same UX, different transport.
71
+ - Bundle hosts without hooks (Antigravity, Copilot) → use `--print` and
72
+ copy-paste.
73
+
74
+ ## Fallback mode — summarize the LIVE conversation (`--print`)
75
+
76
+ On `/agent-handoff --print` (or when no session log exists), summarize the
77
+ current conversation in-model — the original flow. Collect branch
78
+ (`git branch --show-current`), uncommitted changes (`git status --short`),
79
+ recent commits (`git log --oneline -5`), the active roadmap under
80
+ `agents/roadmaps/`, and the task list only when explicitly asked
81
+ ("/agent-handoff with tasks"). Then emit:
43
82
 
44
83
  ```
45
84
  ---
@@ -80,12 +119,39 @@ Roadmap: {roadmap file if active, or "none"}
80
119
  - {list of files that were edited or are important for context}
81
120
  ```
82
121
 
122
+ The CLI generator emits the same section set (minus the live-only
123
+ *Repeatable workflow* / *Feedback history* refinements) — the template above
124
+ stays the single source of the section contract.
125
+
83
126
  **Verbatim-first is the load-bearing rule:** the *User instructions* and
84
127
  *Feedback history* sections are preserved word-for-word and never compressed —
85
128
  lossy re-summarization of the user's own constraints is the exact failure this
86
129
  template prevents. Everything else (Done / Key decisions) stays concise.
87
130
 
88
- ### 2b. File-artifact mode — `HANDOFF.md` (optional, host-neutral)
131
+ ### Present the fallback to the user
132
+
133
+ Show the handoff prompt in a fenced code block and say:
134
+
135
+ ```
136
+ > Copy this into a new chat to continue where we left off.
137
+ ```
138
+
139
+ ## Iron Law — printed output is ALWAYS a fenced code block
140
+
141
+ ```
142
+ THE HANDOFF MUST BE WRAPPED IN A FENCED ```markdown CODE BLOCK
143
+ SO THE USER CAN COPY IT IN ONE CLICK. NEVER RENDER IT AS LIVE
144
+ MARKDOWN. NEVER SPLIT IT ACROSS MULTIPLE BLOCKS.
145
+ ```
146
+
147
+ Applies to every in-chat emission (`--print` fallback, bundle hosts). Use
148
+ ` ```markdown ` as the fence so consumers get syntax highlighting and the
149
+ inner content is preserved verbatim. Add one short prose line above the
150
+ block (e.g. *"Copy this into a new chat:"*) and nothing after — no follow-up
151
+ questions, no numbered options. The picker in Step 2 is the one exception:
152
+ it is the flow's single question, asked BEFORE any handoff is generated.
153
+
154
+ ## 2b. File-artifact mode — `HANDOFF.md` (optional, host-neutral)
89
155
 
90
156
  On `/agent-handoff --file` (or when a workflow skill's phase boundary asks
91
157
  for a standing handoff), ALSO write the contract to
@@ -119,27 +185,6 @@ next to it (`HANDOFF.md.<ts>.bak`) before overwrite; duplicate-check before
119
185
  appending (never double-append a section); preserve the section structure;
120
186
  post-verify the write by re-reading the required fields.
121
187
 
122
- ### 3. Present to user
123
-
124
- Show the handoff prompt in a fenced code block and say:
125
-
126
- ```
127
- > Copy this into a new chat to continue where we left off.
128
- ```
129
-
130
- ## Iron Law — output is ALWAYS a fenced code block
131
-
132
- ```
133
- THE HANDOFF MUST BE WRAPPED IN A FENCED ```markdown CODE BLOCK
134
- SO THE USER CAN COPY IT IN ONE CLICK. NEVER RENDER IT AS LIVE
135
- MARKDOWN. NEVER SPLIT IT ACROSS MULTIPLE BLOCKS.
136
- ```
137
-
138
- Use ` ```markdown ` as the fence so consumers get syntax highlighting
139
- and the inner content is preserved verbatim. Add one short prose line
140
- above the block (e.g. *"Copy this into a new chat:"*) and nothing
141
- after — no follow-up questions, no numbered options.
142
-
143
188
  ## Detection — when natural-language triggers count as explicit
144
189
 
145
190
  The user does not need to type `/agent-handoff` literally. Treat as
@@ -149,6 +194,9 @@ explicit invocation when the prompt contains a verbatim mention of:
149
194
  - `fresh chat`, `neuer chat`, `for a new chat`
150
195
  - `context summary for {fresh,new} chat`
151
196
  - `fasse … für … chat zusammen`
197
+ - `resume {a,the} previous session`, `continue {an,the} old session`
198
+ - `neue session mit dem stand von {gestern,letzter session}`,
199
+ `alte session … weitermachen`
152
200
 
153
201
  A vague *"summarize this conversation"* without handoff/new-chat
154
202
  framing → NOT a trigger. Surface `/agent-handoff` as a numbered option,
@@ -156,6 +204,9 @@ do not auto-execute.
156
204
 
157
205
  ## Rules
158
206
 
207
+ - **Primary flow is CLI-backed.** When `agent-config` is reachable, route
208
+ through the picker (Steps 1–4); fall back to the in-model summary only on
209
+ `--print`, on bundle hosts, or when the CLI reports no sessions.
159
210
  - **Concise everywhere EXCEPT the verbatim sections.** Keep Done / Key
160
211
  decisions tight, but never truncate *User instructions* or *Feedback history*
161
212
  to hit a line target — losing a user constraint costs far more than the
@@ -168,13 +219,13 @@ do not auto-execute.
168
219
  - **Open tasks are critical** — the new chat needs to know what's left.
169
220
  - **Decisions are important** — prevents the new chat from re-asking settled questions.
170
221
  - **File list is optional** — only include if the new chat will need to edit specific files.
171
- - **NEVER render the handoff as live markdown** — see Iron Law above.
222
+ - **NEVER render a printed handoff as live markdown** — see Iron Law above.
172
223
 
173
224
  ## When to use this vs. `agents/runtime/.agent-chat-history`
174
225
 
175
- - `/agent-handoff` is **push-based**: you copy a short summary into the
176
- new chat. Works across tools (Augment → Claude Code), across machines,
177
- and without any persistent file.
226
+ - `/agent-handoff` picks a **past session** and seeds the next one (or, with
227
+ `--print`, pushes a copy-paste summary of the live one). Works across
228
+ tools; the auto-inject path needs a hook-capable host on the same machine.
178
229
  - `agents/runtime/.agent-chat-history` is **pull-based** and **multi-session**: every
179
230
  session writes its own entries tagged with a 16-char session
180
231
  fingerprint derived from the platform `session_id` (schema v4, see
@@ -185,13 +236,14 @@ do not auto-execute.
185
236
  session for project-improving learnings with
186
237
  `/memory mine-session --mode=proposals`.
187
238
 
188
- Prefer `/agent-handoff` for planned context switches across tools or
189
- machines; use `/chat-history import` after a crash or fresh-chat reopen
190
- on the same workspace to surface prior-session context verbatim.
239
+ Prefer `/agent-handoff` for planned context switches and session resumes;
240
+ use `/chat-history import` after a crash or fresh-chat reopen on the same
241
+ workspace to surface prior-session context verbatim.
191
242
 
192
243
  Three distinct mechanisms — do not conflate them:
193
244
 
194
- - **handoff** (this command) — a one-shot push summary for the *next* chat;
195
- ephemeral, copy-paste, verbatim on the user's instructions.
245
+ - **handoff** (this command) — a one-shot seed for the *next* chat;
246
+ generated from a picked session (or pushed from the live one), ephemeral,
247
+ verbatim on the user's instructions.
196
248
  - **[`chat-history import`](../chat-history/import/command.md)** — pull a prior *session's* logged context into the current chat.
197
249
  - **durable memory** ([`memory-consolidation`](../../../skills/memory-consolidation/SKILL.md)) — cross-*run* curated facts; a handoff is not memory, and memory is not a transcript.
@@ -438,6 +438,11 @@ If the user wants any other follow-up, they invoke it explicitly. The
438
438
  polishing).
439
439
  - [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — the
440
440
  one-question-per-turn Iron Law this command is built on.
441
+ - [`plan-confidence-gate`](../../contexts/execution/plan-confidence-gate.md)
442
+ — Gate C: the plan-authoring surfaces (`/roadmap:create`,
443
+ `roadmap-writing`, `/feature:plan`, `/feature:roadmap`) auto-route into
444
+ this interview when their confidence check falls below 95%. Reverse
445
+ pointer only — nothing in this command changes when the gate fires.
441
446
  - Inspiration: `mattpocock/skills/skills/productivity/grill-me/SKILL.md`
442
447
  — same spirit (relentless decision-tree interview, one question at a
443
448
  time, recommended answer per question), restructured to our command
@@ -193,7 +193,7 @@ Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
193
193
 
194
194
  ## Rules
195
195
 
196
- - **Never commit before the user confirms** the plan.
196
+ - **Preview path: never commit before the user confirms the plan — once, for the whole plan.** On the terse path (`preview_artifacts: false` AND `routine_confirmations: false`) the `/commit` invocation itself is the confirmation (`commit-policy` exception 3); proceed without a prompt.
197
197
  - **Never push** — pushing is left to the user.
198
198
  - **Never modify files** — only stage and commit existing changes.
199
199
  - **Do NOT add untracked files** unless they are clearly part of the change (check with `git status`).