@event4u/agent-config 14.19.0 → 14.21.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 (161) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +351 -156
  5. package/README.md +1 -1
  6. package/agents/templates/.ai-council.yml.example +10 -0
  7. package/dist/agent-src/commands/agent-handoff.md +42 -41
  8. package/dist/agent-src/commands/analyze/inbox.md +1 -1
  9. package/dist/agent-src/commands/analyze/{reference-repo.md → repo.md} +247 -32
  10. package/dist/agent-src/commands/analyze/roadmap-repos.md +129 -0
  11. package/dist/agent-src/commands/analyze.md +12 -7
  12. package/dist/agent-src/commands/feature/plan.md +55 -16
  13. package/dist/agent-src/commands/feature/refactor.md +8 -3
  14. package/dist/agent-src/commands/humanize.md +48 -4
  15. package/dist/agent-src/contexts/execution/contract-decision-sheet.md +22 -1
  16. package/dist/agent-src/contexts/execution/host-capability-manifest.md +11 -2
  17. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +35 -2
  18. package/dist/agent-src/contexts/execution/terminal-states.md +4 -1
  19. package/dist/agent-src/rules/evaluator-independence.md +4 -4
  20. package/dist/agent-src/rules/external-reference-deep-dive.md +2 -2
  21. package/dist/agent-src/rules/untrusted-input-defense.md +0 -2
  22. package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
  23. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +1 -1
  24. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +27 -11
  25. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -1
  26. package/dist/agent-src/skills/markitdown/SKILL.md +2 -2
  27. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  28. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +28 -6
  29. package/dist/agent-src/skills/technical-specification/SKILL.md +4 -0
  30. package/dist/agent-src/skills/test-driven-development/SKILL.md +1 -3
  31. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  32. package/dist/agent-src/templates/features.md +5 -0
  33. package/dist/agent-src/templates/roadmaps.md +29 -1
  34. package/dist/agent-src/templates/scripts/telemetry/mcp_lite.ts +213 -0
  35. package/dist/agent-src/templates/scripts/telemetry/report_renderer.ts +16 -0
  36. package/dist/agent-src/templates/scripts/telemetry_report.ts +22 -2
  37. package/dist/cli/mcp/dispatch.js +10 -0
  38. package/dist/cli/mcp/stdio.js +33 -2
  39. package/dist/cli/mcp/telemetry.js +227 -0
  40. package/dist/cli-delegate/{chunk-KPBWFOPZ.js → chunk-2FTMENJL.js} +194 -37
  41. package/dist/cli-delegate/{chunk-PMEKGDED.js → chunk-2TAQ2K4V.js} +166 -1
  42. package/dist/cli-delegate/{chunk-GZTMRYCN.js → chunk-643Z7FIC.js} +79 -12
  43. package/dist/cli-delegate/{chunk-CYH5SP6M.js → chunk-I6RHFQEG.js} +151 -16
  44. package/dist/cli-delegate/{chunk-IDHUQIXP.js → chunk-J3RFNKG4.js} +41 -5
  45. package/dist/cli-delegate/{chunk-7PRE6ZV2.js → chunk-YS6XTLEK.js} +199 -4
  46. package/dist/cli-delegate/chunk-ZVBOHSVF.js +1109 -0
  47. package/dist/cli-delegate/cmd_conformance.js +88 -110
  48. package/dist/cli-delegate/cmd_doctor.js +3 -3
  49. package/dist/cli-delegate/cmd_export.js +2 -2
  50. package/dist/cli-delegate/cmd_handoff.js +42 -12
  51. package/dist/cli-delegate/cmd_memory_get.js +1 -1
  52. package/dist/cli-delegate/cmd_prune.js +2 -2
  53. package/dist/cli-delegate/cmd_route_audit.js +1 -1
  54. package/dist/cli-delegate/cmd_session_recycle.js +59 -902
  55. package/dist/cli-delegate/cmd_settings_migrate.js +2 -2
  56. package/dist/cli-delegate/cmd_sync.js +2 -2
  57. package/dist/cli-delegate/cmd_uninstall.js +2 -2
  58. package/dist/cli-delegate/cmd_validate.js +2 -2
  59. package/dist/discovery/deprecation-report.md +1 -1
  60. package/dist/discovery/discovery-manifest.json +62 -31
  61. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  62. package/dist/discovery/discovery-manifest.summary.md +3 -3
  63. package/dist/discovery/dormancy-report.md +1 -1
  64. package/dist/discovery/orphan-report.md +1 -1
  65. package/dist/discovery/packs.json +7 -6
  66. package/dist/discovery/trust-report.md +2 -2
  67. package/dist/discovery/workspaces.json +6 -5
  68. package/dist/hooks/dispatch.js +3801 -2803
  69. package/dist/install/install.mjs +396 -168
  70. package/dist/mcp/registry-manifest.json +3 -3
  71. package/dist/mcp/server.json +2 -2
  72. package/dist/mcp/server.mjs +809 -180
  73. package/dist/scripts/ai_council/content_ceiling.js +63 -0
  74. package/dist/scripts/ai_council/seat_policy.js +106 -0
  75. package/dist/scripts/ai_council/transport_resolver.js +21 -0
  76. package/dist/scripts/mcp_server/telemetry.js +148 -0
  77. package/docs/guidelines/agent-infra/naming.md +1 -1
  78. package/docs/guidelines/agent-infra/security-lint-containment.md +46 -6
  79. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +4 -4
  80. package/docs/guidelines/agent-infra/untrusted-input-spotlighting.md +1 -1
  81. package/docs/guidelines/redundancy-taxonomy.md +28 -0
  82. package/llms.txt +14 -14
  83. package/package.json +1 -1
  84. package/src/agent-src/templates/scripts/telemetry/mcp_lite.ts +213 -0
  85. package/src/agent-src/templates/scripts/telemetry/report_renderer.ts +16 -0
  86. package/src/agent-src/templates/scripts/telemetry_report.ts +22 -2
  87. package/src/config/assurance-capability-registry.json +9 -0
  88. package/src/config/gate-coverage.yml +55 -0
  89. package/src/config/gate-violation-baselines.json +18 -6
  90. package/src/config/release-gate-locality.yml +4 -3
  91. package/src/scripts/_cli/cmd_session_recycle.ts +51 -3
  92. package/src/scripts/_lib/audit_field_provenance.ts +44 -3
  93. package/src/scripts/_lib/blocked_by_marker.ts +189 -0
  94. package/src/scripts/_lib/host_capability.ts +76 -1
  95. package/src/scripts/_lib/install_reach_checks.ts +33 -1
  96. package/src/scripts/_lib/mcp_bridge.ts +222 -10
  97. package/src/scripts/_lib/mcp_consent_residual.ts +173 -0
  98. package/src/scripts/_lib/orchestration_record.ts +23 -1
  99. package/src/scripts/_lib/recycle_envelope_paths.ts +190 -0
  100. package/src/scripts/_lib/release_highlights.ts +19 -211
  101. package/src/scripts/_lib/release_material.ts +27 -77
  102. package/src/scripts/_lib/release_position.ts +96 -0
  103. package/src/scripts/_lib/review_skipped_record.ts +17 -1
  104. package/src/scripts/_lib/security_lint.ts +179 -7
  105. package/src/scripts/_lib/self_repair.ts +141 -6
  106. package/src/scripts/_lib/self_repair_store.ts +273 -7
  107. package/src/scripts/_lib/structured_ask.ts +117 -0
  108. package/src/scripts/_lib/subagent_capsule.ts +155 -3
  109. package/src/scripts/_lib/tty_prompt.ts +76 -0
  110. package/src/scripts/ai_council/api_transport.ts +163 -0
  111. package/src/scripts/ai_council/clients.ts +58 -63
  112. package/src/scripts/ai_council/config.ts +13 -0
  113. package/src/scripts/ai_council/content_ceiling.ts +79 -0
  114. package/src/scripts/ai_council/jury_aggregate.ts +178 -0
  115. package/src/scripts/ai_council/seat_policy.ts +137 -0
  116. package/src/scripts/ai_council/status_surface.ts +79 -0
  117. package/src/scripts/ai_council/transport_resolver.ts +59 -1
  118. package/src/scripts/ai_tells_rules.ts +446 -5
  119. package/src/scripts/ask_block_census.ts +499 -0
  120. package/src/scripts/bench_humanizer_eval.ts +264 -40
  121. package/src/scripts/bench_prose_tells_fp.ts +198 -0
  122. package/src/scripts/build_rule_trigger_matrix.ts +5 -0
  123. package/src/scripts/check_branch_work_committed.ts +234 -0
  124. package/src/scripts/check_mcp_doc_drift.ts +217 -0
  125. package/src/scripts/check_pack_size.ts +321 -3
  126. package/src/scripts/check_release_highlights.ts +0 -157
  127. package/src/scripts/council_cli.ts +18 -27
  128. package/src/scripts/detect_ai_tells.ts +142 -20
  129. package/src/scripts/handoff_context_hook.ts +54 -7
  130. package/src/scripts/harvest_reference_tokens.ts +698 -0
  131. package/src/scripts/hook_manifest.json +1 -1
  132. package/src/scripts/hook_manifest.yaml +31 -1
  133. package/src/scripts/hooks/concern_registry.ts +2 -0
  134. package/src/scripts/hooks/delegation_nudge_hook.ts +45 -1
  135. package/src/scripts/hooks/one_question_per_ask_hook.ts +191 -0
  136. package/src/scripts/hooks/session_eol_hook.ts +18 -7
  137. package/src/scripts/install-hooks.sh +52 -0
  138. package/src/scripts/install.ts +4 -4
  139. package/src/scripts/lint_agent_security.ts +316 -25
  140. package/src/scripts/lint_confusables.ts +42 -6
  141. package/src/scripts/lint_handoffs.ts +0 -132
  142. package/src/scripts/lint_hidden_unicode.ts +49 -7
  143. package/src/scripts/lint_instruction_smuggling.ts +42 -6
  144. package/src/scripts/lint_mcp_config_security.ts +42 -6
  145. package/src/scripts/lint_roadmap_blockers.ts +51 -1
  146. package/src/scripts/lint_roadmap_later_disposition.ts +217 -27
  147. package/src/scripts/lint_skill_frontmatter_safety.ts +43 -7
  148. package/src/scripts/mcp_server/resources.ts +41 -0
  149. package/src/scripts/mcp_server/telemetry.ts +19 -4
  150. package/src/scripts/migrate_command_suggestions.ts +1 -1
  151. package/src/scripts/orchestration_record.ts +12 -1
  152. package/src/scripts/probe_unblocked_ask.ts +135 -2
  153. package/src/scripts/release.ts +50 -95
  154. package/src/scripts/release_drill.ts +6 -10
  155. package/src/scripts/release_env.ts +1 -0
  156. package/src/scripts/release_publication.ts +40 -31
  157. package/src/scripts/self_repair_cli.ts +31 -1
  158. package/src/scripts/self_review_gate.ts +409 -15
  159. package/src/scripts/skill_scout.ts +69 -0
  160. package/dist/cli-delegate/chunk-2GNWGMAL.js +0 -172
  161. package/dist/cli-delegate/chunk-LPPWO5CE.js +0 -161
