@event4u/agent-config 9.27.0 → 9.29.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/AGENTS.md +13 -12
- package/CHANGELOG.md +165 -0
- package/README.md +1 -1
- package/agents/templates/.ai-council.yml.example +55 -24
- package/dist/agent-src/commands/analyze/conformance.md +24 -0
- package/dist/agent-src/commands/cost/report.md +2 -2
- package/dist/agent-src/commands/team/adversarial.md +8 -7
- package/dist/agent-src/commands/team/delegate.md +13 -12
- package/dist/agent-src/commands/team/review.md +9 -8
- package/dist/agent-src/commands/team/status.md +9 -8
- package/dist/agent-src/commands/team.md +29 -19
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +88 -2
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +29 -21
- package/dist/agent-src/contexts/execution/host-capability-manifest.md +26 -15
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +28 -3
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +54 -0
- package/dist/agent-src/contexts/execution/subagent-routing.md +13 -11
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +25 -0
- package/dist/agent-src/contexts/execution/subagent-steering.md +6 -3
- package/dist/agent-src/rules/artifact-engagement-recording.md +4 -1
- package/dist/agent-src/rules/autonomous-execution.md +1 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +33 -6
- package/dist/agent-src/rules/context-hygiene.md +3 -1
- package/dist/agent-src/rules/council-availability.md +93 -0
- package/dist/agent-src/rules/cross-source-consistency.md +3 -0
- package/dist/agent-src/rules/delegation-policy.md +38 -10
- package/dist/agent-src/rules/design-fidelity.md +3 -0
- package/dist/agent-src/rules/evaluator-independence.md +2 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +2 -1
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/git-history-discipline.md +1 -1
- package/dist/agent-src/rules/history-discipline.md +3 -1
- package/dist/agent-src/rules/legal-safety-floor.md +1 -1
- package/dist/agent-src/rules/no-pr-progress-comments.md +3 -1
- package/dist/agent-src/rules/onboarding-gate.md +3 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +4 -1
- package/dist/agent-src/rules/role-mode-adherence.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +3 -1
- package/dist/agent-src/rules/self-repair-loop.md +103 -0
- package/dist/agent-src/rules/session-canary.md +2 -1
- package/dist/agent-src/rules/settings-ask-protocol.md +8 -7
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/token-budget-discipline.md +4 -2
- package/dist/agent-src/rules/tool-safety.md +5 -1
- package/dist/agent-src/skills/adversarial-review/SKILL.md +1 -1
- package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
- package/dist/agent-src/skills/forensics-report/SKILL.md +114 -0
- package/dist/agent-src/skills/forensics-report/evals/triggers.json +17 -0
- package/dist/agent-src/skills/performance-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/persona-improvement/SKILL.md +1 -1
- package/dist/agent-src/skills/premortem/SKILL.md +30 -1
- package/dist/agent-src/skills/project-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +2 -1
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/sequential-thinking/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +7 -5
- package/dist/agent-src/skills/subagent-orchestration/schemas/subagent-status.json +61 -3
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/templates/AGENTS.md +8 -12
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +23 -0
- package/dist/cli/registry.js +7 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/chunk-66OVWGB5.js +270 -0
- package/dist/cli-delegate/{chunk-HJ6DAJHR.js → chunk-LCFJIQ4J.js} +89 -7
- package/dist/cli-delegate/{chunk-VSYT7OHO.js → chunk-LVRYBKTI.js} +31 -2
- package/dist/cli-delegate/{chunk-DVRS2KVR.js → chunk-MMXA5GY7.js} +10 -17
- package/dist/cli-delegate/{chunk-WR6GTRHJ.js → chunk-MP3JT3IU.js} +3 -3
- package/dist/cli-delegate/{chunk-3KJIMFTB.js → chunk-NZ5N2XQL.js} +467 -305
- package/dist/cli-delegate/{chunk-AIIUU73N.js → chunk-OJM3MBJM.js} +1 -1
- package/dist/cli-delegate/{chunk-BCPIOAGV.js → chunk-RCIA67XN.js} +117 -96
- package/dist/cli-delegate/chunk-REKCMYOU.js +2991 -0
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +134 -0
- package/dist/cli-delegate/cmd_conformance.js +10 -47
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +10 -6
- package/dist/cli-delegate/cmd_explain.js +80 -330
- package/dist/cli-delegate/cmd_export.js +6 -6
- package/dist/cli-delegate/cmd_fleet.js +3 -3
- package/dist/cli-delegate/cmd_handoff.js +3 -3
- package/dist/cli-delegate/cmd_mcp_available.js +433 -0
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +153 -0
- package/dist/cli-delegate/cmd_preflight.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +6 -6
- package/dist/cli-delegate/cmd_route_audit.js +8 -8
- package/dist/cli-delegate/cmd_route_explain.js +4 -4
- package/dist/cli-delegate/cmd_settings_get.js +266 -0
- package/dist/cli-delegate/cmd_settings_migrate.js +6 -6
- package/dist/cli-delegate/cmd_settings_set.js +8 -2968
- package/dist/cli-delegate/cmd_sync.js +6 -6
- package/dist/cli-delegate/cmd_uninstall.js +6 -6
- package/dist/cli-delegate/cmd_update.js +4 -4
- package/dist/cli-delegate/cmd_upgrade.js +4 -4
- package/dist/cli-delegate/cmd_validate.js +6 -6
- package/dist/cli-delegate/cmd_versions.js +4 -4
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +164 -55
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +44 -5
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +16 -6
- package/dist/hooks/dispatch.js +9341 -6131
- package/dist/install/install.mjs +739 -524
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +777 -281
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +134 -15
- package/dist/scripts/_lib/agent_settings.js.map +1 -1
- package/dist/scripts/condense.js +147 -2
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/schemas/settings.js +6 -7
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/settingsCarveOut.js +0 -9
- package/dist/shared/settingsCarveOut.js.map +1 -1
- package/dist/shared/settingsClasses.js +11 -9
- package/dist/shared/settingsClasses.js.map +1 -1
- package/dist/ui/assets/{index-DmR0mbk4.js → index-JDAF00bC.js} +2 -2
- package/dist/ui/assets/{index-DmR0mbk4.js.map → index-JDAF00bC.js.map} +1 -1
- package/dist/ui/index.html +1 -1
- package/docs/contracts/settings-classes.md +68 -17
- package/docs/guidelines/agent-infra/memory-access.md +14 -3
- package/package.json +1 -1
- package/src/agent-src/templates/AGENTS.md +8 -12
- package/src/config/agent-settings.template.yml +52 -66
- package/src/config/budgets.yml +29 -0
- package/src/config/discovery/packs.yml +11 -0
- package/src/config/discovery/workspaces.yml +1 -1
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +26 -0
- package/src/config/gate-violation-baselines.json +3 -3
- package/src/scripts/_cli/cmd_brand_status.ts +174 -0
- package/src/scripts/_cli/cmd_conformance.ts +14 -42
- package/src/scripts/_cli/cmd_doctor.ts +65 -48
- package/src/scripts/_cli/cmd_mcp_available.ts +266 -0
- package/src/scripts/_cli/cmd_packs_active.ts +225 -0
- package/src/scripts/_cli/cmd_settings_get.ts +324 -0
- package/src/scripts/_dispatch.bash +57 -0
- package/src/scripts/_lib/agent_settings.ts +140 -16
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +1 -1
- package/src/scripts/_lib/auto_dispatch.ts +23 -18
- package/src/scripts/_lib/capsule_trigger.ts +124 -0
- package/src/scripts/_lib/carrier_divergence.ts +135 -0
- package/src/scripts/_lib/host_capability.ts +144 -4
- package/src/scripts/_lib/judgment_ladder.ts +382 -0
- package/src/scripts/_lib/orchestration_gate.ts +8 -0
- package/src/scripts/_lib/orchestration_record.ts +37 -0
- package/src/scripts/_lib/orchestration_savings.ts +1 -1
- package/src/scripts/_lib/prompt_shape.ts +88 -0
- package/src/scripts/_lib/review_skipped_record.ts +102 -0
- package/src/scripts/_lib/rule_layer_overlap.ts +254 -0
- package/src/scripts/_lib/self_repair.ts +489 -0
- package/src/scripts/_lib/self_repair_store.ts +128 -0
- package/src/scripts/_lib/subagent_capsule.ts +182 -0
- package/src/scripts/_lib/subagent_response.ts +19 -0
- package/src/scripts/_lib/subagent_spawn.ts +13 -0
- package/src/scripts/_lib/subagent_steering.ts +9 -4
- package/src/scripts/_lib/tier_budget_routing.ts +6 -1
- package/src/scripts/_lib/transcript_entry.ts +80 -0
- package/src/scripts/_lib/worker_budget.ts +37 -2
- package/src/scripts/ai_council/clients.ts +76 -54
- package/src/scripts/ai_council/config.ts +94 -6
- package/src/scripts/ai_council/handoff.ts +113 -0
- package/src/scripts/ai_council/modes.ts +19 -4
- package/src/scripts/ai_council/orchestrator.ts +105 -0
- package/src/scripts/ai_council/quorum.ts +84 -0
- package/src/scripts/ai_council/session.ts +44 -0
- package/src/scripts/ai_council/transport_resolver.ts +127 -1
- package/src/scripts/ai_team/availability.ts +110 -0
- package/src/scripts/ai_team/config.ts +34 -14
- package/src/scripts/ai_team/team_dispatch.ts +71 -29
- package/src/scripts/bench_critic_protocol.ts +396 -0
- package/src/scripts/check_branch_freshness.ts +255 -0
- package/src/scripts/check_council_config_location.ts +125 -1
- package/src/scripts/check_detector_corpus.ts +202 -0
- package/src/scripts/check_hook_bundle_freshness.ts +4 -1
- package/src/scripts/check_standing_rule_delivery.ts +314 -0
- package/src/scripts/condense.ts +162 -2
- package/src/scripts/config/profiles.ts +13 -3
- package/src/scripts/conformance_scan.ts +272 -24
- package/src/scripts/council_availability_hook.ts +188 -0
- package/src/scripts/council_cli.ts +527 -32
- package/src/scripts/forensics_report.ts +333 -0
- package/src/scripts/hook_manifest.yaml +107 -26
- package/src/scripts/hooks/block_no_verify.ts +39 -2
- package/src/scripts/hooks/block_unauthorized_git.ts +156 -7
- package/src/scripts/hooks/concern_registry.ts +10 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +484 -0
- package/src/scripts/hooks/end_review_nudge_hook.ts +726 -0
- package/src/scripts/hooks/orchestration_record_hook.ts +342 -0
- package/src/scripts/install.ts +151 -0
- package/src/scripts/language_mirror_hook.ts +30 -37
- package/src/scripts/lint_discovery_vocabulary.ts +2 -0
- package/src/scripts/lint_never_silent.ts +276 -0
- package/src/scripts/lint_no_activation_gates.ts +271 -0
- package/src/scripts/measure_scope_dedup.ts +19 -13
- package/src/scripts/onboarding_gate_hook.ts +40 -1
- package/src/scripts/orchestration_record.ts +12 -1
- package/src/scripts/preamble_byte_census.ts +9 -20
- package/src/scripts/rebuild_hook_bundle.ts +177 -0
- package/src/scripts/release.ts +74 -2
- package/src/scripts/report_carrier_divergence.ts +364 -0
- package/src/scripts/report_skill_activation.ts +257 -0
- package/src/scripts/report_skill_obligation_violations.ts +579 -0
- package/src/scripts/routing_doctor.ts +95 -39
- package/src/scripts/score_skill_selection.ts +19 -5
- package/src/scripts/self_repair_cli.ts +470 -0
- package/src/scripts/self_repair_hook.ts +241 -0
- package/src/scripts/team_events_spike.ts +271 -0
- package/src/scripts/team_review_gate_hook.ts +31 -9
- package/src/server/schemas/settings.ts +10 -17
- package/src/shared/settingsCarveOut.ts +0 -10
- package/src/shared/settingsClasses.ts +11 -9
|
@@ -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.29.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
package/AGENTS.md
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
# event4u/agent-config
|
|
2
2
|
|
|
3
|
-
> Shared skill / rule / command suite for AI coding tools. No app runtime.
|
|
3
|
+
> Shared skill / rule / command suite for AI coding tools. No app runtime.
|
|
4
4
|
|
|
5
5
|
## Source of truth
|
|
6
6
|
|
|
7
|
-
Edit `src/` only (`
|
|
7
|
+
Edit `src/` only (`skills`, `rules`, `agent-src`). `task sync` + `task generate-tools` regenerate the rest; never hand-edit.
|
|
8
8
|
|
|
9
9
|
## Working on this repo
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
task sync
|
|
13
|
-
task generate-tools
|
|
14
|
-
task ci
|
|
15
|
-
#
|
|
12
|
+
task sync # dist/agent-src/, .augment/
|
|
13
|
+
task generate-tools # .claude/, .cursor/, .clinerules/, .windsurfrules
|
|
14
|
+
task ci # full pipeline, green before PR
|
|
15
|
+
# dev: AGENT_CONFIG_DEV_MODE=1 -> --scope=project (docs/maintainers/dev-mode.md)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Pointers
|
|
19
19
|
|
|
20
20
|
- **Self-orientation**: [`package-self-orientation`](docs/contracts/package-self-orientation.md).
|
|
21
|
-
- **System map (maintainers)**: [`system-map`](docs/maintainers/system-map.md) —
|
|
22
|
-
- **Kernel + Router** — 9 Iron-Law rules
|
|
23
|
-
- **Trust & Safety** — enum
|
|
21
|
+
- **System map (maintainers)**: [`system-map`](docs/maintainers/system-map.md) — one-page overview.
|
|
22
|
+
- **Kernel + Router** — 9 Iron-Law rules + routing: [`kernel-membership`](docs/contracts/kernel-membership.md) + [`rule-router`](docs/contracts/rule-router.md).
|
|
23
|
+
- **Trust & Safety** — enum + floors: [`trust-and-safety`](docs/contracts/trust-and-safety.md) + [`ADR-018`](docs/decisions/ADR-018-trust-and-safety-layer.md).
|
|
24
24
|
- **Content pipelines** (A→D): [`docs/architecture.md`](docs/architecture.md).
|
|
25
25
|
- **Editing this repo**: [`source-of-truth`](src/rules/source-of-truth.md) + [`agents-md-thin-root`](src/skills/agents-md-thin-root/SKILL.md).
|
|
26
26
|
- **Consumer story** — `npx` + `scripts/install.sh`: [`README.md`](README.md).
|
|
27
|
-
- **Personas** — 34 lenses (
|
|
28
|
-
- **Discovery** — workspaces/packs: [`ADR-013`](docs/decisions/ADR-013-discovery-frontmatter-contract.md) + [`customization`](docs/customization.md
|
|
29
|
-
- **Root & `agents/` layout** — `src/` = source ([`ADR-050`](docs/decisions/ADR-050-workspace-vs-package-root-boundary.md));
|
|
27
|
+
- **Personas** — 34 lenses (core + specialists + advisors): [`docs/personas.md`](docs/personas.md).
|
|
28
|
+
- **Discovery** — workspaces/packs: [`ADR-013`](docs/decisions/ADR-013-discovery-frontmatter-contract.md) + [`customization`](docs/customization.md).
|
|
29
|
+
- **Root & `agents/` layout** — `src/` = source ([`ADR-050`](docs/decisions/ADR-050-workspace-vs-package-root-boundary.md)); contract: [`agents-layout`](docs/contracts/agents-layout.md).
|
|
30
30
|
- **Security** — [`SECURITY.md`](SECURITY.md); [`docs/threat-model.md`](docs/threat-model.md).
|
|
31
|
+
- **Delegate & review**: subagents take independent-slice work, not serial; in a team (host-flag gated) the lead coordinates, teammates implement; no mutating session ends without neutral review — [`delegation-policy`](dist/agent-src/rules/delegation-policy.md).
|
|
31
32
|
|
|
32
33
|
## Emergency triage — when nothing else is reachable
|
|
33
34
|
|
package/CHANGELOG.md
CHANGED
|
@@ -312,6 +312,171 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
|
|
|
312
312
|
> that forces a new era split (`# Era: 9.28.x`, etc.) — see
|
|
313
313
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
314
314
|
|
|
315
|
+
## [9.29.0](https://github.com/event4u-app/agent-config/compare/9.28.0...9.29.0) (2026-08-09)
|
|
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
|
|
371
|
+
|
|
372
|
+
* **roadmap:** close Phase 4 of road-to-rule-delivery-integrity ([5db59bc](https://github.com/event4u-app/agent-config/commit/5db59bc4410488eb22717c8d0606b8eca10bcfa4))
|
|
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))
|
|
378
|
+
|
|
379
|
+
Tests: 12438 (+297 since 9.28.0)
|
|
380
|
+
|
|
381
|
+
## [9.28.0](https://github.com/event4u-app/agent-config/compare/9.27.0...9.28.0) (2026-08-09)
|
|
382
|
+
|
|
383
|
+
### Release highlights
|
|
384
|
+
|
|
385
|
+
<!-- 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:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 63825ba, 9cd21cb, ae6f30e, 3d684ef, 909235c, 103a22b +2 more.
|
|
387
|
+
- **Default changes + migration:** _none_
|
|
388
|
+
- **Security and correctness:** _none_
|
|
389
|
+
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 2837fb7.
|
|
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
|
+
|
|
315
480
|
## [9.27.0](https://github.com/event4u-app/agent-config/compare/9.26.0...9.27.0) (2026-08-07)
|
|
316
481
|
|
|
317
482
|
### Release highlights
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [](https://www.npmjs.com/package/@event4u/agent-config) [](https://glama.ai/mcp/servers/event4u-app/agent-config) [](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
|
|
6
6
|
|
|
7
|
-
[](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/)
|
|
8
8
|
|
|
9
9
|
**Try it in 30 seconds** — drop one read-only subagent into any repo and watch it gate "done": `@production-validator check this branch is actually done`. No wizard, no lock-in, nothing else installed — the [30-second wedge ↓](#quickstart) is the whole first step. Start at the proof, not the catalog: **[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)**.
|
|
10
10
|
|
|
@@ -65,21 +65,30 @@ defaults:
|
|
|
65
65
|
# reason. `manual` is NEVER part of the auto chain (it would
|
|
66
66
|
# always "succeed" and silently turn every call into a
|
|
67
67
|
# copy-paste request) — it stays an explicit opt-in.
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
#
|
|
68
|
+
# THE SHIPPED DEFAULT (road-to-always-on-orchestration
|
|
69
|
+
# Phase 3.1 — CLI-first is the owner-set transport doctrine):
|
|
70
|
+
# ride the vendor CLI under your subscription first, fall to
|
|
71
|
+
# the metered API only where no CLI resolves. Pin `manual` /
|
|
72
|
+
# `api` / `cli` here (or per-member below) to override it.
|
|
73
|
+
# `cli_call_budget` below ships populated with a generous
|
|
74
|
+
# per-provider guard so this default never runs your
|
|
75
|
+
# subscription quota uncapped.
|
|
72
76
|
#
|
|
73
77
|
# Precedence: invocation flag > per-member mode > defaults.mode >
|
|
74
78
|
# built-in. Two DIFFERENT defaults sit at the bottom, and they are not
|
|
75
79
|
# the same thing:
|
|
76
|
-
# · omit `defaults.mode` entirely and the loader fills "
|
|
77
|
-
# what every real config
|
|
80
|
+
# · omit `defaults.mode` entirely and the loader fills "auto" (was
|
|
81
|
+
# "api" before the Phase 3.1 flip) — that is what every real config
|
|
82
|
+
# file observes.
|
|
78
83
|
# · the resolver's built-in fallback, reached only when no layer at all
|
|
79
84
|
# supplies a mode (a settings dict handed straight to the resolver,
|
|
80
85
|
# no config file involved), is "manual" — free, no key. A caller who
|
|
81
|
-
# named no transport has not asked to spend money.
|
|
82
|
-
|
|
86
|
+
# named no transport has not asked to spend money. This did NOT flip
|
|
87
|
+
# alongside the loader default: `auto` still resolves to a paying
|
|
88
|
+
# rung when no CLI is usable, so flipping this too would let a
|
|
89
|
+
# caller that bypassed the config file spend money on a preference
|
|
90
|
+
# it never stated.
|
|
91
|
+
mode: auto
|
|
83
92
|
|
|
84
93
|
# Default number of debate rounds per /council invocation.
|
|
85
94
|
#
|
|
@@ -179,26 +188,34 @@ debate:
|
|
|
179
188
|
threshold_usd: 1.00
|
|
180
189
|
show_per_member: true
|
|
181
190
|
|
|
182
|
-
# Per-day call-count guard for `mode: cli` members. The
|
|
183
|
-
# `cost_budget` block skips CLI calls because they are
|
|
184
|
-
# but provider subscriptions still carry their own quotas
|
|
185
|
-
# 5h windows, ChatGPT Plus message caps, Gemini free-tier
|
|
186
|
-
# limits).
|
|
187
|
-
#
|
|
191
|
+
# Per-day call-count guard for `mode: cli` / `mode: auto` members. The
|
|
192
|
+
# standard `cost_budget` block skips CLI calls because they are
|
|
193
|
+
# billable=False — but provider subscriptions still carry their own quotas
|
|
194
|
+
# (Claude Pro 5h windows, ChatGPT Plus message caps, Gemini free-tier
|
|
195
|
+
# per-day limits). The loader SHIPS EVERY known provider populated at
|
|
196
|
+
# 50/day by default (road-to-always-on-orchestration Phase 3.4) — a config
|
|
197
|
+
# that omits this block entirely, or omits one provider from the map
|
|
198
|
+
# below, still gets that floor for the missing entries. It is a GUARD
|
|
199
|
+
# against an always-on `auto` default silently exhausting a subscription's
|
|
200
|
+
# plan quota, not a brake — override a provider explicitly to tighten it
|
|
201
|
+
# (worked example below) or loosen it further.
|
|
188
202
|
#
|
|
189
203
|
# Counter state persists at ~/.event4u/agent-config/cli-calls.json
|
|
190
204
|
# with daily UTC reset. Wired by Phase 1 of the CLI-transport roadmap.
|
|
191
205
|
#
|
|
192
|
-
#
|
|
193
|
-
#
|
|
194
|
-
#
|
|
195
|
-
#
|
|
196
|
-
#
|
|
197
|
-
#
|
|
198
|
-
# a
|
|
199
|
-
#
|
|
200
|
-
#
|
|
201
|
-
#
|
|
206
|
+
# The three entries below TIGHTEN the 50/day floor, deliberately: `mode:
|
|
207
|
+
# auto` prefers the cli rung, so a config that consults heavily wants a
|
|
208
|
+
# number sized to its own worst case, not the generic guard. Sized from
|
|
209
|
+
# the worst case one invocation can cost — a deep debate is at most
|
|
210
|
+
# `debate_max_rounds` (4) calls per member — so 24 permits roughly six
|
|
211
|
+
# full deep debates per provider per day before the guard fires. That is
|
|
212
|
+
# well inside a Pro-tier window while still bounding a runaway loop, and
|
|
213
|
+
# failures count too (a wedged CLI cannot burn the whole budget retrying).
|
|
214
|
+
# Gemini's free tier is the tightest, hence the lower cap. xai and
|
|
215
|
+
# perplexity are left unlisted here and so keep the loader's 50/day floor —
|
|
216
|
+
# raise or lower any of the five if you consult heavily or want a tighter
|
|
217
|
+
# rein; `council:quota` reports usage and `council:quota --reset` clears
|
|
218
|
+
# the day.
|
|
202
219
|
cli_call_budget:
|
|
203
220
|
max_calls_per_day:
|
|
204
221
|
anthropic: 24
|
|
@@ -207,6 +224,20 @@ cli_call_budget:
|
|
|
207
224
|
# Warn once usage crosses this fraction of a cap (0..1).
|
|
208
225
|
warn_at: 0.8
|
|
209
226
|
|
|
227
|
+
# Quorum for a council pass to CONCLUDE (road-to-always-on-orchestration
|
|
228
|
+
# Phase 3.3). Default "majority" resolves to ceil(n / 2) enabled members —
|
|
229
|
+
# a SIMPLE majority, deliberately not "more than half": at n=2 that is
|
|
230
|
+
# 1-of-2, because requiring 2-of-2 turns any single absent member into a
|
|
231
|
+
# deadlocked release gate. Below quorum the pass is `inconclusive` and, at
|
|
232
|
+
# a release gate, HOLDS for a human — never silently downgraded to
|
|
233
|
+
# advisory. Set an explicit integer to require a fixed count instead:
|
|
234
|
+
#
|
|
235
|
+
# quorum: 2
|
|
236
|
+
#
|
|
237
|
+
# See docs/contracts/ai-council-config.md § Quorum for the full resolver
|
|
238
|
+
# contract and the manifest.json / rendered-report fields it feeds.
|
|
239
|
+
quorum: majority
|
|
240
|
+
|
|
210
241
|
# Per-member configuration — you decide what may spend; detection tells
|
|
211
242
|
# you what is already here.
|
|
212
243
|
#
|
|
@@ -82,6 +82,30 @@ is exactly why it is trustworthy and exactly why it is not sufficient.
|
|
|
82
82
|
|
|
83
83
|
`--scan-only` stops here.
|
|
84
84
|
|
|
85
|
+
The report also carries the **delivered rule payload** split by carrier (project
|
|
86
|
+
projection vs machine-global install, chars/4) and the store's **language-pin
|
|
87
|
+
rate** against the 9.1-39.2 % band M5 observed — round-6 Phase 4.3/4.5. Two
|
|
88
|
+
readings of that block, both deliberate:
|
|
89
|
+
|
|
90
|
+
- The payload is measured from the carriers **as they stand at scan time**, never
|
|
91
|
+
per session. A transcript records no system or tools field and the carriers
|
|
92
|
+
change under the sessions, so a per-session figure would be a fabrication.
|
|
93
|
+
- The band verdict is withheld below 1 978 assistant turns — the smallest corpus
|
|
94
|
+
the band was derived from — so it reports on behaviour rather than on corpus
|
|
95
|
+
size.
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
agent-config conformance:behavior --record # append to the default series
|
|
99
|
+
agent-config conformance:behavior --record <path> # or a path you choose
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`--record` is the forward capture: one line per run into the gitignored
|
|
103
|
+
`agents/runtime/state/conformance-rates.jsonl`, keyed by a **digest** of the
|
|
104
|
+
store path rather than the path itself (the real slug carries a real name and
|
|
105
|
+
often a customer identifier). The record has no field able to hold a path, a
|
|
106
|
+
prompt, or a session id. Without it the project-identity variable cannot be
|
|
107
|
+
recovered later, which is why cancelling the volume test required adding it.
|
|
108
|
+
|
|
85
109
|
### 2 — Read the transcripts (subagent fan-out)
|
|
86
110
|
|
|
87
111
|
The scan cannot see a rule that has no gate: an ask handed over as a trailing
|
|
@@ -159,8 +159,8 @@ If no orchestration lines exist yet (telemetry capture not yet running or
|
|
|
159
159
|
no delegated dispatches this month), surface:
|
|
160
160
|
|
|
161
161
|
> No orchestration telemetry yet — subagent dispatches begin writing to
|
|
162
|
-
> `agents/runtime/state/audit/YYYY-MM.jsonl` once
|
|
163
|
-
>
|
|
162
|
+
> `agents/runtime/state/audit/YYYY-MM.jsonl` once a dispatch runs (always-on
|
|
163
|
+
> orchestration: the layer has no per-run on/off setting any more).
|
|
164
164
|
|
|
165
165
|
Skip this step entirely if the user did not ask about orchestration telemetry
|
|
166
166
|
and there is no `agents/runtime/state/audit/` directory.
|
|
@@ -29,11 +29,11 @@ attacker — a second strong model with repo access instead of the host model
|
|
|
29
29
|
critiquing itself. Use it as the **escalation rung**: single-model
|
|
30
30
|
self-review found nothing, or the stakes are high.
|
|
31
31
|
|
|
32
|
-
### 1. Gate — `
|
|
32
|
+
### 1. Gate — `/team` availability
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
**STOP**.
|
|
34
|
+
Run the availability check from `/team` (master) § "Availability gate":
|
|
35
|
+
codex CLI + auth, and `emergency.orchestration_halt`. Either check fails →
|
|
36
|
+
print the matching block and **STOP**.
|
|
37
37
|
|
|
38
38
|
### 2. Gate — plugin presence (fail closed)
|
|
39
39
|
|
|
@@ -73,12 +73,13 @@ on quota exhaustion surface the transport's refusal, do not retry.
|
|
|
73
73
|
## Output format
|
|
74
74
|
|
|
75
75
|
- The plugin's adversarial findings, verbatim.
|
|
76
|
-
- Gate failures print exactly one block (
|
|
77
|
-
block) and stop.
|
|
76
|
+
- Gate failures print exactly one block (availability/halt block or
|
|
77
|
+
fail-closed block) and stop.
|
|
78
78
|
|
|
79
79
|
## Do NOT
|
|
80
80
|
|
|
81
|
-
- Do NOT run when `
|
|
81
|
+
- Do NOT run when `/team` is unavailable (codex CLI/auth missing) or
|
|
82
|
+
halted — matching block, stop.
|
|
82
83
|
- Do NOT reimplement the adversarial pass inline when the plugin is absent —
|
|
83
84
|
fail closed with the doctor pointer.
|
|
84
85
|
- Do NOT skip the free first rung reflexively — the single-model
|
|
@@ -27,16 +27,16 @@ repo. On Claude Code hosts it delegates to the official plugin's
|
|
|
27
27
|
`/codex:rescue`. This is the **only wrapper that delegates write access**,
|
|
28
28
|
so it carries a second opt-in on top of the family gate.
|
|
29
29
|
|
|
30
|
-
### 1. Gate — `
|
|
30
|
+
### 1. Gate — `/team` availability
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
**STOP**.
|
|
32
|
+
Run the availability check from `/team` (master) § "Availability gate":
|
|
33
|
+
codex CLI + auth, and `emergency.orchestration_halt`. Either check fails →
|
|
34
|
+
print the matching block and **STOP**.
|
|
35
35
|
|
|
36
36
|
### 2. Gate — `ai_team.allow_delegate` (second opt-in)
|
|
37
37
|
|
|
38
38
|
Read `ai_team.allow_delegate`. Missing or `false` (the shipped default) →
|
|
39
|
-
refuse with the
|
|
39
|
+
refuse with the opt-in pointer and **STOP**:
|
|
40
40
|
|
|
41
41
|
> `/team delegate` is disabled (`ai_team.allow_delegate: false`, the
|
|
42
42
|
> default). It is the only team-mode wrapper that hands **write access** to
|
|
@@ -44,15 +44,15 @@ refuse with the enable pointer and **STOP**:
|
|
|
44
44
|
>
|
|
45
45
|
> ```yaml
|
|
46
46
|
> ai_team:
|
|
47
|
-
> enabled: true
|
|
48
47
|
> allow_delegate: true
|
|
49
48
|
> ```
|
|
50
49
|
>
|
|
51
50
|
> Key reference: `docs/contracts/ai-team-config.md`.
|
|
52
51
|
|
|
53
52
|
Deterministic mirror of gates 1+2: `npx tsx src/scripts/ai_team/team_dispatch.ts
|
|
54
|
-
--delegate-gate` exits non-zero (with the pointer on stderr) unless
|
|
55
|
-
|
|
53
|
+
--delegate-gate` exits non-zero (with the pointer on stderr) unless `/team`
|
|
54
|
+
is available AND `allow_delegate` is true — run it instead of hand-parsing
|
|
55
|
+
the YAML when a shell is available.
|
|
56
56
|
|
|
57
57
|
### 3. Gate — plugin presence (fail closed)
|
|
58
58
|
|
|
@@ -91,14 +91,15 @@ opens a PR on top of them.
|
|
|
91
91
|
## Output format
|
|
92
92
|
|
|
93
93
|
- The plugin's rescue/delegation result, verbatim.
|
|
94
|
-
- Gate failures print exactly one block (
|
|
95
|
-
refusal, or fail-closed block) and stop.
|
|
94
|
+
- Gate failures print exactly one block (availability/halt block,
|
|
95
|
+
allow_delegate refusal, or fail-closed block) and stop.
|
|
96
96
|
|
|
97
97
|
## Do NOT
|
|
98
98
|
|
|
99
|
-
- Do NOT run when `
|
|
99
|
+
- Do NOT run when `/team` is unavailable (codex CLI/auth missing) or
|
|
100
|
+
halted — matching block, stop.
|
|
100
101
|
- Do NOT run when `ai_team.allow_delegate` is false — refusal block, stop.
|
|
101
|
-
Never treat
|
|
102
|
+
Never treat availability alone as delegate authorization.
|
|
102
103
|
- Do NOT reimplement the worker inline when the plugin is absent — fail
|
|
103
104
|
closed with the doctor pointer.
|
|
104
105
|
- Do NOT commit, push, or open a PR over the worker's edits — review is the
|
|
@@ -6,7 +6,7 @@ argument-hint: "[--background]"
|
|
|
6
6
|
pack: meta
|
|
7
7
|
tier: 2
|
|
8
8
|
visibility: internal
|
|
9
|
-
description: Thin wrapper — cross-model review of the current diff via the official plugin (/codex:review). Gated on
|
|
9
|
+
description: Thin wrapper — cross-model review of the current diff via the official plugin (/codex:review). Gated on /team availability (codex CLI + auth); fails closed when the plugin is absent.
|
|
10
10
|
cluster: team
|
|
11
11
|
sub: review
|
|
12
12
|
suggestion:
|
|
@@ -26,11 +26,11 @@ Thin wrapper: cross-model review of the current change. On Claude Code hosts
|
|
|
26
26
|
it delegates verbatim to the official plugin's `/codex:review` — this wrapper
|
|
27
27
|
owns only the governance gates around it.
|
|
28
28
|
|
|
29
|
-
### 1. Gate — `
|
|
29
|
+
### 1. Gate — `/team` availability
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
**STOP**. No plugin probe, no partial run.
|
|
31
|
+
Run the availability check from `/team` (master) § "Availability gate":
|
|
32
|
+
codex CLI + auth, and `emergency.orchestration_halt`. Either check fails →
|
|
33
|
+
print the matching block and **STOP**. No plugin probe, no partial run.
|
|
34
34
|
|
|
35
35
|
### 2. Gate — plugin presence (fail closed)
|
|
36
36
|
|
|
@@ -65,12 +65,13 @@ refusal, do not retry.
|
|
|
65
65
|
## Output format
|
|
66
66
|
|
|
67
67
|
- The plugin's review, verbatim.
|
|
68
|
-
- Nothing else on success; gate failures print exactly one block
|
|
69
|
-
|
|
68
|
+
- Nothing else on success; gate failures print exactly one block
|
|
69
|
+
(availability/halt block or fail-closed block) and stop.
|
|
70
70
|
|
|
71
71
|
## Do NOT
|
|
72
72
|
|
|
73
|
-
- Do NOT run when `
|
|
73
|
+
- Do NOT run when `/team` is unavailable (codex CLI/auth missing) or
|
|
74
|
+
halted — matching block, stop.
|
|
74
75
|
- Do NOT reimplement the review inline when the plugin is absent — fail
|
|
75
76
|
closed with the doctor pointer.
|
|
76
77
|
- Do NOT edit files, commit, push, or open a PR — this wrapper is read-only.
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
pack: meta
|
|
6
6
|
tier: 2
|
|
7
7
|
visibility: internal
|
|
8
|
-
description: Thin wrapper — plugin job status via /codex:status plus a quota block (shared openai counter vs team + council ceilings). Gated on
|
|
8
|
+
description: Thin wrapper — plugin job status via /codex:status plus a quota block (shared openai counter vs team + council ceilings). Gated on codex CLI/auth availability; fails closed without the plugin.
|
|
9
9
|
cluster: team
|
|
10
10
|
sub: status
|
|
11
11
|
suggestion:
|
|
@@ -25,11 +25,11 @@ Thin wrapper: team-mode status. On Claude Code hosts it delegates to the
|
|
|
25
25
|
official plugin's `/codex:status` and appends **our** quota block —
|
|
26
26
|
the one piece of state the plugin does not know about.
|
|
27
27
|
|
|
28
|
-
### 1. Gate — `
|
|
28
|
+
### 1. Gate — `/team` availability
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
**STOP**.
|
|
30
|
+
Run the availability check from `/team` (master) § "Availability gate":
|
|
31
|
+
codex CLI + auth, and `emergency.orchestration_halt`. Either check fails →
|
|
32
|
+
print the matching block and **STOP**.
|
|
33
33
|
|
|
34
34
|
### 2. Gate — plugin presence (fail closed)
|
|
35
35
|
|
|
@@ -102,12 +102,13 @@ compatibility).
|
|
|
102
102
|
ceilings + per-path OPEN/BLOCKED verdict).
|
|
103
103
|
- Any `team.gate: BLOCK n/N` ledger lines, verbatim, after the quota
|
|
104
104
|
block — only when present.
|
|
105
|
-
- Gate failures print exactly one block (
|
|
106
|
-
block) and stop.
|
|
105
|
+
- Gate failures print exactly one block (availability/halt block or
|
|
106
|
+
fail-closed block) and stop.
|
|
107
107
|
|
|
108
108
|
## Do NOT
|
|
109
109
|
|
|
110
|
-
- Do NOT run when `
|
|
110
|
+
- Do NOT run when `/team` is unavailable (codex CLI/auth missing) or
|
|
111
|
+
halted — matching block, stop.
|
|
111
112
|
- Do NOT fabricate a count when the counter file is unreadable — print
|
|
112
113
|
`Quota: unavailable (<reason>)` instead of a guessed number.
|
|
113
114
|
- Do NOT write to `cli-calls.json` — the transport owns the counter; this
|