@event4u/agent-config 10.2.0 → 10.3.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 (69) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +110 -276
  3. package/dist/agent-src/commands/analyze/reference-repo.md +62 -0
  4. package/dist/agent-src/commands/roadmap/create.md +4 -1
  5. package/dist/agent-src/personas/advisors/first-principles.md +6 -0
  6. package/dist/agent-src/rules/active-remediation.md +53 -2
  7. package/dist/agent-src/rules/code-provenance.md +66 -4
  8. package/dist/agent-src/rules/content-quoting-floor.md +6 -0
  9. package/dist/agent-src/rules/design-fidelity.md +49 -3
  10. package/dist/agent-src/skills/design-review/references/verification-automation.md +23 -1
  11. package/dist/agent-src/skills/fe-design/SKILL.md +27 -3
  12. package/dist/agent-src/skills/judge-synthesis/SKILL.md +30 -0
  13. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +11 -0
  14. package/dist/agent-src/skills/roadmap-writing/SKILL.md +8 -8
  15. package/dist/agent-src/skills/skill-writing/SKILL.md +4 -0
  16. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  17. package/dist/agent-src/templates/persona.md +26 -0
  18. package/dist/agent-src/templates/roadmaps.md +27 -7
  19. package/dist/agent-src/templates/skill.md +35 -1
  20. package/dist/cli/commands/commands.candidates.test.js +257 -0
  21. package/dist/cli/commands/commands.candidates.test.js.map +1 -0
  22. package/dist/cli/commands/commands.js +199 -0
  23. package/dist/cli/commands/commands.js.map +1 -1
  24. package/dist/cli/main.js +1 -0
  25. package/dist/cli/main.js.map +1 -1
  26. package/dist/cli/registry.js +1 -1
  27. package/dist/cli/registry.js.map +1 -1
  28. package/dist/cli-delegate/{chunk-E4RUZKXB.js → chunk-FV34EGEX.js} +1 -1
  29. package/dist/cli-delegate/cmd_conformance.js +1 -1
  30. package/dist/cli-delegate/cmd_doctor.js +1 -1
  31. package/dist/discovery/deprecation-report.md +1 -1
  32. package/dist/discovery/discovery-manifest.json +13 -13
  33. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  34. package/dist/discovery/discovery-manifest.summary.md +1 -1
  35. package/dist/discovery/dormancy-report.md +1 -1
  36. package/dist/discovery/orphan-report.md +1 -1
  37. package/dist/discovery/packs.json +2 -2
  38. package/dist/discovery/trust-report.md +1 -1
  39. package/dist/discovery/workspaces.json +2 -2
  40. package/dist/hooks/dispatch.js +116 -24
  41. package/dist/mcp/registry-manifest.json +2 -2
  42. package/dist/mcp/server.json +2 -2
  43. package/dist/mcp/server.mjs +1 -1
  44. package/dist/router.json +1 -1
  45. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +54 -0
  46. package/docs/guidelines/design-antipatterns.md +79 -10
  47. package/docs/guidelines/design-fidelity-mechanics.md +120 -2
  48. package/package.json +1 -1
  49. package/src/config/gate-coverage.yml +42 -8
  50. package/src/config/gate-violation-baselines.json +6 -0
  51. package/src/config/review-prompt-binding-baseline.json +19 -0
  52. package/src/config/rule-enforcement-baseline.json +0 -1
  53. package/src/scripts/_dispatch.bash +1 -0
  54. package/src/scripts/ai_council/clients.ts +15 -1
  55. package/src/scripts/check_ci_local_parity.ts +60 -6
  56. package/src/scripts/check_review_prompt_binding.ts +553 -0
  57. package/src/scripts/check_suppression_hygiene.ts +19 -3
  58. package/src/scripts/design_slop_rules.test.ts +37 -6
  59. package/src/scripts/design_slop_rules.ts +150 -22
  60. package/src/scripts/dispatch_r2_reviewer.ts +15 -1
  61. package/src/scripts/hooks/ui_route_nudge_hook.ts +55 -2
  62. package/src/scripts/lint_design_antipattern_parity.ts +201 -0
  63. package/src/scripts/lint_harvest_provenance.ts +483 -0
  64. package/src/scripts/lint_skill_router_head.ts +254 -0
  65. package/src/scripts/report_consultation_rate.ts +126 -1
  66. package/src/scripts/run_skill_evals.ts +10 -5
  67. package/src/scripts/schemas/persona.schema.json +8 -0
  68. package/src/scripts/schemas/provenance-harvest.schema.json +39 -0
  69. package/src/scripts/sweep_dead_scan_roots.ts +51 -0
@@ -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": "10.2.0",
9
+ "version": "10.3.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/CHANGELOG.md CHANGED
@@ -332,313 +332,147 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
332
332
  > keeps the active era under the 250-line drift cap enforced by
333
333
  > `tests/test_changelog_eras.py`.
334
334
 
335
- # Era: 9.36.x — current
335
+ # Era: pre-10.3.0 — archived
336
336
 