package/CHANGELOG.md CHANGED
@@ -32,6 +32,155 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
32
32
 
33
33
  ### Fixed
34
34
 
35
+ - **The self-review gate reviews again — it had reviewed nothing for four
36
+ consecutive releases.** 14.17.0, 14.18.0, 14.19.0 and 14.20.0 each returned
37
+ `HTTP 400 prompt is too long` and each recorded an honest null in
38
+ `agents/evidence/release-findings/`. The release path sets the analysis base
39
+ to the previous tag, so the whole release span went into **one** request.
40
+ **All four** recorded a figure against the 200000 cap — 235472 (14.17.0),
41
+ 413191 (14.18.0), 450336 (14.19.0), 260998 (14.20.0) — and the smallest
42
+ exceeded it by 17.7 %. (An earlier draft of this entry said three releases
43
+ recorded a figure and put the smallest at 30 % over; both were wrong, and the
44
+ omitted reading was the one nearest the cap — the one that most constrains
45
+ the budget. The conclusion does not depend on the error: every span observed
46
+ exceeds the cap.) `buildPlan` already computed `promptChars` and only
47
+ *reported* it, so nothing consulted the number before spending the call.
48
+ The diff is now partitioned **per file** into requests under a character
49
+ budget, each is reviewed, and findings are merged and deduplicated on the
50
+ finding id the ledger already uses. Verified against the live span that had
51
+ been failing: 5 requests, no path left out.
52
+ **Nothing is truncated**, and that is the load-bearing decision: a silently
53
+ shortened diff yields findings about a fragment while reading as a review of
54
+ the whole change, which is the false green this repository's honest-null
55
+ discipline exists to prevent. So a single file larger than one request is
56
+ **named as unreviewed** rather than cut mid-hunk, a per-run request ceiling
57
+ bounds the spend and reports its remainder, a chunk whose call fails no longer
58
+ discards the chunks that succeeded, and the rendered PR comment carries a
59
+ **Coverage** block stating what was not read — including the sentence that
60
+ absence of a finding for an unreviewed path is not evidence about that path.
61
+ `--dry-run` now prints the request count rather than only a token estimate,
62
+ because this gate spends per request, and warns when a span sits at the
63
+ ceiling. The budget factor is a character proxy **derived from those four
64
+ failures** (measured diff chars / reported tokens = 3.13 and 3.18) and set
65
+ below them, because the ratio is content-dependent — cl100k over this repo's
66
+ own diffs reads ~3.9 for `src/`, ~4.1 for prose and ~2.75 for a lockfile. A
67
+ call that still overflows a budgeted chunk falsifies that number, not the
68
+ partitioning.
69
+ **A neutral reviewer on the first version found three defects that are fixed
70
+ here rather than shipped.** The coverage line counted every file in a dropped
71
+ chunk as reviewed — 59 of 60 for a run that read 4, because the partition
72
+ packed to opaque strings and reported one aggregate row; it ignored chunks
73
+ whose call had failed, computing the number before those were appended; and a
74
+ non-ASCII filename was silently skipped **and** counted as read, because
75
+ `git diff --name-only` renders it quoted and the quoted form then matches no
76
+ pathspec. Coverage is now summed from the chunks that actually returned, every
77
+ dropped chunk names its own files, and paths are read with
78
+ `core.quotePath=false`. Correcting the budget ratio shrank each request, so
79
+ the same span needed five: the request ceiling moved from four to six rather
80
+ than paying for tokenizer safety with silent coverage loss.
81
+ Known limits, stated rather than implied: coverage lives in prose, so an
82
+ `--enforce` run over a partial review still returns 0, and
83
+ `check_finding_dispositions --ingest` reads only `.findings`, so the durable
84
+ ledger does not record the coverage the artifact now carries.
85
+
86
+ ### Added
87
+
88
+ - **A push no longer ships a branch whose tree contradicts its own commits.**
89
+ `check_branch_work_committed` runs first in the pre-push hook, and it exists
90
+ because this branch produced the defect it guards: a merge-reconciled baseline
91
+ was written into `gate-violation-baselines.json` **after** `git add`, so
92
+ `git commit --no-edit` captured the staged side, the reconciled number stayed
93
+ in the working tree, and the push went out asserting a baseline the tree
94
+ contradicted. The operator found it, not the pipeline — and **no CI gate
95
+ could have**: CI checks out the pushed commit, and the working tree holding
96
+ the lost edit does not exist there. That is why this gate is pre-push and
97
+ local-only, the same reach `check_branch_freshness` has.
98
+ It blocks by **authorship**, not on a dirty tree, because a blanket
99
+ clean-tree rule would fire on every gate script's own report output and train
100
+ the operator to set the skip variable: staged-and-changed-since (the measured
101
+ shape), staged at all (`git add` is recorded intent, and a push carries
102
+ commits rather than the index), and dirty files this branch's own commits
103
+ touch. A parallel session's edit and a gate's report output are named and
104
+ waved through. One residual limit is stated in the header rather than hidden:
105
+ a file this branch created and neither staged nor committed cannot be told
106
+ apart from a foreign untracked file; the staged rule closes it at the first
107
+ `git add`, and that rule exists because testing the gate against the live
108
+ tree put its own source file in the advisory class.
109
+
110
+ ### Fixed
111
+
112
+ - **`task release` no longer asks the releaser to write anything, and the
113
+ written-answer obligation is deleted (ADR-261).** This entry replaces the one
114
+ that stood here — *"the release's written obligation is now answerable, not
115
+ only refusable"* — because that mechanism landed and was removed in the same
116
+ cycle, and shipping its description would be a false claim about 14.21.0.
117
+
118
+ The obligation: when governance-only commits outnumbered consumer-only ones
119
+ over the release span, the section had to carry human prose naming the next
120
+ cycle's consumer work, and the following release had to read that promise back
121
+ as `shipped` / `did not ship` / `withdrawn`. Four refusal sites, two
122
+ placeholder sentinels, a length floor, an outcome vocabulary, a
123
+ `## [Unreleased]` staging channel and an interactive prompt stood behind two
124
+ sentences. Across 14.18.0, 14.19.0 and 14.20.0 it was discharged **by hand,
125
+ mid-release**, after the pipeline had bumped the version and aborted.
126
+
127
+ The mechanism built to fix that ran for the first time on 14.21.0 and made it
128
+ worse: `staged_response` located its markers with an unanchored
129
+ `body.indexOf(marker)` over the whole `## [Unreleased]` body, so it matched
130
+ the **prose of the changelog entry describing itself**, cut two sentences out
131
+ of the middle of that entry, pasted them into the 14.21.0 release head as
132
+ orphan fragments, and prompted for the answer anyway. A `task release` run
133
+ corrupted both sections of the file it was governing. Both are repaired here.
134
+
135
+ The owner removed the obligation rather than the bug: this package exists to
136
+ make the maintainer's work cheaper, and a gate that halts a green pipeline
137
+ until a human types prose about a cycle that has not happened yet moves cost
138
+ onto the person the tool is for. `> **Governance mix:** …` stays as a
139
+ one-line measurement the generator renders end to end.
140
+
141
+ **Untouched:** every honesty control about a claim *this* release makes —
142
+ `_auto-derived, rewrite before merge:_` still blocks, the authoring-instruction
143
+ sentinel still blocks, the `_none_` contradiction check still blocks, the
144
+ `Tests: N` footer is still required. Those refuse an unreviewed statement about
145
+ the release being published; the deleted one refused the absence of a statement
146
+ about a future one. ADR-253's actual decision — the decline of the per-PR
147
+ user-artifact gate — stands.
148
+
149
+ - **The 14.19.0 start-position fix shipped incomplete; this is its other half.**
150
+ It taught `preflightPosition` to accept `release/{target}`, and 14.20.0 then
151
+ failed with `release must run from 'main' or 'release/14.21.0', currently on
152
+ 'release/14.20.0'`. Step 2 had already bumped `package.json`, so a plain
153
+ re-run computed the bump from the **already bumped** version and asked the
154
+ preflight about a version one higher than the one in flight — the start-position
155
+ fix could not help, it was asked about the wrong target.
156
+ `_detect_in_flight_target` needed no flag for either of its branches (HEAD on a
157
+ release branch; a manifest version whose tag is not published), and the comment
158
+ at the call site already stated that intent — the `args.resume ?` gate narrowed
159
+ it to resumed runs. The probe now runs unconditionally, so an abandoned bump can
160
+ no longer be silently released as the NEXT version either. A wiring assertion
161
+ pins it, because the probe's own unit tests passed throughout: they never asked
162
+ whether anything called it unconditionally.
163
+
164
+ - **The curated-head refusal is recoverable again — its own remedy was refused
165
+ by the preflight.** `guard_release_curation` stops between step 2 and step 3,
166
+ leaving HEAD on the local `release/X.Y.Z` with the generated section
167
+ uncommitted, and tells the operator to curate the head and re-run
168
+ `task release`. Measured on 14.19.0, every spelling of that re-run died
169
+ *before step 1*: a plain run on `release must run from 'main'`, and
170
+ `--resume` on `working tree is not clean` — against the pipeline's own
171
+ step-2 output. The only way through was to hand-craft the `release: X.Y.Z`
172
+ commit the pipeline makes for itself one step later.
173
+ `docs/release-runbook.md` claimed this had been closed on 2026-09-03; that
174
+ fix landed in `checkout_release_branch`, which is step 1 and therefore
175
+ unreachable from the position the guard creates — the claim was not wrong
176
+ about step 1, it was wrong that step 1 was reachable. The start position is
177
+ now one pure verdict, `preflightPosition`: `release/{target}` is legal with
178
+ or without `--resume`, and a dirty tree is accepted **there only**, with the
179
+ swept files printed. A dirty `main` still refuses, because there the same
180
+ tree is an operator's unrelated work about to enter a release commit. Pinned
181
+ by `tests/scripts/release.test.ts` § `preflightPosition`, including a wiring
182
+ assertion so a pure verdict nobody calls cannot pass.
183
+
35
184
  - **Release gates now refuse before the push, not on the release PR.** 14.17.0
