@event4u/agent-config 9.29.0 → 9.31.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 +32 -214
- package/README.md +1 -0
- package/dist/agent-src/commands/analyze/inbox.md +22 -1
- package/dist/agent-src/commands/explain-run.md +31 -1
- package/dist/agent-src/commands/team/delegate.md +1 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +4 -1
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +17 -0
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +11 -1
- package/dist/agent-src/rules/preservation-guard.md +9 -0
- package/dist/agent-src/scripts/roadmap_gates.ts +312 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +72 -4
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +10 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/{chunk-RCIA67XN.js → chunk-2WCLVDWC.js} +45 -2
- package/dist/cli-delegate/{chunk-66OVWGB5.js → chunk-AG47LAGQ.js} +1 -1
- package/dist/cli-delegate/{chunk-MP3JT3IU.js → chunk-DS6BLDMG.js} +1 -1
- package/dist/cli-delegate/chunk-EJITJBJX.js +172 -0
- package/dist/cli-delegate/{chunk-NZ5N2XQL.js → chunk-ITIQSGOQ.js} +3 -3
- package/dist/cli-delegate/{chunk-LCFJIQ4J.js → chunk-JEJABGKB.js} +110 -6
- package/dist/cli-delegate/chunk-MMJL4TIX.js +18 -0
- package/dist/cli-delegate/{chunk-REKCMYOU.js → chunk-PFBV6XRT.js} +36 -20
- package/dist/cli-delegate/{chunk-OJM3MBJM.js → chunk-QEEB4LHO.js} +22 -35
- package/dist/cli-delegate/chunk-RVGBH4XK.js +142 -0
- package/dist/cli-delegate/{chunk-MMXA5GY7.js → chunk-UVKNIJH2.js} +14 -0
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +2861 -96
- package/dist/cli-delegate/cmd_doctor.js +3 -2
- package/dist/cli-delegate/cmd_explain.js +2 -2
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +87 -7
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_route_audit.js +3 -2
- package/dist/cli-delegate/cmd_route_explain.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +177 -0
- package/dist/cli-delegate/cmd_settings_get.js +3 -56
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +2 -2
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_update.js +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +7 -7
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +2143 -641
- package/dist/install/install.mjs +133 -14
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +3967 -761
- package/dist/scripts/_lib/agent_settings.js +111 -2
- package/dist/scripts/_lib/agent_settings.js.map +1 -1
- package/dist/server/schemas/settings.js +6 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/index-B5qGYOJo.js +26 -0
- package/dist/ui/assets/index-B5qGYOJo.js.map +1 -0
- package/dist/ui/index.html +1 -1
- package/docs/contracts/settings-classes.md +21 -5
- package/package.json +1 -1
- package/src/agent-src/scripts/roadmap_gates.ts +312 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +72 -4
- package/src/config/agent-settings.template.yml +36 -0
- package/src/config/dispatch-economy-metrics.json +61 -0
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/hook-token-budget.json +91 -0
- package/src/config/pack-size-budget.json +3 -2
- package/src/config/recycle-threshold-budget.json +12 -0
- package/src/config/rule-enforcement-baseline.json +86 -0
- package/src/scripts/_cli/cmd_conformance.ts +17 -2
- package/src/scripts/_cli/cmd_session_recycle.ts +226 -0
- package/src/scripts/_cli/explain_last/inputs.ts +13 -0
- package/src/scripts/_dispatch.bash +23 -0
- package/src/scripts/_lib/agent_settings.ts +119 -2
- package/src/scripts/_lib/carrier_divergence.ts +47 -0
- package/src/scripts/_lib/judgment_ladder.ts +254 -2
- package/src/scripts/_lib/orchestration_record.ts +41 -10
- package/src/scripts/_lib/recycle_envelope_paths.ts +35 -0
- package/src/scripts/_lib/self_repair.ts +194 -0
- package/src/scripts/_lib/session_eol.ts +230 -0
- package/src/scripts/_lib/session_role.ts +42 -0
- package/src/scripts/_lib/subagent_capsule.ts +159 -0
- package/src/scripts/_lib/subagent_response.ts +75 -0
- package/src/scripts/ai_council/clients.ts +50 -1
- package/src/scripts/ask_transport.ts +221 -0
- package/src/scripts/bench_hook_injection.ts +234 -0
- package/src/scripts/check_adr_frontmatter.ts +84 -40
- package/src/scripts/check_branch_freshness.ts +1 -0
- package/src/scripts/check_corpus_staleness.ts +18 -4
- package/src/scripts/check_detector_corpus.ts +17 -0
- package/src/scripts/check_gitignore_freshness.ts +42 -8
- package/src/scripts/check_hook_bundle_freshness.ts +20 -0
- package/src/scripts/check_kernel_prefix_stability.ts +1 -0
- package/src/scripts/check_standing_rule_delivery.ts +73 -32
- package/src/scripts/check_static_layer_stability.ts +154 -0
- package/src/scripts/check_suppression_hygiene.ts +48 -0
- package/src/scripts/dispatch_economy_report.ts +448 -0
- package/src/scripts/dispatch_r2_reviewer.ts +15 -2
- package/src/scripts/explain_run.ts +206 -4
- package/src/scripts/generate_settings_reference.ts +1 -0
- package/src/scripts/handoff_context_hook.ts +112 -4
- package/src/scripts/hook_manifest.yaml +117 -10
- package/src/scripts/hooks/concern_registry.ts +8 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +40 -3
- package/src/scripts/hooks/dispatch_hook.ts +39 -2
- package/src/scripts/hooks/edit_shape_hook.ts +303 -0
- package/src/scripts/hooks/orchestration_record_hook.ts +19 -1
- package/src/scripts/hooks/reread_guard_hook.ts +314 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +133 -14
- package/src/scripts/hooks/session_eol_hook.ts +268 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +715 -0
- package/src/scripts/install-hooks.sh +1 -1
- package/src/scripts/language_mirror_hook.ts +143 -1
- package/src/scripts/lint_decision_impact.ts +14 -1
- package/src/scripts/lint_hook_manifest.ts +82 -0
- package/src/scripts/lint_readme_serial_comma.ts +1 -0
- package/src/scripts/lint_rule_enforcement_declaration.ts +347 -0
- package/src/scripts/measure_turn_end_gate.ts +272 -0
- package/src/scripts/orchestration_record.ts +4 -1
- package/src/scripts/rebuild_hook_bundle.ts +1 -0
- package/src/scripts/report_carrier_divergence.ts +72 -24
- package/src/scripts/report_conformance_funnel.ts +291 -0
- package/src/scripts/report_imperative_density.ts +1 -0
- package/src/scripts/routing_doctor.ts +97 -0
- package/src/scripts/self_repair_cli.ts +51 -3
- package/src/scripts/session_eol_report.ts +261 -0
- package/src/server/schemas/settings.ts +14 -0
- package/src/templates/compact-instructions.md +40 -0
- package/dist/ui/assets/index-JDAF00bC.js +0 -26
- package/dist/ui/assets/index-JDAF00bC.js.map +0 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
|
|
9
|
-
"version": "9.
|
|
9
|
+
"version": "9.31.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
package/CHANGELOG.md
CHANGED
|
@@ -305,247 +305,65 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
|
|
|
305
305
|
> keeps the active era under the 250-line drift cap enforced by
|
|
306
306
|
> `tests/test_changelog_eras.py`.
|
|
307
307
|
|
|
308
|
-
# Era: 9.
|
|
308
|
+
# Era: pre-9.31.0 — archived
|
|
309
309
|
|
|
310
|
-
>
|
|
311
|
-
>
|
|
312
|
-
>
|
|
313
|
-
>
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
### Release highlights
|
|
318
|
-
|
|
319
|
-
<!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
|
|
320
|
-
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 1a2dd51, 0304406, 1008212.
|
|
321
|
-
- **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 51088bd, 2590391, b7b4cb0.
|
|
322
|
-
- **Security and correctness:** _none_
|
|
323
|
-
- **Honest nulls:** _none_
|
|
324
|
-
- **Known limitations:** _none_
|
|
325
|
-
|
|
326
|
-
### Features
|
|
327
|
-
|
|
328
|
-
* **team:** availability replaces the master switch; teams readiness ([a94a91a](https://github.com/event4u-app/agent-config/commit/a94a91a30b916909c391939320ae4fb2b04e0b31))
|
|
329
|
-
* **council:** CLI-first shipped default, quorum, absent members, handoff ([51088bd](https://github.com/event4u-app/agent-config/commit/51088bdaaf3633c4918ea05182c5becf65593cf2))
|
|
330
|
-
* **dispatch:** judgment ladder replaces the activation gate ([1a2dd51](https://github.com/event4u-app/agent-config/commit/1a2dd5177b02b9ca752588a022d8a72c6afe51f5))
|
|
331
|
-
* **settings:** activation gates die, one audited incident switch survives ([0304406](https://github.com/event4u-app/agent-config/commit/0304406a536e29d66f44ce19f5f0187383b8af4e))
|
|
332
|
-
* **ci:** lint_never_silent - no shipped guidance may direct a silent re-run ([c7b3d83](https://github.com/event4u-app/agent-config/commit/c7b3d8382ac34a992727c1a042cc65298e56adaa))
|
|
333
|
-
* **self-repair:** fork-aware egress ladder, issue form, detector corpus gate ([5b50807](https://github.com/event4u-app/agent-config/commit/5b5080710e9800bbb4e1eec5773d9c5ff79de866))
|
|
334
|
-
* **self-repair:** fork-aware egress, detector corpus gate, never-silent lint ([4e046aa](https://github.com/event4u-app/agent-config/commit/4e046aa5d992cbefa31717430bd05a9e37798f4f))
|
|
335
|
-
* **rules:** emit Claude Code rules with the host-native paths key ([872c267](https://github.com/event4u-app/agent-config/commit/872c267589995668bfbfffdc2c0128b9d89532dd))
|
|
336
|
-
* **forensics:** read-only forensic analyzers as a default-off pack (Phase 3) ([b7b4cb0](https://github.com/event4u-app/agent-config/commit/b7b4cb05e2247737786e96ff52cf4d739dff68c4))
|
|
337
|
-
* **bench:** critic-protocol A/B result — no promotion, published both directions (Phase 2) ([bc0054b](https://github.com/event4u-app/agent-config/commit/bc0054b8406dc6fe280fcca7b10104547e2380b1))
|
|
338
|
-
* **council:** critic_protocol config + pre-registered load_bearing A/B harness (Phase 2, pre-run) ([e75ae51](https://github.com/event4u-app/agent-config/commit/e75ae514b765205a2f86c5ffaae40a5c81523d87))
|
|
339
|
-
* **hosts:** add worker_respawn to the host-capability manifest ([a30102d](https://github.com/event4u-app/agent-config/commit/a30102d0f30d197ced06248c5712722006032447))
|
|
340
|
-
* **subagents:** emit the capsule at a budget watermark, in shadow ([572d280](https://github.com/event4u-app/agent-config/commit/572d28066be1871f43242056af175ddbd023002c))
|
|
341
|
-
* **subagents:** add the CHECKPOINT capsule as the worker handoff shape ([8340f5e](https://github.com/event4u-app/agent-config/commit/8340f5e11219c296030084432e9f403818552df9))
|
|
342
|
-
* **premortem:** four-part failure register + optional roadmap Pre-mortem section (Phase 1) ([da95e9e](https://github.com/event4u-app/agent-config/commit/da95e9e4880394ab06ea0aaf818e893c695d4657))
|
|
343
|
-
|
|
344
|
-
### Bug Fixes
|
|
345
|
-
|
|
346
|
-
* **build:** rebuild the committed install bundle for the settings teardown ([6d9e667](https://github.com/event4u-app/agent-config/commit/6d9e6672bee69178d0ce8d86bd574e248abca54b))
|
|
347
|
-
* **spike:** escape the shape-key separator instead of a raw NUL byte ([1dd9a28](https://github.com/event4u-app/agent-config/commit/1dd9a281d5fc38ce228a04035a43a35b295114e5))
|
|
348
|
-
* **self-repair:** resolve the four R2 completion-review findings ([3474bf7](https://github.com/event4u-app/agent-config/commit/3474bf797321a99e5a7dd5a484a70a8a8748add6))
|
|
349
|
-
* **roadmap:** risk-register marker, allowed risk types, resolvable anchors ([f06f6ed](https://github.com/event4u-app/agent-config/commit/f06f6edb1f9f3b08c4763c542e789272f4dbd091))
|
|
350
|
-
* **scorer:** repoint skill-selection scoring at the live skills tree ([589b2c3](https://github.com/event4u-app/agent-config/commit/589b2c3e11eaf64a32e7bc7269807b3a9af648a2))
|
|
351
|
-
* **ci:** unlink the ADR-217 body link that can never resolve in the dist projection ([1008212](https://github.com/event4u-app/agent-config/commit/100821272c9254d4aae70876c9bfa65af67d1d4d))
|
|
352
|
-
* **forensics:** review findings — schema-valid finding ids, fail-before-write, hermetic smoke test, honest config scope ([0509647](https://github.com/event4u-app/agent-config/commit/050964793ec76e0100199a59fefd5b8cc4ad59e4))
|
|
353
|
-
* **release:** tolerate the concurrent tag-push race in step 8 ([049e8b2](https://github.com/event4u-app/agent-config/commit/049e8b24296a97f946c4597418cfd79457018e3c))
|
|
354
|
-
* **hooks:** self-heal a stale hook bundle in preflight instead of blocking the push ([9256633](https://github.com/event4u-app/agent-config/commit/9256633996be6d86e09df8c288837a8970d456e7))
|
|
355
|
-
|
|
356
|
-
### Documentation
|
|
357
|
-
|
|
358
|
-
* **council:** describe the runtime responses artefact without the pruned path literal ([04e8a0f](https://github.com/event4u-app/agent-config/commit/04e8a0feecb2fc19326f9abf894cf49f38424c6b))
|
|
359
|
-
* **roadmap:** always-on orchestration - verified claims, council cut, honest blockers ([d202556](https://github.com/event4u-app/agent-config/commit/d202556efa32376c4fc5fedba7fb95414cb4f4b4))
|
|
360
|
-
* always-on doctrine reaches the always-loaded surfaces ([9eead89](https://github.com/event4u-app/agent-config/commit/9eead8923e604f584541afbdac6d1feac3b02e5c))
|
|
361
|
-
* **review:** re-derive the context-manifest scope_hash for the re-bound round (contract 5 header-manifest agreement) ([2ebdb87](https://github.com/event4u-app/agent-config/commit/2ebdb87f0286a167d24cc26b3a658306274748c6))
|
|
362
|
-
* **review:** add fix-commit refs to the four resolved R2 findings ([9adbf83](https://github.com/event4u-app/agent-config/commit/9adbf83bcb530db4d702d4ff9425f685124b8a2f))
|
|
363
|
-
* **review:** re-bind R2 findings to the post-fix review scope (contract 2.1 in-place re-bind) ([752c29c](https://github.com/event4u-app/agent-config/commit/752c29cf11a66ded030bff60aeac45763c36c2ed))
|
|
364
|
-
* **review:** R2 completion-review findings for feat/road-to-rule-delivery-integrity (1 medium, 3 low, all open) ([0267568](https://github.com/event4u-app/agent-config/commit/02675686ef102552a80ce35861e1c5c094fb3f31))
|
|
365
|
-
* **roadmap:** close rule-delivery-integrity, migrate the measurement out ([2590391](https://github.com/event4u-app/agent-config/commit/25903915772394a776b069991e3d939bcf3f0e70))
|
|
366
|
-
* **adr:** ADR-220 skill invocation attestation — specified, check deferred (Phase 4) ([c8f3dbb](https://github.com/event4u-app/agent-config/commit/c8f3dbb31762a7df7ef3abf7ef70f1e17741afa4))
|
|
367
|
-
* **roadmap:** land phases 0 and 1 of worker-generation recycling ([06c7347](https://github.com/event4u-app/agent-config/commit/06c7347b49809a81b7ee169f42e3c742e5211812))
|
|
368
|
-
* **claims:** pre-register the capsule trigger-arm comparison ([2acfc56](https://github.com/event4u-app/agent-config/commit/2acfc56982d257331243094d2a580ca4f5926c6c))
|
|
369
|
-
|
|
370
|
-
### Chores
|
|
310
|
+
> All entries before `9.31.0` live in
|
|
311
|
+
> [`docs/archive/CHANGELOG-pre-9.31.0.md`](docs/archive/CHANGELOG-pre-9.31.0.md).
|
|
312
|
+
> The archive is read-only; git tags remain the canonical
|
|
313
|
+
> source for what shipped. Splitting them out of the main file
|
|
314
|
+
> keeps the active era under the 250-line drift cap enforced by
|
|
315
|
+
> `tests/test_changelog_eras.py`.
|
|
371
316
|
|
|
372
|
-
|
|
373
|
-
* **roadmap:** park round-6 and worker-generation-recycling in later/ ([e5ebedc](https://github.com/event4u-app/agent-config/commit/e5ebedcd9ba0b3ddaba10938af74fcab9d79f03a))
|
|
374
|
-
* **generated:** regenerate proof.md + CAPABILITIES.yaml for the 289th skill post-merge ([d0f348d](https://github.com/event4u-app/agent-config/commit/d0f348d0b75b507d10199941185969a633563f63))
|
|
375
|
-
* **roadmap:** close Phase 5 + acceptance criteria — roadmap fully closed ([c993660](https://github.com/event4u-app/agent-config/commit/c9936607fe77e06f1b510a3ee3ccf8390f49a8d6))
|
|
376
|
-
* **generated:** rebuild the install bundle for the settings-schema change ([5b1260d](https://github.com/event4u-app/agent-config/commit/5b1260de7b889a16e94a5e5d5bc6f22f23dc558e))
|
|
377
|
-
* **generated:** regenerate proof.md for the new ledger entry ([76ab0a9](https://github.com/event4u-app/agent-config/commit/76ab0a9e1ccdb09e436f562c1cf8416989d921ef))
|
|
317
|
+
# Era: 9.31.x — current
|
|
378
318
|
|
|
379
|
-
|
|
319
|
+
> Started at `9.31.0`. Full entries live inline below.
|
|
320
|
+
> The drift test caps this era at 250 lines of entry body; growth past
|
|
321
|
+
> that forces a new era split (`# Era: 9.32.x`, etc.) — see
|
|
322
|
+
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
380
323
|
|
|
381
|
-
## [9.
|
|
324
|
+
## [9.31.0](https://github.com/event4u-app/agent-config/compare/9.30.0...9.31.0) (2026-08-10)
|
|
382
325
|
|
|
383
326
|
### Release highlights
|
|
384
327
|
|
|
385
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. -->
|
|
386
|
-
- **Behaviour changes:**
|
|
329
|
+
- **Behaviour changes:** _none_
|
|
387
330
|
- **Default changes + migration:** _none_
|
|
388
331
|
- **Security and correctness:** _none_
|
|
389
|
-
- **Honest nulls:**
|
|
390
|
-
- **Known limitations:** _none_
|
|
391
|
-
|
|
392
|
-
### Features
|
|
393
|
-
|
|
394
|
-
* **hooks:** register the three orchestrator-discipline concerns ([b170fbc](https://github.com/event4u-app/agent-config/commit/b170fbc9c8a90bdb69ba97929a8c13b08c90ccb3))
|
|
395
|
-
* **hooks:** advisory end-review-nudge concern on stop ([3d2c1a0](https://github.com/event4u-app/agent-config/commit/3d2c1a0bc1087960d634e1d489867da78069ed8c))
|
|
396
|
-
* **hooks:** conditional delegation-nudge concern on user_prompt_submit ([761b793](https://github.com/event4u-app/agent-config/commit/761b793ad2e9a9371ade2272848e2d7aa856faae))
|
|
397
|
-
* **hooks:** deterministic orchestration-record concern on post_tool_use ([36e24c9](https://github.com/event4u-app/agent-config/commit/36e24c936e8e05281220574fbe9e924bd787c152))
|
|
398
|
-
* **host-capability:** committed registry for known hosts ([04e31f7](https://github.com/event4u-app/agent-config/commit/04e31f7c6274815db376fd545869f4bb80a3d225))
|
|
399
|
-
* **cli:** four capability probes for the gaps that had none ([909235c](https://github.com/event4u-app/agent-config/commit/909235ce713beaafec0dc0560ae21d47fca3df2e))
|
|
400
|
-
* **scripts:** measure the rule tokens a session actually receives ([406f986](https://github.com/event4u-app/agent-config/commit/406f98647fe3fca8a25cfa8f7a2e447f787bd5a6))
|
|
401
|
-
* **install:** refuse to create a silently doubled rule corpus ([9f2608f](https://github.com/event4u-app/agent-config/commit/9f2608f8da62ccf4ba2873845e4117b61cb91280))
|
|
402
|
-
* **rules:** detect when the rule corpus is delivered twice ([d9b6618](https://github.com/event4u-app/agent-config/commit/d9b6618c96f1cc0a328ac5e677ef16eb340b0c84))
|
|
403
|
-
* **scripts:** SK-2 loaded-but-violated, and the 3-of-110 coverage that is the finding ([2837fb7](https://github.com/event4u-app/agent-config/commit/2837fb7c1f44b303f97a6eb61c497679f36020ae))
|
|
404
|
-
* **conformance:** delivered rule payload by carrier, and the forward rate series ([78c19fd](https://github.com/event4u-app/agent-config/commit/78c19fdb1af6c02e81802da33f2e593e2599b9e1))
|
|
405
|
-
* **scripts:** name the rules the two carriers deliver differently ([cc6c8fb](https://github.com/event4u-app/agent-config/commit/cc6c8fbd307e4dc65ee4716208cd50084b32cf36))
|
|
406
|
-
* **wiring:** bind the self-repair concern and register its two CLI verbs ([a619cfc](https://github.com/event4u-app/agent-config/commit/a619cfc982965fb77a5c02f8480108be80661c92))
|
|
407
|
-
* **rules:** the self-repair loop as an always-loaded obligation ([cb8d560](https://github.com/event4u-app/agent-config/commit/cb8d56076ac09b351a565216b98a68789acd5e60))
|
|
408
|
-
* **self-repair:** detect agent defects and queue them as fixable records ([76b95ec](https://github.com/event4u-app/agent-config/commit/76b95ec7a524d482f333b701015f0a490cc4907d))
|
|
409
|
-
* **gate:** fail when no always-loaded rule carries the council user-global fact ([a56f28b](https://github.com/event4u-app/agent-config/commit/a56f28bf436c24b8f803711fa546ba713412c5c3))
|
|
410
|
-
* **rules:** carry the council user-global fact on the always-loaded surface ([36a0e4c](https://github.com/event4u-app/agent-config/commit/36a0e4cc6af6e83a47d120718a0fed7b5abb13cb))
|
|
411
|
-
* **gates:** refuse a push from a branch behind its base, asked of the remote ([bbdac53](https://github.com/event4u-app/agent-config/commit/bbdac539f5f3f2c8e86113f2a6a3a184a253a239))
|
|
412
|
-
* **report:** skill-activation census — the unmeasurable half, measured ([5719fd0](https://github.com/event4u-app/agent-config/commit/5719fd09e723bc7988fc0e90719c46d8a5f222f1))
|
|
413
|
-
|
|
414
|
-
### Bug Fixes
|
|
415
|
-
|
|
416
|
-
* **routing-doctor:** report whether the platform was observed or assumed ([2c176b2](https://github.com/event4u-app/agent-config/commit/2c176b212021bc05421233cb724677d4a1e44697))
|
|
417
|
-
* **routing-doctor:** resolve host capabilities through the committed registry ([9875177](https://github.com/event4u-app/agent-config/commit/9875177b73b65810eaae9e2c1a8f2c66c8648da3))
|
|
418
|
-
* **hooks:** harden transcript read, full session key, mutation-measure flag ([c908bbf](https://github.com/event4u-app/agent-config/commit/c908bbf41c944a9564dfd0efc9198472693a7f36))
|
|
419
|
-
* **ci:** ADR frontmatter and three consumer paths the reference gate read as repo paths ([9cd21cb](https://github.com/event4u-app/agent-config/commit/9cd21cb4182c205205b49f352c0a1745e11ff33e))
|
|
420
|
-
* **build:** rebuild the install bundle for the settings-cascade change ([dbcb658](https://github.com/event4u-app/agent-config/commit/dbcb658c51a31b7af028f0d745db4d23b3b5bf35))
|
|
421
|
-
* **settings:** four adjacent path defects that made the intuitive file wrong ([ae6f30e](https://github.com/event4u-app/agent-config/commit/ae6f30ee29c3e79bff20501adbfd394489de53df))
|
|
422
|
-
* **build:** rebuild the committed install bundle for the install.ts change ([0d362ce](https://github.com/event4u-app/agent-config/commit/0d362ce2242debe7fffc798e457fcad02a0e6426))
|
|
423
|
-
* **roadmap:** conform the Risk Register to the R1 gate grammar ([8a4f388](https://github.com/event4u-app/agent-config/commit/8a4f388c67d5351bbea7c76faf631dbd40a5aa29))
|
|
424
|
-
* **roadmap:** inline the council provenance instead of linking a path that rots ([5268154](https://github.com/event4u-app/agent-config/commit/5268154d686717d7ff64deb059c78779607c27b6))
|
|
425
|
-
* **skills:** lead nine descriptions with what they do, not with the guard ([bee0a72](https://github.com/event4u-app/agent-config/commit/bee0a72f90c97c67b57a949ac3c0d85756ad4db8))
|
|
426
|
-
* **scripts:** repair the round-2 review findings, incl. a second inverted polarity ([6ab06f7](https://github.com/event4u-app/agent-config/commit/6ab06f759c02774f02f37dd5b85aaf6009da44d4))
|
|
427
|
-
* **scripts:** repair all 14 R2 completion-review findings ([0ee1275](https://github.com/event4u-app/agent-config/commit/0ee1275af82ae1dfbe1f0e6eaa48337e71905aa1))
|
|
428
|
-
* **rules:** condense both new rules and re-anchor the token baseline ([103a22b](https://github.com/event4u-app/agent-config/commit/103a22b10c8830e87bf28ab0dddebf02d6354f85))
|
|
429
|
-
* **tests:** name the retired container by role, not by its dead literal path ([d7147ce](https://github.com/event4u-app/agent-config/commit/d7147ce2f4940c7095c94c91e731243a6c0ee495))
|
|
430
|
-
* **cli:** list council:status in usage(), the trunk was red without it ([1ca2ad0](https://github.com/event4u-app/agent-config/commit/1ca2ad00648533595d1d48794fd551c6e4e437d6))
|
|
431
|
-
* **tests:** two suites left directories in the tracked tree, and a third gate read them ([df70f14](https://github.com/event4u-app/agent-config/commit/df70f1436a325d0da2167f86ea464ee4ea074556))
|
|
432
|
-
* **council:** the refusal messages named the wrong config file ([62c6872](https://github.com/event4u-app/agent-config/commit/62c6872fe4647bc057835466414268cbf6da6971))
|
|
433
|
-
* **council:** stop the agent inferring council availability from a project file ([45f46b5](https://github.com/event4u-app/agent-config/commit/45f46b521ec4cb16a6d3d22c8a0db3009a68ea84))
|
|
434
|
-
* **conformance:** one trigger definition, and the count it was hiding ([8e131b4](https://github.com/event4u-app/agent-config/commit/8e131b41371a25255193702a23fd5820490db415))
|
|
435
|
-
* **hooks:** block what bash runs, not what the splitter finds readable ([bbc9b11](https://github.com/event4u-app/agent-config/commit/bbc9b11a949e2b6aad074fa11723d75609423b23))
|
|
436
|
-
|
|
437
|
-
### Documentation
|
|
438
|
-
|
|
439
|
-
* **review:** re-bind the R2 findings scope after the main merge ([8c85ea0](https://github.com/event4u-app/agent-config/commit/8c85ea05c707c0a379d3f8caf7c8c53d09df05fe))
|
|
440
|
-
* **review:** re-bind the R2 findings after the fix pass ([6728b67](https://github.com/event4u-app/agent-config/commit/6728b679853a9c4aea691d8348d060a4c892469d))
|
|
441
|
-
* **contexts:** carry the three open orchestrator-carrier decisions forward ([3c17c11](https://github.com/event4u-app/agent-config/commit/3c17c11f7246b0f2eb95e3e5904e9b43c0270b07))
|
|
442
|
-
* **review:** R2 completion-review findings for the closeout branch ([8217034](https://github.com/event4u-app/agent-config/commit/82170344f6fef8457c22ce125aa5adf51801a9fb))
|
|
443
|
-
* **roadmap:** close orchestrator-discipline-carriers on measured evidence ([e01b6f2](https://github.com/event4u-app/agent-config/commit/e01b6f284affa9bab5ec323e1c9c415962366fb7))
|
|
444
|
-
* **roadmap:** post-merge council pass, fd47df62 disposition, calibration biases ([ed8710d](https://github.com/event4u-app/agent-config/commit/ed8710d47bab07b4e428eac8f18b5560315d204e))
|
|
445
|
-
* **hooks:** correct stale cowork binding claim in delegation-nudge header ([d2f6e99](https://github.com/event4u-app/agent-config/commit/d2f6e99bf1a0ac11d0365f7854cab9177ff6692f))
|
|
446
|
-
* **roadmap:** orchestrator-discipline-carriers - measured defect, council pass, honest exits ([9a1798c](https://github.com/event4u-app/agent-config/commit/9a1798c6692f4c99c8cfcd418dbd2a9b1178b9cc))
|
|
447
|
-
* state the delegation and end-review obligations where sessions read ([63825ba](https://github.com/event4u-app/agent-config/commit/63825ba757524bbded04cf58e787585b4e3699e9))
|
|
448
|
-
* **rules:** make the capability answers reachable without knowing they exist ([3d684ef](https://github.com/event4u-app/agent-config/commit/3d684ef1403541fb707ec2a47026320dc734ae82))
|
|
449
|
-
* **roadmap:** the delivery-integrity roadmap, its council pass, and where it halts ([cd33314](https://github.com/event4u-app/agent-config/commit/cd333144c3a6636dd4209aa3c24e22b12484de77))
|
|
450
|
-
* **evidence:** three measurements behind the delivery findings ([cdf5b3f](https://github.com/event4u-app/agent-config/commit/cdf5b3f45165d374148ff87a3ba3240216c0d167))
|
|
451
|
-
* **contracts:** the router is compile-time, and no host reads it at runtime ([b1fdc72](https://github.com/event4u-app/agent-config/commit/b1fdc72a152d9d8250e713d8b5b8b482e3bd1acf))
|
|
452
|
-
* **roadmaps:** record what the two review rounds cost and the contract step I got wrong ([1e51900](https://github.com/event4u-app/agent-config/commit/1e51900fb143eb939bd8917d982ce76ff9fe6252))
|
|
453
|
-
* **reviews:** commit the binding completion-review artefact, re-bound to the shipping scope ([82e5909](https://github.com/event4u-app/agent-config/commit/82e5909e6ea5289b5f856f6343d38408e653b84b))
|
|
454
|
-
* **roadmaps:** close round 6 phases 3-4, and record the premises that came out false ([dc9b6b0](https://github.com/event4u-app/agent-config/commit/dc9b6b0a68ae3df99b1eee37d65bfc54edfd2d18))
|
|
455
|
-
* **gates:** the unregistered-emitter backstop covers one of the two emit shapes ([a032f0c](https://github.com/event4u-app/agent-config/commit/a032f0ccc2aceabf15ea92e1fcc86aa439d76e5f))
|
|
456
|
-
* **memory:** say which repo the intake sharing-boundary line describes ([466bdfc](https://github.com/event4u-app/agent-config/commit/466bdfcd050e58c47bef38a29fe7f24be59ffb51))
|
|
457
|
-
* **roadmap:** twelve places the agent must guess whether a capability exists ([9453c16](https://github.com/event4u-app/agent-config/commit/9453c162fd78f31f257eaea4dd5db68ff4513056))
|
|
458
|
-
* **roadmap:** the census, round 5 accounting, and a criterion that contradicted its own cancelled step ([3bac223](https://github.com/event4u-app/agent-config/commit/3bac22325f16287511c0f8dc3345a798cb0d47f6))
|
|
459
|
-
* **archive:** file superseded substrate-adoption roadmap ([f435453](https://github.com/event4u-app/agent-config/commit/f435453d3faa882a657b21475f467b13b332831e))
|
|
460
|
-
* **roadmap:** record the third #1208 defect, found by PR #1211 not by the review ([25d2d12](https://github.com/event4u-app/agent-config/commit/25d2d12e6f1c7ea56e7e99ba3fffd294638c3be5))
|
|
461
|
-
* **roadmap:** fold the challenge pass and four council verdicts into round 6 ([01f3286](https://github.com/event4u-app/agent-config/commit/01f3286d91ee34d155a175ce687679181602f838))
|
|
462
|
-
|
|
463
|
-
### Refactoring
|
|
464
|
-
|
|
465
|
-
* **scripts:** one definition of the cross-carrier rule comparison ([0a22a90](https://github.com/event4u-app/agent-config/commit/0a22a901fc95ed13e28afc44ce9f84fba9c7c5e2))
|
|
466
|
-
|
|
467
|
-
### Chores
|
|
468
|
-
|
|
469
|
-
* **tests:** drop dead subprocess scaffolding the changed-files lint surfaced ([2f786b9](https://github.com/event4u-app/agent-config/commit/2f786b91c31724561761a9489d118c3ccb50c7a6))
|
|
470
|
-
* **index:** regenerate index and catalog for the nine rewritten descriptions ([593330f](https://github.com/event4u-app/agent-config/commit/593330ff34e60711b40562b38e8eb880b45cc6c8))
|
|
471
|
-
* **tasks:** register the two new advisory reports as named tasks ([033732c](https://github.com/event4u-app/agent-config/commit/033732c56499f081ae614eed37a3fe43657bc01f))
|
|
472
|
-
* **generated:** reproject the council-availability rule after the probe rewrite ([9bac533](https://github.com/event4u-app/agent-config/commit/9bac533be54adad9f1d5bbe4b3965cbcf3c010eb))
|
|
473
|
-
* **generated:** counts, index, catalog, router, proof for the self-repair rule ([83e81ae](https://github.com/event4u-app/agent-config/commit/83e81ae48dc463d17f82edd89edd821f8b7fdb35))
|
|
474
|
-
* **generated:** router_rules count 108 -> 109 for the new routed rule ([bf00135](https://github.com/event4u-app/agent-config/commit/bf00135202a3ac84814a0324947dbecc57172bfd))
|
|
475
|
-
* **generated:** regenerate index, catalog, and router for the new rule ([188c434](https://github.com/event4u-app/agent-config/commit/188c4346428c7754b434bc86c4c3dfa8c8b203ee))
|
|
476
|
-
* **budgets:** record the 88 to 89 CLI verb move for council:status ([fa7404b](https://github.com/event4u-app/agent-config/commit/fa7404bf9483d241cd5d245cbc872cfd5406d851))
|
|
477
|
-
|
|
478
|
-
Tests: 12141 (+391 since 9.27.0)
|
|
479
|
-
|
|
480
|
-
## [9.27.0](https://github.com/event4u-app/agent-config/compare/9.26.0...9.27.0) (2026-08-07)
|
|
481
|
-
|
|
482
|
-
### Release highlights
|
|
483
|
-
|
|
484
|
-
<!-- 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. -->
|
|
485
|
-
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 6b06006, e82cc1f, b3b5ee7, dd89970.
|
|
486
|
-
- **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 6d1af3a.
|
|
487
|
-
- **Security and correctness:** _none_
|
|
488
|
-
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 8e6765b, 6208186, f60bd6a.
|
|
332
|
+
- **Honest nulls:** _none_
|
|
489
333
|
- **Known limitations:** _none_
|
|
490
334
|
|
|
491
335
|
### Features
|
|
492
336
|
|
|
493
|
-
* **
|
|
494
|
-
* **conformance:** record pin distance and compaction per language violation ([b103537](https://github.com/event4u-app/agent-config/commit/b103537c69020d1bb81698a389d1dc9d97e0a145))
|
|
495
|
-
* **gates:** assert rule-projection completeness and freshness ([e42ea1d](https://github.com/event4u-app/agent-config/commit/e42ea1d7fdbbaf0d87ff37d4efd40ff3d96d97f8))
|
|
496
|
-
* **roadmap-next:** close the claim window, and say who carries the check ([9617664](https://github.com/event4u-app/agent-config/commit/9617664291d51176dceafbdf0ac68608dcffd0d7))
|
|
497
|
-
* **cli:** sessions:list and sessions:claim ([44d5eba](https://github.com/event4u-app/agent-config/commit/44d5eba9f88e2f52c534aa1f8f350ba1a89c4eeb))
|
|
498
|
-
* **hooks:** bind the register, and keep stop out of deregistration ([736f4e1](https://github.com/event4u-app/agent-config/commit/736f4e1255641a8997b2bd8f9753ac4232ccbcda))
|
|
499
|
-
* **sessions:** the shared per-session register, with its measured TTL ([6ab61fd](https://github.com/event4u-app/agent-config/commit/6ab61fda9d7e7faa22fc4d33325c02c05363b6ef))
|
|
500
|
-
* **rules:** declare how often each obligation comes due, and join it ([dd89970](https://github.com/event4u-app/agent-config/commit/dd89970afb7cc82846caf9c6e0029ddc73176874))
|
|
501
|
-
* **coverage:** the lattice that says whether a carrier fires often enough ([53d501e](https://github.com/event4u-app/agent-config/commit/53d501e9860b0f72d3d78df8f6a7cfc0eff16245))
|
|
502
|
-
* **settings:** a fresh install writes 35 lines, not 1,360 ([8504ca8](https://github.com/event4u-app/agent-config/commit/8504ca880d8c5bc5c921add50f7a7fc0b39ee03d))
|
|
503
|
-
* **settings:** audit absent-vs-default, and carve out the nine keys that diverge ([6d1af3a](https://github.com/event4u-app/agent-config/commit/6d1af3aba30d5378510fc2659532f9ad16be7b37))
|
|
337
|
+
* **settings:** give the scripts read path the template-defaults layer ([a67a640](https://github.com/event4u-app/agent-config/commit/a67a640cbf64262d07026853b7b5ead21b509e5d))
|
|
504
338
|
|
|
505
339
|
### Bug Fixes
|
|
506
340
|
|
|
507
|
-
* **
|
|
508
|
-
* **
|
|
509
|
-
* **hooks:**
|
|
510
|
-
* **
|
|
511
|
-
* **
|
|
512
|
-
* **release:** stop treating "no checks reported" as a pass when checks ARE required ([1af0f03](https://github.com/event4u-app/agent-config/commit/1af0f0316f39191603d5031145153e209e1778ad))
|
|
513
|
-
* **rules:** pay for the citation with a line number, not a quoted sentence ([e82cc1f](https://github.com/event4u-app/agent-config/commit/e82cc1f4d032578b1e5749ceb6756d6a82beeaf7))
|
|
514
|
-
* **canary:** bind the carrier to a slot that reaches a task boundary ([b3b5ee7](https://github.com/event4u-app/agent-config/commit/b3b5ee75e95ac7be3908529f3d52c5d47432d6bb))
|
|
515
|
-
* **settings-surface:** treat a free-form map as a leaf, not an empty group ([7a68cb7](https://github.com/event4u-app/agent-config/commit/7a68cb785ccff4bf190c01b5c52927f1fd94fbeb))
|
|
516
|
-
* **gates:** a zero-tool checkout is an absent surface, not a dead scan scope ([2828561](https://github.com/event4u-app/agent-config/commit/28285610d22c340460b02be675047efdbe24c8ac))
|
|
341
|
+
* **carrier:** a frontmatter-only difference is not body divergence ([c48b6c8](https://github.com/event4u-app/agent-config/commit/c48b6c88cf274e3e24b0795d8fb4d19be7637557))
|
|
342
|
+
* **hooks:** replace the fence regex with a scanner, and stop shipping a moving figure ([2fe01e7](https://github.com/event4u-app/agent-config/commit/2fe01e79804c37380e8c968b6efdf71b7d9d33fa))
|
|
343
|
+
* **hooks:** per-session pin marker, atomic write, enforced read cap ([67abbb6](https://github.com/event4u-app/agent-config/commit/67abbb63028ab79fa6d04083523fbb6ffb9033c3))
|
|
344
|
+
* **scripts:** measure the gate per TURN, and withdraw the figures that were not ([313e665](https://github.com/event4u-app/agent-config/commit/313e665354c1dd0512aceb21475dbc532f6b9ba5))
|
|
345
|
+
* **hooks:** turn-end-gate — key the guard on the turn, not the prompt text ([b3392e6](https://github.com/event4u-app/agent-config/commit/b3392e60ceeae500b639040e8849b801fc661008))
|
|
517
346
|
|
|
518
347
|
### Documentation
|
|
519
348
|
|
|
520
|
-
* **
|
|
521
|
-
* **
|
|
522
|
-
* **
|
|
523
|
-
* **
|
|
524
|
-
* **
|
|
525
|
-
* **proof:** re-render after the two enforced_by declarations ([7e36dbb](https://github.com/event4u-app/agent-config/commit/7e36dbb009a06d51cbcbb0d92167954e9adb64d3))
|
|
526
|
-
* **roadmap:** give conformance round 5 its Risk Register ([7e837bb](https://github.com/event4u-app/agent-config/commit/7e837bb8c85d78631effdf8e18f96762e779dab3))
|
|
527
|
-
* **roadmap:** conformance round 5, the first post-fix measurement ([95d4db9](https://github.com/event4u-app/agent-config/commit/95d4db9d9c971778f583c7081c7277d1f4ba661e))
|
|
528
|
-
* **rules:** replace two unmeasured enforcement claims with the measurement ([6b06006](https://github.com/event4u-app/agent-config/commit/6b0600608a33a56f35e7ec76ab6c5ba60711249f))
|
|
529
|
-
* **roadmap:** archive parallel-session-coordination with its measurements ([f60bd6a](https://github.com/event4u-app/agent-config/commit/f60bd6a3fba74e669a6361724070ce9d6d037b7b))
|
|
530
|
-
* **roadmap:** give the parallel-session plan its Risk Register ([f13ebba](https://github.com/event4u-app/agent-config/commit/f13ebba5a4f7856b5be0acdd19244e86adaca126))
|
|
531
|
-
* **roadmap:** add the obligation-carrier audit and the parallel-session register ([20391f6](https://github.com/event4u-app/agent-config/commit/20391f62f2c6c3f294467481956b1b2d2b0f9255))
|
|
532
|
-
* **roadmap:** close Phase 3, resolve the blocker, and say why 4.2 stays open ([2ba1e78](https://github.com/event4u-app/agent-config/commit/2ba1e7894ded9571f38dbe12de1680b4f1db57fd))
|
|
533
|
-
* **settings:** generate the settings reference the shrinking file no longer carries ([9e34b23](https://github.com/event4u-app/agent-config/commit/9e34b238523187f4ae7c9826c8bef6e4b89efe8d))
|
|
534
|
-
|
|
535
|
-
### Refactoring
|
|
536
|
-
|
|
537
|
-
* **git:** extract the common-dir resolution so it has one answer ([1f04331](https://github.com/event4u-app/agent-config/commit/1f04331dd2f81c64a5217f843ddbcf49f2d9be9b))
|
|
349
|
+
* **carrier:** the header says three classes and there are now four ([1955234](https://github.com/event4u-app/agent-config/commit/195523465db8fabb84be3f4ad27f8293cf5e4ac5))
|
|
350
|
+
* **evidence:** classify the 109 carrier divergences, and correct two records ([c2fc109](https://github.com/event4u-app/agent-config/commit/c2fc109f7ca30f621455a9a754803055a0b1a0d9))
|
|
351
|
+
* **evidence:** map the scripts settings read path against the server one ([858a256](https://github.com/event4u-app/agent-config/commit/858a25646352fd3603800e5657527591a00e16ae))
|
|
352
|
+
* **review:** record the R2 findings on the fix pass, before touching it ([65aee68](https://github.com/event4u-app/agent-config/commit/65aee68691d85bdba928b4de65f4e28025c80852))
|
|
353
|
+
* **review:** record the R2 findings for turn-end-gate before fixing anything ([9f204c5](https://github.com/event4u-app/agent-config/commit/9f204c55a73a45bada0baa7925bc000df7bee912))
|
|
538
354
|
|
|
539
355
|
### Build
|
|
540
356
|
|
|
541
|
-
* **install:**
|
|
357
|
+
* **install:** rebuild the bundle without the worktree symlink poison ([741806c](https://github.com/event4u-app/agent-config/commit/741806c91a9774b1b521ae34487d271d0c5dee93))
|
|
358
|
+
* **install:** refresh the committed install bundle ([7bbcfdc](https://github.com/event4u-app/agent-config/commit/7bbcfdce9355708ef6785ec640af64d23a5ac4a0))
|
|
542
359
|
|
|
543
360
|
### Chores
|
|
544
361
|
|
|
545
|
-
* **
|
|
546
|
-
* **
|
|
362
|
+
* **roadmap:** close carrier-layer-convergence Phases 1-2 on the measurement ([bc42809](https://github.com/event4u-app/agent-config/commit/bc42809689634578e52501470f299822624e15ae))
|
|
363
|
+
* **roadmap:** archive road-to-scripts-settings-defaults, complete ([e3af4c5](https://github.com/event4u-app/agent-config/commit/e3af4c56c1149a96254f1e7e3c1807a8f53744b5))
|
|
364
|
+
* **budget:** re-baseline the packed-tarball cap, 6.9 to 7.8, maintainer-decided ([04ca7d8](https://github.com/event4u-app/agent-config/commit/04ca7d84f93c33999b02361c9baa4e61a181a07c))
|
|
547
365
|
|
|
548
|
-
Tests:
|
|
366
|
+
Tests: 12729 (+38 since 9.30.0)
|
|
549
367
|
|
|
550
368
|
# Era: pre-4.0.0 — archived
|
|
551
369
|
|
package/README.md
CHANGED
|
@@ -126,6 +126,7 @@ is the proof. Browse it on the deployed docs site — the proof page is the prim
|
|
|
126
126
|
[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/).
|
|
127
127
|
The honest comparison frame lives at
|
|
128
128
|
[`docs/us-vs-the-category.md`](docs/us-vs-the-category.md).
|
|
129
|
+
Freshest measured row: in one post-fix session, advisory context injection cut language-mirror violations 555 → 19 while the two blocking guards went 8 → 0 and 1 → 0 — advisory reduced massively, only blocking eliminated. One session and a post-hoc reading, so a recorded prior rather than a law.<!-- claim:conformance-advisory-vs-blocking -->
|
|
129
130
|
|
|
130
131
|
Maintaining a skills catalog yourself? The **anti-reskin gate** that blocks
|
|
131
132
|
find-replace re-skin PRs here runs on your catalog too —
|
|
@@ -116,12 +116,22 @@ throughput problem** — never open ten files at full depth in one pass.
|
|
|
116
116
|
|
|
117
117
|
One pass per file, shallow, producing a table before any deep read:
|
|
118
118
|
|
|
119
|
-
| file | genre | age | first-impression disposition |
|
|
119
|
+
| file | genre | age | drafted-against | first-impression disposition |
|
|
120
120
|
|
|
121
121
|
Genre is one of: **external-review · feature-spec · prompt/persona · transcript ·
|
|
122
122
|
benchmark-output · council-artifact · scratch-note**. Age matters — compare the
|
|
123
123
|
file's mtime against the tree's movement since.
|
|
124
124
|
|
|
125
|
+
**Read the provenance line first — it is the cheapest column in the table.** An
|
|
126
|
+
artifact may open with `drafted-against: <short-SHA>` or
|
|
127
|
+
`drafted-at: <YYYY-MM-DD>` (optional by design — see
|
|
128
|
+
[`agents-layout`](../../../../../docs/contracts/agents-layout.md) § Snapshot
|
|
129
|
+
provenance). When a SHA is present, run `git log --oneline <SHA>..HEAD` **before**
|
|
130
|
+
any deep read: what merged in that window is the set of claims that may be
|
|
131
|
+
*stale rather than wrong*, and that is one command instead of a verification
|
|
132
|
+
pass. Absent → the column reads `unstated`, which is the normal path and not a
|
|
133
|
+
penalty.
|
|
134
|
+
|
|
125
135
|
Kill early and say so. A file is a **`delete`** candidate when it is a consumed
|
|
126
136
|
artifact of a finished process (a council question whose roadmap is archived, a
|
|
127
137
|
benchmark output already recorded), and a **`park`** candidate when it is real
|
|
@@ -155,6 +165,17 @@ or mark it `unverifiable`.
|
|
|
155
165
|
Expect a large `already-fixed` fraction on any file older than a few weeks. That
|
|
156
166
|
is a successful outcome, not a wasted pass.
|
|
157
167
|
|
|
168
|
+
**Separate stale from wrong, and say which.** `already-fixed` splits in two, and
|
|
169
|
+
the split changes what you tell the user: **overtaken** (true when drafted, a
|
|
170
|
+
later change shipped it) versus **never-true** (wrong at the drafting SHA too).
|
|
171
|
+
With a `drafted-against` SHA the distinction is mechanical — the claim either
|
|
172
|
+
falls inside `<SHA>..HEAD` or it does not. Report the two separately: a draft
|
|
173
|
+
that was 87 % overtaken was not a bad draft, and a draft that was wrong at its
|
|
174
|
+
own SHA is a different signal about its source. Two limits hold regardless: a
|
|
175
|
+
SHA is **not** a clearance for claims about a third system (host behaviour,
|
|
176
|
+
provider pricing, an external tool — those are `unverifiable` until probed), and
|
|
177
|
+
the narrowed surface still gets verified, just not re-derived from zero.
|
|
178
|
+
|
|
158
179
|
### Phase 5 — Map survivors onto this suite's artefact types
|
|
159
180
|
|
|
160
181
|
The question is never "what does the file say" but **"what does it become here"**:
|
|
@@ -42,10 +42,40 @@ Both arguments are optional and narrow the report:
|
|
|
42
42
|
With neither, the engine reports over all available artefacts. Pass through
|
|
43
43
|
exactly what the user gave — do not invent a task id or a date.
|
|
44
44
|
|
|
45
|
+
### 1b. Optionally explain ONE dispatch decision
|
|
46
|
+
|
|
47
|
+
`--decision "<task text>"` adds a section that walks the judgment ladder for
|
|
48
|
+
that text: the rung taken, every rung genuinely evaluated-and-rejected with its
|
|
49
|
+
detector's own reason, and the rungs the resolver never reached (`not-reached` —
|
|
50
|
+
never a fabricated rejection). Absent `--decision`, the section is omitted and
|
|
51
|
+
the rest of the report is unchanged.
|
|
52
|
+
|
|
53
|
+
The remaining flags are the ladder's input signals — pass only what the user
|
|
54
|
+
states, since each one changes the resolution:
|
|
55
|
+
|
|
56
|
+
- `--size-estimate <int>` · `--slices <int>` — the size signals; a task at or
|
|
57
|
+
below the size floor never delegates.
|
|
58
|
+
- `--ordered-plan` — the slices are ordered rather than independent.
|
|
59
|
+
- `--agent-teams` — the host reports the `agent_teams` capability (without it a
|
|
60
|
+
communication-shaped task degrades below rung 3).
|
|
61
|
+
- `--halted` — `emergency.orchestration_halt` is set.
|
|
62
|
+
- `--no-spawn-primitive` — the host has no `subagent_spawn` primitive.
|
|
63
|
+
- `--inside-subagent` — the classification runs inside a subagent session
|
|
64
|
+
(recursive-dispatch guard).
|
|
65
|
+
- `--approval-required` — a human decision is pending; resolves ∅ before every
|
|
66
|
+
rung.
|
|
67
|
+
|
|
68
|
+
The token/cost line under that section prints the freshest real dispatch record
|
|
69
|
+
in the window and states that it is **not** matched to this decision — the
|
|
70
|
+
record shape carries no decision key, so correspondence is never claimed.
|
|
71
|
+
|
|
45
72
|
### 2. Run the engine
|
|
46
73
|
|
|
47
74
|
```bash
|
|
48
|
-
./scripts-run src/scripts/explain_run [--task <id>] [--since <ISO-8601>]
|
|
75
|
+
./scripts-run src/scripts/explain_run [--task <id>] [--since <ISO-8601>] \
|
|
76
|
+
[--decision "<task text>"] [--size-estimate <int>] [--slices <int>] \
|
|
77
|
+
[--ordered-plan] [--agent-teams] [--halted] [--no-spawn-primitive] \
|
|
78
|
+
[--inside-subagent] [--approval-required]
|
|
49
79
|
```
|
|
50
80
|
|
|
51
81
|
Exit codes:
|
|
@@ -59,13 +59,16 @@ v1 forward-compat rule on unknown fields).
|
|
|
59
59
|
| `init_tokens` | int \| null | **Lean-init extension (road-to-lean-agent-init Phase 3).** Spawn-payload tokens at worker init — the payload-truth measurement feeding the Phase-5 baseline gate (p95 < ~1,500 tokens/worker drops the L2/L3 bets). `null` = not measured. Counts only. |
|
|
60
60
|
| `payload_hash` | string \| null | **Lean-init extension.** 8–64-char hex digest of the spawn payload — prefix-stability / cache measurement. A hash can never smuggle content (privacy by construction). `null` = not measured. |
|
|
61
61
|
| `lookup_class` | enum \| null | **Lean-init extension.** Lookup class the L0 rung matched: `definition` · `references` · `string-existence` · `report-run`. `null` = not a lookup-shaped dispatch. |
|
|
62
|
-
| `route_taken` | enum \| null | **Lean-init extension.** `primitive` (deterministic primitive answered — no spawn) · `subagent` (escalated). With `lookup_class`, measures the tool-not-agent rung's hit rate.
|
|
62
|
+
| `route_taken` | enum \| null | **Lean-init + dispatch-economy extension.** `primitive` (deterministic primitive answered — no spawn) · `ask` (rung-0.5 single completion via `ask_transport`, no session) · `subagent` (escalated). With `lookup_class`, measures the tool-not-agent rung's hit rate. `primitive` and `ask` lines are the TWO recordable zero-spawn events (`spawn_count: 0`) — the routing decision itself is the datum the cost claim reads. |
|
|
63
63
|
| `budget_hit` | bool \| null | **Lean-init extension.** Worker hit its `max_tokens_per_worker` stop-loss (L0b) and returned the structured partial result. Feeds budget-seed refinement. `null` = not measured. |
|
|
64
64
|
| `correctness_match` | bool \| null | **Lean-init extension.** Golden/correctness comparison verdict for a primitive route (primitive answer ≡ agent answer). Populated only when a comparison arm actually ran (bench/golden mode); on real zero-spawn primitive routes there is no agent answer to compare against, so `null` is the NORMAL field value — never read `null` as "unchecked = suspicious". |
|
|
65
65
|
| `cache_hit` | bool \| null | **Lean-init extension (Phase 4 prefix stability).** Provider-reported prompt-cache hit on the spawn payload. Measurement only — no savings claim without provider-response evidence. `null` = not measured. |
|
|
66
66
|
| `origin` | string \| null | **Lean-init extension (council Q5 segregation).** Id-shaped sample tag (`lean-init-2026`) keeping lean-init efficiency lines cleanly separable from the `road-to-orchestration-scope-decision` sample. `null` = untagged line. Never free-form. |
|
|
67
67
|
| `rules_carried` | int \| null | **Lean-init extension (L6 demand signal).** Rules in the worker's scoped projection — the carried set. With `rules_used`, yields the per-worker rule-usage quota the parked `later/road-to-deferred-rule-retriever` resume condition asks for ("are worker rules actually carried unused?"). `null` = not measured. Counts only. |
|
|
68
68
|
| `rules_used` | int \| null | **Lean-init extension (L6 demand signal).** Rules the worker actually applied/cited. Validation: never exceeds `rules_carried`. `null` = not measured. Counts only. |
|
|
69
|
+
| `work_tokens` | int \| null | **Dispatch-economy extension.** Tokens the worker consumed AFTER init — the delta from first worker turn to envelope close. With `init_tokens`, yields the `dispatch_floor` ratio (`src/config/dispatch-economy-metrics.json`). Sourced from the transcript ledger (`_lib/cc_transcript.ts` `billable_input` semantics) by the report/backfill, never model-estimated without the tag below. `null` = not measured. |
|
|
70
|
+
| `floor_provenance` | enum \| null | **Dispatch-economy extension.** Provenance of the `init_tokens`/`work_tokens` pair: `measured` (transcript ledger) · `estimated`. Auto-defaults to `estimated` when either field is present untagged — mirrors `token_delta_provenance`. `null` = neither field present. |
|
|
71
|
+
| `return_channel_chars` | int \| null | **Dispatch-economy extension (Phase 6.3).** Serialized chars of the tool result returned into the orchestrator context (sync completions, hook-derived count — content never enters the record). Detector for "isolation win refunded through the return channel"; committed cap: `MAX_ENVELOPE_CHARS` (12,000) via `return_channel` in `dispatch-economy-metrics.json`. `null` = async ack. |
|
|
69
72
|
|
|
70
73
|
These routing + cost fields are additive and optional — a line without them is
|
|
71
74
|
still a valid orchestration line; readers ignore unknown fields per the v1
|
|
@@ -203,6 +203,23 @@ For each open step in the working set (scope-bound — see wrapper):
|
|
|
203
203
|
|
|
204
204
|
Anti-pattern: `view step` → think → `view file A` → think →
|
|
205
205
|
`view file B`. That's 3 round-trips for what should be 1.
|
|
206
|
+
|
|
207
|
+
Fire/no-fire pair (falsifiable — the discriminator is whether a
|
|
208
|
+
call's *input* depends on another call's *output*, never the count):
|
|
209
|
+
|
|
210
|
+
- **Fires (batch these):** a step says "update the hook, its test,
|
|
211
|
+
and the manifest entry" → `view src/scripts/hooks/foo_hook.ts` +
|
|
212
|
+
`view tests/scripts/foo_hook.test.ts` +
|
|
213
|
+
`view src/scripts/hook_manifest.yaml` are three independent reads
|
|
214
|
+
whose paths are all known BEFORE the first call — dispatch all
|
|
215
|
+
three in ONE parallel block. Issuing them serially is the
|
|
216
|
+
violation: each extra round-trip re-transmits the accumulated
|
|
217
|
+
context as input for zero new information.
|
|
218
|
+
- **Does NOT fire (stays serial):** `grep -rn "buildAdvisoryLine"
|
|
219
|
+
src/` → then `view <the file the grep found>`. The second call's
|
|
220
|
+
path IS the first call's output — batching would mean guessing the
|
|
221
|
+
path, and a guessed read is worse than a round-trip. Dependent
|
|
222
|
+
calls stay serial; only the independent remainder batches.
|
|
206
223
|
2. Analyze the codebase for what the step requires.
|
|
207
224
|
3. Decide and act — implement. **No "should I implement this?" prompt.**
|
|
208
225
|
4. **Open question handling:**
|
|
@@ -13,13 +13,23 @@ orchestrator synthesises and re-verifies.
|
|
|
13
13
|
"findings": [{ "title": "", "evidence_refs": ["file:line | id | path"], "mutating": false }],
|
|
14
14
|
"risks": [],
|
|
15
15
|
"confidence": "low | medium | high",
|
|
16
|
-
"handoff": ""
|
|
16
|
+
"handoff": "",
|
|
17
|
+
"artifact_paths": ["<runtime artifact dir path — where the FULL result lives on disk>"]
|
|
17
18
|
}
|
|
18
19
|
```
|
|
19
20
|
|
|
20
21
|
- **Refs, not bodies.** `evidence_refs` are ref tokens (`file:line`, ids, paths),
|
|
21
22
|
never inline content — same minimal-slice / privacy floor as the spawn contract.
|
|
22
23
|
- `mutating` marks a finding whose action changes files/state (feeds the verify link).
|
|
24
|
+
- **The envelope is the ONLY return channel** (token-economy-dispatch Phase 6):
|
|
25
|
+
a worker's full result lands on disk (runtime artifact dir, gitignored) and
|
|
26
|
+
`artifact_paths` names where; the orchestrator consumes from those paths on
|
|
27
|
+
demand, never via wholesale transcript ingestion. Committed size caps,
|
|
28
|
+
validator-ERRORED (never silent truncation): `summary` ≤ 2,000 chars ·
|
|
29
|
+
line-shaped fields (`handoff`, a risk, a finding title) ≤ 240 · arrays ≤ 40
|
|
30
|
+
entries · one artifact ref ≤ 200 · the whole serialized envelope ≤ 12,000
|
|
31
|
+
chars (~3k tokens against a measured ~251k spawn floor). Constants + checks:
|
|
32
|
+
`src/scripts/_lib/subagent_response.ts`.
|
|
23
33
|
|
|
24
34
|
## Budget-hit partial result
|
|
25
35
|
|
|
@@ -26,6 +26,15 @@ the result must be **at least as strong** as the original.
|
|
|
26
26
|
|
|
27
27
|
## Iron Laws — every passage stays, telegraph is fine
|
|
28
28
|
|
|
29
|
+
```
|
|
30
|
+
EVERY PASSAGE STAYS — PARAGRAPH FOR PARAGRAPH, BULLET FOR BULLET, FENCE FOR FENCE.
|
|
31
|
+
IRON LAW HEADINGS SURVIVE VERBATIM AT THEIR LEVEL. FENCED BLOCKS SURVIVE BYTE-FOR-BYTE.
|
|
32
|
+
NEGATION CLAUSES (NO X / NEVER Y / NOT Z) STAY IN.
|
|
33
|
+
NEVER WEAKEN: MUST STAYS MUST. ROUTING AND DECISION LOGIC STAY AS STRONG.
|
|
34
|
+
NEVER BROADEN SCOPE BY MERGING UNRELATED WORKFLOWS.
|
|
35
|
+
TELEGRAPH THE WORDING AS HARD AS YOU WANT — CONDENSE, NEVER DELETE, NEVER SOFTEN.
|
|
36
|
+
```
|
|
37
|
+
|
|
29
38
|
Sections marked **Iron Law** (any heading matching `# Iron Law`, `# Iron Laws`,
|
|
30
39
|
`# The Iron Law`, at any heading level, including numbered variants like
|
|
31
40
|
`Iron Law 1`, `Iron Law 2`) are **non-negotiable** and require the strictest
|