@event4u/agent-config 9.26.0 → 9.27.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 (174) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +57 -229
  3. package/dist/agent-src/commands/analyze/conformance.md +19 -0
  4. package/dist/agent-src/commands/roadmap/next.md +65 -3
  5. package/dist/agent-src/rules/active-remediation.md +2 -0
  6. package/dist/agent-src/rules/analysis-skill-routing.md +2 -0
  7. package/dist/agent-src/rules/architecture.md +2 -0
  8. package/dist/agent-src/rules/artifact-drafting-protocol.md +2 -0
  9. package/dist/agent-src/rules/artifact-engagement-recording.md +2 -0
  10. package/dist/agent-src/rules/augment-edit-discipline.md +2 -0
  11. package/dist/agent-src/rules/autonomous-execution.md +2 -0
  12. package/dist/agent-src/rules/brand-consistency.md +2 -0
  13. package/dist/agent-src/rules/brand-source-of-truth.md +2 -0
  14. package/dist/agent-src/rules/broken-access-control.md +2 -0
  15. package/dist/agent-src/rules/cli-output-handling.md +2 -0
  16. package/dist/agent-src/rules/code-comment-discipline.md +2 -0
  17. package/dist/agent-src/rules/code-provenance.md +2 -0
  18. package/dist/agent-src/rules/command-suggestion-policy.md +2 -0
  19. package/dist/agent-src/rules/commit-conventions.md +2 -0
  20. package/dist/agent-src/rules/communication-through-line.md +2 -0
  21. package/dist/agent-src/rules/content-quoting-floor.md +2 -0
  22. package/dist/agent-src/rules/context-hygiene.md +10 -0
  23. package/dist/agent-src/rules/copilot-routing.md +2 -0
  24. package/dist/agent-src/rules/cross-source-consistency.md +2 -0
  25. package/dist/agent-src/rules/decision-revisit-gate.md +2 -0
  26. package/dist/agent-src/rules/delegation-policy.md +2 -0
  27. package/dist/agent-src/rules/design-fidelity.md +2 -0
  28. package/dist/agent-src/rules/design-review-after-ui-write.md +4 -0
  29. package/dist/agent-src/rules/devcontainer-routing.md +2 -0
  30. package/dist/agent-src/rules/doc-screenshot-hygiene.md +2 -0
  31. package/dist/agent-src/rules/docker-commands.md +2 -0
  32. package/dist/agent-src/rules/domain-adoption-policy.md +2 -0
  33. package/dist/agent-src/rules/domain-safety-disclaimer.md +2 -0
  34. package/dist/agent-src/rules/domain-safety-pii.md +2 -0
  35. package/dist/agent-src/rules/domain-safety-retention.md +2 -0
  36. package/dist/agent-src/rules/downstream-changes.md +2 -0
  37. package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
  38. package/dist/agent-src/rules/evaluator-independence.md +13 -3
  39. package/dist/agent-src/rules/external-code-graph-interop.md +2 -0
  40. package/dist/agent-src/rules/external-reference-deep-dive.md +2 -0
  41. package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -0
  42. package/dist/agent-src/rules/finance-safety-floor.md +2 -0
  43. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
  44. package/dist/agent-src/rules/git-history-discipline.md +3 -1
  45. package/dist/agent-src/rules/guidelines.md +2 -0
  46. package/dist/agent-src/rules/history-discipline.md +2 -0
  47. package/dist/agent-src/rules/icon-consistency.md +2 -0
  48. package/dist/agent-src/rules/image-likeness-and-rights.md +2 -0
  49. package/dist/agent-src/rules/improve-before-implement.md +2 -0
  50. package/dist/agent-src/rules/invite-challenge.md +2 -0
  51. package/dist/agent-src/rules/laravel-routing.md +2 -0
  52. package/dist/agent-src/rules/laravel-translations.md +2 -0
  53. package/dist/agent-src/rules/legal-safety-floor.md +2 -0
  54. package/dist/agent-src/rules/lethal-trifecta-guard.md +2 -0
  55. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +2 -0
  56. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +2 -0
  57. package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -0
  58. package/dist/agent-src/rules/media-governance-routing.md +2 -0
  59. package/dist/agent-src/rules/media-sync-ground-truth.md +2 -0
  60. package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
  61. package/dist/agent-src/rules/missing-tool-handling.md +2 -0
  62. package/dist/agent-src/rules/model-recommendation.md +2 -0
  63. package/dist/agent-src/rules/no-attribution-footers.md +2 -0
  64. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +2 -0
  65. package/dist/agent-src/rules/no-pr-progress-comments.md +2 -0
  66. package/dist/agent-src/rules/no-roadmap-references.md +2 -0
  67. package/dist/agent-src/rules/notes-first-reasoning.md +2 -0
  68. package/dist/agent-src/rules/onboarding-gate.md +2 -0
  69. package/dist/agent-src/rules/output-discipline.md +2 -0
  70. package/dist/agent-src/rules/package-ci-checks.md +2 -0
  71. package/dist/agent-src/rules/persona-governance.md +2 -0
  72. package/dist/agent-src/rules/php-coding.md +2 -0
  73. package/dist/agent-src/rules/prefer-enums-over-literals.md +2 -0
  74. package/dist/agent-src/rules/preservation-guard.md +2 -0
  75. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -0
  76. package/dist/agent-src/rules/question-not-instruction.md +2 -0
  77. package/dist/agent-src/rules/reviewer-awareness.md +2 -0
  78. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +2 -0
  79. package/dist/agent-src/rules/roadmap-progress-sync.md +2 -0
  80. package/dist/agent-src/rules/role-mode-adherence.md +2 -0
  81. package/dist/agent-src/rules/rule-type-governance.md +2 -0
  82. package/dist/agent-src/rules/runtime-safety.md +2 -0
  83. package/dist/agent-src/rules/scale-discipline.md +2 -0
  84. package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
  85. package/dist/agent-src/rules/security-sensitive-stop.md +2 -0
  86. package/dist/agent-src/rules/senior-engineering-discipline.md +2 -0
  87. package/dist/agent-src/rules/session-canary.md +61 -19
  88. package/dist/agent-src/rules/settings-ask-protocol.md +4 -0
  89. package/dist/agent-src/rules/size-enforcement.md +2 -0
  90. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -0
  91. package/dist/agent-src/rules/skill-quality.md +2 -0
  92. package/dist/agent-src/rules/slash-command-routing-policy.md +2 -0
  93. package/dist/agent-src/rules/source-confidentiality.md +2 -0
  94. package/dist/agent-src/rules/source-discovery-gate.md +2 -0
  95. package/dist/agent-src/rules/source-of-truth.md +2 -0
  96. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -0
  97. package/dist/agent-src/rules/strategy-safety-floor.md +2 -0
  98. package/dist/agent-src/rules/symfony-routing.md +2 -0
  99. package/dist/agent-src/rules/think-before-action.md +2 -0
  100. package/dist/agent-src/rules/token-budget-discipline.md +2 -0
  101. package/dist/agent-src/rules/token-efficiency.md +2 -0
  102. package/dist/agent-src/rules/token-optimizer-maintenance.md +2 -0
  103. package/dist/agent-src/rules/tool-safety.md +2 -0
  104. package/dist/agent-src/rules/ui-audit-gate.md +4 -0
  105. package/dist/agent-src/rules/untrusted-input-defense.md +2 -0
  106. package/dist/agent-src/rules/upstream-proposal.md +2 -0
  107. package/dist/agent-src/rules/user-interaction.md +2 -0
  108. package/dist/agent-src/rules/user-interrupt-priority.md +2 -0
  109. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  110. package/dist/cli/registry.js +2 -0
  111. package/dist/cli/registry.js.map +1 -1
  112. package/dist/cli-delegate/{chunk-SJQMJI7M.js → chunk-3KJIMFTB.js} +1 -1
  113. package/dist/cli-delegate/{chunk-BSLUHV2F.js → chunk-BCPIOAGV.js} +148 -133
  114. package/dist/cli-delegate/cmd_conformance.js +1 -1
  115. package/dist/cli-delegate/cmd_doctor.js +1 -1
  116. package/dist/cli-delegate/cmd_export.js +1 -1
  117. package/dist/cli-delegate/cmd_prune.js +1 -1
  118. package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
  119. package/dist/cli-delegate/cmd_sync.js +1 -1
  120. package/dist/cli-delegate/cmd_uninstall.js +1 -1
  121. package/dist/cli-delegate/cmd_validate.js +1 -1
  122. package/dist/discovery/deprecation-report.md +1 -1
  123. package/dist/discovery/discovery-manifest.json +109 -109
  124. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  125. package/dist/discovery/discovery-manifest.summary.md +1 -1
  126. package/dist/discovery/orphan-report.md +1 -1
  127. package/dist/discovery/packs.json +2 -2
  128. package/dist/discovery/trust-report.md +1 -1
  129. package/dist/discovery/workspaces.json +2 -2
  130. package/dist/hooks/dispatch.js +796 -289
  131. package/dist/install/install.mjs +1 -1
  132. package/dist/mcp/registry-manifest.json +2 -2
  133. package/dist/mcp/server.json +2 -2
  134. package/dist/mcp/server.mjs +571 -417
  135. package/dist/scripts/condense.js +33 -2
  136. package/dist/scripts/condense.js.map +1 -1
  137. package/dist/server/io/yamlIO.js +85 -0
  138. package/dist/server/io/yamlIO.js.map +1 -1
  139. package/dist/server/routes/settings.js +1 -12
  140. package/dist/server/routes/settings.js.map +1 -1
  141. package/dist/server/routes/wizard.js +52 -2
  142. package/dist/server/routes/wizard.js.map +1 -1
  143. package/dist/shared/settingsCarveOut.js +118 -0
  144. package/dist/shared/settingsCarveOut.js.map +1 -0
  145. package/dist/shared/settingsSurface.js +7 -1
  146. package/dist/shared/settingsSurface.js.map +1 -1
  147. package/dist/ui/assets/index-DmR0mbk4.js.map +1 -1
  148. package/package.json +1 -1
  149. package/src/config/evaluator-budgets.json +4 -4
  150. package/src/scripts/_cli/cmd_doctor.ts +6 -21
  151. package/src/scripts/_dispatch.bash +18 -0
  152. package/src/scripts/_lib/git_common_dir.ts +128 -0
  153. package/src/scripts/_lib/obligation_frequency.ts +391 -0
  154. package/src/scripts/_lib/session_register.ts +361 -0
  155. package/src/scripts/check_enforcement_coverage.ts +192 -7
  156. package/src/scripts/check_rule_projection_integrity.ts +364 -0
  157. package/src/scripts/condense.ts +36 -2
  158. package/src/scripts/conformance_scan.ts +35 -0
  159. package/src/scripts/generate_settings_reference.ts +232 -0
  160. package/src/scripts/hook_manifest.yaml +68 -27
  161. package/src/scripts/hooks/block_no_verify.ts +56 -1
  162. package/src/scripts/hooks/block_unauthorized_git.ts +67 -1
  163. package/src/scripts/hooks/concern_registry.ts +2 -0
  164. package/src/scripts/language_mirror_hook.ts +56 -6
  165. package/src/scripts/orchestration_backfill.ts +354 -0
  166. package/src/scripts/release.ts +142 -36
  167. package/src/scripts/schemas/rule.schema.json +5 -0
  168. package/src/scripts/session_canary_hook.ts +35 -3
  169. package/src/scripts/session_register_hook.ts +288 -0
  170. package/src/scripts/sessions_cli.ts +140 -0
  171. package/src/scripts/validate_frontmatter.ts +68 -0
  172. package/src/server/io/yamlIO.ts +87 -0
  173. package/src/shared/settingsCarveOut.ts +143 -0
  174. package/src/shared/settingsSurface.ts +7 -1