36
185
  (PR #1856) failed `check_release_highlights` on a missing
37
186
  `> **Governance mix:**` line — an assertion reproducible locally in under two
@@ -48,6 +197,13 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
48
197
  section-level publication blocker, which until now also existed only inside
49
198
  `release-validation.yml`.
50
199
 
200
+ **Superseded within the same cycle — read the ADR-261 entry above.** The
201
+ placeholder sentinel, `mix_response_blockers` and the whole written-answer
202
+ obligation this entry describes are deleted; the `> **Governance mix:**` line
203
+ survives as a pure measurement. What still holds from this entry: the
204
+ locality registry, the `Tests: N` footer as a section-level blocker, and the
205
+ push-time refusal for the curated head.
206
+
51
207
  ### Added
52
208
 
53
209
  - **A release-gate locality registry, so the next orphan cannot land silently.**
@@ -485,194 +641,233 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
485
641
  > keeps the active era under the 250-line drift cap enforced by
486
642
  > `tests/test_changelog_eras.py`.
487
643
 
488
- # Era: 14.19.x — current
644
+ # Era: pre-14.20.0 — archived
489
645
 
490
- > Started at `14.19.0`. Full entries live inline below.
646
+ > All entries before `14.20.0` live in
647
+ > [`docs/archive/CHANGELOG-pre-14.20.0.md`](docs/archive/CHANGELOG-pre-14.20.0.md).
648
+ > The archive is read-only; git tags remain the canonical
649
+ > source for what shipped. Splitting them out of the main file
650
+ > keeps the active era under the 250-line drift cap enforced by
651
+ > `tests/test_changelog_eras.py`.
652
+
653
+ # Era: 14.20.x — current
654
+
655
+ > Started at `14.20.0`. Full entries live inline below.
491
656
  > The drift test caps this era at 250 lines of entry body; growth past
492
- > that forces a new era split (`# Era: 14.20.x`, etc.) — see
657
+ > that forces a new era split (`# Era: 14.21.x`, etc.) — see
493
658
  > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
494
659
 
495
- ## [14.19.0](https://github.com/event4u-app/agent-config/compare/14.18.0...14.19.0) (2026-09-07)
660
+ ## [14.21.0](https://github.com/event4u-app/agent-config/compare/14.20.0...14.21.0) (2026-09-07)
496
661
 
497
662
  ### Release highlights
498
663
 
499
- - **Behaviour changes:** drop a comma from the three skill-reachability lines (be57b0c); skills are named or trigger-matched, not matched by topic (edbc6a5); keep autonomous-execution inside the size its pointer claims (a9d21e2); fit the directory-flag line inside the preamble ratchet (5d1d002); bump the skill schema patch for the corrected host claim (a5281be); pay for the host-wording correction in the preamble budget (26659d6); +4 more.
500
- - **Default changes + migration:** move the column migration out of a file past its cap (03eedeb).
501
- - **Security and correctness:** split the claim check out of the census into a check_ gate (88132c6); re-pin the gate-coverage canary line to 598 (3a8e3f7); separate repository drift from store drift in the staleness verdict (6d9284a); route the merged permission-decision envelope through the table (b4e4573); read the expiry verdict through the as-of seam (f6f862a); type the bridge reads instead of suppressing the lint (285c0e0); +8 more.
502
- - **Honest nulls:** close road-to-the-ledger-two-releases-skipped (7cb1af8).
664
+ - **Behaviour changes:** `task release` no longer asks the releaser to write prose about the next cycle — the governance-versus-product written answer, its promise read-back, the `## [Unreleased]` staging channel and the interactive prompt are deleted, and `> **Governance mix:**` is a pure measurement (ADR-261); one repo-analysis engine with a bounded three-lens loop (8488bf0); record that an unpaid route may propose and score, never decide (10c8c16).
665
+ - **Default changes + migration:** _none_
666
+ - **Security and correctness:** place the worktree gate where neither neighbour's pin breaks (e4ff296); harden the scan scope through the shared reporter (80514a3); read the in-flight target off state, not off --resume (9dafbc7); re-pin the council-template payload exception at its measured size (23dc5bd); guard the humanizer bench entry point (e998ce5); make the bound table say what the scanner does (20fd4c0); +4 more.
667
+ - **Honest nulls:** record the 14.20.0 findings null, and correct the growth claim (065aeba); re-pin the council-template payload exception at its measured size (23dc5bd); disarm the rule-of-three over ordinary lists, floor the densities (ee2fb2f); pre-register the jury claim and build its aggregator (3b3c7e0); report a disabled seat and why it ships off (47a1d1c).
503
668
  - **Known limitations:** _none_
504
669
 
505
- > **Governance mix:** governance-only 52 vs consumer-only 17 (taxonomy 1.0.0).
506
- > Next cycle ships the installed MCP bridge repair — a version-pinned server
507
- > entry instead of an `npx -y` resolution of `latest`, a registration that
508
- > migrates itself when the bridge shape changes under an update, and setup docs
509
- > matching the command the installer actually writes — tracked in
510
- > `agents/roadmaps/road-to-mcp-bridge-integrity-and-reach-truth.md`, which stands
511
- > at zero of its seventeen steps at this tag.
512
-
513
- > **Previous cycle:** the 14.18.0 head promised the installed MCP bridge repair —
514
- > a version-pinned server entry instead of an `npx -y` resolution of `latest`, a
515
- > registration that migrates itself when the bridge shape changes, and setup docs
516
- > matching the command the installer writes. It **did not ship**. `MCP_BRIDGE_ENTRY`
517
- > still resolves `npx -y @event4u/agent-config`
518
- > (`src/scripts/_lib/mcp_bridge.ts:38-45`) and the roadmap carrying it,
519
- > `road-to-mcp-bridge-integrity-and-reach-truth`, stands at zero of its seventeen
520
- > steps. The promise is not withdrawn; it is outstanding, and from this release on
521
- > a head that leaves the previous head's promise unanswered is refused by
522
- > `check_release_highlights`.
670
+ > **Governance mix:** governance-only 31 vs consumer-only 10 (taxonomy 1.0.0).
523
671
 
524
672
  ### Features
525
673
 
526
- * **ci:** call the activation census at release time and register it ([ec7282e](https://github.com/event4u-app/agent-config/commit/ec7282ef65bf1fb19c322242c6f7de38d00b71ba))
527
- * **census:** give the activation census a record, a claim check and a self-test ([1ce9fc0](https://github.com/event4u-app/agent-config/commit/1ce9fc005491174adcdd5abe8171cd7fe025e4c4))
528
- * **skills:** the design family becomes router-visible ([044a15c](https://github.com/event4u-app/agent-config/commit/044a15c8c1bda4ae4b682b71b53760cc07088976))
529
- * **fe-design:** frequency and initiation are declared, never inferred ([5a051c6](https://github.com/event4u-app/agent-config/commit/5a051c691dfcd0cf6b04aa6863aa713d9890baf0))
530
- * **design:** the Motion dial reads frequency and initiation ([027dc78](https://github.com/event4u-app/agent-config/commit/027dc7869de803f6859a1fe7e5d058b505edf01c))
531
- * **evidence:** a feel type, for motion that is correct and still wrong ([0b25dc0](https://github.com/event4u-app/agent-config/commit/0b25dc0cf4fb06ccf006beae08e7ac3cc3df8b41))
532
- * **design:** the antipattern catalog says what class a row is ([347c1d0](https://github.com/event4u-app/agent-config/commit/347c1d02cdecf7788ffcaa14de9c8806513d1034))
533
- * **design:** one motion authority, and a gate that fails on drift ([a09dc6e](https://github.com/event4u-app/agent-config/commit/a09dc6e962500f3f559e112bc00c774da21be120))
534
- * **measurement:** baseline the friction instead of asserting it ([6d4292e](https://github.com/event4u-app/agent-config/commit/6d4292ee351cddb5882bc9e071a0d86074215efe))
535
- * **hooks:** give a host-capability fact an expiry, and enforce it ([407f657](https://github.com/event4u-app/agent-config/commit/407f657c65666b3a5960726c1499dee5e9f57f2f))
536
- * **hooks:** record the surface a dispatch came from ([a3f0657](https://github.com/event4u-app/agent-config/commit/a3f06577fd74d99a898ba3a4f3f552553decc554))
537
- * **hooks:** one table for host lowering, replacing five constants ([646fdab](https://github.com/event4u-app/agent-config/commit/646fdaba103a6dac42e9fd3df8742a5369337a20))
538
- * **ledger:** record the consequence operations the owner named ([c299ece](https://github.com/event4u-app/agent-config/commit/c299ece07d4c01357eb444a21fbb183c54ac7e14))
539
- * **doctor:** report the host permission settings that produce prompts ([473f4e1](https://github.com/event4u-app/agent-config/commit/473f4e18e3e7211f3edbc499ba81de8bc4ed4c4e))
540
- * **hooks:** emit permissionDecision allow for category-A tool calls ([e9fef89](https://github.com/event4u-app/agent-config/commit/e9fef896b1680f19a7ff8ae78d5014b660a90f82))
541
- * **gates:** give the RDP corpus a validator and the trigger contradiction a check ([6ff326c](https://github.com/event4u-app/agent-config/commit/6ff326ccce27a7f371e405c33be8c8900d7fc31a))
542
- * **gates:** pin a coverage row to the workflow invocation it claims ([80cb0cb](https://github.com/event4u-app/agent-config/commit/80cb0cb10e3f0a3298121c631fe487036928316a))
543
- * **gates:** an empty findings ledger must state why it is empty ([2db593c](https://github.com/event4u-app/agent-config/commit/2db593c51da43ef5e882acff82bda98577a59357))
544
- * **release:** read the previous head's next-cycle promise back ([f6cae66](https://github.com/event4u-app/agent-config/commit/f6cae669502652899467ebdd56b90a2625e6ea69))
545
- * **adr:** surface dated review triggers in the ADR index ([ead5eaf](https://github.com/event4u-app/agent-config/commit/ead5eaf8983d18b2bf42fb4d825d143f8f22bc6e))
546
- * **adr:** decide a review trigger whose condition is a date ([2974a54](https://github.com/event4u-app/agent-config/commit/2974a54eb4d4e71f4072916c32ef40cb7e7494ef))
547
- * **gates:** assert a coverage row runs its gate the way the pipeline does ([0ec7893](https://github.com/event4u-app/agent-config/commit/0ec789358261b47e0a92f7eec7e947fd255429a1))
548
- * **gates:** measure the two README dimensions that regressed unseen ([d18aa13](https://github.com/event4u-app/agent-config/commit/d18aa139eed673e98f93cac281b0dc5acfa9e3bf))
549
- * **gates:** report beta contracts about to lapse, not only those that have ([3c5b868](https://github.com/event4u-app/agent-config/commit/3c5b8685dca0b218985988b85026ed9b8ef503ed))
674
+ * **gates:** refuse a push that leaves this branch's own work uncommitted ([e64d35f](https://github.com/event4u-app/agent-config/commit/e64d35fce403f665035f55eee16a70d22a30c81f))
675
+ * **release:** make the written obligation answerable, not only refusable ([d61cab7](https://github.com/event4u-app/agent-config/commit/d61cab76ab46f5dea883b7664bd040948116aed3))
676
+ * **scripts:** add harvest_reference_tokens, the one discovery pass ([22eed08](https://github.com/event4u-app/agent-config/commit/22eed08890e33f83479343871e81d3be86218530))
677
+ * **analyze:** add the roadmap-repos harvester as a thin orchestrator ([64da6d4](https://github.com/event4u-app/agent-config/commit/64da6d43fd61e68e851c2a49dbf5d58a260cd7be))
678
+ * **analyze:** one repo-analysis engine with a bounded three-lens loop ([8488bf0](https://github.com/event4u-app/agent-config/commit/8488bf078d484028f280e6a8df6a41307da019e5))
679
+ * **humanizer:** locate findings, read a consistent pattern as intent, add --audit ([288f451](https://github.com/event4u-app/agent-config/commit/288f451a59b4a0b4f193bd1135e46ea738bc3f68))
680
+ * **humanizer:** attribute the blind preference, and decline real-draft collection ([89fa350](https://github.com/event4u-app/agent-config/commit/89fa350b34bb2ab99956c73fecf3308d9a847f72))
681
+ * **ai-tells:** land six English and seven German families, one epoch each ([40c77ed](https://github.com/event4u-app/agent-config/commit/40c77ed28d7498444ddb0bcf78b46d5035f848fa))
682
+ * **hooks:** one question per structured-ask call, where a deny is honoured ([f9ee563](https://github.com/event4u-app/agent-config/commit/f9ee5638a37ad7e9791712fb1db06cc9d32d859d))
683
+ * **feature-plan:** one decision per ask, and a summary that follows the asking ([b7222ea](https://github.com/event4u-app/agent-config/commit/b7222ea864482e7ddfb621771caa92b41644bcc2))
684
+ * **roadmap:** ask before park, and stop Open questions reading as storage ([5442cbd](https://github.com/event4u-app/agent-config/commit/5442cbde880117da5300e4d5cd491caa329c26d9))
685
+ * **host-capability:** make the structured-ask capability a recorded fact ([de33df2](https://github.com/event4u-app/agent-config/commit/de33df2e0f424b84013d6077bd57fa655ea52aeb))
686
+ * **ask:** record the native-ask rate in the census artefact ([0ea82ea](https://github.com/event4u-app/agent-config/commit/0ea82eadd5df1df58d64ae50959d242aacb08bec))
687
+ * **ask:** measure the ask surface before changing it ([1b27f7a](https://github.com/event4u-app/agent-config/commit/1b27f7a944d4cfb4031f58311620d760cf8c5340))
688
+ * **council:** pre-register the jury claim and build its aggregator ([3b3c7e0](https://github.com/event4u-app/agent-config/commit/3b3c7e0c7d4c1c77b51af888b83974a18b63b2be))
689
+ * **council:** make a policy refusal sayable, and fail closed on it ([f52115d](https://github.com/event4u-app/agent-config/commit/f52115d5931e349de035409559c6d7c1729ce9ba))
690
+ * **council:** report a disabled seat and why it ships off ([47a1d1c](https://github.com/event4u-app/agent-config/commit/47a1d1cc2424c5f66f2f32fd17ffb09269a45ae4))
691
+ * **council:** give gemini, xai and perplexity a live api transport ([92193b8](https://github.com/event4u-app/agent-config/commit/92193b8c0c1d2c8f06dc0761fdebdb17124a718e))
550
692
 
551
693
  ### Bug Fixes
552
694
 
553
- * **gates:** split the claim check out of the census into a check_ gate ([88132c6](https://github.com/event4u-app/agent-config/commit/88132c6a98ebf9ddb8f7a09f099f5aa5400e452f))
554
- * **roadmaps:** correct what `status: carrier` actually exempts ([80235da](https://github.com/event4u-app/agent-config/commit/80235dacdd6b4edf8d514b75c41423672097d7aa))
555
- * **census:** separate repository drift from store drift in the staleness verdict ([6d9284a](https://github.com/event4u-app/agent-config/commit/6d9284a0f843bace0095305e0cf6250a3135bd2c))
556
- * **design:** name the reduced-motion media query, not a bare rule token ([3b19777](https://github.com/event4u-app/agent-config/commit/3b19777e22d9e451d85049a3e3d4fcdf4e33e7d9))
557
- * **hooks:** route the merged permission-decision envelope through the table ([b4e4573](https://github.com/event4u-app/agent-config/commit/b4e45734a91b4ddd4f26d4725654c97e0b126e12))
558
- * **gates:** read the expiry verdict through the as-of seam ([f6f862a](https://github.com/event4u-app/agent-config/commit/f6f862aeb08e7968d6017e815072763996e42e10))
559
- * **tests:** type the bridge reads instead of suppressing the lint ([285c0e0](https://github.com/event4u-app/agent-config/commit/285c0e0f717954dce7013f6af8ce0615b4e79f62))
560
- * **rules:** keep autonomous-execution inside the size its pointer claims ([a9d21e2](https://github.com/event4u-app/agent-config/commit/a9d21e216216df071577df8458921cad57e53b3b))
561
- * **schema:** bump the skill schema patch for the corrected host claim ([a5281be](https://github.com/event4u-app/agent-config/commit/a5281bea1f1c41288885637cfc904f9f8d6eb47c))
562
- * **rules:** pay for the host-wording correction in the preamble budget ([26659d6](https://github.com/event4u-app/agent-config/commit/26659d642f2d7419a71fa1dbea283a63de8bc0b0))
563
- * **skills:** address a directory by flag where the tool has one ([f4d757f](https://github.com/event4u-app/agent-config/commit/f4d757fd5efa75eb2331085e8dd231acdbe20b35))
564
- * **gates:** drop the duplicate argv-parity mechanism, use the one main already has ([dbfd08e](https://github.com/event4u-app/agent-config/commit/dbfd08e64948f2a6131c413b95bbe3a9908aae82))
565
- * **hooks:** parse git global options in the category-A classifier ([26f928b](https://github.com/event4u-app/agent-config/commit/26f928be6d0d4365455f76f05e74de126804c320))
566
- * **hooks:** stop naming files the TypeScript port deleted ([6c897ef](https://github.com/event4u-app/agent-config/commit/6c897efd16d773bf9051aa943afa9df227e50082))
567
- * **rule:** keep the directory-flag guidance stack-agnostic ([794ecd4](https://github.com/event4u-app/agent-config/commit/794ecd4db1052a62509325e855d230da1e64fe76))
568
- * **canon:** address another directory by flag, not by `cd` ([3d0ad90](https://github.com/event4u-app/agent-config/commit/3d0ad90f0ba3df62ae3108ee249b83e0faed559d))
569
- * **gates:** typecheck the unknown-key scan, and correct a docblock claim ([bedd18c](https://github.com/event4u-app/agent-config/commit/bedd18c2aca19ff59ca2174ee0f8b214fbb7cb7a))
570
- * **rdp:** point the corpus at the successors that exist, not the deleted Python ([5be6ab9](https://github.com/event4u-app/agent-config/commit/5be6ab981fd92aa65cfb2526df545fea70a4f7db))
571
- * **skills:** drop the auto-trigger keywords the descriptions contradict ([720eb73](https://github.com/event4u-app/agent-config/commit/720eb7333fcb248ba82d673dc9e779a6b20d76e2))
572
- * **readme:** hoist only the wedge command, keep the audience-order contract ([14a7204](https://github.com/event4u-app/agent-config/commit/14a72049094907ca784d07a3d3df97d6f64412cc))
573
- * **ci:** site.yml no longer reasons from a premise that stopped holding ([7de0594](https://github.com/event4u-app/agent-config/commit/7de05947159cc53ab49dd59f2176f3404ceb4061))
574
- * **review-changes:** count the judges from the table, not by hand ([18b0070](https://github.com/event4u-app/agent-config/commit/18b00708d9a163502d68f66445fe1f30f60b9b5a))
575
- * **proof:** publish the kernel-denied split beside the undeclared figure ([476d4c0](https://github.com/event4u-app/agent-config/commit/476d4c0af412f81018d3ea083efd425485112169))
576
- * **roadmap:** the blocking-concern count was taken by grep, not by parse ([7f947fc](https://github.com/event4u-app/agent-config/commit/7f947fc0663aad038e89d0014878858300baad76))
577
-
578
- ### Performance
579
-
580
- * **skills:** compress the ten design descriptions back under the preamble ratchet ([63640b1](https://github.com/event4u-app/agent-config/commit/63640b18a0c1279e5467145e673457eaf046c841))
695
+ * **decisions:** disclose ADR-260 evidence ([458ab51](https://github.com/event4u-app/agent-config/commit/458ab5148d61acc88c573341a7e933af8224c1af))
696
+ * **decisions:** repair the provenance kind and scope the ADR-255 supersession ([df0057c](https://github.com/event4u-app/agent-config/commit/df0057cc51fa7bc72e1905f471c54a570e4d7b6e))
697
+ * **evidence:** scrub the speaking round name the drafts cited ([fa8a8bf](https://github.com/event4u-app/agent-config/commit/fa8a8bf98771988a77b0d2d08dd4bc9e428af676))
698
+ * **hooks:** place the worktree gate where neither neighbour's pin breaks ([e4ff296](https://github.com/event4u-app/agent-config/commit/e4ff2969f598397fd36a2a4c58870ee28065c44c))
699
+ * **gates:** harden the scan scope through the shared reporter ([80514a3](https://github.com/event4u-app/agent-config/commit/80514a3fe81a3b1d6aee7a566b6e206059fdc35c))
700
+ * **evidence:** give shipped 14.20.0 the findings ledger it shipped without ([182d84c](https://github.com/event4u-app/agent-config/commit/182d84cb2bb48d1df7d4fe9e7797f3c0da71beed))
701
+ * **release:** record the 14.20.0 findings null, and correct the growth claim ([065aeba](https://github.com/event4u-app/agent-config/commit/065aeba595c887b23c2a82288bb49036f0b91f3a))
702
+ * **gates:** pay the two ratchets this branch moved ([ff6c84d](https://github.com/event4u-app/agent-config/commit/ff6c84d8bc7306d2cf7cbf0a6766c56cfc9732ed))
703
+ * **release:** read the in-flight target off state, not off --resume ([9dafbc7](https://github.com/event4u-app/agent-config/commit/9dafbc72419517607d4e523faab37652814bba4e))
704
+ * **gates:** re-pin the council-template payload exception at its measured size ([23dc5bd](https://github.com/event4u-app/agent-config/commit/23dc5bde2be254b55173de68f65c3ce76dc8cb06))
705
+ * **analyze:** keep the repo argument-hint inside the 120-char schema cap ([3862664](https://github.com/event4u-app/agent-config/commit/38626642214cd223a5ab93d8abb3959e114883b0))
706
+ * **bench:** guard the humanizer bench entry point ([e998ce5](https://github.com/event4u-app/agent-config/commit/e998ce5a154ae25b66c38922100888ca887b72f4))
707
+ * **humanizer:** make the bound table say what the scanner does ([20fd4c0](https://github.com/event4u-app/agent-config/commit/20fd4c0a802c982d1e3136c2b3da4225e979c64c))
708
+ * **ai-tells:** disarm the rule-of-three over ordinary lists, floor the densities ([ee2fb2f](https://github.com/event4u-app/agent-config/commit/ee2fb2f03ab4a79c8741b1219f37954c23b9767b))
709
+ * **handoff:** use the house dialect for handoff ([ffd42f0](https://github.com/event4u-app/agent-config/commit/ffd42f0445a877e56ebfc502b944e9e2014636f9))
710
+ * **comments:** drop report structure and evidence paths from source ([b346418](https://github.com/event4u-app/agent-config/commit/b346418b12c47d5ab422f92c95a81a47c0f26fbd))
711
+ * **claims:** use the house dialect in the jury claim ([dc82a5c](https://github.com/event4u-app/agent-config/commit/dc82a5caae2230cdf02444a9a49d3de330400894))
712
+ * **lint:** satisfy the two eslint rules the new council modules tripped ([162056e](https://github.com/event4u-app/agent-config/commit/162056e2bfd63fcb5fd4e1219b4882343a2acf29))
713
+ * **hooks:** carry rung-3 and rung-4 verdicts on the runtime carrier ([1a1f57a](https://github.com/event4u-app/agent-config/commit/1a1f57ae5e1e8352bced0b212a51af63410fea14))
581
714
 
582
715
  ### Documentation
583
716
 
584
- * **census:** the exit-code contract now has three modes, not one ([776efc6](https://github.com/event4u-app/agent-config/commit/776efc6c7b3684d6ddff0266b5b92074de6a009a))
585
- * skills are named or trigger-matched, not matched by topic ([edbc6a5](https://github.com/event4u-app/agent-config/commit/edbc6a5b2e69044069bbe56d66e4d92b2f56e950))
586
- * **claims:** derive the census claim from its record and split the 299 ([265d095](https://github.com/event4u-app/agent-config/commit/265d095be07a9d9823bddecd3506d735476bb0a1))
587
- * **roadmap:** close road-to-one-motion-authority with both blockers decided ([a6071a6](https://github.com/event4u-app/agent-config/commit/a6071a6f420cffa79741d7a815dfdd8088acd6d2))
588
- * **review:** rebind the inbox-2026-09-t skip declaration after merging origin/main ([b4be39a](https://github.com/event4u-app/agent-config/commit/b4be39a346c37d4af6df3f8eeb0e6d6c459497a2))
589
- * **decisions:** disclose what ADR-255 rests on ([e5238e9](https://github.com/event4u-app/agent-config/commit/e5238e9505a5f5b161479630283337ff3536e966))
590
- * **roadmap:** close and archive road-to-authorization-that-reaches-further ([8061844](https://github.com/event4u-app/agent-config/commit/8061844dcfe99e9ec627e071933a7a69f774932f))
591
- * **decisions:** record five scoped refusals and close the blockers ([9a3b6e5](https://github.com/event4u-app/agent-config/commit/9a3b6e5ac7801a2c45ac3324cc96b0066a91c148))
592
- * **roadmap:** close road-to-host-enforcement-truth ([b1f3adf](https://github.com/event4u-app/agent-config/commit/b1f3adf053dc51e5da3dfae9aa1189fd9f643390))
593
- * **review:** skip declaration for the inbox-2026-09-t completion ([c9c4298](https://github.com/event4u-app/agent-config/commit/c9c4298a999b39be3ce4272553ddf22326dc7f34))
594
- * **evidence:** verification and disposition for inbox round 2026-09-t ([045afef](https://github.com/event4u-app/agent-config/commit/045afefb6baeb5d671f96c00355edc277b6088fb))
595
- * **hosts:** say what this package binds, not what a host cannot do ([2b20145](https://github.com/event4u-app/agent-config/commit/2b2014509f26cd4b2177edefe70d01d91d57b734))
596
- * **evidence:** record drain run 19 ([80a23d1](https://github.com/event4u-app/agent-config/commit/80a23d193a84f3fbee0b56b76e232bccffdb9207))
597
- * **roadmaps:** close road-to-the-reasoning-surface-that-is-wired ([17f6b62](https://github.com/event4u-app/agent-config/commit/17f6b6261eb4f8fa3f0c11201ccd117e69d537ed))
598
- * **roadmap:** close road-to-the-ledger-two-releases-skipped ([7cb1af8](https://github.com/event4u-app/agent-config/commit/7cb1af8bc91f87a45fe8e66d9249e812a39e5b95))
599
- * **roadmap:** move the release-finding-ordering review date in ([aadd854](https://github.com/event4u-app/agent-config/commit/aadd854b0a2707cf6722ce510d60d7bfd6bd5675))
600
- * **evidence:** record the two skipped release ledgers and write them ([73a50c6](https://github.com/event4u-app/agent-config/commit/73a50c6472213fddc13bd4446e3e71242becf4b0))
601
- * **evidence:** record ADR-134s unrouted expiry and close the roadmap ([a42bf57](https://github.com/event4u-app/agent-config/commit/a42bf57a6fc75bb3b76ffccc45363601c46bcea4))
602
- * **changelog:** answer the 14.18.0 next-cycle promise ([a9bd75d](https://github.com/event4u-app/agent-config/commit/a9bd75d559107ad3766f0f6af5ee44f958492f00))
603
- * **roadmaps:** close road-to-a-readme-that-stays-short ([25e519d](https://github.com/event4u-app/agent-config/commit/25e519d4fdae30fba55837375df44ca06d3d72be))
604
- * **readme:** reach the first command at line 26 and come back under budget ([52c326d](https://github.com/event4u-app/agent-config/commit/52c326d12bab0a5894e20d1794c085ea70d29d70))
605
- * **roadmaps:** close road-to-a-beta-window-that-is-not-a-surprise ([8f78a41](https://github.com/event4u-app/agent-config/commit/8f78a413d8cca250db889c62525fee4460af054e))
606
- * **roadmaps:** own the two beta dates that nothing owned ([d3982cc](https://github.com/event4u-app/agent-config/commit/d3982ccc8c45920ee03c0b1945096015d74c019a))
607
- * **evidence:** repoint both records at the archived roadmap path ([f51ef0a](https://github.com/event4u-app/agent-config/commit/f51ef0a59214b8245b6c48b5efd806d49763d74e))
608
- * **decisions:** ADR-225 Amendment 1 answers the fired skill-size park ([85f3249](https://github.com/event4u-app/agent-config/commit/85f3249ddf9fad47556ae4bc1230c45937f711d4))
609
- * **evidence:** record the council on the ADR-225 skill-size park, prompt included ([252cb2f](https://github.com/event4u-app/agent-config/commit/252cb2f144a155745b1d395c3241123f8b87ff70))
610
- * **evidence:** reproduce the ADR-225 skill-size park condition at HEAD ([99f09a1](https://github.com/event4u-app/agent-config/commit/99f09a11ae55b4b157c9d39e9c8fb869290e32e7))
611
- * **review:** skip declaration for the inbox-2026-09-s completion ([437f500](https://github.com/event4u-app/agent-config/commit/437f5003bb0d385187caab78f4ce23983dbf67e4))
612
- * **evidence:** verification and disposition for inbox round 2026-09-s ([832a48f](https://github.com/event4u-app/agent-config/commit/832a48f3cc351bda3d4e49f2481dbd47c1fbbc4e))
613
- * **review:** rebind the inbox-2026-09-r skip declaration to the current review scope ([e0344f8](https://github.com/event4u-app/agent-config/commit/e0344f8be1596a353ee641a2e77bffe06e344f18))
614
- * **review:** skip declaration for the inbox-2026-09-r completion ([ec522f9](https://github.com/event4u-app/agent-config/commit/ec522f91a532e665bd2bd6e6f563047ae97c130f))
615
- * **evidence:** verification and disposition for inbox round 2026-09-r ([b132b36](https://github.com/event4u-app/agent-config/commit/b132b36cc557a59680bfdb992c29fce162651b9e))
616
- * **review:** skip declaration for the inbox-2026-09-q completion ([b8be9d2](https://github.com/event4u-app/agent-config/commit/b8be9d22209f891d85cd176dfbd2f595f2c1531a))
617
- * **evidence:** verification and disposition for inbox round 2026-09-q ([a2d7e1b](https://github.com/event4u-app/agent-config/commit/a2d7e1bfc9a03e346a1ec70e5a9bead59e60e4c9))
717
+ * **evidence:** declare the completion-review skip for this docs-only diff ([b273d3f](https://github.com/event4u-app/agent-config/commit/b273d3f6bd0428d1b06e311bd13e632631522fda))
718
+ * **evidence:** the inbox-2026-09-u verification and reproduction ledger ([3927a27](https://github.com/event4u-app/agent-config/commit/3927a27c224b9f6c828aec47e888c5748e690853))
719
+ * **roadmaps:** land the standing-payload and code-graph plans, corrected against the tree ([165c154](https://github.com/event4u-app/agent-config/commit/165c1545b9a7ff40e14d735982f987ac1988d78d))
720
+ * **decisions:** record the two owner rulings as ADR-259 and ADR-260 ([b53b182](https://github.com/event4u-app/agent-config/commit/b53b18202e1242e2492437df454aa1d481c0366c))
721
+ * **evidence:** add the sixth drain position and the cross-session guard finding ([cb809ed](https://github.com/event4u-app/agent-config/commit/cb809ed2ec8f400b5f7e2d0bb594db498e5031c7))
722
+ * **changelog:** record the pre-push worktree gate ([ad04f23](https://github.com/event4u-app/agent-config/commit/ad04f2363997b336d4fe56f4bb962fa68458de29))
723
+ * **evidence:** record the 2026-09-07 PR drain run ([f5cad4c](https://github.com/event4u-app/agent-config/commit/f5cad4cfd6803c14513d629a0bbf8ad6d241668b))
724
+ * **evidence:** correct the run-20 PR states, and record how the shared red cleared ([5bcc8b8](https://github.com/event4u-app/agent-config/commit/5bcc8b840c6c9bd236179a689cd20fb5b6c1c73d))
725
+ * **evidence:** record the run-20 autonomous roadmap drain ([6aedb31](https://github.com/event4u-app/agent-config/commit/6aedb311a297281ce6de50c994132f1a63d73540))
726
+ * **release:** record the three answer routes and the in-flight target fix ([c7e320b](https://github.com/event4u-app/agent-config/commit/c7e320bac67aa2ebbc3571efc000bdc083804409))
727
+ * **roadmap:** close road-to-bounded-reference-harvest-loop, carry the observation ([1f1df17](https://github.com/event4u-app/agent-config/commit/1f1df17ceb0e49428ecce3f6c7fa8ef0c55f7684))
728
+ * **adr:** record the 2026-07-11 prose-tell verdicts as ADR-256 ([8dcc259](https://github.com/event4u-app/agent-config/commit/8dcc259b1d9541c38149f9379550617df6b97d07))
729
+ * **decisions:** record the one-question-per-ask concern admission ([03b865f](https://github.com/event4u-app/agent-config/commit/03b865fd8517604d8e81acd7ca8439e58f84dee9))
730
+ * **evidence:** the post-change ask-block census ([1390aa7](https://github.com/event4u-app/agent-config/commit/1390aa7502d1fc8f00f0aa3528c052540f2ef83e))
731
+ * **evidence:** freeze the ask-block census baseline ([27c7d40](https://github.com/event4u-app/agent-config/commit/27c7d4051241e44d716d500a8cb7b06e254ebdcd))
732
+ * **adr:** disclose ADR-256's evidence in the body, not only its frontmatter ([a37a12e](https://github.com/event4u-app/agent-config/commit/a37a12ebf497b542dcfb290e6dbf4dfcc935ee34))
733
+ * **proof:** regenerate after the jury claim landed in the ledger ([0753cb8](https://github.com/event4u-app/agent-config/commit/0753cb8d43fd86a396129a47c415534696b19913))
734
+ * **roadmaps:** resolve three blockers on admissible-council-seats ([bb8cef5](https://github.com/event4u-app/agent-config/commit/bb8cef53fe4814c94b25f0fe3926a06e127c74b9))
735
+ * **adr:** record that an unpaid route may propose and score, never decide ([10c8c16](https://github.com/event4u-app/agent-config/commit/10c8c169c4c6c2c76f0aeea4e57dd925b81e789c))
618
736
 
619
- ### Refactoring
737
+ ### Chores
620
738
 
621
- * **rule:** fit the directory-flag line inside the preamble ratchet ([5d1d002](https://github.com/event4u-app/agent-config/commit/5d1d002a3c0d2003efa17f326eabdc8eef9338d6))
622
- * move the round's additions out of two capped files ([6e9d41c](https://github.com/event4u-app/agent-config/commit/6e9d41cc7d84ae22027aa7cb73f6df57e70aab50))
623
- * **journal:** move the column migration out of a file past its cap ([03eedeb](https://github.com/event4u-app/agent-config/commit/03eedebebc10651e5eb1e8e92a7eb84c9fe648e7))
739
+ * **evidence:** refresh the ADR evidence census after the main merge ([a2544fc](https://github.com/event4u-app/agent-config/commit/a2544fc61d45d9c90578633b49e84398269f28c9))
740
+ * **baselines:** carry the merge reconciliation that was never committed ([33e811f](https://github.com/event4u-app/agent-config/commit/33e811f330ba41f9e81dafeda2bba9d047ab427c))
741
+ * **evidence:** record the 14.20.0 findings ledger ([3bfb9b5](https://github.com/event4u-app/agent-config/commit/3bfb9b540e588358b06182bad3e60694b557d24f))
742
+ * **install:** rebuild the install bundle for the merged capability field ([395c0b6](https://github.com/event4u-app/agent-config/commit/395c0b61d61a492b0a0b2bba9368521ccea879de))
743
+ * **roadmap:** archive road-to-bounded-reference-harvest-loop ([0b3d0a8](https://github.com/event4u-app/agent-config/commit/0b3d0a8af6bad3f76f44b8c7857a8807c405bd50))
744
+ * **generated:** regenerate projections, catalogs and artefact counts ([1187cd6](https://github.com/event4u-app/agent-config/commit/1187cd6932b28d42ebea49b576ba4edb885b1138))
745
+ * **proof:** regenerate docs/proof.md for the re-scoped humanizer claim ([86951f2](https://github.com/event4u-app/agent-config/commit/86951f26bab10dfd83b8955e137b273c6c5608bd))
746
+ * **adr:** regenerate the evidence census for ADR-256 ([f3b0054](https://github.com/event4u-app/agent-config/commit/f3b00549b87b7f04f82849738233c211655d15e5))
747
+ * **index:** regenerate for the /humanize description change ([97d1b1d](https://github.com/event4u-app/agent-config/commit/97d1b1d61a2857166b7e2f755018979038e39613))
748
+ * **estate:** claim the one dimension this change grows ([8203323](https://github.com/event4u-app/agent-config/commit/8203323a620c1a7a855ae62cd6f38c6292e3c26d))
749
+ * **roadmap:** archive road-to-asked-not-parked ([952a011](https://github.com/event4u-app/agent-config/commit/952a01120d29eab49091e087b5921dfbd0c3e202))
750
+ * **host-capability:** project the contract edit and escape the artefact pointer ([9331bbf](https://github.com/event4u-app/agent-config/commit/9331bbf59e872983ada34cfeb34e41894abe191b))
751
+ * **census:** refresh the ADR evidence census for ADR-256 ([9379a5b](https://github.com/event4u-app/agent-config/commit/9379a5b278e5a33469ec7e3a017afc50c5f6c1bb))
752
+ * **baselines:** lower check_source_size_budget 18,062 -> 18,061 ([51708b1](https://github.com/event4u-app/agent-config/commit/51708b18f7f06853ca5936eaf6b7ce4c8d28f596))
753
+ * **roadmaps:** archive road-to-admissible-council-seats ([9a7ac52](https://github.com/event4u-app/agent-config/commit/9a7ac524922d65bfc85a476a0afdab039dfb415c))
624
754
 
625
- ### Tests
755
+ ### Other
626
756
 
627
- * **estate:** re-derive the two pins the description rewrites moved ([7b4b879](https://github.com/event4u-app/agent-config/commit/7b4b8798f94c30e29c729eaa4e61ba6ecda2cc04))
628
- * **hooks:** measure the cross-load claim before guarding against it ([1a00c97](https://github.com/event4u-app/agent-config/commit/1a00c970c07a5f67d2465dead568934084e413ca))
757
+ * **measured-prose-tells:** archive, and correct the parent's stale note ([5c1baf5](https://github.com/event4u-app/agent-config/commit/5c1baf5cc78fdaf8747cae55601f6da3ad5b8f7b))
758
+ * **measured-prose-tells:** close all 25 boxes and resolve the blocker ([224de7f](https://github.com/event4u-app/agent-config/commit/224de7f7b7ed814894830a36ab0ba41fce0406b3))
759
+ * **humanizer:** split the fixture corpus into tune and holdout ([1c6f4ea](https://github.com/event4u-app/agent-config/commit/1c6f4eae62453d90d19086c97601c6d277be1bbf))
760
+ * **prose-tells:** publish run 1 and run 2, including two falsified predictions ([fb03dba](https://github.com/event4u-app/agent-config/commit/fb03dba730b86980e81203a3d3c16ee10100fa89))
761
+ * **prose-tells:** build the clean corpus and the per-rule FP instrument ([b1c95eb](https://github.com/event4u-app/agent-config/commit/b1c95eb4d9aabca793d52feb4d7679429e30d4d7))
762
+ * **prose-tells:** pre-register the false-positive instrument before measuring ([822b5b2](https://github.com/event4u-app/agent-config/commit/822b5b2ddcfc7f4f7de225b803941373d78d2e60))
763
+ * **asked-not-parked:** resolve both blockers and close every step ([1a8cb04](https://github.com/event4u-app/agent-config/commit/1a8cb04709314b7c19a4c7e2339e4901a062ad80))
629
764
 
630
- ### Build
765
+ Tests: 21855 (+249 since 14.20.0)
631
766
 
632
- * **install:** refresh the committed installer bundle ([0721e3c](https://github.com/event4u-app/agent-config/commit/0721e3c735755037b352ae9decb61f966ba45b00))
767
+ ## [14.20.0](https://github.com/event4u-app/agent-config/compare/14.19.0...14.20.0) (2026-09-07)
633
768
 
634
- ### CI
769
+ ### Release highlights
635
770
 
636
- * run both new gates in a workflow, not only in `task ci` ([6cbf98c](https://github.com/event4u-app/agent-config/commit/6cbf98c163604b1fc0ff12b49f7a3c1c8c944bd7))
637
- * run the findings-ledger gate outside the release/* condition ([fa92daa](https://github.com/event4u-app/agent-config/commit/fa92daa86855a239139a490ad8478d84cfc66676))
771
+ - **Behaviour changes:** drop a stale self-referential suppression from untrusted-input-defense (3fb3405); bind every suppression pragma to the evidence it accepts (98e9af2).
772
+ - **Default changes + migration:** _none_
773
+ - **Security and correctness:** a parity-pinned pair carries one bound hash per identity (8a08504); house dialect in the lines this branch authored (085279f); drop a stale self-referential suppression from untrusted-input-defense (3fb3405); bind every suppression pragma to the evidence it accepts (98e9af2); the scout's security gate reads what a candidate says (35bcf7e); the agent-security umbrella publishes what it read, and carries a floor (a416ef8); +8 more.
774
+ - **Honest nulls:** _none_
775
+ - **Known limitations:** _none_
776
+
777
+ > **Governance mix:** governance-only 16 vs consumer-only 3 (taxonomy 1.0.0).
778
+ > Next cycle ships the ask surface: a decision this package needs from its user
779
+ > reaches the user instead of parking in a roadmap `blocked-by:` marker, an
780
+ > `## Open questions` section nothing obliges the next session to read, or a
781
+ > printed `{count}` where a question belonged — tracked in
782
+ > `agents/roadmaps/road-to-asked-not-parked.md`, which stands at zero of its
783
+ > twenty-five steps at this tag.
784
+
785
+ > **Previous cycle:** the 14.19.0 head promised the installed MCP bridge repair —
786
+ > a version-pinned server entry instead of an `npx -y` resolution of `latest`, a
787
+ > registration that migrates itself when the bridge shape changes under an update,
788
+ > and setup docs matching the command the installer actually writes. It **shipped**,
789
+ > in this span: `mcpBridgeEntry` now emits `@event4u/agent-config@<version>` read
790
+ > from the installed manifest and leaves the spec unpinned rather than guessed when
791
+ > the version cannot be read (`src/scripts/_lib/mcp_bridge.ts:52-60`, commit
792
+ > d01873a88); the documented client snippets are gated against the installer entry
793
+ > (21c215e54) and `grep -c "/absolute/path/to/agent-config" docs/mcp-server.md`
794
+ > returns 0; MCP registration is gated on the capability axis with the consent
795
+ > residual named (55de37904). `road-to-mcp-bridge-integrity-and-reach-truth` closed
796
+ > at seventeen of seventeen steps. The promise stood outstanding across 14.18.0 and
797
+ > 14.19.0 and is now discharged.
798
+
799
+ ### Features
800
+
801
+ * **publish:** classify the packed surface by type, bound per entry ([d08656d](https://github.com/event4u-app/agent-config/commit/d08656dfe50bee05579691b9229b9b1dfb23870c))
802
+ * **security:** bind every suppression pragma to the evidence it accepts ([98e9af2](https://github.com/event4u-app/agent-config/commit/98e9af29744a8ad76192eb48615764a5bc3fa8d2))
803
+ * **security:** the scout's security gate reads what a candidate says ([35bcf7e](https://github.com/event4u-app/agent-config/commit/35bcf7e972679dae961b7c812a6e397c5a1d68c2))
804
+ * **security:** the agent-security umbrella publishes what it read, and carries a floor ([a416ef8](https://github.com/event4u-app/agent-config/commit/a416ef8ce3b89e35aa2459f5204599ff5d9066db))
805
+ * **handoff:** carry falsifiable uncertainty, and capture rather than chase ([83de12e](https://github.com/event4u-app/agent-config/commit/83de12e0760a592060f30a94575d9dc9898215bf))
806
+ * **self-repair:** give a model-noticed observation a target-addressed record ([32c8302](https://github.com/event4u-app/agent-config/commit/32c83025e421072ed6084f06e612622b0b9da965))
807
+ * **continuity:** key the record by session and give the schema what worked ([72c0962](https://github.com/event4u-app/agent-config/commit/72c096257210e9f12f9dfdc7a24be686aed30eea))
808
+ * **install:** gate MCP registration on the capability axis, and name the residual ([55de379](https://github.com/event4u-app/agent-config/commit/55de379047c3e1ae6cbeabfa563290117e20bc6e))
809
+ * **telemetry:** publish the MCP-lite reading, zero included ([b2e3f20](https://github.com/event4u-app/agent-config/commit/b2e3f207b737f725dfd28b9a9ce0c06a329d56fc))
810
+ * **mcp:** emit one collector row per stdio-lite tools/call ([6fb0fe9](https://github.com/event4u-app/agent-config/commit/6fb0fe90c21114096507406c58158a312792bb4b))
811
+ * **mcp:** serve the standard resource annotations, and add the MCP capability axis ([3dfd70a](https://github.com/event4u-app/agent-config/commit/3dfd70a028ef6e9f60f75c4d28fc9f76ed75658f))
812
+ * **mcp:** make the documented client snippets match the installer, and gate it ([21c215e](https://github.com/event4u-app/agent-config/commit/21c215e54d423a6abda8a47b9fdafb2c2475497b))
813
+ * **mcp:** pin the bridge entry to the installed version, and repair it on update ([d01873a](https://github.com/event4u-app/agent-config/commit/d01873a88cd2800dd49f201cbb64f2cf4c640488))
814
+
815
+ ### Bug Fixes
816
+
817
+ * **security:** a parity-pinned pair carries one bound hash per identity ([8a08504](https://github.com/event4u-app/agent-config/commit/8a0850449d8f9f89b262a74af218a5f895aa4412))
818
+ * **security:** drop a stale self-referential suppression from untrusted-input-defense ([3fb3405](https://github.com/event4u-app/agent-config/commit/3fb34055b2df64b21d435f221c7cb967d0e0c5ef))
819
+ * **deps:** bump open from 11.0.1 to 11.0.2 in the npm-production group ([0dd9c23](https://github.com/event4u-app/agent-config/commit/0dd9c2364436dad56a308fccf15a595f7ade93d8))
820
+ * **security:** the agent-security umbrella fails closed on a child that did not answer ([6a9411f](https://github.com/event4u-app/agent-config/commit/6a9411fc60f226b16c9efcaa1c6c5cf209e06207))
821
+ * **ci:** clear lint_code_comments on this branch's own new comments ([e2589b0](https://github.com/event4u-app/agent-config/commit/e2589b0d7b21a7a78c4c5dd353861326f7c9a96d))
822
+ * **gates:** make the park gate read a wake condition, not a status word ([4636ad8](https://github.com/event4u-app/agent-config/commit/4636ad80da321fce0012bd20b5b52bee4515428b))
823
+ * **audit:** make rules_applied an observation, retiring the constant and its card ([bffae3d](https://github.com/event4u-app/agent-config/commit/bffae3dd1d1f8feee8fbb86ca3557b7a803b34fa))
824
+ * **ci:** rewrite two docblocks as prose, and record the 14.19.0 review null ([83bc671](https://github.com/event4u-app/agent-config/commit/83bc671e6653110877ff525add31b66ff6f9e955))
825
+ * **release:** record why 14.19.0's findings ledger is empty ([e6aab8f](https://github.com/event4u-app/agent-config/commit/e6aab8fdaa0ceb62a10d7c17f870d2d142890436))
826
+ * **release:** make the curated-head refusal recoverable from where it stops ([5affd8a](https://github.com/event4u-app/agent-config/commit/5affd8adcb8f56e9bd4999e483d5bfeef5530710))
827
+
828
+ ### Documentation
829
+
830
+ * **roadmap:** re-review the risk register against what the six risks actually did ([79f05a1](https://github.com/event4u-app/agent-config/commit/79f05a1a78aa187c8b96deba664a17f9a5b92d58))
831
+ * **roadmap:** resolve both blockers of road-to-scan-that-fails-closed ([1b7de23](https://github.com/event4u-app/agent-config/commit/1b7de235ffdb6649194223b988594ee0f4e6eee6))
832
+ * **roadmaps:** drain 20 disposition -- 0 of 38 closed, every trigger re-measured ([0d39f15](https://github.com/event4u-app/agent-config/commit/0d39f1502d88a0cc5729d0de63dbf9a420162a5b))
833
+ * **roadmaps:** record the carrier-transition-vocabulary trigger as fired ([82da6e9](https://github.com/event4u-app/agent-config/commit/82da6e9f006f62f57a7bfc5b70761aed36a5a0b0))
834
+ * **security:** state the umbrella's child-completion gap before repairing it ([e9ccd26](https://github.com/event4u-app/agent-config/commit/e9ccd26ecfa9b16a3e20f01a072071acd120108b))
835
+ * **roadmap:** close road-to-observed-learning-signal and its four blockers ([07f47bd](https://github.com/event4u-app/agent-config/commit/07f47bdcd896dd959846aeeac8b384f555c84c5b))
836
+ * correct the two documents that mislead the next reader ([2f319f7](https://github.com/event4u-app/agent-config/commit/2f319f7882e80113f606a1652dbe14684c41a4ef))
837
+ * **roadmap:** close Phases 1-2, record the council sequencing for 3-4 ([5378030](https://github.com/event4u-app/agent-config/commit/5378030e0f93b71d4a6696fd32816baface27ac5))
838
+ * **adr:** disclose what ADR-256 rests on, and what it does not ([b634daa](https://github.com/event4u-app/agent-config/commit/b634daadb43a9d3c182caf86e33336a07f26c20c))
839
+ * **hosts:** reconcile the enforcement surface with what the manifest binds ([909e606](https://github.com/event4u-app/agent-config/commit/909e606e443e9fb46b230bf2db7c0bfb85827b45))
840
+ * **adr:** record the four MCP blocker rulings, and close the roadmap ([adedaf4](https://github.com/event4u-app/agent-config/commit/adedaf485a8379051012692b1c5b39867638d398))
841
+
842
+ ### Refactoring
843
+
844
+ * **mcp:** pay the size ratchet rather than raise it, and fix two CI reds ([08e011a](https://github.com/event4u-app/agent-config/commit/08e011ab8837213ea86aefcc632ebabd85b5fa8b))
845
+ * **release:** move the start-position verdict into _lib ([97b74ad](https://github.com/event4u-app/agent-config/commit/97b74ad48eda3a96ef5e4830dd4963041decab79))
846
+ * **continuity:** retire HANDOFF.md and decide the two colliding words ([ffd8dd7](https://github.com/event4u-app/agent-config/commit/ffd8dd754fc85ab8c928e45522d8c21f7c2460dd))
847
+
848
+ ### Tests
849
+
850
+ * **security:** freeze the umbrella's failure corpus against today's fail-open ([b4bed8c](https://github.com/event4u-app/agent-config/commit/b4bed8c563348a94592083466859367b0352aed3))
638
851
 
639
852
  ### Chores
640
853
 
641
- * **security:** re-pin the gate-coverage canary line to 598 ([3a8e3f7](https://github.com/event4u-app/agent-config/commit/3a8e3f7552133f53e7dccdef596116d4a34d0e87))
642
- * **docs:** regenerate the skill index and catalog ([d310e09](https://github.com/event4u-app/agent-config/commit/d310e09382ffac61349cfdd37ce4d0da980911fa))
643
- * **roadmaps:** archive road-to-the-activation-census-consequence ([eb2491d](https://github.com/event4u-app/agent-config/commit/eb2491d37786335841fd09e16b283aaec5b954ab))
644
- * **roadmap:** archive road-to-one-motion-authority ([e88e3bf](https://github.com/event4u-app/agent-config/commit/e88e3bfaf4484705590dcbd7d3441a88240b9ddd))
645
- * **adr:** refresh the evidence census after ADR-255's disclosure section ([ef16d7f](https://github.com/event4u-app/agent-config/commit/ef16d7ff2583496bbf291c92d933ce379df65dbd))
646
- * **gates:** walk the source-size ratchet down to the new measurement ([b5e448d](https://github.com/event4u-app/agent-config/commit/b5e448d7b28ccea353b5918aeebbac4786dbe690))
647
- * **roadmaps:** archive road-to-host-enforcement-truth ([2dbe4d9](https://github.com/event4u-app/agent-config/commit/2dbe4d90208371fdbd69d79cacc5d44f328a84c6))
648
- * **roadmaps:** archive road-to-the-reasoning-surface-that-is-wired ([814a361](https://github.com/event4u-app/agent-config/commit/814a3613d5b04ed9809dd774f9b3f62045c5394c))
649
- * **secrets:** re-pin the gate-coverage canary line 551 to 563 ([ef863b9](https://github.com/event4u-app/agent-config/commit/ef863b9294184cc748ed94de4e4c57d06bd9f92f))
650
- * **roadmap:** archive road-to-the-ledger-two-releases-skipped ([9fa962b](https://github.com/event4u-app/agent-config/commit/9fa962b3eb9ec1bc8e19493517119e8b94ab4684))
651
- * **roadmaps:** archive road-to-a-dated-trigger-that-decides ([870dae2](https://github.com/event4u-app/agent-config/commit/870dae2cafa98037edaf18938a8a52863ed81db6))
652
- * **roadmaps:** archive road-to-a-readme-that-stays-short ([213e5b9](https://github.com/event4u-app/agent-config/commit/213e5b9314e3e10ca1fe83ec372eeb0fa8e73ff2))
653
- * **roadmaps:** archive road-to-a-beta-window-that-is-not-a-surprise ([4076ef9](https://github.com/event4u-app/agent-config/commit/4076ef9d576a27c2f56776b6e428d7177b894488))
654
- * **docs:** regenerate command-flows for the corrected judge counts ([37d69cb](https://github.com/event4u-app/agent-config/commit/37d69cb4844e0739a89b00cd6af157aa518f1483))
655
- * **evidence:** refresh the ADR evidence census after the ADR-225 amendment ([1a88ac4](https://github.com/event4u-app/agent-config/commit/1a88ac489f48d55aa9084727e820cb3540dc54c9))
656
- * **roadmaps:** archive road-to-the-skill-size-park-fired ([497fb13](https://github.com/event4u-app/agent-config/commit/497fb1322a972e8377fb5ecb4a90667fe98c5d34))
657
- * **index:** regenerate agents/index.md + docs/catalog.md ([a97717c](https://github.com/event4u-app/agent-config/commit/a97717cfa4ffb6a8ee27b633335418821fef8855))
658
- * **roadmaps:** archive road-to-figures-that-name-their-denominator ([1972c62](https://github.com/event4u-app/agent-config/commit/1972c628d666ff9580e93c255893bfedc80ba1db))
854
+ * **gates:** recount the coverage denominator on the merged tree, re-pin the canary ([1918abb](https://github.com/event4u-app/agent-config/commit/1918abb972748b52868cc8e6f2ab79104ad9319d))
855
+ * **deps:** bump the github-actions group across 1 directory with 3 updates ([720bc5e](https://github.com/event4u-app/agent-config/commit/720bc5e17a6263f525e2c2e4e949d8687a0009ae))
856
+ * **deps-dev:** bump the npm-development group with 6 updates ([a449541](https://github.com/event4u-app/agent-config/commit/a449541c4961ab8f72588158b204aff7212224d9))
857
+ * **evidence:** use the reconciled 14.19.0 ledger text ([a692fe3](https://github.com/event4u-app/agent-config/commit/a692fe39443e0b2bb1e68f6e809133fc922c3abd))
858
+ * **roadmap:** archive road-to-observed-learning-signal ([b52fed5](https://github.com/event4u-app/agent-config/commit/b52fed5f44dd23fb377f4e060de67dfd6ae1d827))
859
+ * **reports:** regenerate skill-overlap after the TDD skill edit ([67f2c16](https://github.com/event4u-app/agent-config/commit/67f2c168adaf7ad7fdb076064f5c805e5466edbe))
860
+ * **census:** refresh the ADR evidence census for ADR-256 ([5aa4e7c](https://github.com/event4u-app/agent-config/commit/5aa4e7cbb8852edb2f2704dbf881f6580c6fd983))
861
+ * **evidence:** record the 14.19.0 findings ledger ([88ba528](https://github.com/event4u-app/agent-config/commit/88ba5286a58314e4a027f28ce76d489072f27a68))
862
+ * **roadmap:** archive road-to-mcp-bridge-integrity-and-reach-truth ([02c016e](https://github.com/event4u-app/agent-config/commit/02c016e367128f2b9e604cef9b4fc906a8922e56))
659
863
 
660
864
  ### Other
661
865
 
662
- * drop a comma from the three skill-reachability lines ([be57b0c](https://github.com/event4u-app/agent-config/commit/be57b0c09e6679dee791ffa6c42a8a9abaaf8102))
663
- * close the activation-census consequence, carry its framing choice ([9278c13](https://github.com/event4u-app/agent-config/commit/9278c130d04bb27dc4d0f6a84aa8c53bf9c3282d))
664
- * resolve the retirement blocker with option 1 and harden the end state ([64547a8](https://github.com/event4u-app/agent-config/commit/64547a8f4a0816dac401848daaba8e8439eba1ff))
665
- * one continuity record, from inbox round 2026-09-t ([5e48184](https://github.com/event4u-app/agent-config/commit/5e4818468ebab9ef29e620ee1bd83f24e01d7787))
666
- * write the continuity arrival counter onto its most recent archived epoch ([6bceab9](https://github.com/event4u-app/agent-config/commit/6bceab9073c09902801c905873eed6699bdc2444))
667
- * **proof:** drop the section mark from the axis comment ([4ba967a](https://github.com/event4u-app/agent-config/commit/4ba967a2e70625e59a1034d5ea2ffb8f3095cabd))
668
- * close road-to-figures-that-name-their-denominator ([c68fe04](https://github.com/event4u-app/agent-config/commit/c68fe041d1fdd0be207ff14fb2bbfcfe9deabf1d))
669
- * measured prose tells, from inbox round 2026-09-s ([3b33220](https://github.com/event4u-app/agent-config/commit/3b33220c3b72c851a88d5107a7a83a7476837015))
670
- * write the humanizer arrival counter onto its archived parent ([6b19271](https://github.com/event4u-app/agent-config/commit/6b1927134517f3833f0f429eb091eb82be0d9982))
671
- * four roadmaps and one stub from inbox round 2026-09-r ([e3592b0](https://github.com/event4u-app/agent-config/commit/e3592b0995284597b2190c16f170474964819d29))
672
- * write arrival counters onto four held objects that had none ([936fd33](https://github.com/event4u-app/agent-config/commit/936fd33d32c50fb6d590630d4f2eab50f10fa679))
673
- * four roadmaps and one stub from inbox round 2026-09-q ([a3c09f0](https://github.com/event4u-app/agent-config/commit/a3c09f04c4287183fc5ac7a104e012d01671dc4c))
674
-
675
- Tests: 21476 (+286 since 14.18.0)
866
+ * **security:** house dialect in the lines this branch authored ([085279f](https://github.com/event4u-app/agent-config/commit/085279f9cc1e84ea87a48c56bc21021873ef7704))
867
+ * carry the closure content the archival move left behind ([cbf0b5d](https://github.com/event4u-app/agent-config/commit/cbf0b5dd69bd69ba2b5be88e12eb66d8df016876))
868
+ * close road-to-one-continuity-record around the sequenced half ([ffab0c2](https://github.com/event4u-app/agent-config/commit/ffab0c262e0a72817e41a2b13a25ae8fabc63ff6))
869
+
870
+ Tests: 21606 (+130 since 14.19.0)
676
871
 
677
872
  # Era: pre-4.0.0 — archived
678
873