337
- > Started at `9.36.0`. Full entries live inline below.
338
- > The drift test caps this era at 250 lines of entry body; growth past
339
- > that forces a new era split (`# Era: 9.37.x`, etc.) — see
340
- > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
341
-
342
- ## [10.2.0](https://github.com/event4u-app/agent-config/compare/10.1.0...10.2.0) (2026-08-13)
343
-
344
- ### Release highlights
345
-
346
- <!-- 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. -->
347
- - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 1bb1076, 698aa3f, d805133, 973787a.
348
- - **Default changes + migration:** _none_
349
- - **Security and correctness:** _auto-derived, rewrite before merge:_ security-scoped commits in 0309b8e.
350
- - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in c428ac6.
351
- - **Known limitations:** _none_
352
-
353
- ### Features
354
-
355
- * **process:** give operator symptoms a home and codify the loop that resolves them ([6e01a24](https://github.com/event4u-app/agent-config/commit/6e01a24bb9c0a2496feca0a5dfb69d50fefa5fbf))
356
- * **gates:** warn on unresolved operator symptom entries past 30 days ([ef98cfa](https://github.com/event4u-app/agent-config/commit/ef98cfa7d02c98ec88abf0ec9b778af12b2b6e91))
357
- * **rules:** size-gated reads — probe a large file before loading it whole ([1bb1076](https://github.com/event4u-app/agent-config/commit/1bb10767269e1d348a874b845f0176fc1c83deba))
358
- * **hooks:** severity follows the input type — prose alone may not block ([2716d4f](https://github.com/event4u-app/agent-config/commit/2716d4f87280b71f7301a885a9c10da1f1f00ffd))
359
- * **settings:** gate the deletion side of the surface, not just the addition side ([da3bc3c](https://github.com/event4u-app/agent-config/commit/da3bc3c536184462c73a7214be953b8a57f9c432))
360
- * **settings:** delete the six keys no code path read ([973787a](https://github.com/event4u-app/agent-config/commit/973787a6026d9b18f86f9961d7286993c6a491b8))
361
- * **settings:** add the disposition axis to lint_settings_classes ([4c9ced8](https://github.com/event4u-app/agent-config/commit/4c9ced8908a9e89e2f9b8684cb4f1f6642d55c55))
362
- * **conformance:** give task-completeness a denominator, and cover it ([18e4a0c](https://github.com/event4u-app/agent-config/commit/18e4a0c85cd705e5f404ea5b08f7a1018b7a7c3b))
363
- * **conformance:** measure task completeness before refusing on it ([11610f8](https://github.com/event4u-app/agent-config/commit/11610f85c46d0eeb024ccb224e9236d264ffe0fe))
364
-
365
- ### Bug Fixes
366
-
367
- * **roadmap-writing:** fit the symptom-loop route without tripping the size check ([d5b3253](https://github.com/event4u-app/agent-config/commit/d5b3253f7875ab4da2da45a869cbbcb134a03763))
368
- * **roadmaps:** anonymize the vendored corpus upstream outside its attribution file ([8406ac8](https://github.com/event4u-app/agent-config/commit/8406ac8c52a75355e0c704184aea123c7895d2fc))
369
- * **roadmaps:** satisfy the complexity and blocker contracts on two active plans ([498cea7](https://github.com/event4u-app/agent-config/commit/498cea7c93bdbea57e00b5d6ba56ca828692e34f))
370
- * **contracts:** the rule-router described a Claude Code gap that closed in PR #1231 ([f87240d](https://github.com/event4u-app/agent-config/commit/f87240d899e5418fa256e6462160b74466ad728d))
371
- * **context-hygiene:** name the wait shape both loop clauses miss ([698aa3f](https://github.com/event4u-app/agent-config/commit/698aa3f65e704e3fa796be606c54a880c0736d01))
372
- * **turn-end-gate:** stop refusing the honest "not done yet" line ([f85a8c7](https://github.com/event4u-app/agent-config/commit/f85a8c713d7bfa1d577ed1897261493ab1336d33))
373
- * **git-guard:** classify the verb that is invoked, not the one that is named ([1b0d42d](https://github.com/event4u-app/agent-config/commit/1b0d42dd4135af012647853a469b1e43070d6502))
374
- * **transcripts:** close the store-slug character class instead of widening it ([580f12d](https://github.com/event4u-app/agent-config/commit/580f12ddb9e1dc1c2d0a5ca9d0d2961707fa3b76))
375
- * **evidence:** a worktree location is not a verdict subject ([351f245](https://github.com/event4u-app/agent-config/commit/351f245b946d5ec186d454888dfa65764003de32))
376
- * **review:** stop the findings artefact citing a path that is the finding ([3dc1f86](https://github.com/event4u-app/agent-config/commit/3dc1f863d6c15b1afdccf0700897cc463eb80ccb))
377
- * **council:** close the seven review findings, including two tests of mine that could not fail ([368c895](https://github.com/event4u-app/agent-config/commit/368c895d78d50b79520b686ade54e7d9aeddfe76))
378
- * **council:** the spawned member answered the caller's hooks, and held tools it never needed ([67efa72](https://github.com/event4u-app/agent-config/commit/67efa720e380e54989c0e95b14285b729f5e279b))
379
- * **council:** gemini rejects --system too, and two members dropped the system prompt entirely ([9faee19](https://github.com/event4u-app/agent-config/commit/9faee19e22fcf51cd21c04b7b12bd0a4da7bfb4e))
380
- * **council:** close six of the eight review findings ([01c7b1f](https://github.com/event4u-app/agent-config/commit/01c7b1fb23ecfee991477d5c086ebc977fa5720b))
381
- * **roadmap:** make the PR the end condition of /roadmap:next, not a step ([0184f3b](https://github.com/event4u-app/agent-config/commit/0184f3b92c8ce975c6f9eab815060f09e0479149))
382
- * **council:** print the post-run quorum, not only the pre-run one ([cd8e518](https://github.com/event4u-app/agent-config/commit/cd8e518c115b2b873e2c85fc8aaf1c85edc37f67))
383
- * **council:** codex exec has no --system flag, so stop passing one ([990d698](https://github.com/event4u-app/agent-config/commit/990d6982ff7f79c1979a96e5b8a37beaa788e65c))
384
- * **review:** close the R2 findings, one of them by admitting the fix was half-built ([ff8be31](https://github.com/event4u-app/agent-config/commit/ff8be31c5aea39a2b85874b1d1224f463a12b0d7))
385
- * **session-eol:** stop recommending /clear without checking the envelope exists ([ee27132](https://github.com/event4u-app/agent-config/commit/ee2713277230081929096719893739f64b416913))
386
- * **session-recycle:** refuse a write into an unanchored working directory ([825df09](https://github.com/event4u-app/agent-config/commit/825df094771c44bbab37de44ea03c713e39980cd))
387
-
388
- ### Documentation
389
-
390
- * **roadmaps:** archive the symptom-driven harvest loop, fully executed ([d8ddccb](https://github.com/event4u-app/agent-config/commit/d8ddccb8707be0e39b15106f5181964c6f32f531))
391
- * **roadmaps:** adopt the four August plans plus their program layer ([f84ba70](https://github.com/event4u-app/agent-config/commit/f84ba70e4bc56c9413d05ae6f9aa0189c3e629d1))
392
- * **review:** re-bind the skip declaration to the Phase 2 re-cut scope ([ceac026](https://github.com/event4u-app/agent-config/commit/ceac02600bc198309163b7d269b87c6c648e4049))
393
- * **roadmap:** re-cut Phase 2 to the downstream evidence control, cancel Phase 3 ([614f3df](https://github.com/event4u-app/agent-config/commit/614f3dfdfe6f4eb3e0c805769bd19ad1846c61ed))
394
- * **contracts:** correct the prompt-channel residual — the prompt IS readable ([35a7796](https://github.com/event4u-app/agent-config/commit/35a7796ce728c6c6e70d10d813eb0da083c343bb))
395
- * **roadmap:** corpus knowledge skills — the compiler gap, with eight corrections to the source ([c428ac6](https://github.com/event4u-app/agent-config/commit/c428ac61f8da7aa8e83f0f71758166fcf7e2eb42))
396
- * **review:** declare the structured-guard-input measurement a no-code-surface skip ([44c5092](https://github.com/event4u-app/agent-config/commit/44c5092c522fbf4cff0db2ade5e731266c521784))
397
- * **evidence:** measure the three Phase-1 falsifiers before building the field ([e817d50](https://github.com/event4u-app/agent-config/commit/e817d5084d67d5d937e65fcf86926ab4e640a566))
398
- * **contracts:** state which text a guard reads, pre- or post-expansion ([953e7c1](https://github.com/event4u-app/agent-config/commit/953e7c1efca019061ba37842726fcf8fd27a198e))
399
- * **review:** declare the waiter-discipline completion a no-code-surface skip ([cf2019e](https://github.com/event4u-app/agent-config/commit/cf2019ea2da0473ee36906f99b98a76be50541fa))
400
- * **roadmap:** regenerate the dashboard after resolving the merge ([f2e6179](https://github.com/event4u-app/agent-config/commit/f2e617964b360f61d3cf32cf3094564498f25f44))
401
- * **roadmap:** risk register for the structured-guard-input plan ([224eda9](https://github.com/event4u-app/agent-config/commit/224eda90be5f1918bc0f59cf6aa0072ef0c259a1))
402
- * **council:** record the convergence and the work it does not fit in ([806e40c](https://github.com/event4u-app/agent-config/commit/806e40c25dbc148d51cccd51438c6622c451f9bc))
403
- * **roadmap:** close zero-settings 2.1, 2.2 and 4.1, and re-date the blocker ([9acf679](https://github.com/event4u-app/agent-config/commit/9acf679f83a5ec260cc0b8be73aa98cd5bb3a219))
404
- * **roadmap:** regenerate the dashboard after the merge ([945d614](https://github.com/event4u-app/agent-config/commit/945d6148a4e1cda1f01bdd8da769b58bd66a880e))
405
- * **roadmap:** record that a failed council attempt still spends quota ([d6e6f11](https://github.com/event4u-app/agent-config/commit/d6e6f11ab78b2ec593098b3e850be94e7e342800))
406
- * **roadmap:** close zero-settings 2.1, 2.2 and 4.1; record why 3.1 and 3.2 stay open ([c5499d9](https://github.com/event4u-app/agent-config/commit/c5499d94529da815709afa2d9776b69acc6ee5b4))
407
- * **settings:** the telegraph rule states its own scope, and four contracts stop naming a dead key ([d805133](https://github.com/event4u-app/agent-config/commit/d805133257302e0beaa732cb1dd33ee413ceb4a6))
408
- * **settings:** republish the counts, the floor, and the reclassification argument ([e53a799](https://github.com/event4u-app/agent-config/commit/e53a7992f4eb49b0859a267c7814434a263fdf4e))
409
- * **audit:** record the cross-project session audit and its refusals ([dddafe9](https://github.com/event4u-app/agent-config/commit/dddafe91e36f2eceb243d8292e1da087eeff00d0))
410
- * **review:** re-bind the adapter-follow-up artefact to the fixed scope ([783b784](https://github.com/event4u-app/agent-config/commit/783b784456429ff897538f23ffd83250c8e67b89))
411
- * **review:** record the R2 findings on the adapter follow-up before fixing them ([a910931](https://github.com/event4u-app/agent-config/commit/a910931b3fe915c97902b90ecdea9540d4b07284))
412
- * **review:** re-bind the context manifest, not only the marker ([3a22d35](https://github.com/event4u-app/agent-config/commit/3a22d357e7d6f5c93e4a8b855a58dd423762c09f))
413
- * **review:** re-bind the R2 artefact to the fixed scope ([e6b4ce8](https://github.com/event4u-app/agent-config/commit/e6b4ce8e968d54a5bb22ca0b8d9f0d36ee7069fb))
414
- * **review:** record the R2 completion review before the fixes ([169fcfd](https://github.com/event4u-app/agent-config/commit/169fcfd9d454ef9951c698783ea8859ff94462a4))
415
- * **evidence:** task-completeness measures 0 of 3 precision — detector D is not built ([a7f6ffd](https://github.com/event4u-app/agent-config/commit/a7f6ffd459c7b5f19db087b31ccd42de5a85504b))
416
- * **roadmap:** close zero-settings Phase 1 + 4.2, file the consent blocker ([99e6df2](https://github.com/event4u-app/agent-config/commit/99e6df2aebfae9433eff3ba7ce24c46090706196))
417
- * **settings:** classify all 140 leaves and ratchet the derivable surface ([4a40578](https://github.com/event4u-app/agent-config/commit/4a405780354a7432d615373577f2e2f0bba4efa6))
418
- * **review:** ship the reviewer prompt and scope beside the verdict ([0e57c8e](https://github.com/event4u-app/agent-config/commit/0e57c8e27621350fe086304b6f8f4f9143ffb8f4))
419
- * **review:** re-bind the R2 artefact to the fixed scope, dispositions terminal ([8492864](https://github.com/event4u-app/agent-config/commit/8492864e2a6540fad5d1970cf76ae6a0dea2259c))
420
- * **evidence:** pre-register the bar for detector D, contamination disclosed ([ee3f43f](https://github.com/event4u-app/agent-config/commit/ee3f43faca834a44eaaf3dab1770e9f422aeae9c))
421
- * **review:** record the R2 findings before fixing any of them ([a151f36](https://github.com/event4u-app/agent-config/commit/a151f368422afbd18cf1f81175e69129acfa0e05))
422
- * **roadmap:** close the rootless-write roadmap and record the sibling inventory ([4f5447a](https://github.com/event4u-app/agent-config/commit/4f5447a5ce022adf8e356ebc93419cababa1af0a))
423
-
424
- ### Refactoring
425
-
426
- * **settings:** delete the five keys nothing ever read ([94b9134](https://github.com/event4u-app/agent-config/commit/94b913481610deb1e981760280019c7ef0ae4aa1))
427
-
428
- ### Tests
429
-
430
- * **settings:** pin what a deleted unread key can and cannot do ([db0c6bd](https://github.com/event4u-app/agent-config/commit/db0c6bdba4eef271ae6803e4adb12c202d14ee2b))
431
- * **settings:** pin the inverted invariant per deleted key ([e87af34](https://github.com/event4u-app/agent-config/commit/e87af347d9f0eacfd5f753737fadc85813b181fb))
432
-
433
- ### Build
434
-
435
- * take the trunk install bundle instead of a worktree rebuild ([f3ef74c](https://github.com/event4u-app/agent-config/commit/f3ef74c800b492cab4327953de7bb8af706e83bc))
436
- * regenerate the derived outputs after the reconciliation merge ([50b4ce6](https://github.com/event4u-app/agent-config/commit/50b4ce6df13dff915ec0adbbe4f03f0f08475d02))
437
- * rebuild the tracked install bundle after the schema deletion ([7b143ae](https://github.com/event4u-app/agent-config/commit/7b143ae4e0611f478e0ddd86c8e837d01a738940))
438
-
439
- ### Chores
337
+ > All entries before `10.3.0` live in
338
+ > [`docs/archive/CHANGELOG-pre-10.3.0.md`](docs/archive/CHANGELOG-pre-10.3.0.md).
339
+ > The archive is read-only; git tags remain the canonical
340
+ > source for what shipped. Splitting them out of the main file
341
+ > keeps the active era under the 250-line drift cap enforced by
342
+ > `tests/test_changelog_eras.py`.
440
343
 
441
- * **index:** regenerate the artifact index and catalog for the new guideline ([5d2d563](https://github.com/event4u-app/agent-config/commit/5d2d56351048163930fba8c8871d4eaddb5d203b))
442
- * **security:** backstop the anonymization obligation for one more harvest source ([0309b8e](https://github.com/event4u-app/agent-config/commit/0309b8efc7f304bdbbc1886701dad1706c22f543))
443
- * **tests:** drop the template handle the trimmed assertion orphaned ([ed764a9](https://github.com/event4u-app/agent-config/commit/ed764a9e600d330e5a33d3c49981f2e7e84b840e))
444
- * **tests:** finish the orphan chain the previous deletion opened ([9bc6020](https://github.com/event4u-app/agent-config/commit/9bc6020a9ddf9578b98898024a2191ffc480a906))
445
- * **tests:** drop two dead declarations the changed-files linter surfaced ([2d7ff19](https://github.com/event4u-app/agent-config/commit/2d7ff19b3dba4584b83e393a5e6f6c2fdafdd816))
446
- * **roadmap:** archive road-to-feedback-9-35, which merged complete but unarchived ([2e26094](https://github.com/event4u-app/agent-config/commit/2e26094de27c845466229c6e7842a8217ac3b21f))
447
- * **roadmaps:** archive road-to-completion-loop, closed as a published null ([92f9b9a](https://github.com/event4u-app/agent-config/commit/92f9b9aa675cbc42cc81e7eb829e68d6ddd3c4b7))
344
+ # Era: 10.3.x — current
448
345
 
449
- Tests: 13506 (+95 since 10.1.0)
346
+ > Started at `10.3.0`. Full entries live inline below.
347
+ > The drift test caps this era at 250 lines of entry body; growth past
348
+ > that forces a new era split (`# Era: 10.4.x`, etc.) — see
349
+ > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
450
350
 
451
- ## [10.1.0](https://github.com/event4u-app/agent-config/compare/10.0.0...10.1.0) (2026-08-12)
351
+ ## [10.3.0](https://github.com/event4u-app/agent-config/compare/10.2.0...10.3.0) (2026-08-13)
452
352
 
453
353
  ### Release highlights
454
354
 
455
355
  <!-- 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. -->
456
- - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 0992c92, 20a8606, 63aeba1.
457
- - **Default changes + migration:** _none_
356
+ - **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 40a8b5e, d3b0f8a, c375e49, 084c220, 17efefc, 01f92df +2 more.
357
+ - **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in c375e49.
458
358
  - **Security and correctness:** _none_
459
- - **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 0f3ce9b.
460
- - **Known limitations:** _none_
461
-
462
- ### Features
463
-
464
- * **untrusted-content:** tag external content where it enters, with an unforgeable boundary ([7a313ec](https://github.com/event4u-app/agent-config/commit/7a313ecfae4eadd06ff547a4a67d363a6758707b))
465
- * **skill-schema:** structured runtime requirements, and the rule that gives them teeth ([63aeba1](https://github.com/event4u-app/agent-config/commit/63aeba1070af3d72bcaac0c7f999788d3b833354))
466
-
467
- ### Bug Fixes
468
-
469
- * **roadmap,context:** satisfy the two gates this branch newly tripped ([e61d461](https://github.com/event4u-app/agent-config/commit/e61d46142a9dc41841c98360377cc89176ce1057))
470
- * **roadmap-archival:** an open blocker outlives its steps, and the sweep did not look ([710dc26](https://github.com/event4u-app/agent-config/commit/710dc266a27a82aad9a527c525650e8d43accfdc))
471
- * **review:** close all eight R2 findings, one of them by admitting a gap instead of papering it ([0992c92](https://github.com/event4u-app/agent-config/commit/0992c92219364bc646e78c29fa3072b5e46361ef))
472
- * **diff:** drop a regenerated report my git add -A swept in ([3aec031](https://github.com/event4u-app/agent-config/commit/3aec031b160a8bc676053be370b2fddfbeab250c))
473
- * **skill-schema:** rename requires to runtime_requires — the key was already taken ([20a8606](https://github.com/event4u-app/agent-config/commit/20a86065cc5d9c86e9fdf0710c51ddf850ca7ae4))
474
- * **roadmap:** anonymize the harvest source per source-confidentiality ([195e444](https://github.com/event4u-app/agent-config/commit/195e444a7b1f9d7d05ac5cb768b0be17a1ac58ea))
475
-
476
- ### Documentation
477
-
478
- * **changelog:** curate the 10.0.0 head, which shipped the same placeholder hours later ([0f3ce9b](https://github.com/event4u-app/agent-config/commit/0f3ce9b22c1858e12556a4b0fe95bec1931dde91))
479
- * **roadmap:** the verified residue of five external release reviews ([a25579f](https://github.com/event4u-app/agent-config/commit/a25579fdf4d13cf6057ccdfeba5dc87990dd11e0))
480
- * **analysis:** threat-model the confirmation store, and enumerate the buried decisions ([8b18f1c](https://github.com/event4u-app/agent-config/commit/8b18f1c4a850a9b08906aceccbe3562f381de7c3))
481
- * **records:** three figures five reviews keep re-deriving, corrected at the source ([1612a70](https://github.com/event4u-app/agent-config/commit/1612a70e3e13daa0572fefb4803533708c1273f0))
482
- * **changelog:** curate the 9.36.0 head that shipped its own placeholder ([83a3922](https://github.com/event4u-app/agent-config/commit/83a3922f63efbe5aca280e775acc85b36573c3f4))
483
- * **review:** re-bind after the count correction ([9dd75ec](https://github.com/event4u-app/agent-config/commit/9dd75ecf178152641f8744a8f1b81f045befde7b))
484
- * **roadmap:** correct the test count the review fixes moved ([ec52c42](https://github.com/event4u-app/agent-config/commit/ec52c421ba69dc85ee78095323f8495b93f3dd26))
485
- * **review:** re-bind the R2 artefact to the fixed scope, dispositions terminal ([e601648](https://github.com/event4u-app/agent-config/commit/e6016487e883f611b2b7b989f23ed682796a6a73))
486
- * **review:** record the R2 findings before fixing any of them ([1cf8d78](https://github.com/event4u-app/agent-config/commit/1cf8d787c015f51261bdd22b7388e47d127003f6))
487
- * **roadmap:** add the Acceptance Criteria the completion review needs to bind to ([f35becd](https://github.com/event4u-app/agent-config/commit/f35becd885c09a5ac7f5a678adf29a360e776efa))
488
- * **roadmap:** follow the schema key rename, and record why the obvious name was unavailable ([5720847](https://github.com/event4u-app/agent-config/commit/572084763fef97eb66fa91fd722d75a9c527440a))
489
- * **roadmap:** the executable-payload harvest, with four source claims corrected ([2f4d8a8](https://github.com/event4u-app/agent-config/commit/2f4d8a8be5891d6045d4605a4a6d8fe3dc28a65e))
490
-
491
- ### Tests
492
-
493
- * **council-cli:** the quota case asserted a property of the developer machine ([35037f9](https://github.com/event4u-app/agent-config/commit/35037f96d3e631d6ee1a235415e716e2a29f8f8c))
494
-
495
- Tests: 13411 (+27 since 10.0.0)
496
-
497
- ## [10.0.0](https://github.com/event4u-app/agent-config/compare/9.36.0...10.0.0) (2026-08-12)
498
-
499
- ### Release highlights
500
-
501
- - **Behaviour changes:** council transport is **resolved per machine rather than
502
- configured** — the breaking change this major carries (4eda4ff); every member
503
- now resolves as `auto`, so a configured CLI call budget applies wherever a
504
- council config exists. The turn-end gate is armed unconditionally and loses its
505
- settings surface (42cd613). Conformance round 7 records its downgrades rather
506
- than restating them (030ca0d, c1bc2aa).
507
- - **Default changes + migration:** _none_
508
- - **Security and correctness:** _none_
509
- - **Honest nulls:** a blocker whose resolution condition no passage of time could
510
- satisfy — a default-OFF gate cannot soak, so the switch removal discharges it
511
- and the original wording stays verbatim beside the resolution, because the
512
- unsatisfiable condition is itself the finding (7c6b404).
359
+ - **Honest nulls:** _none_
513
360
  - **Known limitations:** _none_
514
361
 
515
- ### BREAKING CHANGES
516
-
517
- * **council:** transport is resolved per machine, not configured ([4eda4ff](https://github.com/event4u-app/agent-config/commit/4eda4ff0f518cb30778dc139852576efd35bd57a))
518
-
519
362
  ### Features
520
363
 
521
- * **ci:** the parity gate learns about preflight, which it never inspected ([44151b0](https://github.com/event4u-app/agent-config/commit/44151b02cd765aff16d7e95459752ec553c1d57b))
522
- * **conformance:** a fifth check, an era guard, and the denominator the rate was missing ([f7edbdc](https://github.com/event4u-app/agent-config/commit/f7edbdc99533d433ff2b1857bac5bc7fb2929fe8))
523
- * **hooks:** refuse a completion claim while the last CI read is unsettled ([1ea7536](https://github.com/event4u-app/agent-config/commit/1ea753629ce6a468e061af1ee2f7ac3f38f6bebd))
524
- * **turn-end-gate:** arm it unconditionally, with no settings surface ([42cd613](https://github.com/event4u-app/agent-config/commit/42cd6131761a5b6681583abd8b7100f4415d84bf))
364
+ * **design-slop:** promote six catalog thresholds to deterministic rules ([e87c3eb](https://github.com/event4u-app/agent-config/commit/e87c3eb55a772939b8d1e19725113db095a2c7ca))
365
+ * **gates:** verify the prompt to verdict binding that nothing checked ([658986a](https://github.com/event4u-app/agent-config/commit/658986a315d10c3f989251f3cfc91d53158cd128))
366
+ * **bench:** measure the design-slop false-positive rate against a clean corpus ([e5701fb](https://github.com/event4u-app/agent-config/commit/e5701fb10ce45f9026909137bf7be67c1eebc460))
367
+ * **design-fidelity:** the source is the data basis, and adopting the code is the default ([c375e49](https://github.com/event4u-app/agent-config/commit/c375e49133192f4ee570a9cebedfd42abc7625c7))
368
+ * **ui-route-nudge:** capture whether the artifact was read before the first UI write ([c5b22f2](https://github.com/event4u-app/agent-config/commit/c5b22f27f8b5acacc9dd8c69b325ffa1c3b0969e))
369
+ * **gates:** make the catalog-to-rule traceability claim checkable ([c280258](https://github.com/event4u-app/agent-config/commit/c28025896181c3f3c1d0f0f08fcfd21c4cf8872e))
370
+ * **skills:** enforce the published 400-line cap with a router-head gate ([3fadbfc](https://github.com/event4u-app/agent-config/commit/3fadbfc1272d08c4e4961273039d8d024ac84758))
371
+ * **judge-synthesis:** mark an uncited panelist assertion instead of dropping it ([473bf72](https://github.com/event4u-app/agent-config/commit/473bf72a95d5201dfceff884b54c90de6988042d))
372
+ * **personas:** add optional sources scoping to persona frontmatter ([084c220](https://github.com/event4u-app/agent-config/commit/084c220f0827a5e756e13c87e7991d7eeb16a43f))
373
+ * **analyze:** close the reference-repo exit with ledger rows and seed blocks ([3f2585d](https://github.com/event4u-app/agent-config/commit/3f2585d2408a4bd66c38bedbbea9ca81ce068e65))
374
+ * **rules:** extend code-provenance to the knowledge layer ([17efefc](https://github.com/event4u-app/agent-config/commit/17efefc0d00d3b43e639aa432b00aa697793849d))
375
+ * **provenance:** add a harvest ledger for externally-sourced knowledge claims ([01f92df](https://github.com/event4u-app/agent-config/commit/01f92df91060d77accea9151ca7640bb81d5de0f))
376
+ * **gates:** surface retired-container roots in non-gate scripts ([a5cb1ab](https://github.com/event4u-app/agent-config/commit/a5cb1ab3edef572cf98e72e3e08d98ab4c721f65))
377
+ * **active-remediation:** close the note-without-decision hole ([cbf1320](https://github.com/event4u-app/agent-config/commit/cbf132045f1428fbd9bfc78876cecadb211b6da7))
378
+ * **cli:** report surface-reduction candidates as a flag on commands ls ([f9d432b](https://github.com/event4u-app/agent-config/commit/f9d432b6dc82291fa4ccb390a46e232a993df8d1))
525
379
 
526
380
  ### Bug Fixes
527
381
 
528
- * **round7:** close the R2 findings — the two high ones are in my own Phase 1 ([030ca0d](https://github.com/event4u-app/agent-config/commit/030ca0d6e1a6b27ebbebf74a34caa1403cc98dfa))
529
- * **council:** validate the output path before spending, and count attendance from answers ([a23d6c8](https://github.com/event4u-app/agent-config/commit/a23d6c84d4963f17ca94838bdbc9f7067b72e77a))
530
- * **hooks:** block-no-verify stops failing closed on heredoc prose ([7ac5cd2](https://github.com/event4u-app/agent-config/commit/7ac5cd227d34dbc92f9f0438746ff5cd1317e5d2))
531
- * **taskfile:** block-scalar the bridge-derivation desc so the taskfile parses ([9b0f7b9](https://github.com/event4u-app/agent-config/commit/9b0f7b90ba9bac04c7b0e80dbeaeb99a3aab4cc3))
532
- * **council:** use a Json-typed sentinel for the ignored-key presence check ([29b9f42](https://github.com/event4u-app/agent-config/commit/29b9f42e505c187f2b35abcb81cc6e7055d5507f))
533
- * **detection:** find the Claude subscription in the macOS Keychain ([72de870](https://github.com/event4u-app/agent-config/commit/72de8706812ea2cf30940697887964ae1406a3e4))
534
- * **gates:** scope bridge-derivation to the roots this checkout writes ([ea1b1d4](https://github.com/event4u-app/agent-config/commit/ea1b1d4e230375db0ae1c8e01226d8527a08a1e7))
382
+ * **evals:** repoint the orchestrator tests, and repair the teardown they hid ([a4a03a6](https://github.com/event4u-app/agent-config/commit/a4a03a60912fd4454e37c6e5b995c7bbe39bef54))
383
+ * **gates:** the parity checker counted comment text as a CI invocation ([0d70e7a](https://github.com/event4u-app/agent-config/commit/0d70e7a67a52bf5c083b18c7930a01ea9b09599c))
384
+ * **roadmap-writing:** keep the gate-test inside the skill size budget ([becd652](https://github.com/event4u-app/agent-config/commit/becd6521c76e7cde50725cb6c0c954b1f8720684))
385
+ * **evals:** resolve the eval orchestrator against the live skills tree ([4551601](https://github.com/event4u-app/agent-config/commit/455160160fb680a5e2f480054fd51f4844dccc2c))
386
+ * **roadmaps:** send a contested technical decision to the council, not the user ([cc01b0c](https://github.com/event4u-app/agent-config/commit/cc01b0c12589d88b499b351f33d3a96d51de87d7))
387
+ * **council:** raise the CLI transport timeout to match the API path ([6780f59](https://github.com/event4u-app/agent-config/commit/6780f592b4116d7d323eafade6af03b19d564c32))
388
+ * **source-first:** close the third-round findings ([4f7744d](https://github.com/event4u-app/agent-config/commit/4f7744dc6107942ca990cebdc89ee3b93a7315bc))
389
+ * **source-first:** repair the second-round findings, including a false claim in my own evidence ([40a8b5e](https://github.com/event4u-app/agent-config/commit/40a8b5e94db4b6a2eadfeb18a66d71aae6151cec))
390
+ * **gates:** act on the R2 review - exit-code contract, steering acknowledgement, IO ([85d72ca](https://github.com/event4u-app/agent-config/commit/85d72ca1fe30607b12eca0f253962c904d0af641))
391
+ * **roadmap:** capitalise the Acceptance Criteria heading so the extractor finds it ([1425280](https://github.com/event4u-app/agent-config/commit/14252809d1b1fc92e849f520b70b0113490fc27f))
392
+ * **design-fidelity:** repair the ten completion-review findings ([d3b0f8a](https://github.com/event4u-app/agent-config/commit/d3b0f8a7d83656614b05529fb0f5829a044d4bfe))
393
+ * **skills:** drop a bare threshold from the seed-intake note ([2ef65a8](https://github.com/event4u-app/agent-config/commit/2ef65a8056e12dc7eb192f08489b7dc088b4e99f))
394
+ * **design-slop:** demote the colour-lock rule, which fired on four clean files ([76a437f](https://github.com/event4u-app/agent-config/commit/76a437f1cdb1c26b700c2839fa2443b4d125e47c))
395
+ * **gates:** name the retired container by reference, not by path ([1d1c9f2](https://github.com/event4u-app/agent-config/commit/1d1c9f210dba39ee2f19f8d32a0dbf8ca0bea4aa))
396
+ * **cli:** stop the report calling canonical commands deprecation shims ([f13e151](https://github.com/event4u-app/agent-config/commit/f13e15179e81d73101814c83d68fae2e7dd5d823))
397
+ * **active-remediation:** keep the rule under the eager-load token cliff ([5a65eea](https://github.com/event4u-app/agent-config/commit/5a65eea03470aa51477f018299fb7c733b0ffd53))
398
+ * **cli:** render every visibility bucket so the breakdown sums to the total ([fe52612](https://github.com/event4u-app/agent-config/commit/fe52612f3ec88a1f54a5a0f6553cabc1d7e05b2d))
399
+
400
+ ### Reverts
401
+
402
+ * **review:** drop the hand-written findings artefact, it cannot carry a verified manifest ([f930ba2](https://github.com/event4u-app/agent-config/commit/f930ba2416fc819d27b6a8bf6a6fedd16c83c7f1))
535
403
 
536
404
  ### Documentation
537
405
 
538
- * **review:** re-bind the R2 artefact to the fixed scope ([304b898](https://github.com/event4u-app/agent-config/commit/304b89866880c23f68106c096df20ce18ed207b7))
539
- * **review:** record the R2 findings before fixing any of them ([bdf45c2](https://github.com/event4u-app/agent-config/commit/bdf45c2e86b2839f3c64d432d50285f043f08d3d))
540
- * **roadmaps:** the fifth check makes two Context claims stale, in both directions ([6915456](https://github.com/event4u-app/agent-config/commit/6915456005fd164bc525103c6f0b59f05dbc8169))
541
- * **analyze:** the conformance command documented four checks, there are five ([d05f97e](https://github.com/event4u-app/agent-config/commit/d05f97e13b03cc04036d83aba4df6635e0323932))
542
- * **conformance:** round 7 — the honest downgrades and the archived roadmap ([c1bc2aa](https://github.com/event4u-app/agent-config/commit/c1bc2aaef41b04aa76024f9949c9e10eacd9886c))
543
- * **council:** the template and contract stop documenting a setting that is gone ([49d58fa](https://github.com/event4u-app/agent-config/commit/49d58fa28778359416459465cf066b7d8fccb363))
544
- * **roadmap:** close the stop-refusal blocker, open the two follow-up tracks ([7c6b404](https://github.com/event4u-app/agent-config/commit/7c6b4045c2cadf023d1f434ff851cec86372613a))
406
+ * **review:** re-bind after the parity wiring ([2fbf6bf](https://github.com/event4u-app/agent-config/commit/2fbf6bf3f6fc292870a24d99f4c3e883bf7309fb))
407
+ * **review:** withdraw the docs-only justification, the addition is code now ([9cf9c7c](https://github.com/event4u-app/agent-config/commit/9cf9c7c7e5f47161f78a6e880b8dc89735218833))
408
+ * **roadmap:** record the parity defect and answer Phase 4 step 1 ([6b6eed2](https://github.com/event4u-app/agent-config/commit/6b6eed24eaf29592ee588d54e50af48447d7e5a2))
409
+ * **review:** re-bind after the second main merge ([8f852d3](https://github.com/event4u-app/agent-config/commit/8f852d3c0e3ae3844e2826406700d0a03ce74121))
410
+ * **roadmaps:** close the eval-loop plan on the council-checked disposition ([afae05d](https://github.com/event4u-app/agent-config/commit/afae05d1b6639d04992d5e0f3b3515322aafb170))
411
+ * **gates:** re-measure the denominator after the main merge ([746f3fd](https://github.com/event4u-app/agent-config/commit/746f3fd383fe85b8510ddc0231c3e1525dcedf7c))
412
+ * **review:** re-bind after the main merge, and record it ([fb5426d](https://github.com/event4u-app/agent-config/commit/fb5426dd06e671f4f27658e86ffff070da581ca1))
413
+ * **review:** re-bind after the roadmap addition, and say what it did not cover ([7de39cd](https://github.com/event4u-app/agent-config/commit/7de39cd46644d983a8b00255cd8a7be81e66bbb2))
414
+ * **roadmap:** capture the four gates that are red on main and unseen ([578b336](https://github.com/event4u-app/agent-config/commit/578b33663d3aee9c30b5e4b486cef7195351ae79))
415
+ * **review:** re-bind after the main merge and the code-provenance resolution ([a2d1b78](https://github.com/event4u-app/agent-config/commit/a2d1b7803b8e2a1a6b385d375b840c8f0d87fe69))
416
+ * **proof:** regenerate the proof page for the new claims-ledger entry ([d8dc88f](https://github.com/event4u-app/agent-config/commit/d8dc88f795a6355c3dc96e02f1be86321b8e2b72))
417
+ * **review:** re-bind the findings to the repaired scope, all six terminal ([25b4478](https://github.com/event4u-app/agent-config/commit/25b4478ac299541e767a2143de9b4ef57148b61a))
418
+ * **review:** bind the third review round, 6 findings, no high or critical ([b30c87b](https://github.com/event4u-app/agent-config/commit/b30c87b0e3bd1be1395141c1dfc17e96ba8a2a6a))
419
+ * **review:** re-bind the R2 artefact after the fix pass ([3e094ce](https://github.com/event4u-app/agent-config/commit/3e094ce3cf3bfd709d44889896c73717c596807c))
420
+ * correct two false premises the R2 review caught ([491020a](https://github.com/event4u-app/agent-config/commit/491020a989021ef29db713823184e2bb4972275f))
421
+ * **roadmap:** re-review the Risk Register against what actually fired ([afcb8cb](https://github.com/event4u-app/agent-config/commit/afcb8cbde6a22095ce529e260928352888f15929))
422
+ * **review:** record the R2 completion review before the fixes ([beb439c](https://github.com/event4u-app/agent-config/commit/beb439c13d5fde35e5e8048103f539971632d8fd))
423
+ * **review:** record the completion review, 10 findings before any fix ([fbefeed](https://github.com/event4u-app/agent-config/commit/fbefeed6515bf57d72b7ad77dba10c816e359f3c))
424
+ * **roadmaps:** archive the design-detector evidence plan, fully executed ([c9a9b89](https://github.com/event4u-app/agent-config/commit/c9a9b89508157d1d71027bb945dc20d91a557830))
425
+ * **claims:** publish the phase-3 delta in the same corpus epoch ([ed2b16a](https://github.com/event4u-app/agent-config/commit/ed2b16a59d2174a7e963c6879a1324a3c588cbd5))
426
+ * **roadmap:** close structured-guard-input Phase 2 and archive it ([6ea0809](https://github.com/event4u-app/agent-config/commit/6ea08095c11b1e2ee0309ecd3aa5e350b751a831))
427
+ * **r2:** the dispatcher docstring claimed a comparison that never ran ([f9cb36d](https://github.com/event4u-app/agent-config/commit/f9cb36d2de540464486045880336fea004bb38d1))
428
+ * **roadmap:** close 11 of 18 steps, and name what blocks the other seven ([db91d7c](https://github.com/event4u-app/agent-config/commit/db91d7c369f595b338b441a92ac9dd7459eb0690))
429
+ * **roadmaps:** close phase 2 of the design-detector evidence plan ([5a228f7](https://github.com/event4u-app/agent-config/commit/5a228f76e100c71f865d27f5a96fa185a041d3c0))
430
+ * **claims:** publish the design-slop false-positive baseline ([72e3d88](https://github.com/event4u-app/agent-config/commit/72e3d8892d0079157179068d55b5ca0ac7aff2e6))
431
+ * **context:** harvest verdicts on the design-corpus upstream ([681e378](https://github.com/event4u-app/agent-config/commit/681e378474273b149ac2317d4493b12bac521278))
432
+ * **evidence:** the ad-hoc port measurement, and why it is inconclusive ([6955709](https://github.com/event4u-app/agent-config/commit/6955709fd7ae1c91ef6e2c1dba71220056055531))
433
+ * **bench:** pre-register the design-slop false-positive measurement ([65fa996](https://github.com/event4u-app/agent-config/commit/65fa996c19c4693bd0d9e3492b089482f01762c8))
434
+ * **roadmap:** correct the risk register anchor and stale gate names ([f87c5c3](https://github.com/event4u-app/agent-config/commit/f87c5c38b6395991e0322d11a0b7034cbb1b077f))
435
+ * **roadmaps:** close phase 1 of the design-detector evidence plan ([8d6f981](https://github.com/event4u-app/agent-config/commit/8d6f981fefa8cb59f3cf06072a92085458dbc8fe))
436
+ * **roadmap:** record the distillation inbox harvest and what it cancelled ([5dcd809](https://github.com/event4u-app/agent-config/commit/5dcd809616ef944fa597d84ab0483776666c1263))
437
+ * **roadmaps:** adopt the design-detector evidence plan, cut twenty of the sources twenty-five items ([6ceaa08](https://github.com/event4u-app/agent-config/commit/6ceaa080eb4beac7924affbcb19a4d1b4e85aa6a))
438
+ * **roadmaps:** triage the behavioral-proof harvest to its one live finding ([2e78aad](https://github.com/event4u-app/agent-config/commit/2e78aadaeffec0cdee75d0a376e3210881601fbb))
439
+ * **review:** re-bind after ADR-226 and the release merge ([1eff521](https://github.com/event4u-app/agent-config/commit/1eff52101d2a1015cb91f976a9efab8e03789914))
440
+ * **adr:** record that this repository keeps both rule layers ([2423a54](https://github.com/event4u-app/agent-config/commit/2423a543e177a85debcdd63a028d2ccaa0eaae13))
441
+ * **review:** re-bind after the main merge and the register fix ([408b561](https://github.com/event4u-app/agent-config/commit/408b5616278cfbc96336212ca5a5531f9efe45ba))
442
+ * **roadmaps:** park the corpus-knowledge plan until the first two corpora are named ([4c17c61](https://github.com/event4u-app/agent-config/commit/4c17c614c870f13158cae5bab0fdc49decc22fa3))
443
+ * **roadmap:** give the scoping roadmap its Risk Register ([35028ca](https://github.com/event4u-app/agent-config/commit/35028ca4aa09927e2b32e87d0b0eeac7671d9d7f))
444
+ * **review:** record the completion review that caught the shim inversion ([880f5e2](https://github.com/event4u-app/agent-config/commit/880f5e29dbb42ec8812a4f3e9978dff92d25958d))
445
+ * **review:** re-bind after the authorised re-anchor and its roadmap ([f6516fc](https://github.com/event4u-app/agent-config/commit/f6516fcccc62a5d62bb0f23cfea5065625b4bcbc))
446
+ * **roadmap:** track scoping the always-loaded rule corpus ([027bd7f](https://github.com/event4u-app/agent-config/commit/027bd7fb94b25ace176c17ea1912aa4d6dc2bbb0))
447
+ * **review:** re-bind to the derived-page scope, record the infra red ([65572bc](https://github.com/event4u-app/agent-config/commit/65572bcf4b08b1650a67fcb3834a3d4aa98d5edf))
448
+ * **proof:** regenerate after the enforced_by declaration ([6b08b8e](https://github.com/event4u-app/agent-config/commit/6b08b8e5cf0617a00b88feb61e96bad4a3847794))
449
+ * **review:** re-bind the skip declaration to the token-budget scope ([d895ad7](https://github.com/event4u-app/agent-config/commit/d895ad7056837e006b99bdc7c7ef398ab79db9a4))
450
+ * **review:** declare the remediation-ladder completion a no-code-surface skip ([b24bd16](https://github.com/event4u-app/agent-config/commit/b24bd1626809da2a14b2be5bffa2ad8538446657))
451
+ * **roadmap:** close 3.4 of -release-integrity with its three recorded decisions ([a8c8e49](https://github.com/event4u-app/agent-config/commit/a8c8e49794b9e7e7d0b8f4c13bcc17fdb4bd2e83))
545
452
 
546
453
  ### Refactoring
547
454
 
548
- * **condense:** expose the active-tool set root-parameterised ([d795d6a](https://github.com/event4u-app/agent-config/commit/d795d6a666f57be451d0dd5462b8725b56e44e75))
549
- * **settings:** delete hooks.turn_end_gate.* and give REMOVED_KEYS per-key reasons ([f5b316b](https://github.com/event4u-app/agent-config/commit/f5b316b4bc531e2cf7ce0d65556c4a2737cbe0dc))
455
+ * **design-slop:** rename the two rules that broke the id-to-catalog convention ([6fe9111](https://github.com/event4u-app/agent-config/commit/6fe911105e52d3be31793e40cbc8d0da8ad803ab))
550
456
 
551
457
  ### Tests
552
458
 
553
- * **hooks:** prove the completion detector is wired, not just correct ([4d284ef](https://github.com/event4u-app/agent-config/commit/4d284efa10ba939066edfc42c4a735d94e794def))
554
-
555
- ### Chores
556
-
557
- * **condense:** re-project session-canary after the reproduction-command fix ([2d344c4](https://github.com/event4u-app/agent-config/commit/2d344c4d2183a608986f9dce485f1e5006e48863))
558
-
559
- Tests: 13384 (+51 since 9.36.0)
560
-
561
- ## [9.36.0](https://github.com/event4u-app/agent-config/compare/9.35.0...9.36.0) (2026-08-12)
459
+ * **gates:** assert the prompt-binding invariant, not a frozen count ([ee5a61c](https://github.com/event4u-app/agent-config/commit/ee5a61c841fc4a8564899eea24a1674a50b814aa))
562
460
 
563
- ### Release highlights
564
-
565
- - **Behaviour changes:** the demand gate reads `project.audience` and is inert at
566
- `self` — a market-demand ladder no longer fires on a project that intends no
567
- market (9f69017). The two UI rules stop claiming the `ui-route-nudge` concern
568
- reads their `keyword:` triggers; it does not, and six surfaces said it did
569
- (3c20d47). The design skills now reach the consumers they were written for
570
- (72bb1bc). The CI-side change in 924cad8 is internal to the pipeline and
571
- changes no consumer-visible behaviour.
572
- - **Default changes + migration:** _none_
573
- - **Security and correctness:** _none_
574
- - **Honest nulls:** _none_
575
- - **Known limitations:** _none_
576
-
577
- ### Features
578
-
579
- * **consultation-rate:** compute the half of the metric that is computable ([36064ef](https://github.com/event4u-app/agent-config/commit/36064efa1a85c9ea1c6c2beb427fe684177ca2a8))
580
- * **analyze:** anchor-first direction, claim gate, interop probe and bounded --deep ([5bee62a](https://github.com/event4u-app/agent-config/commit/5bee62a5828ba6d3cf38a7d5d685004716d8addf))
581
- * **lint-roadmap:** warn when a gate rests on a population the project cannot produce ([e5c0b56](https://github.com/event4u-app/agent-config/commit/e5c0b569417d80ee937fd7ec955680c724abe3e1))
582
- * **demand-gate:** the L0-L4 ladder measures market demand, and now says so ([9f69017](https://github.com/event4u-app/agent-config/commit/9f69017632aead1f2a0e20eb8518ae4d8508ea1a))
583
- * **fe-design:** outside the ticket engine, this skill is the executor ([2946655](https://github.com/event4u-app/agent-config/commit/294665543cfb1a3c896e25024fd08551af629bb2))
584
- * **ui-route-nudge:** the first runtime consumer the UI rule triggers ever had ([6bf216e](https://github.com/event4u-app/agent-config/commit/6bf216e649febf3d95162e7f9b222f43ae2bd407))
585
- * **pack-reach:** report where a rule and the skills it routes to cannot meet ([4bc28e6](https://github.com/event4u-app/agent-config/commit/4bc28e660f9eaef87b1e8f5ed4bbbd1914a7d3e4))
586
- * **catalogue:** measure the skill-catalogue delivery defect, and publish the null ([b2adebe](https://github.com/event4u-app/agent-config/commit/b2adebe17320109a98a41eb4b0fc69233b567e47))
587
- * **ui-surface:** one definition of a UI surface, and it covers Blade ([e9ba053](https://github.com/event4u-app/agent-config/commit/e9ba0533110da9aa9bbd276ab3ced2004c2d5d50))
588
-
589
- ### Bug Fixes
590
-
591
- * **proof:** regenerate docs/proof.md after the new pre-registered claim ([6a8bc44](https://github.com/event4u-app/agent-config/commit/6a8bc446abcc06cee3cc55ffd75f7668037542ea))
592
- * **baseline:** repair the measurement table split by the unit note ([afa1ea0](https://github.com/event4u-app/agent-config/commit/afa1ea0f1369293a8e392e132343dc05c126ccda))
593
- * **consultation-rate:** close the R2 findings, unit first ([c53b3da](https://github.com/event4u-app/agent-config/commit/c53b3da53111a089d07c59186d1aa1124adc2d31))
594
- * **agents-md:** keep the corrected pointer inside the Thin-Root char cap ([858963f](https://github.com/event4u-app/agent-config/commit/858963f956d516d5200d9e27c9014aee41938973))
595
- * **agents-md:** the consumer template contradicted itself on always-active rules ([639ce5e](https://github.com/event4u-app/agent-config/commit/639ce5e26d8e4d3ca70d8e4f1f6953548f72322f))
596
- * **dist:** rebuild the install bundle without build-machine paths ([55f4e64](https://github.com/event4u-app/agent-config/commit/55f4e6449ad0eb9d8c79bdeffea6c174ddda66f2))
597
- * **cli-delegate:** close the six R2 findings, two of them on this fix ([6c26dd4](https://github.com/event4u-app/agent-config/commit/6c26dd45187b374a473df5bba241b0bd502accd2))
598
- * **cli-delegate:** four shipped commands were silent no-ops in their own bundle ([1ea3f67](https://github.com/event4u-app/agent-config/commit/1ea3f67012929f7c00604bc9cda6a85b1d783e32))
599
- * **ci:** three downstream surfaces the new triggers, key and gate opened ([924cad8](https://github.com/event4u-app/agent-config/commit/924cad87f91eb57acf4e8619015f3089e07a956c))
600
- * **capture,lint,docs:** close the remaining R2 findings ([396d58f](https://github.com/event4u-app/agent-config/commit/396d58fbff2704cddce10577e2cbd82db9c5003c))
601
- * **ui-surface,nudge,settings:** three predicates that were wider than their claims ([36e1632](https://github.com/event4u-app/agent-config/commit/36e1632287a85c0934bec8a43752b8761dfa19d6))
602
- * **ui-rules:** the nudge does not read the rules, and six surfaces said it did ([3c20d47](https://github.com/event4u-app/agent-config/commit/3c20d47dee794e1c9ddbf6a895527953788c31ff))
603
- * **ui-rules:** reach the consumers the design skills were written for ([72bb1bc](https://github.com/event4u-app/agent-config/commit/72bb1bc3943c8fb721db9d44b5daa5334bcb956f))
604
-
605
- ### Documentation
606
-
607
- * **review:** re-bind the R2 artefact to the fixed scope ([0cc9057](https://github.com/event4u-app/agent-config/commit/0cc9057d97b78cf82fd957afd96ec9205bfc7fc0))
608
- * **review:** record the R2 findings before fixing any of them ([b42227a](https://github.com/event4u-app/agent-config/commit/b42227a6e32b041c6b9b82f373bb23c2d15cc03a))
609
- * **baseline,roadmap:** the first measurement, and what its denominator says ([347cb47](https://github.com/event4u-app/agent-config/commit/347cb4702b55f22723ecf4d7fb00fe202fb4d72c))
610
- * **roadmaps:** archive the completed cross-repo differential loop roadmap ([f90b42b](https://github.com/event4u-app/agent-config/commit/f90b42b918813c0f354037abd5965bd45afb7a5d))
611
- * **claims:** pre-register the reference-loop upgrade value claim ([67c1ba4](https://github.com/event4u-app/agent-config/commit/67c1ba400531ca0eead1c282a6dd802c55080eb5))
612
- * **roadmap:** archive the cross-corpus verification roadmap, complete ([483acc6](https://github.com/event4u-app/agent-config/commit/483acc654e8d8a2a3b9cecbc96be6e79e8da12a0))
613
- * **adr:** record what the cross-corpus proposal measurements survived ([87e81d8](https://github.com/event4u-app/agent-config/commit/87e81d8faadc35f070163d3ec3288b78cad19d1d))
614
- * **roadmap:** the demand-gate audience roadmap and its follow-up ([079f22c](https://github.com/event4u-app/agent-config/commit/079f22cbd16df95ceebcccdb9a4ae3bcc73390ef))
615
- * **review:** re-bind after the CI fixes, and name what is unreviewed ([f9e66de](https://github.com/event4u-app/agent-config/commit/f9e66de977d9a33766edcfd84936ef12ba09358d))
616
- * **review:** state precisely what moved between the two re-binds ([8b2bdd4](https://github.com/event4u-app/agent-config/commit/8b2bdd4267307cbbaec410d6305b9d91f98cc7c1))
617
- * **review:** re-bind the R2 artefact after the generated-file regen ([03e1029](https://github.com/event4u-app/agent-config/commit/03e102989d92f2cc913dc839b05986cf7d4db1f3))
618
- * **roadmap:** the frontend-skill-application plan and its first run ([c1bd64f](https://github.com/event4u-app/agent-config/commit/c1bd64fe559a60a6b6f6248ffc3ff0127df5fe46))
619
- * **dispatch:** a UI-shaped slice carries its design context across the boundary ([aae1e52](https://github.com/event4u-app/agent-config/commit/aae1e5242d3f5ed4a99c9a33d4551ca9183b8f77))
620
-
621
- ### Refactoring
622
-
623
- * **skills:** one spelling for the disclosure directory, and an authoring section that names it ([3cd3103](https://github.com/event4u-app/agent-config/commit/3cd3103962d8d632c9fe18691016b6044ffc084b))
624
-
625
- ### Tests
461
+ ### CI
626
462
 
627
- * **demand-gate:** pin both halves, and name what these tests are not ([0a1da08](https://github.com/event4u-app/agent-config/commit/0a1da086689b0c3b5d4df3097df4e731b6506481))
628
- * **cli-delegate:** execute every delegate bundle, because reading cannot see this ([5d8a741](https://github.com/event4u-app/agent-config/commit/5d8a7410da9caba0e77714dc9e5e92c370a1614e))
463
+ * wire the design-antipattern parity gate into a workflow ([b93df01](https://github.com/event4u-app/agent-config/commit/b93df013381e38ae0ca594c810905866b204ed71))
464
+ * wire the harvest-ledger and router-head gates into task ci ([729811f](https://github.com/event4u-app/agent-config/commit/729811f6ef724cb51c108cd8e4cf4dfb582b2977))
629
465
 
630
466
  ### Chores
631
467
 
632
- * **roadmap:** archive the completed roadmap in the PR that completes it ([1d05116](https://github.com/event4u-app/agent-config/commit/1d05116c62f316b64fb1d6a8e86381d03f3f22fe))
633
- * **review:** re-bind the artefact after the bundle rebuild ([b0bf837](https://github.com/event4u-app/agent-config/commit/b0bf837046718823c52f4db9216d27192f8a131b))
634
- * **dist:** rebuild the committed install bundle after the guard change ([0d7b0ae](https://github.com/event4u-app/agent-config/commit/0d7b0ae2709d7a6fcf0eb5ecd9e1e0241a28c06d))
635
- * **review:** re-bind the artefact after merging main ([ab4272b](https://github.com/event4u-app/agent-config/commit/ab4272b98a53628fa00544b134a49b7e97545ad4))
636
- * **review:** re-bind the artefact and mark all six findings fixed ([c1eb64a](https://github.com/event4u-app/agent-config/commit/c1eb64ab051a663a45a1a76696a282a7e7dfb6c0))
637
- * **review:** record six R2 findings before fixing them ([872fc7b](https://github.com/event4u-app/agent-config/commit/872fc7b0a7e735e7ebd13d357b7270b8a1140046))
638
- * **index:** regenerate the artefact index and public catalog ([cfc75b6](https://github.com/event4u-app/agent-config/commit/cfc75b6b26bbf6bd09c0536ca0f553a52fbd09a9))
639
- * **dist:** regenerate the router after merging main ([4bab07c](https://github.com/event4u-app/agent-config/commit/4bab07c67ec7d5778f957789bc6d427ec6274641))
468
+ * **roadmaps:** regenerate the dashboard after the main merge ([d189ea6](https://github.com/event4u-app/agent-config/commit/d189ea67076d6a0aaea4bb99bb16ef270661d499))
469
+ * **roadmap:** regenerate the dashboard after the main merge ([fde4d00](https://github.com/event4u-app/agent-config/commit/fde4d00cd943f7296c10b98bde0ce67a05bbaa8a))
470
+ * **index:** regenerate index and catalog after the harvest changes ([e5dc63f](https://github.com/event4u-app/agent-config/commit/e5dc63fc99e58566ab74da72655265a1e1cd2022))
471
+ * **roadmap:** regenerate the dashboard after the second main merge ([bc6ba86](https://github.com/event4u-app/agent-config/commit/bc6ba8693b106335cbb5e1c2ded74163d9ab2c5b))
472
+ * **roadmap:** regenerate the dashboard after merging main ([1e1ada7](https://github.com/event4u-app/agent-config/commit/1e1ada7eb4809507e67167b0070ad59777da449c))
473
+ * **tokens:** re-anchor the eager-rule-load baseline, itemised ([4a9110f](https://github.com/event4u-app/agent-config/commit/4a9110f5a7771dfab5dca7b10aa0891d42792143))
640
474
 
641
- Tests: 13333 (+120 since 9.35.0)
475
+ Tests: 13679 (+173 since 10.2.0)
642
476
 
643
477
  # Era: pre-4.0.0 — archived
644
478
 
@@ -254,9 +254,35 @@ incomplete document. Never a drawer to fill.}
254
254
 
255
255
  {Only if --no-roadmap was not set.}
256
256
 
257
+ ## Seeds
258
+
259
+ {One block per ADOPT/ADAPT row whose adoption lands in a NEW skill or rule —
260
+ omit the section entirely when every row extends something that exists.}
261
+
262
+ ### SEED — {proposed-name}
263
+
264
+ > Proposal. Nothing is created from this block without an explicit ask.
265
+
266
+ - **Kind:** skill | rule
267
+ - **Target template:** `src/agent-src/templates/skill.md` | `.../rule.md`
268
+ - **One-line description:** {what it does, in the voice the template wants}
269
+ - **Cites:** {harvest ids this artefact will carry, once § 8 records them}
270
+ - **Extends instead?** {the nearest existing artefact considered, and why it
271
+ does not fit — a seed that skipped this line is not ready to hand over}
272
+
257
273
  ## Open questions for the maintainer
258
274
  ```
259
275
 
276
+ The `## Seeds` section is the handoff shape
277
+ [`learning-to-rule-or-skill`](../../../../skills/learning-to-rule-or-skill/SKILL.md)
278
+ accepts as intake. It is a **proposal artifact, never an auto-created file** —
279
+ the block says so in its own first line, so the property survives being read out
280
+ of context. The `Extends instead?` field is load-bearing rather than decorative:
281
+ it makes the four-surface overlap scan that
282
+ [`artifact-drafting-protocol`](../../../../rules/artifact-drafting-protocol.md)
283
+ requires visible at handoff time, when the analysis is still open, instead of
284
+ re-derived later by whoever picks the seed up.
285
+
260
286
  ### 7. Offer next steps
261
287
 
262
288
  After writing the file, present:
@@ -270,6 +296,42 @@ After writing the file, present:
270
296
 
271
297
  Never create the roadmap without explicit confirmation.
272
298
 
299
+ ### 8. Close the loop — offer the ledger rows
300
+
301
+ **Only after a roadmap draft is accepted** (option 1 or 2 above). This step
302
+ exists because the command otherwise ends with the knowledge it harvested
303
+ recorded nowhere citable: the analysis document is archived evidence, and the
304
+ next comparative pass re-litigates the same provenance from scratch.
305
+
306
+ Offer — never write unasked, same confirmation floor as every other write here:
307
+
308
+ > Record {N} harvest row(s) in `provenance/harvests.jsonl`?
309
+ > {one preview line per row}
310
+
311
+ One row per **anchored ADOPT or ADAPT** finding, and nothing else:
312
+
313
+ | Field | Filled from |
314
+ |---|---|
315
+ | `harvest_id` | a kebab-case slug for the mechanism |
316
+ | `stated_in` | the roadmap file the user just accepted |
317
+ | `source_ref` | the reference's `<url>@<sha>` — the § 2 pin, already recorded in the document header |
318
+ | `evidence_locator` | the reference-side `file:line` from that row of the comparison matrix |
319
+ | `harvested_at` | today |
320
+ | `verdict` | `adopt` or `adapt` |
321
+
322
+ **REJECT, ALREADY, and UNCLEAR rows produce nothing.** Not an oversight: the
323
+ ledger's integrity gate asserts that every row's `stated_in` artefact exists,
324
+ and a rejected finding has no artefact — it is recorded in this analysis
325
+ document, which is where a later harvest goes to learn the question was already
326
+ settled. Writing rejections into the ledger would either break the gate or
327
+ force it to stop checking the thing it exists to check.
328
+
329
+ **Confidential sources.** When [`source-confidentiality`](../../../../rules/source-confidentiality.md)
330
+ keeps the reference's name out of the tracked tree, `source_ref` takes the
331
+ opaque form (`opaque:<id>` / an `ENC1:` token) instead of the URL. The row still
332
+ pins something; it just does not name it. Contract and field shapes:
333
+ `provenance/README.md`.
334
+
273
335
  ## Safety
274
336
 
275
337
  - Read-only on the reference. Never execute it, never submit PRs to it. Never
@@ -268,7 +268,10 @@ Write the pick to frontmatter as `execution.mode:`
268
268
  rewrite each hit as an agent-verifiable check (a command, a targeted
269
269
  test) **before saving**, or promote it to a structured `## Blockers`
270
270
  entry: a **human gate** only when only a human can decide/authorize
271
- (Hard-Floor authorization, billable spend, contested decision); an
271
+ (Hard-Floor authorization, billable spend, or a decision bound to
272
+ preference, risk appetite, or product intent). A contested **technical**
273
+ decision is not a human gate while a council is configured — it is a
274
+ step whose first action runs the council (template rule 22); an
272
275
  **external dependency** becomes a blocker whose `Resolved when:`
273
276
  names an agent-checkable status probe — never a human gate. Do not
274
277
  author safety floors as steps — they fire at run time on their own.
@@ -7,6 +7,12 @@ mode: reviewer
7
7
  version: "1.0"
8
8
  source: package
9
9
  council_advisor: true
10
+ # Explicitly empty, not merely unset: reconstructing a problem from its
11
+ # irreducible constraints is this advisor's whole function, so "asserts no
12
+ # harvested doctrine" is a statement about the lens rather than a gap in one.
13
+ # Every other persona leaves the field absent (unscoped) — see the sources
14
+ # block in templates/persona.md for the three states.
15
+ sources: []
10
16
  ---
11
17
 
12
18
  # First-Principles Advisor