@@ -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.26.0",
9
+ "version": "9.27.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/CHANGELOG.md CHANGED
@@ -296,263 +296,91 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
296
296
  > keeps the active era under the 250-line drift cap enforced by
297
297
  > `tests/test_changelog_eras.py`.
298
298
 
299
- # Era: 9.23.x — current
299
+ # Era: pre-9.27.0 — archived
300
300
 
301
- > Started at `9.23.0`. Full entries live inline below.
301
+ > All entries before `9.27.0` live in
302
+ > [`docs/archive/CHANGELOG-pre-9.27.0.md`](docs/archive/CHANGELOG-pre-9.27.0.md).
303
+ > The archive is read-only; git tags remain the canonical
304
+ > source for what shipped. Splitting them out of the main file
305
+ > keeps the active era under the 250-line drift cap enforced by
306
+ > `tests/test_changelog_eras.py`.
307
+
308
+ # Era: 9.27.x — current
309
+
310
+ > Started at `9.27.0`. Full entries live inline below.
302
311
  > The drift test caps this era at 250 lines of entry body; growth past
303
- > that forces a new era split (`# Era: 9.24.x`, etc.) — see
312
+ > that forces a new era split (`# Era: 9.28.x`, etc.) — see
304
313
  > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
305
314
 
306
- ## [9.26.0](https://github.com/event4u-app/agent-config/compare/9.25.0...9.26.0) (2026-08-07)
315
+ ## [9.27.0](https://github.com/event4u-app/agent-config/compare/9.26.0...9.27.0) (2026-08-07)
307
316
 
308
317
  ### Release highlights
309
318
 
310
319
  <!-- 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. -->
311
- - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 17c3716, 27e6649, f352c7a, 8fdcc7b, 581dfa0, a396442 +1 more.
312
- - **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 3bae006.
320
+ - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 6b06006, e82cc1f, b3b5ee7, dd89970.
321
+ - **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 6d1af3a.
313
322
  - **Security and correctness:** _none_
314
- - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in cefcd37.
323
+ - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 8e6765b, 6208186, f60bd6a.
315
324
  - **Known limitations:** _none_
316
325
 
317
326
  ### Features
318
327
 
