@event4u/agent-config 9.33.0 → 9.35.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +154 -145
- package/CONTRIBUTING.md +23 -14
- package/dist/agent-src/commands/agent-handoff.md +15 -3
- package/dist/agent-src/commands/roadmap/next.md +37 -5
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +35 -1
- package/dist/agent-src/scripts/roadmap_gates.ts +119 -4
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +21 -12
- package/dist/agent-src/skills/design-tokens/SKILL.md +15 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +24 -0
- package/dist/agent-src/skills/rule-writing/SKILL.md +23 -0
- package/dist/agent-src/skills/skill-writing/SKILL.md +80 -2
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -3
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +24 -0
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +25 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/scripts/memory_lookup.ts +1 -2
- package/dist/agent-src/templates/scripts/memory_signal.ts +2 -4
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +35 -5
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation.ts +252 -0
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation_store.ts +307 -0
- package/dist/cli/registry.js +2 -2
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/{chunk-PMQ6Z3T3.js → chunk-2TGMGLBL.js} +11 -4
- package/dist/cli-delegate/{chunk-YPAWXXXR.js → chunk-55RI5UXK.js} +17 -0
- package/dist/cli-delegate/{chunk-MA4GFWDY.js → chunk-H6F2CQFI.js} +1 -1
- package/dist/cli-delegate/{chunk-2WELHO3P.js → chunk-I5EAFRII.js} +35 -0
- package/dist/cli-delegate/{chunk-3EWYC3YK.js → chunk-UEZ7D35A.js} +4 -3
- package/dist/cli-delegate/{chunk-UVKNIJH2.js → chunk-ZAXH3ZWU.js} +3 -0
- package/dist/cli-delegate/cmd_conformance.js +2 -2
- package/dist/cli-delegate/cmd_doctor.js +2 -2
- package/dist/cli-delegate/cmd_export.js +2 -2
- package/dist/cli-delegate/cmd_handoff.js +3 -3
- package/dist/cli-delegate/cmd_memory_get.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +2 -2
- package/dist/cli-delegate/cmd_route_audit.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +7 -2
- package/dist/cli-delegate/cmd_settings_migrate.js +2 -2
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +2 -2
- package/dist/cli-delegate/cmd_uninstall.js +2 -2
- package/dist/cli-delegate/cmd_validate.js +2 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +13 -13
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +2 -2
- package/dist/discovery/dormancy-report.md +17 -0
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +3 -3
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +3 -3
- package/dist/hooks/dispatch.js +355 -85
- package/dist/install/install.mjs +3 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +192 -12
- package/dist/server/schemas/settings.js +1 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/contracts/settings-classes.md +3 -2
- package/docs/guidelines/agent-infra/failure-signatures.md +47 -12
- package/package.json +2 -2
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +35 -1
- package/src/agent-src/scripts/roadmap_gates.ts +119 -4
- package/src/agent-src/templates/scripts/memory_lookup.ts +1 -2
- package/src/agent-src/templates/scripts/memory_signal.ts +2 -4
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +35 -5
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation.ts +252 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation_store.ts +307 -0
- package/src/config/agent-settings.template.yml +11 -2
- package/src/config/quorum-attendance-budget.json +11 -3
- package/src/scripts/_cli/cmd_session_recycle.ts +6 -1
- package/src/scripts/_dispatch.bash +6 -2
- package/src/scripts/_lib/env_kill_switch.ts +37 -0
- package/src/scripts/_lib/security_lint.ts +18 -4
- package/src/scripts/_lib/self_repair.ts +60 -0
- package/src/scripts/_lib/self_repair_store.ts +65 -5
- package/src/scripts/_lib/session_register.ts +67 -1
- package/src/scripts/_lib/subagent_capsule.ts +78 -1
- package/src/scripts/ai_council/config.ts +60 -0
- package/src/scripts/ai_council/events_log.ts +105 -6
- package/src/scripts/ai_council/orchestrator.ts +38 -0
- package/src/scripts/ai_council/prompts.ts +165 -3
- package/src/scripts/ai_council/quorum.ts +87 -0
- package/src/scripts/ai_team/review_gate.ts +2 -2
- package/src/scripts/build_discovery_manifest.ts +165 -0
- package/src/scripts/check_claims.ts +51 -2
- package/src/scripts/ci_time_ratio.ts +3 -1
- package/src/scripts/council_cli.ts +36 -1
- package/src/scripts/discovery_graph.ts +201 -27
- package/src/scripts/dispatch_r2_reviewer.ts +102 -1
- package/src/scripts/hooks/turn_end_gate_hook.ts +172 -11
- package/src/scripts/lint_framework_leakage.ts +195 -28
- package/src/scripts/lint_framework_leakage_allowlist.json +94 -86
- package/src/scripts/lint_handoffs.ts +92 -2
- package/src/scripts/lint_hedge_words.ts +317 -0
- package/src/scripts/lint_mcp_config_security.ts +1 -1
- package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
- package/src/scripts/memory_lookup.ts +1 -2
- package/src/scripts/schemas/command.schema.json +4 -0
- package/src/scripts/schemas/skill.schema.json +4 -0
- package/src/scripts/self_repair_cli.ts +26 -1
- package/src/scripts/session_register_hook.ts +238 -18
- package/src/scripts/sessions_cli.ts +377 -12
- package/src/scripts/skill_linter.ts +58 -2
- package/src/server/schemas/settings.ts +3 -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": "9.
|
|
9
|
+
"version": "9.35.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
package/CHANGELOG.md
CHANGED
|
@@ -314,114 +314,28 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
|
|
|
314
314
|
> keeps the active era under the 250-line drift cap enforced by
|
|
315
315
|
> `tests/test_changelog_eras.py`.
|
|
316
316
|
|
|
317
|
-
# Era: 9.
|
|
317
|
+
# Era: pre-9.34.0 — archived
|
|
318
318
|
|
|
319
|
-
>
|
|
320
|
-
>
|
|
321
|
-
>
|
|
322
|
-
>
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
### Release highlights
|
|
327
|
-
|
|
328
|
-
<!-- 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. -->
|
|
329
|
-
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in e625e69, 9ec8042.
|
|
330
|
-
- **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 2588c5b.
|
|
331
|
-
- **Security and correctness:** _auto-derived, rewrite before merge:_ security-scoped commits in b17d1f3.
|
|
332
|
-
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 9e999d6, b86a4a9.
|
|
333
|
-
- **Known limitations:** _none_
|
|
334
|
-
|
|
335
|
-
### Features
|
|
336
|
-
|
|
337
|
-
* **gates:** add --reply, the reply-close projection over open blockers ([dd88d21](https://github.com/event4u-app/agent-config/commit/dd88d2116dcc73a1351e292047c0b22a8f84fdd7))
|
|
338
|
-
* **funnel:** the missing Opportunity stage ([ca5aabd](https://github.com/event4u-app/agent-config/commit/ca5aabd834db73755f2a6eba8efa5dc2edd2bb1b))
|
|
339
|
-
* **recycle:** --verify validates without writing, plus an envelope mutation suite ([a9ad7d8](https://github.com/event4u-app/agent-config/commit/a9ad7d88ea214f2eb9dd12e406f93e9cbfb7bc17))
|
|
340
|
-
* **conformance:** --why <id> traces one conformance check ([807a85c](https://github.com/event4u-app/agent-config/commit/807a85caed1a7b79499f1071d4202ed17142b6e2))
|
|
341
|
-
* **doctor:** --anatomy renders the injection anatomy from existing measurements ([6ed0aac](https://github.com/event4u-app/agent-config/commit/6ed0aac994ef14b42d5e65bd86a5c4734648cceb))
|
|
342
|
-
* **cost-summary:** report what caching bought, when spend happened, and where input went ([3dbc570](https://github.com/event4u-app/agent-config/commit/3dbc57082506a00a51dca76fdb06610e720a754d))
|
|
343
|
-
* **cost-ledger:** record the model that actually answered, not the one asked for ([8b79067](https://github.com/event4u-app/agent-config/commit/8b790671bb780629fd30a06a47dacf957da93c3d))
|
|
344
|
-
* **council:** mark a solo-concluded pass in the rendered quorum line ([b6a90ab](https://github.com/event4u-app/agent-config/commit/b6a90ab405a2d0a5bdee655f8fa34f45b3ae4d74))
|
|
345
|
-
* **ci:** resolve workflow path filters against the tree, and repair 20 dead ones ([77f200f](https://github.com/event4u-app/agent-config/commit/77f200f0885d5ac6b28c9d5b98d737665d847954))
|
|
346
|
-
* **council:** make a solo-concluded quorum distinguishable in the event log ([5addcd0](https://github.com/event4u-app/agent-config/commit/5addcd0a9bee200ec2fbc529a6365254c397e68f))
|
|
347
|
-
* **budget:** register the three attendance metrics before any data exists ([b6bf44d](https://github.com/event4u-app/agent-config/commit/b6bf44dd799c2854e7caa576ca3cd2d29889f560))
|
|
348
|
-
* **council:** make a solo-concluded pass visible in the event log ([ec8ede6](https://github.com/event4u-app/agent-config/commit/ec8ede6ec50b8aa5e9daecfcc35c26486ad1bb14))
|
|
349
|
-
* **budget:** the cost-parity target table, with a gate that refuses an untraceable number ([b86a4a9](https://github.com/event4u-app/agent-config/commit/b86a4a9d4efc2ab1dff74ba56724b07061850b8e))
|
|
350
|
-
|
|
351
|
-
### Bug Fixes
|
|
352
|
-
|
|
353
|
-
* **cost-ledger:** repair the seven findings from the R2 completion review ([4204a99](https://github.com/event4u-app/agent-config/commit/4204a99a118ab8e8ed04fb3674821b69c0616f1a))
|
|
354
|
-
* **changelog:** curate the shipped v9.32.0 head, record the cadence decision ([27616e6](https://github.com/event4u-app/agent-config/commit/27616e6046424b12d5b203399dbd3435fb535c48))
|
|
355
|
-
* **install:** record the .vscode bridge merge, surface trampoline removal failures ([c1f15c1](https://github.com/event4u-app/agent-config/commit/c1f15c18f1da0d6e079a2bc4e16f311af6b1ccba))
|
|
356
|
-
* **pricing:** stop pricing a dated model alias at nothing, and stop hiding it ([3fbcc52](https://github.com/event4u-app/agent-config/commit/3fbcc52c436bbdc063aa1476b9a3dc281b38180e))
|
|
357
|
-
* **wedge:** regenerate the production-validator projection after the pragma ([8ab3012](https://github.com/event4u-app/agent-config/commit/8ab3012ab40a54d228d11fadfd0ba072a0fa08fa))
|
|
358
|
-
* **security-lint:** the bare-shell detector had never read a subagent ([b17d1f3](https://github.com/event4u-app/agent-config/commit/b17d1f33653438ab6489c64f33dce403a4f8d2c1))
|
|
359
|
-
* **test:** drop the last v1 label the schema bump left behind ([6f53010](https://github.com/event4u-app/agent-config/commit/6f530100a3b2af7cc4b43b7e58fcb2862df9a48a))
|
|
360
|
-
* **council:** measure the dispatch shape, and stop dividing entries by clients ([d716386](https://github.com/event4u-app/agent-config/commit/d7163864715e15d879ce6af1c1f6db028832d824))
|
|
361
|
-
* **council:** make the attendance metrics able to answer their own questions ([8f92902](https://github.com/event4u-app/agent-config/commit/8f929020301bfdb50e6d788a71e1050f9ff58d43))
|
|
362
|
-
* **ci:** describe the retired tree without naming its dead path ([bd2e726](https://github.com/event4u-app/agent-config/commit/bd2e726883aecf5106522fa7324c1d11aa3a0473))
|
|
363
|
-
* **roadmap:** re-date the index risk review after the substantial rewrite ([6f71cb4](https://github.com/event4u-app/agent-config/commit/6f71cb4f23cfbf2eb344be4a070281e45b2c1fdf))
|
|
364
|
-
* **schema:** let a subagent express the scoped tool grant tool-safety asks for ([9ec8042](https://github.com/event4u-app/agent-config/commit/9ec8042d2c73162931c0d7900826934fdaafccfa))
|
|
365
|
-
* **review-routing:** give the role vocabulary a home that exists ([ec4d392](https://github.com/event4u-app/agent-config/commit/ec4d392faf4feaaf5fbf0694bc028b6e54d0fe2c))
|
|
366
|
-
* **skills:** re-home two sections the rule migration dropped ([2588c5b](https://github.com/event4u-app/agent-config/commit/2588c5be9f82bab41ebedcddd0ad4302dbfc245a))
|
|
367
|
-
* **review:** name the skip artefact so the gate can discover it ([b693b61](https://github.com/event4u-app/agent-config/commit/b693b61e94e5ded5463c22124acb20a1ca776d00))
|
|
368
|
-
* **roadmap:** correct three false premises in the gate-integrity kernel blocker ([2e6c07e](https://github.com/event4u-app/agent-config/commit/2e6c07e66eec04ddf8afb8e233340c2e628141fa))
|
|
369
|
-
* **roadmap:** stop two sub-headings from parsing as phantom phases ([05ed949](https://github.com/event4u-app/agent-config/commit/05ed9493b153c19253fcad3c98a939d76dd09f31))
|
|
370
|
-
|
|
371
|
-
### Documentation
|
|
372
|
-
|
|
373
|
-
* **adr:** ADR-222 — blocker handover is delivered, not remembered ([961ac12](https://github.com/event4u-app/agent-config/commit/961ac12705db642f54119f39dfef9ac5cbea870c))
|
|
374
|
-
* **reply-close:** state the blocker handover as part of the one summary ([ec761e0](https://github.com/event4u-app/agent-config/commit/ec761e04b13e05ea671ba906bfbfd05999e25563))
|
|
375
|
-
* **review:** re-bind the completion review to the repaired scope ([0a585db](https://github.com/event4u-app/agent-config/commit/0a585db2279c83bbf09a1b3afd18852833795c89))
|
|
376
|
-
* **roadmap:** release-surface integrity, 11 of 12 steps closed ([70cec30](https://github.com/event4u-app/agent-config/commit/70cec30255f61de1aeaa39551e008992c63f606c))
|
|
377
|
-
* **context:** Continuation Protocol v1 decided, the runtime graph deferred ([3bafcc0](https://github.com/event4u-app/agent-config/commit/3bafcc075c6db2bcaf9a9725ee87fdb190bd7a73))
|
|
378
|
-
* **contracts:** the model ceiling escalates, never silently degrades ([e625e69](https://github.com/event4u-app/agent-config/commit/e625e696fb4f2d90110f8678dd86e208ec0f4729))
|
|
379
|
-
* **cli:** name the three new flags in the registry synopses and dispatcher help ([1f43731](https://github.com/event4u-app/agent-config/commit/1f4373195ca2d477d06e1fcaa467df2120d8043b))
|
|
380
|
-
* **context:** give the corrected carrier-divergence figure a stable surface ([4812f9d](https://github.com/event4u-app/agent-config/commit/4812f9de9d6bd96b6109776001191a8fbb95feb9))
|
|
381
|
-
* **proof:** re-render after the surgical-uninstall claim moved to exec evidence ([5e489ee](https://github.com/event4u-app/agent-config/commit/5e489ee7b58428f79fc211d07fda754c76efda0e))
|
|
382
|
-
* **review:** record the R2 completion-review findings before any fix ([2954d66](https://github.com/event4u-app/agent-config/commit/2954d663fa26980113331653c31d3dc3ef88c649))
|
|
383
|
-
* **roadmap:** restore install-lifecycle 2.3 to open-and-blocked ([4b61e7f](https://github.com/event4u-app/agent-config/commit/4b61e7f4ba61c560bd3a836368ebb73864e0d285))
|
|
384
|
-
* **roadmap:** land the org-pack reopening brief, close install-lifecycle Phase 2 ([b172d28](https://github.com/event4u-app/agent-config/commit/b172d28ed0a8f2f112a3b0fb43c4e5fe9c54edd6))
|
|
385
|
-
* **roadmap:** close install-lifecycle Phase 1, cancel 1.2 on a failed premise ([920910b](https://github.com/event4u-app/agent-config/commit/920910bc2d6acf978ebe70f5fdb844420b2002c4))
|
|
386
|
-
* **install-layout:** correct the untracked-surfaces list and the vscode pointer shape ([26982c6](https://github.com/event4u-app/agent-config/commit/26982c62eafd452f4c2cf6cd929a7a74dd68dbc6))
|
|
387
|
-
* **roadmap:** record the unapplied Phase 1 implementation and its two open calls ([25fc56d](https://github.com/event4u-app/agent-config/commit/25fc56da7356e446f13bbb1da866a4ddc70091d1))
|
|
388
|
-
* **roadmap:** carry the re-homing the merge commit described but did not contain ([a7a469f](https://github.com/event4u-app/agent-config/commit/a7a469f87592580fab38a1180e17d2320e861337))
|
|
389
|
-
* **roadmap:** council dispositions and four cited corrections ([10c25c4](https://github.com/event4u-app/agent-config/commit/10c25c4753212c2c4b93e972707b3090e06cb431))
|
|
390
|
-
* **review:** re-bind round 2 — six fixed, one accepted as debt ([7b451cb](https://github.com/event4u-app/agent-config/commit/7b451cb75f65b787f4c5ebf3903b49e90382c98a))
|
|
391
|
-
* **review:** record round 2 — the fixes introduced two of their own ([4a0504c](https://github.com/event4u-app/agent-config/commit/4a0504cfcf302b00a3f9773ba89eb284f2b7f573))
|
|
392
|
-
* **review:** re-bind the findings to what the fixes actually did ([baba417](https://github.com/event4u-app/agent-config/commit/baba417297bbb6db0d0d250785e3c049f7e33fd7))
|
|
393
|
-
* **review:** record the completion review before any fix lands ([7dc1f1f](https://github.com/event4u-app/agent-config/commit/7dc1f1f4ea511bcd30a67ac416937511c6420721))
|
|
394
|
-
* **roadmap:** split the 2026-08-10 harvest into eight executable roadmaps ([72a1078](https://github.com/event4u-app/agent-config/commit/72a10788336fc54cff25833ae1568328765f4011))
|
|
395
|
-
* **roadmap:** close Phase 1 and steps 3.2 / 3.5 / 3.8, and re-frame 3.6 ([dc12894](https://github.com/event4u-app/agent-config/commit/dc128947b844d0afb147b9e413c12c1dadbc7346))
|
|
396
|
-
* **roadmap:** close Phase 1 — the quorum-attendance defect ([12e0bc1](https://github.com/event4u-app/agent-config/commit/12e0bc14f7813691c8708d25b6eb23c8bcf4f116))
|
|
397
|
-
* **review:** declare the no-code-surface skip for this completion ([3771eaf](https://github.com/event4u-app/agent-config/commit/3771eafda510306cf238539f3c910481f7e36b1a))
|
|
398
|
-
* **ledger:** record that the three dangling pointers were repaired ([03cf5f8](https://github.com/event4u-app/agent-config/commit/03cf5f8699dce20224479a58a6ece39509deb6a0))
|
|
399
|
-
* **roadmap:** triage the 2026-08-10 inbox batch ([9e999d6](https://github.com/event4u-app/agent-config/commit/9e999d64eb3b34612bcbe7d8d4e91bad56c7cc54))
|
|
400
|
-
* **roadmap:** correct two roadmap claims the tree contradicts ([e1f271e](https://github.com/event4u-app/agent-config/commit/e1f271e6bbe50f9ebaf9814ce47b83bc4111d871))
|
|
401
|
-
* **roadmap:** add the risk register the telemetry record made due ([82268d7](https://github.com/event4u-app/agent-config/commit/82268d7e4e417e688bfb453d9c75f0ded1b0991e))
|
|
402
|
-
* **roadmap:** record the measured telemetry state on both orchestration blockers ([10a2790](https://github.com/event4u-app/agent-config/commit/10a2790e19b245280dd5764cdbfcb873ff586be7))
|
|
403
|
-
* **roadmap:** close and archive the cost-parity program — 23 steps, 6 criteria, every claim re-verified ([af57abf](https://github.com/event4u-app/agent-config/commit/af57abf96ae30234de73446f965d93eba45423f7))
|
|
404
|
-
* **decision:** give the router-is-unused finding an owner before someone acts on it ([bf70104](https://github.com/event4u-app/agent-config/commit/bf701040cf44e873b4fb1eb115a599ed39f7190f))
|
|
405
|
-
* **cost-parity:** one ledger for the family's order, and the per-host table the diet actually needs ([fa188ee](https://github.com/event4u-app/agent-config/commit/fa188ee44ecddf4898abf8feea3c4a12155b1f29))
|
|
406
|
-
|
|
407
|
-
### Tests
|
|
408
|
-
|
|
409
|
-
* **subagent:** assert the tool-grant behaviour, not which keyword rejected it ([59ee093](https://github.com/event4u-app/agent-config/commit/59ee0938eac9289a7f711600eb3bf45500ded1d4))
|
|
410
|
-
* **workspace-inbox:** re-record the inline snapshot that embeds the docker skill ([f395d79](https://github.com/event4u-app/agent-config/commit/f395d79dec3d7e5e39cded83871d384f1008594e))
|
|
411
|
-
* **pricing:** cross-check the two cache-rate tables that nothing compared ([e623e0c](https://github.com/event4u-app/agent-config/commit/e623e0c8fe285dd5ff8e824ac58b7a7cf2d222b0))
|
|
412
|
-
|
|
413
|
-
### Build
|
|
319
|
+
> All entries before `9.34.0` live in
|
|
320
|
+
> [`docs/archive/CHANGELOG-pre-9.34.0.md`](docs/archive/CHANGELOG-pre-9.34.0.md).
|
|
321
|
+
> The archive is read-only; git tags remain the canonical
|
|
322
|
+
> source for what shipped. Splitting them out of the main file
|
|
323
|
+
> keeps the active era under the 250-line drift cap enforced by
|
|
324
|
+
> `tests/test_changelog_eras.py`.
|
|
414
325
|
|
|
415
|
-
|
|
326
|
+
# Era: 9.34.x — current
|
|
416
327
|
|
|
417
|
-
|
|
328
|
+
> Started at `9.34.0`. Full entries live inline below.
|
|
329
|
+
> The drift test caps this era at 250 lines of entry body; growth past
|
|
330
|
+
> that forces a new era split (`# Era: 9.35.x`, etc.) — see
|
|
331
|
+
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
418
332
|
|
|
419
|
-
## [9.
|
|
333
|
+
## [9.35.0](https://github.com/event4u-app/agent-config/compare/9.34.0...9.35.0) (2026-08-12)
|
|
420
334
|
|
|
421
335
|
### Release highlights
|
|
422
336
|
|
|
423
337
|
<!-- 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. -->
|
|
424
|
-
- **Behaviour changes:**
|
|
338
|
+
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in af968b5, 6d3c9f7.
|
|
425
339
|
- **Default changes + migration:** _none_
|
|
426
340
|
- **Security and correctness:** _none_
|
|
427
341
|
- **Honest nulls:** _none_
|
|
@@ -429,87 +343,182 @@ Tests: 12935 (+117 since 9.32.0)
|
|
|
429
343
|
|
|
430
344
|
### Features
|
|
431
345
|
|
|
432
|
-
* **
|
|
433
|
-
* **
|
|
434
|
-
* **
|
|
435
|
-
* **
|
|
436
|
-
* **
|
|
346
|
+
* **leakage-allowlist:** validate the exemptions before scanning, retire position keys ([97d2c29](https://github.com/event4u-app/agent-config/commit/97d2c29ba763af06c45c5e4a4aebbed7fb531561))
|
|
347
|
+
* **sessions:** refuse a claim a peer holds, and report the branch axis ([39cb3b4](https://github.com/event4u-app/agent-config/commit/39cb3b4f2e6d3c0602e5544b7079f242f5a7cd9f))
|
|
348
|
+
* **council:** record the ADR-224 solo floor without enforcing it ([be09d0f](https://github.com/event4u-app/agent-config/commit/be09d0fa8f75e03b3d767f225d67cda53dd36ee8))
|
|
349
|
+
* **turn-end-gate:** refuse a turn that edited a file and verified nothing ([647eca9](https://github.com/event4u-app/agent-config/commit/647eca9830a6ea9b6597a3404f37aac2fe41360d))
|
|
350
|
+
* **gates:** enumerate staged confirmations behind gates --pending ([9cccf4e](https://github.com/event4u-app/agent-config/commit/9cccf4eb789f68dcc67bbf8534824212ea507845))
|
|
351
|
+
* **work-engine:** exactly-once confirmed execution for a staged action ([8588e54](https://github.com/event4u-app/agent-config/commit/8588e54377062126df888b42f02155ad9e28c3b5))
|
|
352
|
+
* **schemas:** add requires_confirmation to the skill and command contracts ([af968b5](https://github.com/event4u-app/agent-config/commit/af968b533a72c2358897fabcfe61bfb1baa7dc87))
|
|
353
|
+
* **cli:** hooks:status --pending enumerates staged confirmations ([442bde3](https://github.com/event4u-app/agent-config/commit/442bde3bb0b047ca85d8b0e5dcb973af4343209c))
|
|
354
|
+
* **work-engine:** exactly-once confirmation store plus a decision-gate seam ([9fe068c](https://github.com/event4u-app/agent-config/commit/9fe068c96a698c1d30ae74d65545b9fa301e72a3))
|
|
355
|
+
* **schemas:** declare requires_confirmation on skills and commands ([6d3c9f7](https://github.com/event4u-app/agent-config/commit/6d3c9f73ccc224517a81effb5f9874f388e140ee))
|
|
437
356
|
|
|
438
357
|
### Bug Fixes
|
|
439
358
|
|
|
440
|
-
* **
|
|
441
|
-
* **
|
|
442
|
-
* **
|
|
443
|
-
* **
|
|
444
|
-
* **
|
|
445
|
-
* **
|
|
446
|
-
* **
|
|
359
|
+
* **tests:** a matched grep must not fail the assertion — echo | grep -q under pipefail ([e7352cc](https://github.com/event4u-app/agent-config/commit/e7352ccedbd9cd996220db0293faf6d42a67529e))
|
|
360
|
+
* **leakage-allowlist:** close the seven R2 findings, including two on this PR ([c859249](https://github.com/event4u-app/agent-config/commit/c8592492f32d6c5072eb361fde9081457855d5a7))
|
|
361
|
+
* **sessions:** drop the ROADMAP_CLAIM_REL import that lost its last reference ([0d6a1c0](https://github.com/event4u-app/agent-config/commit/0d6a1c0e4670a30f7f00475d7463b986f8fa697b))
|
|
362
|
+
* **session-register:** work in the PR review — path containment, token-boundary match, claim lifetime ([8e108ca](https://github.com/event4u-app/agent-config/commit/8e108ca07bae79a6058608a4bfd4b316e8d12e31))
|
|
363
|
+
* **testing-anti-patterns:** close the R2 findings on the new anti-pattern ([67b747e](https://github.com/event4u-app/agent-config/commit/67b747e95bfdbf2026f5e8286a960045eb864568))
|
|
364
|
+
* **session-register:** all 15 R2 findings, three of them the same shape as the bug ([871c00a](https://github.com/event4u-app/agent-config/commit/871c00a6275ed0ecf6bc3a9ea2783aa134388ec5))
|
|
365
|
+
* **session-register:** key the roadmap claim on the session, and reject a stale slug ([64a9ce7](https://github.com/event4u-app/agent-config/commit/64a9ce71ad4a410fdcbed361fb8a2829c4a306ac))
|
|
366
|
+
* **session-register:** compare the roadmap, not the branch name ([e338113](https://github.com/event4u-app/agent-config/commit/e338113b0adcb8d5ccb4239478bb9f2033cbc2e4))
|
|
367
|
+
* **staged-confirmation:** close the round-2 findings on the hardening itself ([fa47ef6](https://github.com/event4u-app/agent-config/commit/fa47ef6253b4ae1d1612db972ed39c856ee29314))
|
|
368
|
+
* **staged-confirmation:** sound the type guard and refuse a traversing token ([75dbdb3](https://github.com/event4u-app/agent-config/commit/75dbdb35fce020568fbeba978f14b521599aee67))
|
|
369
|
+
* **test:** stop pipefail reporting a matched grep as a failure ([29916d1](https://github.com/event4u-app/agent-config/commit/29916d1e96e6118d9a15e84cc6eeac6de3516705))
|
|
370
|
+
* **council:** record min_present on the quorum line, schema v3 to v4 ([53fe036](https://github.com/event4u-app/agent-config/commit/53fe0362b2d403455b6f7eb4e66952b1dd42e161))
|
|
371
|
+
* **cli:** refuse hooks:status --pending --strict instead of exiting 0 ([7e752a9](https://github.com/event4u-app/agent-config/commit/7e752a9d6da83b7c73d97cb2996fbc7d465caf4c))
|
|
372
|
+
* **confirmation:** close R2 findings 1-5 and 7 in the store and the seam ([42c6f5b](https://github.com/event4u-app/agent-config/commit/42c6f5b5b4e9f2c5835dbbf14567a6944bab13dc))
|
|
373
|
+
* **council:** judge the shadow floor against the configured roster ([9cde092](https://github.com/event4u-app/agent-config/commit/9cde092cf6c745c55d9468ebb4480ffb2a11259a))
|
|
374
|
+
* three CI reds — a raw NUL in a source, and a settings key declared once ([b128645](https://github.com/event4u-app/agent-config/commit/b128645e8aa29e1b8ccbab31fd3b5509e73da0da))
|
|
447
375
|
|
|
448
376
|
### Documentation
|
|
449
377
|
|
|
450
|
-
* **review:** re-bind the
|
|
451
|
-
* **review:**
|
|
452
|
-
* **
|
|
453
|
-
* **
|
|
454
|
-
* **
|
|
455
|
-
*
|
|
456
|
-
* **
|
|
378
|
+
* **review:** re-bind the review artefact after the pipefail fix ([d4b23e1](https://github.com/event4u-app/agent-config/commit/d4b23e1c9f2620778564d81c7e0c3180e3b60eb8))
|
|
379
|
+
* **review:** re-bind the review artefact after merging main ([3fc625f](https://github.com/event4u-app/agent-config/commit/3fc625f8b5d02320f62af217f7805cf85c95e91d))
|
|
380
|
+
* **review:** re-bind the completion-review artefact to the fixed scope ([0fc9e82](https://github.com/event4u-app/agent-config/commit/0fc9e822c2f863216f7e721f471b070d50718157))
|
|
381
|
+
* **review:** record the R2 findings before any fix ([9c66161](https://github.com/event4u-app/agent-config/commit/9c66161c76484a856b1293918074bcf387683d9b))
|
|
382
|
+
* **testing-anti-patterns:** the negative test that passes for the wrong reason ([8fb3f84](https://github.com/event4u-app/agent-config/commit/8fb3f84a7a9c009a53dd383ac8a86bfe00de4fe6))
|
|
383
|
+
* state the collision that cost a PR, and the two axes that catch it ([60c0df8](https://github.com/event4u-app/agent-config/commit/60c0df808af87a748643d1fbfe2310a9a08f2c25))
|
|
384
|
+
* **review:** record the R2 completion-review findings before fixing them ([35570a5](https://github.com/event4u-app/agent-config/commit/35570a5df0be0cd402f8cc9ed3e5f5cf817a02d1))
|
|
385
|
+
* **roadmap:** close and archive the solo-floor roadmap ([128b2cd](https://github.com/event4u-app/agent-config/commit/128b2cddbadf12825bb220cc2aef261976ccb023))
|
|
386
|
+
* **adr:** answer ADR-224 three open questions in an amendment ([ff2362e](https://github.com/event4u-app/agent-config/commit/ff2362e1971dadd3b547fbfeadf2650dbb3a4c3f))
|
|
387
|
+
|
|
388
|
+
### Refactoring
|
|
389
|
+
|
|
390
|
+
* **leakage-allowlist:** key 35 exemptions on content, drop 3 that were dead ([de96358](https://github.com/event4u-app/agent-config/commit/de96358ddb309be1d4ffa4035d3b8e55e8e08458))
|
|
457
391
|
|
|
458
392
|
### Tests
|
|
459
393
|
|
|
460
|
-
* **
|
|
394
|
+
* **session-register:** pin all five failure modes, each with the case that was silent ([7f35c3b](https://github.com/event4u-app/agent-config/commit/7f35c3bce8118d3112217af6d20dabdae487b301))
|
|
395
|
+
* **schemas:** validate the command surface instead of reading its shape ([5b75e64](https://github.com/event4u-app/agent-config/commit/5b75e64cc6f988212aabaaa84e82ebb4940681e0))
|
|
461
396
|
|
|
462
|
-
###
|
|
397
|
+
### Build
|
|
463
398
|
|
|
464
|
-
*
|
|
465
|
-
* **carrier:** re-bind the R2 round to the shipping content, all 6 terminal ([9bbfbc3](https://github.com/event4u-app/agent-config/commit/9bbfbc35388f54c77fdae27315025843a6ea79f5))
|
|
466
|
-
* **carrier:** R2 completion review round 1 — 6 findings, all open ([75be940](https://github.com/event4u-app/agent-config/commit/75be940f4f9bcbf71e1f1248467637fc51c6b63b))
|
|
399
|
+
* refresh dist/install/install.mjs for the new settings key ([a4a99ed](https://github.com/event4u-app/agent-config/commit/a4a99edd6132f92d6e975ccba3261939964c015b))
|
|
467
400
|
|
|
468
|
-
|
|
401
|
+
### Chores
|
|
469
402
|
|
|
470
|
-
|
|
403
|
+
* **review:** re-bind the artefact and mark all seven findings fixed ([fb6283f](https://github.com/event4u-app/agent-config/commit/fb6283fa2011650986c89eb514e0be80d2ffd9c0))
|
|
404
|
+
* **memory:** drop three docblock claims about the removed agent-memory path ([307a355](https://github.com/event4u-app/agent-config/commit/307a3550fce6e81dfeb42b0124e276b762da9d66))
|
|
405
|
+
* **review:** record seven R2 findings before fixing them ([c86bf3d](https://github.com/event4u-app/agent-config/commit/c86bf3daa3e3281416c9ce426fe1560084dbb1b7))
|
|
406
|
+
* **mcp:** drop the agent-memory declaration ADR-094 left behind ([4283a8e](https://github.com/event4u-app/agent-config/commit/4283a8efad4ee9ed721404d3a68aff0b367ad690))
|
|
407
|
+
* **review:** re-bind the artefact and mark all three findings fixed ([d2a0c54](https://github.com/event4u-app/agent-config/commit/d2a0c544c80a5e20f0cd7b7d338cbf17684b7c87))
|
|
408
|
+
* **review:** record the R2 findings on the anti-pattern addition ([b382dd1](https://github.com/event4u-app/agent-config/commit/b382dd1bfe1b4c3a1301358eb667692e5bc606d0))
|
|
409
|
+
* **lint:** re-anchor the leakage allowlist after the inserted paragraph ([8bef27e](https://github.com/event4u-app/agent-config/commit/8bef27e8adae4e742350970323232981d8b499d0))
|
|
410
|
+
* **dist:** project the testing-anti-patterns addition ([c6fcd4a](https://github.com/event4u-app/agent-config/commit/c6fcd4ae50fbd6caaa7cc3d7b3fcf8751283815f))
|
|
411
|
+
* **review:** re-bind round 2 and mark its three findings fixed ([40e110c](https://github.com/event4u-app/agent-config/commit/40e110c7203b121b0e15f6ad5de0217efb1d90c8))
|
|
412
|
+
* **review:** record the R2 round-2 findings before fixing them ([0e477f3](https://github.com/event4u-app/agent-config/commit/0e477f357071e4bc2dc69786ce4e24c1ebf50e75))
|
|
413
|
+
* **review:** re-bind the R2 artefact after merging main ([756b226](https://github.com/event4u-app/agent-config/commit/756b226de64ec1a581338b07954a2e4e948b758f))
|
|
414
|
+
* **roadmap:** regenerate the dashboard after the main merge ([ba9a0ad](https://github.com/event4u-app/agent-config/commit/ba9a0ade70f40447b6eb3a43736b32376bad56e1))
|
|
415
|
+
* **review:** re-bind the R2 artefact and mark all eight findings fixed ([081ffff](https://github.com/event4u-app/agent-config/commit/081ffffbee9d0c9d28e380e148ce29f27aa5d793))
|
|
416
|
+
* **review:** record the R2 completion review for dispatch-safety Phase 2 ([661947d](https://github.com/event4u-app/agent-config/commit/661947def61068d05c832146723366fd5abda225))
|
|
417
|
+
* **config:** register shadow_floor_fire_rate as the fifth attendance metric ([70abe5c](https://github.com/event4u-app/agent-config/commit/70abe5c0118085fadd01a2eec14433814bf405c5))
|
|
418
|
+
* **roadmap:** close dispatch-safety 2.1-2.3 and 4.3, regenerate the dashboard ([bb8dd69](https://github.com/event4u-app/agent-config/commit/bb8dd69b31893ea235e3159ef48b5180e3385b6d))
|
|
419
|
+
* **dist:** project the confirmation module and the gate seam ([d6905af](https://github.com/event4u-app/agent-config/commit/d6905af2385948a7bb44dbdb3a9025834b91afb2))
|
|
420
|
+
* **roadmap:** close dispatch-safety Phase 2, record the 4.3 severity probe ([be0f893](https://github.com/event4u-app/agent-config/commit/be0f893e57001ca8a3a8c4c4a21538f37266f410))
|
|
421
|
+
|
|
422
|
+
Tests: 13213 (+145 since 9.34.0)
|
|
423
|
+
|
|
424
|
+
## [9.34.0](https://github.com/event4u-app/agent-config/compare/9.33.0...9.34.0) (2026-08-11)
|
|
471
425
|
|
|
472
426
|
### Release highlights
|
|
473
427
|
|
|
474
428
|
<!-- 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. -->
|
|
475
429
|
- **Behaviour changes:** _none_
|
|
476
|
-
- **Default changes + migration:**
|
|
477
|
-
- **Security and correctness:**
|
|
430
|
+
- **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 4420340.
|
|
431
|
+
- **Security and correctness:** _auto-derived, rewrite before merge:_ security-scoped commits in 4420340, b2fc429.
|
|
478
432
|
- **Honest nulls:** _none_
|
|
479
433
|
- **Known limitations:** _none_
|
|
480
434
|
|
|
481
435
|
### Features
|
|
482
436
|
|
|
483
|
-
* **
|
|
437
|
+
* **handoff-envelope:** a checkable off-limits path list, and a validated reversibility tag ([33fd14c](https://github.com/event4u-app/agent-config/commit/33fd14ca8c8aa3ade0081e5f5bf33b6baef6f3f7))
|
|
438
|
+
* **r2-dispatch:** tell the three stale-artefact states apart, and route each to its contract path ([ca417a1](https://github.com/event4u-app/agent-config/commit/ca417a13ebd7890bbefedec89399add96a3f8eca))
|
|
439
|
+
* **lint-handoffs:** make a blank Open-questions section a finding, not a pass ([a22534b](https://github.com/event4u-app/agent-config/commit/a22534bbf8e80eb5e32d7e547651b8efa55a47dc))
|
|
440
|
+
* **self-repair:** bound record creation per source, and count what the cap refuses ([76aa7b5](https://github.com/event4u-app/agent-config/commit/76aa7b56dd53212f0b4f5d556cae27054bb2a358))
|
|
441
|
+
* **discovery:** add a dormancy report that names an unavailable signal ([99cfa2f](https://github.com/event4u-app/agent-config/commit/99cfa2f632320b7e1300e0d539292e1c038437a6))
|
|
442
|
+
* **discovery-graph:** add a zero-inbound query, per-pass stats and error containment ([ed3d532](https://github.com/event4u-app/agent-config/commit/ed3d5325285476e86fae62c679b6d20cbbff923f))
|
|
443
|
+
* **lint-hedge-words:** diff-scoped advisory hedge lint with a declared stage ([364ef70](https://github.com/event4u-app/agent-config/commit/364ef707dce9e29917d4bc9f5d2b2aeedc4572da))
|
|
444
|
+
* **claims:** bind six external research cites, gate the successor pointer ([37cc8fe](https://github.com/event4u-app/agent-config/commit/37cc8fee84343b8cb92edf7778b97ce235086dc8))
|
|
445
|
+
* **skill-linter:** gate Security constraints on script-bearing skills ([b2fc429](https://github.com/event4u-app/agent-config/commit/b2fc4292540fe140ca9ead90b32bebaac133d2d0))
|
|
446
|
+
* **council:** check a synthesis verdict against its own stance tally ([37103c3](https://github.com/event4u-app/agent-config/commit/37103c3e68efd749dd1d386f3402b8bc0679255d))
|
|
484
447
|
|
|
485
448
|
### Bug Fixes
|
|
486
449
|
|
|
487
|
-
* **
|
|
488
|
-
* **
|
|
489
|
-
* **
|
|
490
|
-
* **
|
|
491
|
-
* **
|
|
450
|
+
* **tests:** satisfy exactOptionalPropertyTypes in the two new spec files ([4f9cd9b](https://github.com/event4u-app/agent-config/commit/4f9cd9b46370920daa0a39aa5cb10a65b70e70a4))
|
|
451
|
+
* **security-lint:** report the corpus a gate actually walked, not the shared default ([4420340](https://github.com/event4u-app/agent-config/commit/4420340cba6f5f091d2b836f21e747878fd71ed3))
|
|
452
|
+
* **roadmap-archival:** never rewrite path strings inside frozen records ([8805814](https://github.com/event4u-app/agent-config/commit/88058140884f14c275737e0e612daee005db2bd7))
|
|
453
|
+
* **review:** re-align the round-3 dispositions and escape the table pipes ([c569ba5](https://github.com/event4u-app/agent-config/commit/c569ba54c95e0d16ab315cb7a5223a33d34f3268))
|
|
454
|
+
* **review:** close the round-3 findings, including four npm ci sites the verify regex could not see ([57867df](https://github.com/event4u-app/agent-config/commit/57867dfd5dbb2d00bbc02deace9c0312e999b423))
|
|
455
|
+
* **review:** repair the round-2 findings, including a self-falsifying cost table ([90cb3ca](https://github.com/event4u-app/agent-config/commit/90cb3caff641d4bb4ef515813b7ec44af92d6636))
|
|
456
|
+
* **lint-hedge-words:** harden the gate scope so the coverage ratchet holds ([d0c9d9e](https://github.com/event4u-app/agent-config/commit/d0c9d9e9b6812d59a7a89e8287bc4b89800aa28d))
|
|
457
|
+
* **council:** let the reserved split label yield to a real option ([30328d8](https://github.com/event4u-app/agent-config/commit/30328d8811bd65f35f2bf42bc6b4fbe8cc76fa4c))
|
|
458
|
+
* **council:** address the R2 completion-review findings ([02c786c](https://github.com/event4u-app/agent-config/commit/02c786c28646da19e8c9cee94ab49b826f91a611))
|
|
459
|
+
* **review:** repair the seven completion-review findings ([efa7cc1](https://github.com/event4u-app/agent-config/commit/efa7cc1d150e0679678db22252dedbbcb838051f))
|
|
460
|
+
* address the nine R2 completion-review findings ([02cdfbb](https://github.com/event4u-app/agent-config/commit/02cdfbb28f04e432cccff7c14ba9f12e177feb0e))
|
|
461
|
+
* **ci-time-ratio:** correct the output-path docstring and register a task target ([1e28e18](https://github.com/event4u-app/agent-config/commit/1e28e1884ea8be49f6b8412e3b1c2d8c7240e9c9))
|
|
462
|
+
|
|
463
|
+
### Performance
|
|
464
|
+
|
|
465
|
+
* **tests:** render the proof page once in build_proof.test.ts ([c4d699b](https://github.com/event4u-app/agent-config/commit/c4d699ba61c4ad5a1a19ca292b4d3218748069b5))
|
|
492
466
|
|
|
493
467
|
### Documentation
|
|
494
468
|
|
|
495
|
-
* **
|
|
496
|
-
* **
|
|
497
|
-
* **
|
|
498
|
-
* **
|
|
499
|
-
* **
|
|
469
|
+
* **dispatch-safety:** close 3.1, 3.2 and 3.3, and record why 3.4 waits for producers ([9efe07e](https://github.com/event4u-app/agent-config/commit/9efe07e11b40eb5231d267f89968045af87163d9))
|
|
470
|
+
* **dispatch-safety:** ADR-109 amendment 4, and close 1.3, 1.4 and 4.1 ([5f7e83a](https://github.com/event4u-app/agent-config/commit/5f7e83ad61488c1098ce5696731664b24a13ac2f))
|
|
471
|
+
* **review:** declare the no-code-surface skip for the org-pack decision ([4a573c0](https://github.com/event4u-app/agent-config/commit/4a573c0565854f0f561de8258eb776b1f51eb1fd))
|
|
472
|
+
* **council:** record the gate-scoped solo-attendance floor as ADR-224 ([686c23d](https://github.com/event4u-app/agent-config/commit/686c23df83b84c33f5bfac5257d1b187a0174f73))
|
|
473
|
+
* **roadmap:** close estate-lifecycle Phases 2-4 and record the two refusals ([f64b7fc](https://github.com/event4u-app/agent-config/commit/f64b7fc87fd6c0701ff5601676f067af2fe024fe))
|
|
474
|
+
* **governance:** separate the two lifecycle vocabularies and answer the deferred field ([212a38c](https://github.com/event4u-app/agent-config/commit/212a38c45622b9ee2329fe2929db2949a2c612de))
|
|
475
|
+
* **decision:** decline the external pack source root ([87f8943](https://github.com/event4u-app/agent-config/commit/87f894310ec1b07d64d86cef7d9b8a3cb5595a0a))
|
|
476
|
+
* **review:** disposition the round-3 findings ([c78afd5](https://github.com/event4u-app/agent-config/commit/c78afd510497d08b3684fc5fe42230b7a82b2af3))
|
|
477
|
+
* **review:** disposition the round-2 findings and preserve both rounds ([59b4561](https://github.com/event4u-app/agent-config/commit/59b45613fdd7eb3ffef275b5062f36c366428015))
|
|
478
|
+
* **review:** re-bind the findings after the gate-hardening fix ([0928422](https://github.com/event4u-app/agent-config/commit/092842250cb6b861e9cc217e0708bc63d411513b))
|
|
479
|
+
* **review:** disposition the seven findings against the repair commit ([910f7c4](https://github.com/event4u-app/agent-config/commit/910f7c4e85886f194f214ceeafe06c2b479b154e))
|
|
480
|
+
* **review:** record the completion-review findings for ci-economy ([d5e1fbd](https://github.com/event4u-app/agent-config/commit/d5e1fbdd3184adc4cd0c4f2a88776ae475e99422))
|
|
481
|
+
* **roadmap:** resolve the council-integrity deferral into a READY follow-up ([94f25c2](https://github.com/event4u-app/agent-config/commit/94f25c25d7911ef9fc177db21dba0e294e7e143a))
|
|
482
|
+
* **review:** re-bind the completion-review findings to the post-fix scope ([0208175](https://github.com/event4u-app/agent-config/commit/0208175e677af8db7632be58e7384209dceae45e))
|
|
483
|
+
* **roadmap:** close 15 of 16 ci-economy steps, cancel the build fan-out ([3a3523d](https://github.com/event4u-app/agent-config/commit/3a3523de29b269b9b580fd9bd071d94cafa0a2cd))
|
|
484
|
+
* **adr:** ADR-223 records no required-check demotion on cost grounds ([6e0d45a](https://github.com/event4u-app/agent-config/commit/6e0d45ae673f2cd8fa8c0e36f09110b4a573de7e))
|
|
485
|
+
* **development:** correct the testing section and document the in-process runner ([53ce1f6](https://github.com/event4u-app/agent-config/commit/53ce1f6fa2ef56ff3bc1737c987dd6e918c81928))
|
|
486
|
+
* **ci-cost-budget:** re-anchor the baseline to CI-recorded figures ([2972545](https://github.com/event4u-app/agent-config/commit/2972545e966319ebf4c632e1931ebc8c084b8816))
|
|
487
|
+
* **review:** R2 completion-review findings for the authoring-contract branch ([d97c428](https://github.com/event4u-app/agent-config/commit/d97c42860ea1ce4b6b63a347c824f00a536d853f))
|
|
488
|
+
* **failure-signatures:** stable ids, per-row drills, capability-claim row ([c18295e](https://github.com/event4u-app/agent-config/commit/c18295e0108955418eabf064502b591432cdeb1a))
|
|
489
|
+
* **skill-writing:** reclassify two unenforced sections, add three patterns ([07d8ce1](https://github.com/event4u-app/agent-config/commit/07d8ce1198699833f0154112831ae7fcf4703ba0))
|
|
490
|
+
* **roadmap:** close council-integrity 2.1 and 3.1, record two premise corrections ([088f7ab](https://github.com/event4u-app/agent-config/commit/088f7ab87de41ecbe21c46d7efefef1ed5f04a60))
|
|
491
|
+
|
|
492
|
+
### Refactoring
|
|
493
|
+
|
|
494
|
+
* one definition of the env kill-switch predicate ([689cc55](https://github.com/event4u-app/agent-config/commit/689cc5558a55ccab4728175955459973a5b03e4e))
|
|
500
495
|
|
|
501
496
|
### Build
|
|
502
497
|
|
|
503
|
-
* **
|
|
504
|
-
|
|
498
|
+
* **toolchain:** enable tsc incremental buildinfo and the eslint cache ([344bf97](https://github.com/event4u-app/agent-config/commit/344bf979e7c355c1a97d7407706f198fd5bf78ee))
|
|
499
|
+
|
|
500
|
+
### CI
|
|
501
|
+
|
|
502
|
+
* **workflows:** add PR-scoped concurrency and flag the bare npm ci calls ([522c052](https://github.com/event4u-app/agent-config/commit/522c05283ea2f5d4b7ca65c5862d21520291f0db))
|
|
505
503
|
|
|
506
504
|
### Chores
|
|
507
505
|
|
|
508
|
-
* **roadmap:**
|
|
509
|
-
* **
|
|
510
|
-
* **
|
|
506
|
+
* **roadmap:** regenerate the dashboard after the second main merge ([92bf6fb](https://github.com/event4u-app/agent-config/commit/92bf6fb58e50170176a76d5892098b0d19d21e8c))
|
|
507
|
+
* **dist:** project the reversibility-tag paragraphs into the command tree ([2d33951](https://github.com/event4u-app/agent-config/commit/2d339519eee0dd84b4b876de8222e5503c08d04c))
|
|
508
|
+
* **tests:** drop two dead symbols left by the py2ts parity teardown ([cfecb9d](https://github.com/event4u-app/agent-config/commit/cfecb9dd1466af91791ad60fcdb768a85ab5cf4f))
|
|
509
|
+
* **roadmap:** close council-integrity-followup, open the implementation plan ([6efce85](https://github.com/event4u-app/agent-config/commit/6efce8541f6e3ec48789d2e4dc6333adcfb8148d))
|
|
510
|
+
* **roadmap:** archive install-lifecycle and re-depth its moved links ([6790d85](https://github.com/event4u-app/agent-config/commit/6790d857c0869cf2d08c8d74c149d94dcf0a346b))
|
|
511
|
+
* **tests:** drop the dead tail in the discovery-manifest test ([fe258f9](https://github.com/event4u-app/agent-config/commit/fe258f9da91b594f06837694619a5f6934e5a0dc))
|
|
512
|
+
* **roadmap:** archive the authoring-contract roadmap ([4aea8f7](https://github.com/event4u-app/agent-config/commit/4aea8f7a241a063ed371edd1f53fad31e56340a4))
|
|
513
|
+
|
|
514
|
+
### Other
|
|
515
|
+
|
|
516
|
+
* **council-integrity:** re-bind after merging origin/main a second time ([dd58e0c](https://github.com/event4u-app/agent-config/commit/dd58e0c7c46c27ec0784621096c7f091fd29c44e))
|
|
517
|
+
* **council-integrity:** re-bind after merging origin/main ([eb84ecb](https://github.com/event4u-app/agent-config/commit/eb84ecb6c0bee33c4d9ec43b85b50493badf4b26))
|
|
518
|
+
* **council-integrity:** re-bind the findings artefact to the fixed scope ([267ff3f](https://github.com/event4u-app/agent-config/commit/267ff3f3b4dae46a82bc38a4d1399d93b0304e57))
|
|
519
|
+
* **council-integrity:** record R2 completion-review findings before any fix ([ccf6650](https://github.com/event4u-app/agent-config/commit/ccf6650bbe7287a92e58177d6fe9ef8fc1cbb6a3))
|
|
511
520
|
|
|
512
|
-
Tests:
|
|
521
|
+
Tests: 13068 (+133 since 9.33.0)
|
|
513
522
|
|
|
514
523
|
# Era: pre-4.0.0 — archived
|
|
515
524
|
|
package/CONTRIBUTING.md
CHANGED
|
@@ -25,20 +25,29 @@ so we can align on direction before code is written.
|
|
|
25
25
|
|
|
26
26
|
If you are unsure whether a change is in scope: open a discussion first.
|
|
27
27
|
|
|
28
|
-
## Dependency direction —
|
|
29
|
-
|
|
30
|
-
`agent-config` is the upstream, standalone package.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
## Dependency direction — memory is file-first, with no external backend
|
|
29
|
+
|
|
30
|
+
`agent-config` is the upstream, standalone package. Its memory layer is
|
|
31
|
+
file-first and self-contained: curated YAML under `agents/memory/<type>/`
|
|
32
|
+
plus agent-written JSONL under `agents/memory/intake/`, read by `retrieve()`
|
|
33
|
+
in `src/scripts/memory_lookup.ts`. There is no external memory backend.
|
|
34
|
+
|
|
35
|
+
[ADR-094](docs/decisions/ADR-094-agent-memory-layer-removal.md) removed the
|
|
36
|
+
`@event4u/agent-memory` binding — the provider seam, the package detection,
|
|
37
|
+
and the MCP routing that used it "when present" — and explicitly rejected
|
|
38
|
+
leaving the integration surface inert: *"a dormant integration surface
|
|
39
|
+
advertising a capability the suite no longer has is misleading residue."*
|
|
40
|
+
|
|
41
|
+
Two rules survive that removal, and both are unconditional:
|
|
42
|
+
|
|
43
|
+
- **Never hard-depend on a package that depends on `agent-config`.** That was
|
|
44
|
+
the case for `agent-memory`, so the dependency could only ever run one way;
|
|
45
|
+
reversing it would create a cycle and break installs in consumer projects
|
|
46
|
+
that want the rule/skill layer alone.
|
|
47
|
+
- **Adding any external memory backend is a Class-B decision** under
|
|
48
|
+
[ADR-124](docs/decisions/ADR-124-embedded-engine-doctrine.md) § 5 — its own
|
|
49
|
+
ADR, a named consumer demand signal, and a measured Class-A failure — never
|
|
50
|
+
a dependency bump or a config entry.
|
|
42
51
|
|
|
43
52
|
## Quick start for contributors
|
|
44
53
|
|
|
@@ -167,9 +167,11 @@ Markdown, no host API). Required fields, in order:
|
|
|
167
167
|
## Contract owed
|
|
168
168
|
{what the current phase must produce before yielding}
|
|
169
169
|
## Decisions
|
|
170
|
-
- {
|
|
170
|
+
- {decision taken, with one-line rationale} {optionally close the line with
|
|
171
|
+
`[reversible]` or `[irreversible]` — those two spellings exactly}
|
|
171
172
|
## Open questions
|
|
172
|
-
- {unresolved items the next session must not silently drop
|
|
173
|
+
- {unresolved items the next session must not silently drop — each as a
|
|
174
|
+
question ending in `?`; write `none` when there genuinely are none}
|
|
173
175
|
## Next command
|
|
174
176
|
{the single command or step to run first on resume}
|
|
175
177
|
```
|
|
@@ -177,7 +179,11 @@ Markdown, no host API). Required fields, in order:
|
|
|
177
179
|
**Resume rule:** a workflow skill's step 0 checks for this file and resumes
|
|
178
180
|
from its contract (mode-inference table) instead of re-deriving state; a
|
|
179
181
|
long phase refreshes the file before yielding. Validated by
|
|
180
|
-
`lint_handoffs.ts` when present — a missing required field is red
|
|
182
|
+
`lint_handoffs.ts` when present — a missing required field is red, and so is an
|
|
183
|
+
`## Open questions` section that answers neither way (blank, or a bare `TBD` /
|
|
184
|
+
`TODO` / `...`). A `?`-terminated question passes; so does an explicit `none` —
|
|
185
|
+
the check exists to stop a blank section reading as an all-clear, not to force a
|
|
186
|
+
question where there is none.
|
|
181
187
|
|
|
182
188
|
**Critical-planning-file safety protocol** (applies to HANDOFF.md and agent
|
|
183
189
|
roadmap edits): read the current file FIRST; take a timestamped backup copy
|
|
@@ -225,6 +231,12 @@ do not auto-execute.
|
|
|
225
231
|
- **Branch name is critical** — always include it.
|
|
226
232
|
- **Open tasks are critical** — the new chat needs to know what's left.
|
|
227
233
|
- **Decisions are important** — prevents the new chat from re-asking settled questions.
|
|
234
|
+
A decision line may close with `[reversible]` or `[irreversible]`, which tells the
|
|
235
|
+
successor "we picked A over B, easy to revisit" apart from "we already migrated the
|
|
236
|
+
data". The tag is optional; those two spellings are the only accepted ones, and a
|
|
237
|
+
near-miss (`[reversble]`, `[Irreversible]`) is a validation error rather than a
|
|
238
|
+
silently untagged line. No claim is made that tagging improves resumption — that
|
|
239
|
+
stays the registered, unmeasured `envelope_resume_success` metric.
|
|
228
240
|
- **File list is optional** — only include if the new chat will need to edit specific files.
|
|
229
241
|
- **NEVER render a printed handoff as live markdown** — see Iron Law above.
|
|
230
242
|
|
|
@@ -42,9 +42,14 @@ git fetch origin --prune
|
|
|
42
42
|
git ls-tree --name-only origin/main agents/roadmaps/ # still active?
|
|
43
43
|
git ls-tree --name-only origin/main agents/roadmaps/archive/ # already closed?
|
|
44
44
|
gh pr list --state open --json number,title,headRefName # in flight?
|
|
45
|
-
agent-config sessions:list
|
|
45
|
+
agent-config sessions:list # claimed right now?
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
`sessions:list` without `--json` on purpose: the human form carries **both**
|
|
49
|
+
axes — the live records AND the unmerged branches checked out in other
|
|
50
|
+
worktrees. `--json` returns only the records unless `--branches` is passed, and
|
|
51
|
+
the branch axis is the one that does not need a peer to have claimed anything.
|
|
52
|
+
|
|
48
53
|
Excluded from the candidate set: `template.md`, `archive/`,
|
|
49
54
|
`skipped/`, `later/`, anything with `status: draft` whose promotion
|
|
50
55
|
trigger has not fired, and:
|
|
@@ -53,12 +58,24 @@ trigger has not fired, and:
|
|
|
53
58
|
|---|---|---|---|
|
|
54
59
|
| **taken by an open PR** | `gh pr list` — a roadmap slug matching an open PR's branch | The work is done or nearly done and is waiting on review | Review or merge that PR; the roadmap archives inside it |
|
|
55
60
|
| **claimed by a live session** | `sessions:list` — a live record whose `roadmap_slug` matches | Another session is working on it *right now*, before any PR exists | Nothing to do — it releases on that session's end, or by TTL |
|
|
61
|
+
| **held by a foreign worktree** | `sessions:list` — an unmerged branch in another worktree whose name names this roadmap | A peer is already writing code, whether or not it ever claimed | Pick something else; a branch on disk outranks an unwritten claim |
|
|
56
62
|
|
|
57
|
-
Keep the
|
|
63
|
+
Keep the three distinguishable in the reported screen. They are different
|
|
58
64
|
states with different recovery, and collapsing them into "unavailable"
|
|
59
65
|
loses the only information that tells the user whether to wait for a
|
|
60
66
|
review or simply pick something else.
|
|
61
67
|
|
|
68
|
+
```
|
|
69
|
+
A DIFFERENT BRANCH NAME DOES NOT MAKE IT A DIFFERENT TASK.
|
|
70
|
+
MEASURED TWICE: TWO SESSIONS BUILT ONE ROADMAP PHASE UNDER
|
|
71
|
+
`feat/dispatch-safety-confirmation` AND `feat/dispatch-safety-confirmed-execution`,
|
|
72
|
+
AND ONE OF THE TWO PRs WAS THROWN AWAY. COMPARE THE ROADMAP, NEVER THE BRANCH.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
A slug in the register that names **no open roadmap** is not a claim — it is a
|
|
76
|
+
stale field left behind after that roadmap archived. `sessions:list` labels it
|
|
77
|
+
`← STALE`; read it as "nobody claimed anything", never as "taken".
|
|
78
|
+
|
|
62
79
|
A roadmap completes by an archive move **inside its merging PR**, so a
|
|
63
80
|
local checkout can show a closed roadmap as open. That is why this step
|
|
64
81
|
precedes the screen instead of following it.
|
|
@@ -145,9 +162,24 @@ agent-config sessions:claim <roadmap-slug>
|
|
|
145
162
|
```
|
|
146
163
|
|
|
147
164
|
Immediately after the pick, before any branch or commit. This writes the slug
|
|
148
|
-
into `agents/runtime/state/roadmap-claim
|
|
149
|
-
this session's register record, so another session's step 1 excludes it
|
|
150
|
-
one turn** and long before a PR exists.
|
|
165
|
+
into `agents/runtime/state/roadmap-claim-<session>.json`; the next heartbeat lifts
|
|
166
|
+
it into this session's register record, so another session's step 1 excludes it
|
|
167
|
+
**within one turn** and long before a PR exists.
|
|
168
|
+
|
|
169
|
+
The file is keyed on the host session id, not on the worktree, and that
|
|
170
|
+
distinction was a measured defect rather than a nicety: with one shared file per
|
|
171
|
+
checkout, four live records once carried one identical slug — naming an
|
|
172
|
+
already-archived roadmap — because every session in that checkout read the last
|
|
173
|
+
claim written there. A session that inherits a peer's claim reports work it is
|
|
174
|
+
not doing, and the peer whose claim was overwritten reports none. On a host that
|
|
175
|
+
exports no session id the legacy shared path is still written and still read, and
|
|
176
|
+
`sessions:claim` says so on that path rather than implying a guarantee it cannot
|
|
177
|
+
give.
|
|
178
|
+
|
|
179
|
+
**The claim is also what makes the duplicate-work warning possible.** Without it
|
|
180
|
+
the register can only compare branch names, and two sessions on one roadmap
|
|
181
|
+
routinely pick two different names — so a skipped claim does not merely delay
|
|
182
|
+
visibility, it removes the only axis that sees the expensive collision.
|
|
151
183
|
|
|
152
184
|
Routing the claim through a state file rather than having this command write the
|
|
153
185
|
register directly is deliberate: the roadmap is picked mid-session by the model,
|