319
- * **memory:** gate the session-end learning hook on the recorded consent ([79a6aa8](https://github.com/event4u-app/agent-config/commit/79a6aa892f2d772254ef91c0b19cb93007da2d70))
320
- * **settings:** resolve the nickname prefill through the documented chain ([e98a7cb](https://github.com/event4u-app/agent-config/commit/e98a7cba5cc76ccd62ab7b84be4b2a2b749d96e5))
321
- * **bench:** price the cost axis per token bucket in the v2 report ([b234b3e](https://github.com/event4u-app/agent-config/commit/b234b3e7076d401f9201610545528097e84490f2))
322
- * **bench:** preserve per-trial workspaces and add a real no-network selftest ([12df43b](https://github.com/event4u-app/agent-config/commit/12df43bc6e1ac2be87e62128accc00d1296db991))
323
- * **bench:** add the package-ladder and bare-principle arms ([c3f1c31](https://github.com/event4u-app/agent-config/commit/c3f1c316c270aa166ed3164165a02c083345319c))
324
- * **gates:** assert every authored skill REACHES the Claude tree, not just that it parses ([c42b1ad](https://github.com/event4u-app/agent-config/commit/c42b1adb2afb237d45182a59af705ef64eb4fe66))
325
- * **settings:** make the provenance stamp decide something, and condense the rule ([27e6649](https://github.com/event4u-app/agent-config/commit/27e664999a8894e1b146a556fa114daee3511676))
326
- * **settings:** normalise the just-in-time settings ask and compute its budget ([f352c7a](https://github.com/event4u-app/agent-config/commit/f352c7aea72beab330f1abd625041f7bcb46df3a))
327
- * **language-mirror:** fall back to the system locale on a terse first prompt ([784ee64](https://github.com/event4u-app/agent-config/commit/784ee64307086a28e9657b0a0ae5ae2fac94309a))
328
- * **gates:** fail the pre-push chain when the running hook bundle predates its sources ([a829a7c](https://github.com/event4u-app/agent-config/commit/a829a7cb50fac0fe02fc4af80c7083a890312913))
329
- * **review:** one findings schema both tracks validate against ([581dfa0](https://github.com/event4u-app/agent-config/commit/581dfa079ee333edcba920b464a19c11542db4c8))
330
- * **review:** make prompt provenance and author-vs-reviewer checkable ([cefcd37](https://github.com/event4u-app/agent-config/commit/cefcd37ae8a4b0ee5e42ee0514e9b09399f98870))
331
- * **gate:** enforce the corpus refresh cadence and open the CSVs nobody opened ([c946769](https://github.com/event4u-app/agent-config/commit/c9467697823b5a0b82d8f3e4b4d34c8bd8fe813f))
332
- * **rules:** close the write side of the UI loop ([a396442](https://github.com/event4u-app/agent-config/commit/a396442da455b6e02afddacc87c462f80b198499))
333
- * **hooks:** per-concern tools: filter, applied by the dispatcher ([28a8f96](https://github.com/event4u-app/agent-config/commit/28a8f96ee413083e3f451f1bf49b5588483ae9aa))
334
- * **gate:** ratchet gate_self_test adoption as a shrink-only non-adopter count ([99e3656](https://github.com/event4u-app/agent-config/commit/99e36560c208904510bc0525122ad2549d697bea))
335
- * **agents:** create agents/proposals — the directory seven artefacts pointed at ([64717a9](https://github.com/event4u-app/agent-config/commit/64717a96680cc70d3de7c4dd9a853d92952fbb53))
336
- * **design:** route a capability URL and a design-system dir to design-fidelity ([85b1562](https://github.com/event4u-app/agent-config/commit/85b1562c193f9eaf6ed63f8692f79e0b9d2eda3f))
337
- * **commands:** add /roadmap:next — screen, select, then ship a roadmap ([459211c](https://github.com/event4u-app/agent-config/commit/459211cadcc7682f26c8b081ac6c87c2a4712e46))
328
+ * **orchestration:** backfill telemetry from the host transcript corpus ([ed28a6d](https://github.com/event4u-app/agent-config/commit/ed28a6d8aa62b3c5fc30525e5bd356c6e3c83945))
329
+ * **conformance:** record pin distance and compaction per language violation ([b103537](https://github.com/event4u-app/agent-config/commit/b103537c69020d1bb81698a389d1dc9d97e0a145))
330
+ * **gates:** assert rule-projection completeness and freshness ([e42ea1d](https://github.com/event4u-app/agent-config/commit/e42ea1d7fdbbaf0d87ff37d4efd40ff3d96d97f8))
331
+ * **roadmap-next:** close the claim window, and say who carries the check ([9617664](https://github.com/event4u-app/agent-config/commit/9617664291d51176dceafbdf0ac68608dcffd0d7))
332
+ * **cli:** sessions:list and sessions:claim ([44d5eba](https://github.com/event4u-app/agent-config/commit/44d5eba9f88e2f52c534aa1f8f350ba1a89c4eeb))
333
+ * **hooks:** bind the register, and keep stop out of deregistration ([736f4e1](https://github.com/event4u-app/agent-config/commit/736f4e1255641a8997b2bd8f9753ac4232ccbcda))
334
+ * **sessions:** the shared per-session register, with its measured TTL ([6ab61fd](https://github.com/event4u-app/agent-config/commit/6ab61fda9d7e7faa22fc4d33325c02c05363b6ef))
335
+ * **rules:** declare how often each obligation comes due, and join it ([dd89970](https://github.com/event4u-app/agent-config/commit/dd89970afb7cc82846caf9c6e0029ddc73176874))
336
+ * **coverage:** the lattice that says whether a carrier fires often enough ([53d501e](https://github.com/event4u-app/agent-config/commit/53d501e9860b0f72d3d78df8f6a7cfc0eff16245))
337
+ * **settings:** a fresh install writes 35 lines, not 1,360 ([8504ca8](https://github.com/event4u-app/agent-config/commit/8504ca880d8c5bc5c921add50f7a7fc0b39ee03d))
338
+ * **settings:** audit absent-vs-default, and carve out the nine keys that diverge ([6d1af3a](https://github.com/event4u-app/agent-config/commit/6d1af3aba30d5378510fc2659532f9ad16be7b37))
338
339
 
339
340
  ### Bug Fixes
340
341
 
341
- * **release:** stop masking every push failure as a moved remote ref ([47faa19](https://github.com/event4u-app/agent-config/commit/47faa19e080bbe27c3cd8dfeb0bee67a10acfbf8))
342
- * **settings:** retract an overclaim and take the fork off the request path ([2139b17](https://github.com/event4u-app/agent-config/commit/2139b174c8e4afad3f7294bfc196ad0e79801cec))
343
- * **settings:** close the R2 review findings on the prefill and the pins ([fe35e63](https://github.com/event4u-app/agent-config/commit/fe35e63702661f34e55345c5c4fa7e2cd6b34fa4))
344
- * **tests:** narrow the ARMS lookup for noUncheckedIndexedAccess ([3b3e1b1](https://github.com/event4u-app/agent-config/commit/3b3e1b14ee8bb588004410d901835d35649b2544))
345
- * **roadmaps:** make solution-minimalism report its own spend gate ([3d9ceef](https://github.com/event4u-app/agent-config/commit/3d9ceef6153ed6df35292bf74d9a48b1e83dd982))
346
- * **cli:** both routing commands were dead through the shipped binary ([c2b38e2](https://github.com/event4u-app/agent-config/commit/c2b38e2263e9b27401ea38bb2782b0d7532c4527))
347
- * **gates:** emit the freshness verdict via stdout, not console.log ([fa06eea](https://github.com/event4u-app/agent-config/commit/fa06eea18620e671f3c09ac877cb094c6022c0aa))
348
- * **hooks:** design-slop read the tool fields where the dispatcher does not put them ([3ca190f](https://github.com/event4u-app/agent-config/commit/3ca190f0b2364c785f791dc106086209d86f1983))
349
- * **ci:** close the five surfaces this change reds, one of them a real gate gap ([c7c25ff](https://github.com/event4u-app/agent-config/commit/c7c25ffc1eac8f8b73776c5655f35af42f9eb9f7))
350
- * **conformance:** round 2 — the shipped gates did not fire, and four reasons were wrong ([8fdcc7b](https://github.com/event4u-app/agent-config/commit/8fdcc7b9d2de7c3239af7e809e86933e41cf44e2))
351
- * **gate:** close the word-form count hole in lint_abstraction_thresholds ([d5c294c](https://github.com/event4u-app/agent-config/commit/d5c294c4cf547696bf452a385ea0935b191283cd))
352
- * **video:** refuse --crossfade instead of silently delivering a hard cut ([6eea400](https://github.com/event4u-app/agent-config/commit/6eea4000146d1de2c8de703e046aa8072e9e4d96))
353
- * **ci:** close the two count-and-fixture surfaces a new sub-command reds ([f8d9566](https://github.com/event4u-app/agent-config/commit/f8d9566ca568c45c18cb2ec62d72492eaecf7570))
354
-
355
- ### Reverts
356
-
357
- * **gates:** drop the skill-completeness check — its premise is false and it blocks the release ([5473a92](https://github.com/event4u-app/agent-config/commit/5473a925e13989fc6ba382145ab20c485dae2995))
342
+ * **orchestration:** drop the pairing key from the emitted line ([d10004a](https://github.com/event4u-app/agent-config/commit/d10004a9e7d2efd1dab9597c1cd364f4d176d38c))
343
+ * **orchestration:** drop free-text fields from backfilled lines ([bdf976f](https://github.com/event4u-app/agent-config/commit/bdf976f1223a2e601a3eb613d9c94f933a56837e))
344
+ * **hooks:** the language pin no longer treats a synthetic turn as a prompt ([439c20e](https://github.com/event4u-app/agent-config/commit/439c20e00721ed9a238f69478fbd807a58d5fe23))
345
+ * **hooks:** two git guards stop refusing read-only commands ([17c5fa5](https://github.com/event4u-app/agent-config/commit/17c5fa57441a095276bfe8e8b46a57152f1a1353))
346
+ * **cli:** list the sessions verbs in usage() too ([d4f4429](https://github.com/event4u-app/agent-config/commit/d4f44290f2c8f18b27cfbfac35a5002b88a9e8e2))
347
+ * **release:** stop treating "no checks reported" as a pass when checks ARE required ([1af0f03](https://github.com/event4u-app/agent-config/commit/1af0f0316f39191603d5031145153e209e1778ad))
348
+ * **rules:** pay for the citation with a line number, not a quoted sentence ([e82cc1f](https://github.com/event4u-app/agent-config/commit/e82cc1f4d032578b1e5749ceb6756d6a82beeaf7))
349
+ * **canary:** bind the carrier to a slot that reaches a task boundary ([b3b5ee7](https://github.com/event4u-app/agent-config/commit/b3b5ee75e95ac7be3908529f3d52c5d47432d6bb))
350
+ * **settings-surface:** treat a free-form map as a leaf, not an empty group ([7a68cb7](https://github.com/event4u-app/agent-config/commit/7a68cb785ccff4bf190c01b5c52927f1fd94fbeb))
351
+ * **gates:** a zero-tool checkout is an absent surface, not a dead scan scope ([2828561](https://github.com/event4u-app/agent-config/commit/28285610d22c340460b02be675047efdbe24c8ac))
358
352
 
359
353
  ### Documentation
360
354
 
361
- * **roadmap:** reopen step 4.2 — the prefill shipped, the ask did not ([5fb6c05](https://github.com/event4u-app/agent-config/commit/5fb6c053a587440749af0b6d29b37c00fc1c03d1))
362
- * **roadmap:** close Phases 4 and 5 from evidence, re-encode the blocked steps ([2c70288](https://github.com/event4u-app/agent-config/commit/2c70288e372254be0cd0a23acfdd76f3b1318cb1))
363
- * **bench:** add the ab-v2 reproduce path and the Phase-3 pre-registration ([bb0ad48](https://github.com/event4u-app/agent-config/commit/bb0ad480deddf4ee3739d80d795a6c8546de9ffc))
364
- * cancel P1.2 on measurement, close the P2.1 null-scope check ([81fce51](https://github.com/event4u-app/agent-config/commit/81fce5189b88b9d64051cbf9d58e4322a783ca57))
365
- * **roadmap:** close P1.3 and P5.3 with their measured departures ([1c101db](https://github.com/event4u-app/agent-config/commit/1c101db9a045cc0b298927ef3d8d2622e8ec6625))
366
- * **roadmap:** close the four verified-fix steps of the inbox harvest ([b0cd2f4](https://github.com/event4u-app/agent-config/commit/b0cd2f4773b0f9a97135ecc5ff2432e0ae2513ab))
355
+ * **roadmap:** conformance round 6, starting with the regress round 5 shipped ([353cac1](https://github.com/event4u-app/agent-config/commit/353cac1d9e71d38eaa97a891fb037f47e7299e1a))
356
+ * **proof:** regenerate the derived page after the CLAIMS entry ([6660a23](https://github.com/event4u-app/agent-config/commit/6660a231e08d41aea39e597a85843d0d0cda1e9d))
357
+ * **roadmap:** archive road-to-orchestrator-first-execution, stopped at Phase 2 ([b24a991](https://github.com/event4u-app/agent-config/commit/b24a991d603fc9beea0e26a1252ef766059298c8))
358
+ * **orchestration:** record the observed-dispatch measurement and its verdict ([8e6765b](https://github.com/event4u-app/agent-config/commit/8e6765bc7fb05f6602abc998d231b270721accdf))
359
+ * **claims:** pre-register and resolve orchestration-observed-dispatch-cost ([6208186](https://github.com/event4u-app/agent-config/commit/6208186fe6393f5a98c6b9d90ae2138959724590))
360
+ * **proof:** re-render after the two enforced_by declarations ([7e36dbb](https://github.com/event4u-app/agent-config/commit/7e36dbb009a06d51cbcbb0d92167954e9adb64d3))
361
+ * **roadmap:** give conformance round 5 its Risk Register ([7e837bb](https://github.com/event4u-app/agent-config/commit/7e837bb8c85d78631effdf8e18f96762e779dab3))
362
+ * **roadmap:** conformance round 5, the first post-fix measurement ([95d4db9](https://github.com/event4u-app/agent-config/commit/95d4db9d9c971778f583c7081c7277d1f4ba661e))
363
+ * **rules:** replace two unmeasured enforcement claims with the measurement ([6b06006](https://github.com/event4u-app/agent-config/commit/6b0600608a33a56f35e7ec76ab6c5ba60711249f))
364
+ * **roadmap:** archive parallel-session-coordination with its measurements ([f60bd6a](https://github.com/event4u-app/agent-config/commit/f60bd6a3fba74e669a6361724070ce9d6d037b7b))
365
+ * **roadmap:** give the parallel-session plan its Risk Register ([f13ebba](https://github.com/event4u-app/agent-config/commit/f13ebba5a4f7856b5be0acdd19244e86adaca126))
366
+ * **roadmap:** add the obligation-carrier audit and the parallel-session register ([20391f6](https://github.com/event4u-app/agent-config/commit/20391f62f2c6c3f294467481956b1b2d2b0f9255))
367
+ * **roadmap:** close Phase 3, resolve the blocker, and say why 4.2 stays open ([2ba1e78](https://github.com/event4u-app/agent-config/commit/2ba1e7894ded9571f38dbe12de1680b4f1db57fd))
368
+ * **settings:** generate the settings reference the shrinking file no longer carries ([9e34b23](https://github.com/event4u-app/agent-config/commit/9e34b238523187f4ae7c9826c8bef6e4b89efe8d))
367
369
 
368
370
  ### Refactoring
369
371
 
370
- * **settings:** point the four bespoke ask sites at the shared protocol ([17c3716](https://github.com/event4u-app/agent-config/commit/17c371647eddc5945dbbcc03e1cb2e698c63cf55))
372
+ * **git:** extract the common-dir resolution so it has one answer ([1f04331](https://github.com/event4u-app/agent-config/commit/1f04331dd2f81c64a5217f843ddbcf49f2d9be9b))
371
373
 
372
- ### Tests
374
+ ### Build
373
375
 
374
- * **settings:** pin the ask-shaped settings migration ([3bae006](https://github.com/event4u-app/agent-config/commit/3bae00676daa7ae0e8c195fd2b6e00a2a25c60bb))
376
+ * **install:** refresh the installer bundle for the surface-flattener fix ([cc4ae5e](https://github.com/event4u-app/agent-config/commit/cc4ae5e5e20b51d681686258b0cc6411d0218c05))
375
377
 
376
378
  ### Chores
377
379
 
378
- * **ci:** retrigger pull_request event delivery ([a20088f](https://github.com/event4u-app/agent-config/commit/a20088f328d533827fac1de60273a3f206aceef1))
379
- * **roadmaps:** record the cost endpoint against the Endpoints step ([a3585ad](https://github.com/event4u-app/agent-config/commit/a3585ad7152b64fbe250ea294d242ab5a86a693b))
380
- * **roadmaps:** close the thresholds step, record the reproducibility residue ([39a93d3](https://github.com/event4u-app/agent-config/commit/39a93d33a3e69b132f643fe97380e2a7804d1acb))
381
- * **reports:** refresh the originality report round 2 left stale ([a65f929](https://github.com/event4u-app/agent-config/commit/a65f92939bae5b170a3cf58464579ccf774c5a9e))
382
- * regenerate router.json after the trunk merge ([0af3e84](https://github.com/event4u-app/agent-config/commit/0af3e8425106ccc395be79f66faacc3f8b45a5b1))
383
- * regenerate router.json and the routed-rule count for the new rule ([f262b83](https://github.com/event4u-app/agent-config/commit/f262b83fdba6b71905b03333fd93f657ae0905a3))
384
- * regenerate the tool trees and indices for the new rule ([2788940](https://github.com/event4u-app/agent-config/commit/2788940cc55326e125c2000ad3cf0e90fe2b5c51))
385
- * **router:** regenerate router.json for the two new design-fidelity triggers ([20aee52](https://github.com/event4u-app/agent-config/commit/20aee52cb1d440d77ec4b9e712164addfd0a83de))
386
-
387
- ### Other
388
-
389
- * **settings:** record the R2 findings, and announce the Iron Law 3 recurrence ([63e2f09](https://github.com/event4u-app/agent-config/commit/63e2f094c57c77ec18ecf4cf449e7682597be29f))
390
-
391
- Tests: 11643 (+200 since 9.25.0)
392
-
393
- ## [9.25.0](https://github.com/event4u-app/agent-config/compare/9.24.0...9.25.0) (2026-08-06)
394
-
395
- ### Release highlights
396
-
397
- <!-- 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. -->
398
- - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 5d653e2, 00018c4, 20bb411, cb0917d, 7641291.
399
- - **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in bd45f62, 11a699c.
400
- - **Security and correctness:** _none_
401
- - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 5d653e2, 20bb411.
402
- - **Known limitations:** _none_
403
-
404
- ### Features
405
-
406
- * **commands:** add /analyze:conformance, and clear the six red CI checks ([5d653e2](https://github.com/event4u-app/agent-config/commit/5d653e2ecfa1b697c7c44a94087d0248debea3d9))
407
- * **cli:** add conformance:behavior — replay transcripts through the shipped gates ([7c7a9dc](https://github.com/event4u-app/agent-config/commit/7c7a9dc10d83245b7507cbcef348e52901968c45))
408
- * **hooks:** gate the language pin, git authorization and evaluator independence ([582a9f3](https://github.com/event4u-app/agent-config/commit/582a9f37b97d3cb1f6474963fea576349f6b0b5d))
409
- * **authoring:** a decision-impact class, and four conventions Phase 2 owed ([7641291](https://github.com/event4u-app/agent-config/commit/7641291866dac3c24deaf4cea1827a6c24d63edb))
410
- * **ledger:** record what the rule-body migration kept, folded, and lost ([11a699c](https://github.com/event4u-app/agent-config/commit/11a699cda54c2eca55899af25435aee80a6b7f75))
411
- * **skill-writing:** two conventions that travel with the artifact ([9120d0f](https://github.com/event4u-app/agent-config/commit/9120d0ffd1d8ea7140f9cc393e34c595dba29085))
412
- * **interactions:** close the register over the set it claims to cover ([654837b](https://github.com/event4u-app/agent-config/commit/654837b1b8c3e33a43539d256bcd18592ade6621))
413
- * **descriptions:** reject a description that argues against its siblings ([9889529](https://github.com/event4u-app/agent-config/commit/9889529bcb34e604fd2bedde3ab2abf98e3f6a40))
414
- * **gates:** lint authored examples, and cap the on-demand depth layer ([c2c2d91](https://github.com/event4u-app/agent-config/commit/c2c2d917cede10eab64144ac9302857f6edd80b5))
415
-
416
- ### Bug Fixes
417
-
418
- * **rules:** clear a lint regression and register the new rule in the router ([00018c4](https://github.com/event4u-app/agent-config/commit/00018c4315269467b856713ec056f2c61982ca33))
419
- * **roadmap:** drop the duplicate un-archived copy ([532200a](https://github.com/event4u-app/agent-config/commit/532200ac94966a83df0a97e0c48e02e240d72c3f))
420
- * **hooks:** stop counting vacuous verification as evidence ([7696e54](https://github.com/event4u-app/agent-config/commit/7696e5453b770d200e2925204cba4e08f323ca7b))
421
- * **ci:** bump the gate-script population and regenerate the artefact index ([21a16f1](https://github.com/event4u-app/agent-config/commit/21a16f15a04c1c6b515832ddf56a951fce6b16d1))
422
- * **schema:** insert decision_impact surgically instead of reserialising the file ([cb0917d](https://github.com/event4u-app/agent-config/commit/cb0917daca7080b2e5446473b6e420b854554d5e))
423
-
424
- ### Documentation
425
-
426
- * **analyze-conformance:** adopt the checked-out-branch default from its sibling ([bd45f62](https://github.com/event4u-app/agent-config/commit/bd45f62e52edb86fd4e22cc8828a819a60788ae7))
427
- * **analyze-inbox:** run in the checked-out branch; worktree only on request ([aaf29b4](https://github.com/event4u-app/agent-config/commit/aaf29b466e4df37236e32fd588077c83f51f5483))
428
- * **roadmap:** record the conformance audit and close its roadmap ([1616c23](https://github.com/event4u-app/agent-config/commit/1616c236d4e47b0bc77af6521a2db23419760f75))
429
- * **rules:** add evaluator-independence, and downgrade two enforcement claims ([20bb411](https://github.com/event4u-app/agent-config/commit/20bb4116d7d0a2dec198d4e08ade4371ff802b8a))
430
- * **roadmap:** close and archive the authoring-discipline roadmap ([977ebd9](https://github.com/event4u-app/agent-config/commit/977ebd9a3771eaeb42b631cd9660bf4b16d0d1ae))
431
- * **roadmap:** record the second execution pass and its three measured departures ([ec1acfb](https://github.com/event4u-app/agent-config/commit/ec1acfbfc5718a2197bdc9ca5cdcc091ba3a410c))
432
- * **roadmap:** close Phase 4 steps 1-3 and 5, with what changed from the plan ([87d4bd2](https://github.com/event4u-app/agent-config/commit/87d4bd24e5f2b7f1e7429ba016e7d473aec00fa7))
433
-
434
- ### Chores
435
-
436
- * **docs:** regenerate the artefact index for /analyze:conformance ([d1f8f25](https://github.com/event4u-app/agent-config/commit/d1f8f25105b8df849160b2b62e78a84f555d8222))
437
- * **docs:** regenerate the artefact index for the new rule ([910555a](https://github.com/event4u-app/agent-config/commit/910555a46f5345352e8dd6a950a370ac53019fa1))
438
- * **sync:** regenerate the projections for the two authoring skills ([44f037e](https://github.com/event4u-app/agent-config/commit/44f037efc1d92d07f6efed30ecb4cb612b2bb55a))
439
-
440
- Tests: 11443 (+134 since 9.24.0)
441
-
442
- ## [9.24.0](https://github.com/event4u-app/agent-config/compare/9.23.0...9.24.0) (2026-08-06)
443
-
444
- ### Release highlights
445
-
446
- <!-- 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. -->
447
- - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in cb126e8, f908f19.
448
- - **Default changes + migration:** _none_
449
- - **Security and correctness:** _none_
450
- - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 7a1ca1b.
451
- - **Known limitations:** _none_
452
-
453
- ### Features
454
-
455
- * **commands:** add /analyze:inbox — verify a dropped artifact before planning on it ([fa7b278](https://github.com/event4u-app/agent-config/commit/fa7b278507d61606232ba47da0393915a178ea1f))
456
- * **scripts:** make the absoluta census reproducible, and correct its own number ([de96a36](https://github.com/event4u-app/agent-config/commit/de96a36d89e7b08c49744d01361ce05a269d4225))
457
-
458
- ### Bug Fixes
459
-
460
- * **index:** regenerate the artefact index and catalog after the description edit ([c1f306b](https://github.com/event4u-app/agent-config/commit/c1f306b01cdbaabe9a349a3fbdcea127254bd0ae))
461
- * **preflight:** run the skill linter CI runs, so its failures never reach CI ([755e050](https://github.com/event4u-app/agent-config/commit/755e0508ad21dafad3c61b5ce507a572c2f5088e))
462
- * **command:** bring the analyze-inbox description under the 200-char cap ([f72573b](https://github.com/event4u-app/agent-config/commit/f72573b7f8ce2fa83eea2671bc6142253f020182))
463
- * **docs:** repair the broken install-profile example; keep dead ends in handoffs ([7a1ca1b](https://github.com/event4u-app/agent-config/commit/7a1ca1b5f4c88e1288235b272416fe55d521d8ac))
464
- * **adr:** give ADR-218 the required frontmatter and a review_trigger ([854d3ef](https://github.com/event4u-app/agent-config/commit/854d3efdd83ab678189c7d6ccf3fd7850efdcaad))
465
-
466
- ### Documentation
467
-
468
- * **create-pr:** resolve the duplicate 4d heading and its ambiguous refs ([315d6fe](https://github.com/event4u-app/agent-config/commit/315d6fe64eea7e39cd2b14a9ac57a2d2ac585654))
469
- * **roadmap:** harvest 16 inbox artifacts — mostly into cancellations ([de84205](https://github.com/event4u-app/agent-config/commit/de842055f439b9f3ea0d2d979059e1d6a8dae18c))
470
- * **rules:** act on council round 3 — falsifiable trigger, honest bound, ADR-218 ([cb126e8](https://github.com/event4u-app/agent-config/commit/cb126e88c3dd4d58bed92fe168bd090ee83d6a99))
471
- * **rules:** mark the declared-protocol cap provisional, propagate the census correction ([f908f19](https://github.com/event4u-app/agent-config/commit/f908f19c3463a0d19607637cfffa4393899177f8))
472
-
473
- Tests: 11309 (+10 since 9.23.0)
474
-
475
- ## [9.23.0](https://github.com/event4u-app/agent-config/compare/9.22.0...9.23.0) (2026-08-06)
476
-
477
- ### Release highlights
478
-
479
- <!-- 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. -->
480
- - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 3d1ed67, e5e4c48, a7ecd7b, ff146a0, 927ff8a, 420e833 +1 more.
481
- - **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 9da7146, c1d9093.
482
- - **Security and correctness:** _none_
483
- - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in c4a4920, 9242d41, 927ff8a.
484
- - **Known limitations:** _none_
485
-
486
- ### Features
487
-
488
- * **review:** severity is carried, confidence is its own field, density stays advisory ([9242d41](https://github.com/event4u-app/agent-config/commit/9242d416e77518f6d1b593184ae0123f3b0ecb34))
489
- * **rules:** land the conflict audit, close its findings, archive the roadmap ([a7ecd7b](https://github.com/event4u-app/agent-config/commit/a7ecd7b73b99166baaee3838c4e8a5f7668bf580))
490
- * **authoring:** require the primary bias, and lead rich artifacts with their obligation ([ff146a0](https://github.com/event4u-app/agent-config/commit/ff146a0f11f89c4f093d80aaf705915eb918c7bb))
491
- * **rules:** a removal disposition, and the classification that stops "another rule" ([484596e](https://github.com/event4u-app/agent-config/commit/484596e1dc41e003c70678ec301ef4f801939736))
492
- * **rules:** mandated lines at the decision point, and the two rules they need ([927ff8a](https://github.com/event4u-app/agent-config/commit/927ff8a83eb17a8d41f234dbfabe3d9caedcf066))
493
- * **budget:** measure the rich-class band, lower it to what the corpus uses, gate it ([420e833](https://github.com/event4u-app/agent-config/commit/420e83368298029b4e01a412897ec1f0cec4286e))
494
- * **settings:** add settings:set and fence the GUI write route ([3ffb705](https://github.com/event4u-app/agent-config/commit/3ffb7057d3ab4e963f3b09d49fbb8de57c6956ae))
495
- * **settings:** fence every settings key behind an A/B/C class ([b09e84e](https://github.com/event4u-app/agent-config/commit/b09e84e9ce540ac6e4215538bef731c87ad7c91b))
496
- * **gates:** self-test mode, estate-level result handling, and one equality-without-validity fix ([f7a022a](https://github.com/event4u-app/agent-config/commit/f7a022a7d039e03c5240eca94f7f9306ef5ed456))
497
- * **gates:** make shrink-only mechanical against the base ref ([3e7eb9d](https://github.com/event4u-app/agent-config/commit/3e7eb9d9d35fe79d0655c51ef86ffabbe1f0a1b8))
498
- * **gates:** ratchet ledger adoption, and stop rendering unmeasured categories ([678ba92](https://github.com/event4u-app/agent-config/commit/678ba92b862d6041c1e2af8d91a85252d53d687b))
499
- * **gates:** adopt the ledger in three gates whose scan roots have failed before ([c04b9a5](https://github.com/event4u-app/agent-config/commit/c04b9a5785d4d5a02da317b44cdebc02bc83e3b4))
500
- * **gates:** add a per-target completeness ledger ([fea6d7b](https://github.com/event4u-app/agent-config/commit/fea6d7b5181ba7815931cf83833946f1c405979f))
501
- * **gate:** enforce the roadmap concurrency cap mechanically ([8add433](https://github.com/event4u-app/agent-config/commit/8add433b93d68191ffd44dab5c8f4f68102f1c17))
502
-
503
- ### Bug Fixes
504
-
505
- * **authoring:** revert the two kernel-rule routing edges, state the gap instead ([3d1ed67](https://github.com/event4u-app/agent-config/commit/3d1ed67c3fd6ac8277f32d4c4d6bac1b274427e8))
506
- * **authoring:** close all fourteen R2 findings ([e5e4c48](https://github.com/event4u-app/agent-config/commit/e5e4c48d6b993854fc41b681ea4c585e6b265f40))
507
- * **review:** six real pre-filter instances — the keyword grep had missed all of them ([c4a4920](https://github.com/event4u-app/agent-config/commit/c4a49204dfefae74e518f284ee11f04fff511e63))
508
- * **rules:** declare the 3 authority collisions, decline the gate ([943ad06](https://github.com/event4u-app/agent-config/commit/943ad067d68b3dfa31d15865d2c936cad2281767))
509
- * **rules:** declare the two kernel-vs-kernel conflicts and fix the halt list ([c4ab544](https://github.com/event4u-app/agent-config/commit/c4ab5449b0c50c691e47793d247b980feec1b21b))
510
- * **rules:** make ui-audit-gate satisfiable, invert the read cap, exempt file sets ([b47752d](https://github.com/event4u-app/agent-config/commit/b47752de370607ed1d691fdbc22ff10af3dd806d))
511
- * **projection:** stop injecting ADR-004 manual rules into per-tool trees ([5d40a6c](https://github.com/event4u-app/agent-config/commit/5d40a6c184883844dff2a23154959accfef1022e))
512
- * **cli:** route and document settings:set in the dispatcher ([0d2c6c5](https://github.com/event4u-app/agent-config/commit/0d2c6c58cbc9769e34e2c0c5d289c6de7c690501))
513
- * **pack:** ship yamlIO with the writer, re-baseline the packed-size budget ([87b6fc1](https://github.com/event4u-app/agent-config/commit/87b6fc1328d90d140ffbbf31afc9ebb5452e00e2))
514
- * **settings:** close all ten R2 findings ([84e4596](https://github.com/event4u-app/agent-config/commit/84e4596c7d42afbe3d26ee2e2b2e36836b754c97))
515
- * **settings:** satisfy exactOptionalPropertyTypes in the settings:set argv parser ([a03d21b](https://github.com/event4u-app/agent-config/commit/a03d21b5960c0e13b910c01d86cb5c4f99a4ad77))
516
- * **hooks:** forward the concern's own reason on a block; fix stale exit assertion ([b64cd4b](https://github.com/event4u-app/agent-config/commit/b64cd4bf2a4569c3fd3ea5fae85d9095bbf0d33f))
517
- * **hooks:** translate verdicts to per-host native semantics ([f39698c](https://github.com/event4u-app/agent-config/commit/f39698cd8e626756c8add6a045e4e66b9b00751d))
518
-
519
- ### Documentation
520
-
521
- * **roadmap:** record what landed and what the remaining phases actually cost ([15df545](https://github.com/event4u-app/agent-config/commit/15df545937dcf88e910240b7af45b2dfc6d464e9))
522
- * **roadmap:** close both blockers and Phase 1, record the migration inventory ([9da7146](https://github.com/event4u-app/agent-config/commit/9da7146dbaea153bb4e2eae31069066663378dcb))
523
- * **roadmap:** close P0.3-P1.6, record the two round-2 reversals ([cc67d73](https://github.com/event4u-app/agent-config/commit/cc67d73b287f0ce91f4c0690df824b670c4c604e))
524
- * **roadmap:** file the absent-is-not-default blocker, close Phase 2 ([c1d9093](https://github.com/event4u-app/agent-config/commit/c1d90934b05168cba6ac3667d92d7a20602735b2))
525
- * **roadmap:** record what the prerequisite re-read caught, close Phase 1 ([ba9b0f0](https://github.com/event4u-app/agent-config/commit/ba9b0f0f0e148857a8574faa2e512b64c099d2e4))
526
- * **roadmap:** record the remote-CI verdict on the gate-integrity roadmap ([4e52e53](https://github.com/event4u-app/agent-config/commit/4e52e530e1c5adeab421af6f351d4d0f86bbcc55))
527
- * regenerate the artefact index and catalog for the two new guidelines ([619d283](https://github.com/event4u-app/agent-config/commit/619d28377bc6180948336e98ad4eec58efd41659))
528
- * bump the guideline count for the two new gate guidelines ([e5b3331](https://github.com/event4u-app/agent-config/commit/e5b333174587acf3218811e7f049b401a2436e1d))
529
- * **roadmap:** close 33 of 35 gate-integrity steps, file the kernel blocker ([818b637](https://github.com/event4u-app/agent-config/commit/818b6379ab91a4f739cb1fe7a11d499582f3039b))
530
- * **gates:** the authoring path, the false-green catalogue, and the CI delta ([554b9a9](https://github.com/event4u-app/agent-config/commit/554b9a992fb77e532344aadd298234cd63804278))
531
- * **roadmap:** add Risk Register to road-to-rule-coherence ([4641101](https://github.com/event4u-app/agent-config/commit/4641101a9f234fd32beacecce01426b4f77a8d73))
532
- * **roadmap:** add road-to-rule-coherence with measured scope cuts ([55a3957](https://github.com/event4u-app/agent-config/commit/55a395783dbbcfdba6346be9312fd04dec285f5c))
533
- * **roadmap:** unblock everything the adoption gate was holding ([8878a88](https://github.com/event4u-app/agent-config/commit/8878a88b02422d5b93d820968a53c161a795ca64))
534
- * **adr:** strike external adoption as a gate, re-anchor restraint to capacity ([e98221e](https://github.com/event4u-app/agent-config/commit/e98221e7de7b7bddf0655823ebcc5994bb9c4da6))
535
- * **roadmap:** open two verification roadmaps, park the rest by arm ([d415dad](https://github.com/event4u-app/agent-config/commit/d415dada95c2ad7a89327831462870cc1fed8fd8))
536
- * **adr:** lift the harvest freeze for verification infrastructure only ([11df060](https://github.com/event4u-app/agent-config/commit/11df0606810508f4fcfec404dc67cd975a92ef91))
537
- * **sweep:** record the 40-source skill-ecosystem deep-dive ([45c55a2](https://github.com/event4u-app/agent-config/commit/45c55a222b61430ed39a572a4ff083cd383b81c7))
538
-
539
- ### CI
540
-
541
- * register the three new gates, and close the CI-local parity delta ([2c709c3](https://github.com/event4u-app/agent-config/commit/2c709c3f1069a29c7a5f8a1cd1829b1377a40c34))
542
-
543
- ### Chores
544
-
545
- * **sync:** regenerate the projection and tool trees ([f0ebea5](https://github.com/event4u-app/agent-config/commit/f0ebea51b823bd50e979ccf6ba66660bec3eef83))
546
- * **roadmap:** regenerate dashboard after merging main ([4e3810a](https://github.com/event4u-app/agent-config/commit/4e3810a4ce364df32f22eead045a4526cf98be40))
547
-
548
- ### Other
549
-
550
- * **authoring:** mark all fourteen findings fixed, drop the regenerable input ([f3d6e2a](https://github.com/event4u-app/agent-config/commit/f3d6e2a03eeca77adaac9b62f12d277d7d47b3a0))
551
- * **authoring:** R2 completion review — 14 findings, all open ([703b8eb](https://github.com/event4u-app/agent-config/commit/703b8ebc5a5c55facfdc6cf468642eb0f03b2a71))
552
- * **settings:** mark all ten findings fixed, drop the regenerable input ([0a96cca](https://github.com/event4u-app/agent-config/commit/0a96cca52a0116a4330ad51dbfe96b6269721d1b))
553
- * **settings:** R2 completion review — 10 findings, all open ([36139ac](https://github.com/event4u-app/agent-config/commit/36139ac2f4d83b296222fd8f89db4c75d73c4f20))
380
+ * **budgets:** move cli_help_command_count 86 to 88 for the sessions verbs ([c8ba2c3](https://github.com/event4u-app/agent-config/commit/c8ba2c34edd5bcda97d2c5cab85a3dcf2055f8de))
381
+ * **sync:** re-project session-canary after the frequency-override note ([d68c02f](https://github.com/event4u-app/agent-config/commit/d68c02f4e18233cf1c51146cc56dcc01f8d9cc53))
554
382
 
555
- Tests: 11299 (+208 since 9.22.0)
383
+ Tests: 11750 (+107 since 9.26.0)
556
384
 
557
385
  # Era: pre-4.0.0 — archived
558
386
 
@@ -122,6 +122,25 @@ Reach for a mechanism only where the failure mode was measured. A gate for a
122
122
  class nobody was harmed by is the mechanism-without-a-failure-mode this repo
123
123
  forbids.
124
124
 
125
+ **What round 5 measured about the choice itself** — the first post-fix reading,
126
+ 2026-08-07, 27 sessions:
127
+
128
+ | carrier class | bound at | before | after |
129
+ |---|---|---:|---:|
130
+ | BLOCKING (unauthorized irreversible git op) | `pre_tool_use` | 8 | **0** |
131
+ | BLOCKING (evaluator prompt pre-loading its verdict) | `pre_tool_use` | 1 | **0** |
132
+ | advisory state injection (language mirror) | `user_prompt_submit` | 555 | **19** |
133
+ | advisory (verification claimed on empty output) | `post_tool_use` | 4 | **1** |
134
+
135
+ Both blocking carriers reached zero. Neither advisory carrier did. This is a
136
+ prior on the table above, not a law: the post-fix corpus is one session and
137
+ roughly 600 assistant turns, and the two classes also differ in what they are
138
+ asked to catch. But where a class has already failed with its fact **verifiably
139
+ in context** — round 5 confirmed the language pin present on the turns that
140
+ violated it — raising the injection frequency is the same mechanism, not a new
141
+ one. Two council members called that theatre independently. Prefer the refusal,
142
+ or take the honest downgrade.
143
+
125
144
  ### 4 — Council (unless `--no-council`)
126
145
 
127
146
  Route the class list and the proposed mechanisms to the AI council. Ask it
@@ -42,17 +42,47 @@ git fetch origin --prune
42
42
  git ls-tree --name-only origin/main agents/roadmaps/ # still active?
43
43
  git ls-tree --name-only origin/main agents/roadmaps/archive/ # already closed?
44
44
  gh pr list --state open --json number,title,headRefName # in flight?
45
+ agent-config sessions:list --json # claimed right now?
45
46
  ```
46
47
 
47
48
  Excluded from the candidate set: `template.md`, `archive/`,
48
49
  `skipped/`, `later/`, anything with `status: draft` whose promotion
49
- trigger has not fired, and any roadmap whose slug matches an **open
50
- PR's** branch — that one is taken.
50
+ trigger has not fired, and:
51
+
52
+ | Exclusion | Source | What it means | Recovery |
53
+ |---|---|---|---|
54
+ | **taken by an open PR** | `gh pr list` — a roadmap slug matching an open PR's branch | The work is done or nearly done and is waiting on review | Review or merge that PR; the roadmap archives inside it |
55
+ | **claimed by a live session** | `sessions:list` — a live record whose `roadmap_slug` matches | Another session is working on it *right now*, before any PR exists | Nothing to do — it releases on that session's end, or by TTL |
56
+
57
+ Keep the two distinguishable in the reported screen. They are different
58
+ states with different recovery, and collapsing them into "unavailable"
59
+ loses the only information that tells the user whether to wait for a
60
+ review or simply pick something else.
51
61
 
52
62
  A roadmap completes by an archive move **inside its merging PR**, so a
53
63
  local checkout can show a closed roadmap as open. That is why this step
54
64
  precedes the screen instead of following it.
55
65
 
66
+ The session read closes a window the PR check cannot. Measured over the 14
67
+ most recent merged feature PRs, the gap between a branch's first commit and
68
+ its PR is a median of **18.5 minutes** and a maximum of **67** — and that is a
69
+ *lower bound*, since the clock starts at roadmap selection, strictly earlier
70
+ than the first commit. For that whole interval the PR check reports the
71
+ roadmap as free. Measurement:
72
+ `agents/evidence/analysis/parallel-session-register-phase1.md`.
73
+
74
+ ```
75
+ THE REGISTER *WRITE* IS HOOK-CARRIED AND DETERMINISTIC.
76
+ THIS *READ* IS NOT. THE TWO MUST NOT LOOK ALIKE.
77
+ ```
78
+
79
+ This screen runs because the model read this instruction — there is no gate
80
+ that fires it, and none that notices when it is skipped. It is a
81
+ model-carried obligation in exactly the shape the `enforced_by: none` rules
82
+ declare, and it is stated here rather than left as prose that reads like a
83
+ guarantee. What IS deterministic: the heartbeat that writes the register, the
84
+ TTL expiry, and `sessions:list` itself once invoked.
85
+
56
86
  ### 2. Screen the survivors — five disqualifiers
57
87
 
58
88
  For each candidate read its frontmatter, its open-step count, and every
@@ -108,6 +138,31 @@ GOODHART MOVE THIS PACKAGE'S OWN DISCIPLINE FORBIDS.
108
138
  [`/roadmap:create`](create.md) or a blocker the user can clear. Do
109
139
  not manufacture a pick.
110
140
 
141
+ ### 3b. Claim the pick, so the next session's screen sees it
142
+
143
+ ```bash
144
+ agent-config sessions:claim <roadmap-slug>
145
+ ```
146
+
147
+ Immediately after the pick, before any branch or commit. This writes the slug
148
+ into `agents/runtime/state/roadmap-claim.json`; the next heartbeat lifts it into
149
+ this session's register record, so another session's step 1 excludes it **within
150
+ one turn** and long before a PR exists.
151
+
152
+ Routing the claim through a state file rather than having this command write the
153
+ register directly is deliberate: the roadmap is picked mid-session by the model,
154
+ a hook is a script and cannot know what was picked, and this way the model never
155
+ needs to know the register's path or format. The cost is that the claim lands at
156
+ most one turn late.
157
+
158
+ Same honesty boundary as the screen above: **this write is model-carried.** The
159
+ verb is deterministic once invoked, and nothing forces the invocation. A skipped
160
+ claim degrades to today's behaviour — the PR check still catches the roadmap once
161
+ a PR exists — so the failure mode is a re-opened window, not a wrong result.
162
+
163
+ `agent-config sessions:claim --release` drops the claim if the run is abandoned
164
+ before the session ends; otherwise `session_end` clears the whole record.
165
+
111
166
  ### 4. Workspace — branch by default, worktree on request
112
167
 
113
168
  Default: a feature branch in the current checkout, named
@@ -176,7 +231,13 @@ AT THE MOMENT OF THE CLAIM IS AN UNVERIFIED CLAIM.
176
231
  - **One roadmap per invocation.** Never chain a second pick after the
177
232
  first closes — the user re-invokes.
178
233
  - **The screen is reported, not just used.** State which candidates were
179
- disqualified and on what, so the pick is auditable.
234
+ disqualified and on what, so the pick is auditable — and keep
235
+ "taken by open PR" and "claimed by a live session" distinguishable.
236
+ - **A live foreign claim is not a merge conflict to resolve.** It excludes the
237
+ roadmap from *this* pick and nothing more. Never override it, and never treat
238
+ the register as a lock: it is advisory, two sessions can claim in the same
239
+ millisecond, and an idle session disappears from it although its user returns
240
+ ([`parallel-sessions`](../../../../docs/guides/parallel-sessions.md)).
180
241
  - **A judgement-call blocker goes to the council, not to the user.**
181
242
  A human-ACTION blocker goes to neither — it disqualifies.
182
243
  - **No merge, ever.** The PR is opened for review; merging is
@@ -192,3 +253,4 @@ AT THE MOMENT OF THE CLAIM IS AN UNVERIFIED CLAIM.
192
253
  - [`/worktree:create`](../../worktree/create.md) — the `--worktree` path
193
254
  - [`/create-pr`](../../git/pr/create.md) — delivery + the CI wait contract
194
255
  - [`roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md) — canonical mechanics
256
+ - [`parallel-sessions`](../../../../docs/guides/parallel-sessions.md) — what the session register does, its TTLs, and the two limits it does not hide
@@ -18,6 +18,8 @@ workspaces: [engineering]
18
18
  packs: [engineering-base]
19
19
  collision_ok:
20
20
  "refactor": "an explicit clean-up/refactor ask is the remediation ladder's own trigger"
21
+ # obligation: line 51
22
+ obligation_frequency: "per-edit"
21
23
  ---
22
24
 
23
25
  # Active Remediation
@@ -10,6 +10,8 @@ routes_to:
10
10
  - "skill:analysis-skill-router"
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
+ # obligation: line 19
14
+ obligation_frequency: "none"
13
15
  ---
14
16
 
15
17
  # Analysis Skill Routing
@@ -13,6 +13,8 @@ workspaces: [agent-config-maintainer, engineering]
13
13
  packs: [meta]
14
14
  collision_ok:
15
15
  "controller": "thin-handler floor on controller work"
16
+ # obligation: line 26
17
+ obligation_frequency: "per-edit"
16
18
  ---
17
19
 
18
20
  # Architecture Rules
@@ -14,6 +14,8 @@ routes_to:
14
14
  - "guideline:agent-infra/artifact-drafting-protocol-mechanics"
15
15
  workspaces: [agent-config-maintainer, engineering]
16
16
  packs: [meta]
17
+ # obligation: line 41
18
+ obligation_frequency: "per-task"
17
19
  ---
18
20
 
19
21
  # Artifact Drafting Protocol
@@ -13,6 +13,8 @@ load_context:
13
13
  - "../contexts/contracts/artifact-engagement-flow.md"
14
14
  workspaces: [agent-config-maintainer, engineering]
15
15
  packs: [meta]
16
+ # obligation: line 22
17
+ obligation_frequency: "per-task"
16
18
  ---
17
19
 
18
20
  <!-- cloud_safe: noop -->
@@ -19,6 +19,8 @@ workspaces: [agent-config-maintainer]
19
19
  packs: [meta]
20
20
  collision_ok:
21
21
  ".augment/": "portability + sync floors for the .augment tree"
22
+ # obligation: line 28
23
+ obligation_frequency: "per-edit"
22
24
  ---
23
25
 
24
26
  # Augment Edit Discipline
@@ -13,6 +13,8 @@ triggers:
13
13
  self_contained: true
14
14
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
15
15
  packs: [meta]
16
+ # obligation: line 4
17
+ obligation_frequency: "per-turn"
16
18
  ---
17
19
 
18
20
  # Autonomous Execution
@@ -10,6 +10,8 @@ applies_to_user_types:
10
10
  self_contained: true
11
11
  workspaces: [engineering]
12
12
  packs: [brand]
13
+ # obligation: line 20
14
+ obligation_frequency: "none"
13
15
  ---
14
16
 
15
17
  # Brand Consistency
@@ -20,6 +20,8 @@ applies_to_user_types:
20
20
  self_contained: true
21
21
  workspaces: [engineering]
22
22
  packs: [brand]
23
+ # obligation: line 51
24
+ obligation_frequency: "per-edit"
23
25
  ---
24
26
 
25
27
  # Brand Source of Truth
@@ -23,6 +23,8 @@ collision_ok:
23
23
  "controller": "controllers return user data — the ownership/tenant check floor"
24
24
  "endpoint": "every data-returning endpoint needs the three negative tests"
25
25
  "tenant": "cross-tenant isolation is this rule's core subject"
26
+ # obligation: line 55
27
+ obligation_frequency: "per-edit"
26
28
  ---
27
29
 
28
30
  # Broken Access Control
@@ -35,6 +35,8 @@ collision_ok:
35
35
  "composer": "composer output is verbose — rtk wrap applies"
36
36
  "docker": "docker output is verbose — rtk wrap applies"
37
37
  "rector": "rector output is verbose — rtk wrap applies"
38
+ # obligation: line 42
39
+ obligation_frequency: "per-edit"
38
40
  ---
39
41
 
40
42
  # Cli Output Handling