@event4u/agent-config 2.12.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/.agent-src/commands/council/analysis.md +142 -0
  2. package/.agent-src/commands/council/debate.md +129 -0
  3. package/.agent-src/commands/council/default.md +8 -0
  4. package/.agent-src/commands/council/design.md +16 -12
  5. package/.agent-src/commands/council/optimize.md +16 -15
  6. package/.agent-src/commands/council/pr.md +12 -12
  7. package/.agent-src/commands/council.md +48 -2
  8. package/.agent-src/commands/memory/learn-low-impact.md +143 -0
  9. package/.agent-src/personas/advisors/contrarian.md +95 -0
  10. package/.agent-src/personas/advisors/executor.md +99 -0
  11. package/.agent-src/personas/advisors/expansionist.md +98 -0
  12. package/.agent-src/personas/advisors/first-principles.md +98 -0
  13. package/.agent-src/personas/advisors/outsider.md +102 -0
  14. package/.agent-src/rules/ask-when-uncertain.md +10 -6
  15. package/.agent-src/rules/copilot-routing.md +19 -0
  16. package/.agent-src/rules/devcontainer-routing.md +20 -0
  17. package/.agent-src/rules/external-reference-deep-dive.md +1 -1
  18. package/.agent-src/rules/fast-path-marker-visibility.md +38 -0
  19. package/.agent-src/rules/laravel-routing.md +20 -0
  20. package/.agent-src/rules/low-impact-corpus-privacy-floor.md +74 -0
  21. package/.agent-src/rules/symfony-routing.md +20 -0
  22. package/.agent-src/skills/ai-council/SKILL.md +388 -10
  23. package/.agent-src/skills/copilot-config/SKILL.md +1 -1
  24. package/.agent-src/skills/devcontainer/SKILL.md +1 -1
  25. package/.agent-src/skills/laravel/SKILL.md +1 -1
  26. package/.agent-src/skills/project-analysis-core/SKILL.md +1 -1
  27. package/.agent-src/skills/project-analyzer/SKILL.md +1 -1
  28. package/.agent-src/skills/symfony-workflow/SKILL.md +1 -1
  29. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  30. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  31. package/.claude-plugin/marketplace.json +4 -1
  32. package/AGENTS.md +1 -1
  33. package/CHANGELOG.md +346 -124
  34. package/CONTRIBUTING.md +5 -0
  35. package/README.md +6 -6
  36. package/config/agent-settings.template.yml +5 -93
  37. package/config/gitignore-block.txt +6 -0
  38. package/docs/architecture/multi-tool-projection.md +53 -0
  39. package/docs/architecture/{compression.md → source-projection.md} +21 -3
  40. package/docs/architecture.md +15 -15
  41. package/docs/archive/CHANGELOG-pre-2.11.0.md +141 -0
  42. package/docs/catalog.md +25 -12
  43. package/docs/contracts/adr-architectural-consensus-mechanism.md +68 -0
  44. package/docs/contracts/adr-level-6-productization.md +7 -9
  45. package/docs/contracts/ai-council-config.md +658 -0
  46. package/docs/contracts/command-clusters.md +58 -2
  47. package/docs/contracts/command-surface-tiers.md +3 -2
  48. package/docs/contracts/cost-profile-defaults.md +5 -0
  49. package/docs/contracts/decision-engine-gates.md +5 -0
  50. package/docs/contracts/decision-trace-v1.md +2 -2
  51. package/docs/contracts/file-ownership-matrix.json +1735 -72
  52. package/docs/contracts/installed-tools-lockfile.md +2 -1
  53. package/docs/contracts/low-impact-corpus-format.md +95 -0
  54. package/docs/contracts/mcp-beta-criteria.md +6 -5
  55. package/docs/contracts/mcp-cloud-scope.md +5 -4
  56. package/docs/contracts/multi-tool-projection-fidelity.md +115 -0
  57. package/docs/contracts/release-trunk-sync.md +4 -3
  58. package/docs/contracts/tier-3-contrib-plugin.md +5 -6
  59. package/docs/getting-started.md +2 -2
  60. package/docs/guidelines/agent-infra/installed-tools-manifest.md +2 -1
  61. package/docs/installation.md +32 -0
  62. package/package.json +1 -1
  63. package/scripts/_archive/README.md +59 -0
  64. package/scripts/_cli/cmd_doctor.py +134 -0
  65. package/scripts/ai_council/_default_prices.py +10 -1
  66. package/scripts/ai_council/advisors.py +148 -0
  67. package/scripts/ai_council/airgap.py +165 -0
  68. package/scripts/ai_council/cli_hints.py +123 -0
  69. package/scripts/ai_council/clients.py +959 -5
  70. package/scripts/ai_council/compile_corpus.py +178 -0
  71. package/scripts/ai_council/confidence_gate.py +156 -0
  72. package/scripts/ai_council/config.py +1364 -0
  73. package/scripts/ai_council/consensus.py +329 -0
  74. package/scripts/ai_council/events_log.py +137 -0
  75. package/scripts/ai_council/learn_low_impact_preview.py +252 -0
  76. package/scripts/ai_council/low_impact.py +714 -0
  77. package/scripts/ai_council/low_impact_corpus.py +466 -0
  78. package/scripts/ai_council/low_impact_intake.py +163 -0
  79. package/scripts/ai_council/modes.py +6 -1
  80. package/scripts/ai_council/necessity.py +782 -0
  81. package/scripts/ai_council/orchestrator.py +872 -20
  82. package/scripts/ai_council/probation_gate.py +152 -0
  83. package/scripts/ai_council/prompts.py +335 -0
  84. package/scripts/ai_council/redact_low_impact_entry.py +155 -0
  85. package/scripts/ai_council/replay.py +155 -0
  86. package/scripts/ai_council/session.py +19 -1
  87. package/scripts/ai_council/shadow_dispatch.py +235 -0
  88. package/scripts/ai_council/solo_dispatch.py +226 -0
  89. package/scripts/audit_cloud_compatibility.py +74 -0
  90. package/scripts/audit_command_surface.py +363 -0
  91. package/scripts/check_compressed_paths.py +6 -1
  92. package/scripts/check_council_layout.py +11 -0
  93. package/scripts/ci_time_ratio.py +168 -0
  94. package/scripts/council_cli.py +2005 -30
  95. package/scripts/install.sh +12 -0
  96. package/scripts/measure_projection_bytes.py +159 -0
  97. package/scripts/measure_roadmap_trajectory.py +112 -0
  98. package/scripts/probe_projection_fidelity.py +202 -0
  99. package/scripts/score_skill_selection.py +198 -0
  100. package/scripts/skill_collision_clusters.py +162 -0
  101. /package/scripts/{_backfill_skill_domains.py → _archive/_backfill_skill_domains.py} +0 -0
  102. /package/scripts/{_bootstrap_tier_frontmatter.py → _archive/_bootstrap_tier_frontmatter.py} +0 -0
  103. /package/scripts/{_p43_bodies.py → _archive/_p43_bodies.py} +0 -0
  104. /package/scripts/{_p43_compress.py → _archive/_p43_compress.py} +0 -0
  105. /package/scripts/{_p4_migrate.py → _archive/_p4_migrate.py} +0 -0
  106. /package/scripts/{_phase2_shim_helper.py → _archive/_phase2_shim_helper.py} +0 -0
  107. /package/scripts/{_pilot_council_question.py → _archive/_pilot_council_question.py} +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: devcontainer
3
- description: "Use when configuring DevContainers or GitHub Codespaces — devcontainer.json, custom images, secrets, VS Code features even when the user just says 'why does my Codespace not start'."
3
+ description: "Wire up DevContainers / GitHub Codespaces — `devcontainer.json`, container images, secrets, VS Code features, port forwarding. NOT for tuning Copilot itself (use `copilot-config`)."
4
4
  source: package
5
5
  domain: devops
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: laravel
3
- description: "Writes Laravel code following framework conventions, project architecture, and modern best practices for controllers, requests, services, jobs, events, policies, and application structure."
3
+ description: "Writes Laravel PHP Eloquent, Artisan controllers, FormRequests, jobs, events, policies, providers. For Symfony / Doctrine use `symfony-workflow`. For framework-free PHP use `php-coder`."
4
4
  source: package
5
5
  domain: engineering
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: project-analysis-core
3
- description: "Use for the universal deep-analysis workflow: project discovery, version resolution, docs loading, architecture mapping, execution flow, and package research."
3
+ description: "Raw discovery primitives project discovery, version resolution, docs loading, architecture mapping, execution flow. Called by `universal-project-analysis`. Single-pass scan → `project-analyzer`."
4
4
  source: package
5
5
  domain: discovery
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: project-analyzer
3
- description: "ONLY when user explicitly requests: full project analysis, tech stack detection, or structured analysis documents for agents/analysis/. NOT for regular feature work."
3
+ description: "ONLY when user asks for single-pass tech-stack detection or `agents/analysis/` write-up. Deep multi-pass audit → `universal-project-analysis`. Raw primitives `project-analysis-core`."
4
4
  source: package
5
5
  domain: discovery
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: symfony-workflow
3
- description: "Writes Symfony code following framework conventions, container wiring, and modern best practices for controllers, services, bundles, Messenger, Doctrine, security, and console commands."
3
+ description: "Writes Symfony PHP DI container, bundles, Doctrine, Messenger, Security voters, console commands. For Laravel / Eloquent / Artisan use `laravel`. For framework-free PHP use `php-coder`."
4
4
  source: package
5
5
  domain: engineering
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: universal-project-analysis
3
- description: "ONLY when user explicitly requests: full project analysis, deep codebase audit, or comprehensive architecture review. Routes to core and framework-specific analysis skills."
3
+ description: "ONLY when user asks for deep multi-pass codebase audit orchestrator routing to `project-analysis-core` + framework-specific `project-analysis-*`. Single-pass scan → `project-analyzer`."
4
4
  source: package
5
5
  domain: discovery
6
6
  ---
@@ -39,7 +39,7 @@ schema_version: 1
39
39
  # CI guard: a release bump of `package.json` must update this value
40
40
  # in lockstep — see scripts/check_template_pin_drift.py (road-to-
41
41
  # portable-runtime-and-update-check P3.3).
42
- agent_config_version: "2.8.0"
42
+ agent_config_version: "2.13.0"
43
43
 
44
44
  # --- Project identity ---
45
45
  project:
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
9
- "version": "2.12.0",
9
+ "version": "2.14.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
@@ -105,6 +105,8 @@
105
105
  "./.claude/skills/copilot-config",
106
106
  "./.claude/skills/cost-report",
107
107
  "./.claude/skills/council",
108
+ "./.claude/skills/council-analysis",
109
+ "./.claude/skills/council-debate",
108
110
  "./.claude/skills/council-default",
109
111
  "./.claude/skills/council-design",
110
112
  "./.claude/skills/council-optimize",
@@ -206,6 +208,7 @@
206
208
  "./.claude/skills/memory",
207
209
  "./.claude/skills/memory-add",
208
210
  "./.claude/skills/memory-consolidation",
211
+ "./.claude/skills/memory-learn-low-impact",
209
212
  "./.claude/skills/memory-load",
210
213
  "./.claude/skills/memory-mine-session",
211
214
  "./.claude/skills/memory-promote",
package/AGENTS.md CHANGED
@@ -18,7 +18,7 @@ task ci # full pipeline — green before PR
18
18
 
19
19
  - **Package self-orientation** (beta) — identity, four-wing cognition map, repo layout, tech stack, key-rules table, telemetry, command-suggester: [`docs/contracts/package-self-orientation.md`](docs/contracts/package-self-orientation.md).
20
20
  - **Kernel + Router** (beta) — 9 always-loaded Iron-Law rules, tier-1 / tier-2 routing, cost profiles, per-rule char caps enforced by `task lint-rule-budget`: [`kernel-membership`](docs/contracts/kernel-membership.md) + [`rule-router`](docs/contracts/rule-router.md).
21
- - **Content pipelines** — A [compression](docs/architecture/compression.md), B [Augment projection](docs/architecture/augment-projection.md), C [multi-tool projection](docs/architecture/multi-tool-projection.md), D [Claude.ai bundle](docs/architecture/claude-bundle.md). Index: [`docs/architecture.md`](docs/architecture.md).
21
+ - **Content pipelines** — A [source projection](docs/architecture/source-projection.md), B [Augment projection](docs/architecture/augment-projection.md), C [multi-tool projection](docs/architecture/multi-tool-projection.md), D [Claude.ai bundle](docs/architecture/claude-bundle.md). Index: [`docs/architecture.md`](docs/architecture.md).
22
22
  - **Editing this repo** — Iron-Law rules (portability, source-of-truth, skill-quality) + Thin-Root contract: [`augment-portability`](.agent-src/rules/augment-portability.md), [`augment-source-of-truth`](.agent-src/rules/augment-source-of-truth.md), [`skill-quality`](.agent-src/rules/skill-quality.md), [`agents-md-thin-root`](.agent-src/skills/agents-md-thin-root/SKILL.md).
23
23
  - **Consumer story** — `npx` + `scripts/install.sh` + `.agent-settings.yml` opt-in flags, sandbox/offline install paths, verified-offline manifest: [`README.md`](README.md).
24
24
  - **Personas** — 11 review-lens cast (6 core · 5 specialist), `personas:` vs `/mode` axes, citation map, override pattern: [`docs/personas.md`](docs/personas.md), schema [`docs/contracts/persona-schema.md`](docs/contracts/persona-schema.md) (beta).
package/CHANGELOG.md CHANGED
@@ -16,6 +16,184 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
16
16
 
17
17
  ## [Unreleased]
18
18
 
19
+ **PR #150 follow-up hardening (`step-9-pr150-feedback-hardening`)** —
20
+ twelve-phase response to the Claude+GPT review findings on PR #150 plus
21
+ three user-requested settings-shape changes (CLI-default, preferred-single
22
+ member, low-impact dispatch) under one roadmap. New surfaces:
23
+
24
+ - **`defaults.member_mode: cli | api`** (default `cli`) — flips the
25
+ global transport default to CLI-first onboarding (subscription auth,
26
+ no API key). Per-member explicit `mode:` keeps overriding.
27
+ - **`routing.solo_member_fallback_chain: [provider, ...]`** — ordered
28
+ preference list for single-member dispatch. Disabled members are
29
+ skipped; duplicates rejected at config-load time; all-invalid
30
+ escalates to full council (never fails the decision). 15-minute
31
+ auth cache, 3-second timeout per probe.
32
+ - **`low_impact.dispatch: full | single`** (default `full`) — opt-in
33
+ cost-efficient routing for low-impact decisions through
34
+ `routing.solo_member_fallback_chain`. **Iron Law:** `high_impact`
35
+ and `user_required` dispatch are NOT configurable — config validator
36
+ rejects both top-level and `decision_resolution.classes.*` forms,
37
+ including YAML `<<:` anchor smuggling attempts. Sentinel in
38
+ `tests/test_iron_law_config.py`.
39
+ - **Shadow-mode safety net** — when `low_impact.dispatch: single` is
40
+ active, sample (default `0.1`) decisions go to both solo + full
41
+ council. Disagreements append to `agents/council-shadow-log.jsonl`
42
+ (privacy-redactor enforced). `agent-config council shadow-report`
43
+ computes the 7-day rolling SLO (`OK <5%` / `WARN 5–8%` / `BREACH
44
+ >8%`); pre-flight cost disclosure surfaces the verdict. No auto-
45
+ revert — humans decide.
46
+ - **Confidence gate — auto-escalation on uncertain solo runs**
47
+ (`scripts/ai_council/confidence_gate.py`) — every solo response is
48
+ scored before the verdict is returned. Four escalation reasons in
49
+ priority order: `refusal` (empty / refusal markers), `split`
50
+ (two-verdict / option-A-vs-B / Variante 1/2), `short_response`
51
+ (< 20 chars), `low_confidence` (explicit `Confidence: 0.X` marker
52
+ or hedge-word density below floor). Zero extra LLM calls —
53
+ heuristics run in-process. Escalations append `escalated: true` +
54
+ `escalation_reason` to `agents/council-shadow-log.jsonl`; the SLO
55
+ banner appends the rolling auto-escalation rate so quiet uncertainty
56
+ cannot hide behind a flat disagreement rate.
57
+ - **`low_impact.solo_confidence_floor: float`** (default `0.7`,
58
+ range `[0.0, 1.0]`) — threshold for the confidence gate.
59
+ **Iron Law:** `solo_confidence_floor` is also rejected on
60
+ top-level `high_impact:` and `user_required:` — those classes
61
+ never run solo, so a solo-specific knob there is incoherent.
62
+ - **`AGENT_CONFIG_FORCE_FULL_COUNCIL=1`** — per-invocation kill-switch
63
+ that forces full council regardless of `low_impact.dispatch`.
64
+ - **Airgap detection** (`scripts/ai_council/airgap.py`) — installer
65
+ first-run probes DNS for `api.anthropic.com`, `api.openai.com`,
66
+ `generativelanguage.googleapis.com` with 1s timeout per host. All
67
+ fail → banner `airgapped environment detected — defaulting to
68
+ mode: api` and `defaults.member_mode: api` recommendation.
69
+ - **Fast-path marker visibility Iron-Law rule**
70
+ (`.agent-src.uncompressed/rules/fast-path-marker-visibility.md`,
71
+ kernel-tier, always-active) — host agents MUST surface
72
+ `Resolved via low-impact council fast-path: …` markers verbatim;
73
+ swallowing them is a rule violation.
74
+ - **`/memory learn-low-impact --preview`** (default) / `--apply` —
75
+ preview shows promoted entries, refused entries with redaction
76
+ reasons, source-project-stripped diff, and the upstream PR body
77
+ draft before anything is written.
78
+ - **Corpus parser hardening** — typed `CorpusParseError(reason=...)`
79
+ replaces silent skip; seven failure-mode fixtures in
80
+ `tests/fixtures/corpus-robust/` (missing anchor · renamed heading ·
81
+ bullet-without-quotes · duplicate entry · anti-example wrongly
82
+ under Validated · malformed ISO timestamp · redactor-bypass).
83
+ Contract in `docs/contracts/low-impact-corpus-format.md`.
84
+ - **Fuzzy corpus matching (opt-in)** —
85
+ `low_impact.fuzzy_match.{enabled,threshold}` (defaults `false`,
86
+ `0.92`) using `difflib.SequenceMatcher`. High-impact trigger veto
87
+ + anti-example veto preserve the Iron Law.
88
+ - **CLI-binary UX** — pre-flight cost disclosure now prints
89
+ `member X skipped: binary not found, install via <hint>` per
90
+ skipped CLI member; hints sourced from
91
+ `scripts/ai_council/cli_hints.py`.
92
+ - **Doctor CLI checks** — `agent-config doctor --check council-cli`
93
+ reports per CLI member: binary present · auth probe · parse
94
+ fixture · quota remaining · billable flag.
95
+ - **Iron-Law bypass linter** — `audit_cloud_compatibility.py
96
+ --iron-law` scans `scripts/` for raw YAML loads of `ai-council.yml`
97
+ that skip the config validator; baseline is 0 findings; suppress
98
+ legitimate cases with `# iron-law-ok: <reason>` on the load line.
99
+
100
+ Surface delta: **4 new config knobs** (`defaults.member_mode`,
101
+ `routing.solo_member_fallback_chain`, `low_impact.dispatch`,
102
+ `low_impact.solo_confidence_floor`),
103
+ **1 new env-var kill-switch** (`AGENT_CONFIG_FORCE_FULL_COUNCIL`),
104
+ **1 new CLI subcommand** (`council shadow-report`), **1 new CLI flag**
105
+ (`council run --single`), **1 new always-active rule**
106
+ (`fast-path-marker-visibility`), **2 new local-only files**
107
+ (`agents/council-shadow-log.jsonl`, gitignored;
108
+ `scripts/ai_council/airgap.py`). Backward-compat: defaults map the
109
+ existing behaviour (`dispatch=full`, empty chain, `member_mode=cli`
110
+ in fresh installs; existing configs read unchanged). No migration
111
+ script — defaults are silent-safe.
112
+
113
+ **Low-impact corpus YAML lockfile (`step-10-corpus-yaml-lockfile`)** —
114
+ follow-up to the PR #150 review (Punkt 4): the Markdown parser used to
115
+ be the runtime source-of-truth for the low-impact decisions corpus,
116
+ making every human edit-variation (curly quotes, bullet style,
117
+ whitespace, heading rename) a potential parser bomb on the hot path.
118
+ Switched the runtime to a generated YAML lockfile while keeping
119
+ Markdown as the human-editable source. New surfaces:
120
+
121
+ - **`scripts/ai_council/compile_corpus.py`** — build tool that runs
122
+ `parse_corpus_strict()` over `agents/low-impact-decisions.md` and
123
+ emits `agents/low-impact-decisions.lock.yaml` (schema-v1, sorted
124
+ keys, deterministic). `--check` mode exits `1` on drift, `2` on
125
+ parse error.
126
+ - **`agents/low-impact-decisions.lock.yaml`** — generated, **committed**
127
+ lockfile. Schema `{schema_version: 1, provenance: {source_path,
128
+ source_sha256, last_upstreamed}, validated, probation, anti_examples}`.
129
+ Diffed in PR reviews alongside the Markdown source.
130
+ - **`low_impact_corpus.load_corpus_lock()`** — new primitive that
131
+ loads the YAML lockfile and re-materialises a `CorpusParseResult`.
132
+ Schema-version mismatch raises `CorpusParseError` with reason
133
+ `schema_version_mismatch`.
134
+ - **Lenient loaders prefer YAML** — `load_validated_phrases` and
135
+ `load_anti_example_phrases` (consumed by `necessity.py` and
136
+ `low_impact.py` on the hot path) check for the sibling `.lock.yaml`
137
+ first. Missing / malformed lockfile → silent fallback to lenient
138
+ Markdown parsing, so a fresh clone before `task sync` still works.
139
+ - **CI gate** — `task compile-corpus` runs as part of `task sync` and
140
+ `task consistency` (before `git diff --quiet`). A stale lockfile
141
+ fails CI the same way `.agent-src/` drift does.
142
+ - **Preview tool unchanged** — `learn_low_impact_preview.py` keeps
143
+ reading the Markdown directly via `parse_corpus_strict`; it runs
144
+ *before* `task sync` rebuilds the lockfile, so it must read whatever
145
+ the user just edited.
146
+
147
+ The Markdown parser stays in the repo as a build-time dependency, not
148
+ a runtime dependency — a parser regression breaks `task consistency`,
149
+ never the live council. Privacy floor (`low-impact-corpus-privacy-floor`)
150
+ unchanged: the redactor scans entry text, not file format.
151
+
152
+ **Council quota & necessity transparency (`step-8-quota-necessity-transparency`)** —
153
+ the council's two pre-flight gates (`cli_call_budget` and
154
+ `necessity_classifier`) become observable and aligned with the
155
+ "Council always active when enabled" mental model. New surfaces:
156
+
157
+ - `council run` / `council debate` print a one-line
158
+ `council:quota · <provider> used/limit · …` summary before the
159
+ first member fires. Only providers with a configured per-day cap
160
+ appear; uncapped providers are omitted (no false metering).
161
+ - `cli_call_budget.warn_at` (float, default `0.8`) — once
162
+ `used / max_calls_per_day >= warn_at`, the summary line is
163
+ prefixed `⚠️` and a `council:quota · WARN` line names the
164
+ providers near the wall.
165
+ - New `agent-config council quota` subcommand dumps today's
166
+ `~/.event4u/agent-config/cli-calls.json` state plus the configured
167
+ caps. `--reset <provider> --confirm` clears today's counter for one
168
+ provider for manual rollover.
169
+ - **Necessity tier split (D2):** `necessity_classifier.user_explicit_mode`
170
+ (default `warn-only`) separates the agent and user_explicit tiers.
171
+ User-typed `/council` calls proceed by default with an annotated
172
+ stdout line; agent-initiated dispatches keep `educate` behaviour.
173
+ New `warn-only` mode joins the existing `off | educate | block`
174
+ enum — annotates the verdict but never skips.
175
+ - **Persistent events log (D3):** every necessity-gate decision
176
+ (`proceed` / `skip_necessity`) and every quota block
177
+ (`block_quota`) appends one JSON line to `agents/council-events.log`
178
+ (gitignored; never committed). Schema v1 with `schema_version`,
179
+ `ts_utc`, `lens`, `invocation`, `action`, `verdict`,
180
+ `provider_caps`, `original_ask_hash`. `original_ask` is hashed
181
+ `sha256[:12]` before write — the raw prompt is never persisted
182
+ (privacy floor per `agents/low-impact-decisions.md`).
183
+ - **Kill-switch (D5):** `AGENT_CONFIG_NO_EVENTS_LOG=1` disables
184
+ every events-log write in-process. Mirrors the
185
+ `AGENT_CONFIG_LEGACY_ANCHOR=1` pattern from step-7.
186
+
187
+ Surface delta: **1 new subcommand** (`council quota`), **2 new
188
+ config knobs** (`cli_call_budget.warn_at`,
189
+ `necessity_classifier.user_explicit_mode`), **1 new local-only file**
190
+ (`agents/council-events.log`, gitignored). Backward-compat:
191
+ existing `.agent-settings.yml` and `agents/.ai-council.yml` work
192
+ unchanged; new knobs are optional. Docs:
193
+ [`docs/contracts/ai-council-config.md`](docs/contracts/ai-council-config.md)
194
+ + [`docs/installation.md`](docs/installation.md) § AI Council local
195
+ state.
196
+
19
197
  Four roadmaps land in this release.
20
198
 
21
199
  **Tier-0 trim (`road-to-surface-discipline` Phase 1)** — six CLI
@@ -422,13 +600,171 @@ our recommendation order, not its support status.
422
600
  users" tension without removing any path that an existing user
423
601
  might rely on.
424
602
 
425
- # Era: 2.7.x — current
603
+ # Era: 2.11.x — current
426
604
 
427
- > Started at `2.7.0` (2026-05-13). Full entries live inline below.
605
+ > Started at `2.11.0` (2026-05-14). Full entries live inline below.
428
606
  > The drift test caps this era at 200 lines of entry body; growth past
429
- > that forces a new era split (`# Era: 2.8.x`, etc.) — see
607
+ > that forces a new era split (`# Era: 2.12.x`, etc.) — see
430
608
  > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
431
609
 
610
+ ## [2.14.0](https://github.com/event4u-app/agent-config/compare/2.13.0...2.14.0) (2026-05-15)
611
+
612
+ ### Features
613
+
614
+ * **ai-council:** switch low-impact corpus runtime to YAML lockfile ([c8a4b9c](https://github.com/event4u-app/agent-config/commit/c8a4b9c318f3b0c04b6fcd974790ba2bc2623554))
615
+ * **ai-council:** add corpus YAML compiler and lockfile ([50ffcb8](https://github.com/event4u-app/agent-config/commit/50ffcb809d633aeb760ea0865a90208be431de43))
616
+ * **council:** wire confidence gate into solo dispatch + shadow log ([fcd19d7](https://github.com/event4u-app/agent-config/commit/fcd19d7bd6e12b2c198ec2f3771da5c8c562cd17))
617
+ * **council:** add confidence_gate heuristics module ([acee171](https://github.com/event4u-app/agent-config/commit/acee17182770a7aa31574669b1f74b269ae34c27))
618
+ * **council:** add solo_confidence_floor config knob + Iron Law lock ([2afef0b](https://github.com/event4u-app/agent-config/commit/2afef0b8d853298be6b73da57bb53415acac798d))
619
+ * **audit:** --iron-law flag scans for validator bypasses (step-9 phase 11) ([2e0ef55](https://github.com/event4u-app/agent-config/commit/2e0ef55d625b60ef073b74e9a91a40478e6ff1e3))
620
+ * **ai-council:** airgap detection + installer first-run hook (step-9 phase 11) ([d528d88](https://github.com/event4u-app/agent-config/commit/d528d8832fba6893f52bad587365019016f060aa))
621
+ * **ai-council:** shadow-mode logger + shadow-report CLI (step-9 phase 10) ([052ed1f](https://github.com/event4u-app/agent-config/commit/052ed1f0355fb35277f80d1193cf912d3943753a))
622
+ * **ai-council:** solo-member dispatch via routing fallback chain ([4cf5738](https://github.com/event4u-app/agent-config/commit/4cf5738c209e5fc6ce3c7681112d4f3b4bb89ce9))
623
+ * **ai-council:** config schema for solo dispatch + Iron Law (step-9 phase 8) ([779f302](https://github.com/event4u-app/agent-config/commit/779f3025f3f78b1b275ce1ffb9364ae970d18424))
624
+ * **low-impact:** preview builder for learn-low-impact (step-9 phase 7) ([234647c](https://github.com/event4u-app/agent-config/commit/234647c81336aa30aac648774e0d2fa0416e8dcf))
625
+ * **low_impact:** emit normative fast-path markers per Iron-Law rule ([95b528b](https://github.com/event4u-app/agent-config/commit/95b528ba7dc1ec445c52cbe1844846612afd3d79))
626
+ * **rules:** add fast-path-marker-visibility Iron-Law rule ([82d97c2](https://github.com/event4u-app/agent-config/commit/82d97c206a5b439d535f1cac7777be82ff51269d))
627
+ * **council:** opt-in fuzzy corpus matching with safety vetoes (step-9 P5) ([903b9f1](https://github.com/event4u-app/agent-config/commit/903b9f1f244ee72f6e01ebdc4e8f3be51c76ef23))
628
+ * **council:** harden low-impact corpus parser with typed errors (step-9 P4) ([6e56737](https://github.com/event4u-app/agent-config/commit/6e567375ef8c379ec1696d5f35c41804276f6bbf))
629
+ * **doctor:** add council-cli health check (step-9 P3) ([fcb36f5](https://github.com/event4u-app/agent-config/commit/fcb36f584df423613d353c2119a13e842b52117d))
630
+ * **council:** surface CLI install hints when binary missing (step-9 phase 2) ([2507eea](https://github.com/event4u-app/agent-config/commit/2507eea06d8739bfffe1a036b284f6459ee329e4))
631
+ * **council:** persistent events log with privacy floor (step-8 phase 3) ([e2b30de](https://github.com/event4u-app/agent-config/commit/e2b30de6811b8affedf87c938f32d27d527222d0))
632
+ * **council:** necessity tier split with warn-only default (step-8 phase 2) ([3837299](https://github.com/event4u-app/agent-config/commit/3837299194ae20e09ab076e55f824d596815f1d7))
633
+ * **council:** add CLI quota observability (step-8 phase 1) ([c17d29b](https://github.com/event4u-app/agent-config/commit/c17d29b1ef4113f032ab492a6862aca624c45f48))
634
+ * **council:** enforce canonical output paths at runtime ([9fa50c4](https://github.com/event4u-app/agent-config/commit/9fa50c4d6ea759dd38ff32dbb114163037979b75))
635
+ * **ai-council:** Phase 12 — low-impact decisions corpus ([d82509b](https://github.com/event4u-app/agent-config/commit/d82509bcc91dc4de519a080e44f5aa296de34d5e))
636
+ * **ai-council:** Phase 11 — replay engine + Lightweight-QA fast-path ([8fa5da8](https://github.com/event4u-app/agent-config/commit/8fa5da8b5de982b93c4608c38d95f64ad60c048b))
637
+ * **ai-council:** Phase 10 — impact-based decision routing + cost disclosure ([5dbe837](https://github.com/event4u-app/agent-config/commit/5dbe83743e782351f5eea54a86071b4414208976))
638
+ * **ai-council:** Phase 8-9 — necessity classifier with corpus consultation ([5adfe71](https://github.com/event4u-app/agent-config/commit/5adfe7190f0c379a07c1e51ebe634a7f439ec79b))
639
+ * **ai-council:** Phase 5 — session-trail + negative-test backfill ([dd64874](https://github.com/event4u-app/agent-config/commit/dd648744a5cd3fc3b516851704d943d9625602de))
640
+ * **ai-council:** wire XAI + Perplexity community CLI transports ([4df827c](https://github.com/event4u-app/agent-config/commit/4df827c80c9b6bf51ff41e4e56844c9263dab281))
641
+ * **ai-council:** phase 3 — Codex + Gemini CLI clients wired ([16dd7fe](https://github.com/event4u-app/agent-config/commit/16dd7fe987b685c290d2be2f7594f514979db1fd))
642
+ * **ai-council:** phase 2 — wire AnthropicCliClient end-to-end ([e965ab1](https://github.com/event4u-app/agent-config/commit/e965ab1cf67d5f18b64bafd7370d4ee7d70124af))
643
+ * **ai-council:** phase 1 — CliClient + AnthropicCliClient + daily quota ([df0d88c](https://github.com/event4u-app/agent-config/commit/df0d88c686c02f1e45707787ae196ac7e8371ef6))
644
+ * **ai-council:** phase 0 — extend schema for CLI transport ([cb45344](https://github.com/event4u-app/agent-config/commit/cb45344e6e686af430677a61c2026e972f1bfe45))
645
+ * **readme:** add Personas and Advisors to hero badge ([f11b85e](https://github.com/event4u-app/agent-config/commit/f11b85ea82fd0f0a04b68d18444d4a8c73d86de1))
646
+
647
+ ### Bug Fixes
648
+
649
+ * **council:** allowlist audit-* dirs in layout linter ([09d6900](https://github.com/event4u-app/agent-config/commit/09d69003204c2a86a2cc9f1193b8c33145d856b4))
650
+ * **rules:** align validator_ignore reason between source and projection ([89b7fac](https://github.com/event4u-app/agent-config/commit/89b7facf48d2a4fe39558028bdf15ff40d98c59a))
651
+ * **rules:** allowlist .agent-src.uncompressed/ back-pointer in fast-path-marker ([e74383b](https://github.com/event4u-app/agent-config/commit/e74383b62253ab990e938d1dfdc631d20db94181))
652
+ * **ask-when-uncertain:** trim AI Council prose to clear 12% concentration cap ([59abb4a](https://github.com/event4u-app/agent-config/commit/59abb4a3f827b4f8ecb24b63568b057462ae7649))
653
+ * **ai-council:** mark skill cloud-safe with degrade tier ([3c568e6](https://github.com/event4u-app/agent-config/commit/3c568e6eed6c50f8fee2c1685d25dc7aef9d82ec))
654
+ * **low-impact-floor:** drop forbidden authoring-tree path from rule ([8962291](https://github.com/event4u-app/agent-config/commit/89622914c375d01629ed3795d37fd7adf7a07c60))
655
+ * **ai-council:** restore Phase 11 sections in compressed SKILL.md ([52e4f14](https://github.com/event4u-app/agent-config/commit/52e4f14177acd90fd63b4c1c283b3dbda41a6437))
656
+
657
+ ### Documentation
658
+
659
+ * add (beta) markers next to beta-stability contract links ([0eb55dc](https://github.com/event4u-app/agent-config/commit/0eb55dc1303eb06b52b7f1a88cb2a137a6cde8f9))
660
+ * **reports:** command-surface inventory + AI Council synthesis ([38c3cc3](https://github.com/event4u-app/agent-config/commit/38c3cc39176cefb1c92431c0485659fa442002cf))
661
+ * **council:** document confidence-gate auto-escalation ([4202dac](https://github.com/event4u-app/agent-config/commit/4202dace49401598bb8b7e3033768c99333d1659))
662
+ * **roadmap:** mark step-9 complete and archive ([1c0ca06](https://github.com/event4u-app/agent-config/commit/1c0ca06495f718cda5d1f7065b2d7b07dd4e63f8))
663
+ * **contracts:** declare stability=beta for low-impact-corpus-format ([2114086](https://github.com/event4u-app/agent-config/commit/21140864621b8c1eb9bdb38a0d6b5146e562915a))
664
+ * CHANGELOG + roadmap step-9 phases 10-12 complete ([9f1a220](https://github.com/event4u-app/agent-config/commit/9f1a220f7b44bb96788898f2662782e0d6b4ec99))
665
+ * **roadmap:** mark step-9 Phase 9 complete + regen dashboard ([ae29fbf](https://github.com/event4u-app/agent-config/commit/ae29fbfe32eaf77d847bc00fcee76210e5f17848))
666
+ * **ai-council:** document solo dispatch + Iron Law contract (step-9 phase 8) ([ed12ca9](https://github.com/event4u-app/agent-config/commit/ed12ca9dabc585b0962f82d740a682206caeb2df))
667
+ * **low-impact:** switch /memory learn-low-impact default to --preview (step-9 phase 7) ([493ef5d](https://github.com/event4u-app/agent-config/commit/493ef5d91024761ee2b7a845b992257b76e71671))
668
+ * **roadmap:** mark step-9 phases 0/1/5 complete + regen dashboard ([5f55bad](https://github.com/event4u-app/agent-config/commit/5f55bad0495532431b2451130a2397c144374b58))
669
+ * **roadmap:** mark step-9 phase 4 complete (corpus parser hardening) ([5b35aaa](https://github.com/event4u-app/agent-config/commit/5b35aaa3ab27dd348ef161c4a78321f886775b6a))
670
+ * **roadmap:** mark step-9 phase 2 complete (CLI install hints) ([11ae2ee](https://github.com/event4u-app/agent-config/commit/11ae2ee97753abf6f1e2a18583b5efd84924f208))
671
+ * **council:** document low-impact council opt-in (step-9 phase 1) ([c0fd395](https://github.com/event4u-app/agent-config/commit/c0fd395423693f525fe628a744e6b324a87cf589))
672
+ * **roadmap:** mark step-8 complete and archive ([e7d328d](https://github.com/event4u-app/agent-config/commit/e7d328d7f85acb1df5ce01c559e2809640ee2096))
673
+ * **council:** document quota/necessity transparency surface (step-8 phase 4) ([ba72154](https://github.com/event4u-app/agent-config/commit/ba72154f02bcb791e2864f8ee7818a946710d630))
674
+ * **roadmap:** add step-9 pr-150 feedback hardening + regen progress dashboard ([bf89e80](https://github.com/event4u-app/agent-config/commit/bf89e80e3e238a449daab1399942b6866de920a6))
675
+ * **roadmap:** add step-8 quota necessity transparency ([8aa2385](https://github.com/event4u-app/agent-config/commit/8aa23857583a7e434e9bca1372ef18436f9933e5))
676
+ * **roadmap:** add step-7 agent-folder discovery + minimal init ([a13c963](https://github.com/event4u-app/agent-config/commit/a13c96335bc8244eeeee9bb3dfb1e30aa292e179))
677
+ * **roadmap:** add step-2 feedback follow-up roadmap ([b9f34d3](https://github.com/event4u-app/agent-config/commit/b9f34d39d94d28d6e2d9eba2748995d579b36373))
678
+ * **roadmap:** expand step-1 with safety net, impact routing, and low-impact corpus ([3925a74](https://github.com/event4u-app/agent-config/commit/3925a74b5cdba6d9c6b92fbaf1c0cf6e05fb1cd3))
679
+
680
+ ### Refactoring
681
+
682
+ * **commands:** nest learn-low-impact under memory cluster ([473dc97](https://github.com/event4u-app/agent-config/commit/473dc9776cd3dfb55f66e06977c1abaf02afcc01))
683
+
684
+ ### Tests
685
+
686
+ * **install:** sandbox HOME for --global guard test ([189baef](https://github.com/event4u-app/agent-config/commit/189baefe91d72392753ca144ae290a23e253a266))
687
+ * **ai-council:** Iron-Law sentinel for locked dispatch (step-9 phase 11) ([c5b617a](https://github.com/event4u-app/agent-config/commit/c5b617aeae79431ba4071a436f12a7ca35dd144b))
688
+ * **council:** cover step-8 quota + necessity-tier surface (phase 5) ([be4eba3](https://github.com/event4u-app/agent-config/commit/be4eba3dba54c5f6926924e80dd56ff312a4124a))
689
+
690
+ ### Build
691
+
692
+ * **ai-council:** wire compile-corpus into consistency + sync ([5a35b90](https://github.com/event4u-app/agent-config/commit/5a35b9037ee161f24224b71b2431e1c6bdbe6f86))
693
+
694
+ ### Chores
695
+
696
+ * **roadmap:** close out + archive step-2-feedback-followup ([fc347d2](https://github.com/event4u-app/agent-config/commit/fc347d28d93b1237300bbc3b31b1877a147857ca))
697
+ * **roadmap:** mark step-2-feedback-followup phases 1-3 complete ([6f8c456](https://github.com/event4u-app/agent-config/commit/6f8c4567993067b039ca9aebf680aaf76bd5e69c))
698
+ * **scripts:** add command-surface audit tool ([e118870](https://github.com/event4u-app/agent-config/commit/e11887001cf0e5bd68ee46164bb8d27a7f9a7a32))
699
+ * **roadmaps:** archive step-10 (corpus YAML lockfile complete) ([1d5ecfa](https://github.com/event4u-app/agent-config/commit/1d5ecfa07f63103456d4647a121a83e662a2d686))
700
+ * **index:** regenerate after auto-rule description trims ([fb39853](https://github.com/event4u-app/agent-config/commit/fb398539a22b82c530ec9cc39adb4343475edf6b))
701
+ * **rules:** trim auto-rule descriptions to fit 150-char Augment cap ([7755665](https://github.com/event4u-app/agent-config/commit/77556655e9db859a3c8bb3ca90931724bb144b9f))
702
+ * **ownership:** regenerate ownership matrix ([3661223](https://github.com/event4u-app/agent-config/commit/3661223dea90d842239a947c8d605ac22257cfc1))
703
+ * **lint:** suppress pre-existing council references with allowed pragma ([3770fb7](https://github.com/event4u-app/agent-config/commit/3770fb76f661a7042fd014ce18537babf6d6a127))
704
+ * **roadmaps:** tag step-7 and step-9 as structural ([99e8801](https://github.com/event4u-app/agent-config/commit/99e88019d2f8352e3c61932433a159c3e9b1136c))
705
+ * **index:** regenerate agents/index.md + docs/catalog.md ([e3adea4](https://github.com/event4u-app/agent-config/commit/e3adea43c1a8a4bf184f4476ef0a158e48a4c7ce))
706
+ * **lint:** clear pre-existing check-no-roadmap-refs violations (step-9 phase 0) ([41284d4](https://github.com/event4u-app/agent-config/commit/41284d4f990d3beb0efbe31dc8b9782a57a528b5))
707
+ * **changelog:** split off pre-2.11.0 era into archive ([913da95](https://github.com/event4u-app/agent-config/commit/913da950c07ab8221e8fc7b96b28fde3ae6aa83f))
708
+ * **roadmap:** archive step-1-ai-council-cli-transport (100% complete) ([2a9eaa5](https://github.com/event4u-app/agent-config/commit/2a9eaa558178349819609cf73f33300dcc3b846f))
709
+ * **index:** regenerate after learn-low-impact cluster move ([6d38afb](https://github.com/event4u-app/agent-config/commit/6d38afbca4ff8b2f75ea6d3669f9a15a1a49b2f4))
710
+ * **counts:** bump documented command count 108 to 109 ([6ada77d](https://github.com/event4u-app/agent-config/commit/6ada77d42b367909c68381f5c1bd9480960dd85f))
711
+ * **index:** regenerate after low-impact-corpus + learn-low-impact ([e256dd0](https://github.com/event4u-app/agent-config/commit/e256dd0d56492fbe390ab60b7902a99d1b509d50))
712
+ * **roadmap:** mark Phase 8-12 complete + regenerate dashboards ([8f14a9c](https://github.com/event4u-app/agent-config/commit/8f14a9c8e5ba16348c45f8ac9cfbeb1f053b26bd))
713
+ * **contracts:** pull keep-beta-until back inside 90-day window ([8b4c8c9](https://github.com/event4u-app/agent-config/commit/8b4c8c9de4fab092e8bc4c7580b2b435de85e973))
714
+ * **docs:** clear pre-existing check-public-links failures ([822c40e](https://github.com/event4u-app/agent-config/commit/822c40e9f90d81ffdcdb1a3fa590dc0d0e89c9f5))
715
+ * **roadmap:** stub agents/low-impact-decisions.md for Phase 12 forward-ref ([3af26f6](https://github.com/event4u-app/agent-config/commit/3af26f67f3ad86afc5a964a75ac3173526772b95))
716
+ * **templates:** bump agent_config_version to 2.13.0 ([1e5ddcd](https://github.com/event4u-app/agent-config/commit/1e5ddcd6d6aeed485253e8476c002262a3e95962))
717
+ * **roadmap:** regenerate roadmaps progress dashboard ([3a33c7e](https://github.com/event4u-app/agent-config/commit/3a33c7eda801c25aacb13ec2e58680f9f856cc91))
718
+
719
+ Tests: 4340 (+472 since 2.13.0)
720
+
721
+ ## [2.13.0](https://github.com/event4u-app/agent-config/compare/2.12.0...2.13.0) (2026-05-14)
722
+
723
+ ### Features
724
+
725
+ * **council:** Phase 7 — debate orchestration + CLI wiring ([647a3f0](https://github.com/event4u-app/agent-config/commit/647a3f07698792f41beb7413600d54b2321f4a96))
726
+ * **council:** Phase 7 — /council debate sub-command files ([abbd436](https://github.com/event4u-app/agent-config/commit/abbd43666b7e2c704ab3c46f2901f01eae446139))
727
+ * **council:** Phase 6 — thinking-style advisor personas ([21c8b88](https://github.com/event4u-app/agent-config/commit/21c8b88310a2a65d7ea9082da085d023f813d114))
728
+ * **council:** Phase 5 — Karpathy peer-review opt-in flag ([bce381a](https://github.com/event4u-app/agent-config/commit/bce381ae9c412abf501473fa4154f91d9c0befbf))
729
+ * **council:** analysis lens + lens-adaptive synthesis + consensus scoring ([6d7136a](https://github.com/event4u-app/agent-config/commit/6d7136ad6be31b7627a332600a7623f2cd929e76))
730
+ * **council:** add config loader, overlay, and 3 new provider clients ([0cb5591](https://github.com/event4u-app/agent-config/commit/0cb55914457a62b6f57744d8c8dac16bf777921d))
731
+ * **council:** introduce agents/.ai-council.yml as single source of truth ([043c2d2](https://github.com/event4u-app/agent-config/commit/043c2d23445f2ef7ad8aee880dc83d97c347635f))
732
+ * **governance:** Phase 5 — roadmap trajectory metric + architectural-consensus ADR ([926a632](https://github.com/event4u-app/agent-config/commit/926a63237c3dbe1fcfd7df05c9230809382d8790))
733
+ * **projection:** Phase 4 + 1.4 — multi-tool projection fidelity contract + ci-strict gate ([e18e4ad](https://github.com/event4u-app/agent-config/commit/e18e4ad73595e17889009b0123ebd000254c165b))
734
+ * **routing:** Phase 3 — tighten skill descriptions + 4 tier-3 routing rules for failing clusters ([2a11c70](https://github.com/event4u-app/agent-config/commit/2a11c70b274741e7d98fd814ac39c1d05a1a38c9))
735
+ * **governance:** Phase 1 — credibility (CONTRIBUTING preface, source-projection rename, archive 7 migration scripts) ([2e5cfe0](https://github.com/event4u-app/agent-config/commit/2e5cfe02e1b5f4218d1283108796b0ce43fd9165))
736
+
737
+ ### Bug Fixes
738
+
739
+ * **docs:** drop transient council-sessions citation from multi-tool-projection ([55dbbb1](https://github.com/event4u-app/agent-config/commit/55dbbb1e599aae2d913dc56a05c9dab0014e2739))
740
+ * **linter:** treat ../docs/contracts/ links as out-of-scope like guidelines ([a2249b0](https://github.com/event4u-app/agent-config/commit/a2249b02b70233e2b13ccf3efeda4188686b6181))
741
+ * **routing:** strip transient roadmap citation from tier-3 routing rules ([2cf745c](https://github.com/event4u-app/agent-config/commit/2cf745cad9beb40c4e6e9eb7f97abbc58a94d9de))
742
+
743
+ ### Documentation
744
+
745
+ * **roadmap:** rename "rule" to "invariant" for deep_min_rounds reference ([758ea46](https://github.com/event4u-app/agent-config/commit/758ea46568c23ef5518ff61d80700f7559bc54a1))
746
+ * **ai-council:** sync compressed SKILL.md with Phase 6 advisors section ([6d57034](https://github.com/event4u-app/agent-config/commit/6d57034c7b342abdd5d38ff300fa67c51deb3471))
747
+ * **council:** document master/wrapper contract for the council cluster ([7346f34](https://github.com/event4u-app/agent-config/commit/7346f34376b48c02ced3ae939dfff6ea215025ba))
748
+
749
+ ### Tests
750
+
751
+ * **ai-council:** Phase 8 — negative-test backfill for config loader ([cc3a08c](https://github.com/event4u-app/agent-config/commit/cc3a08c360c94685f9a1efaaa57f84001f78788c))
752
+
753
+ ### Chores
754
+
755
+ * **roadmaps:** archive step-2-ai-council-consolidation — all phases + ACs done ([c7f0c9c](https://github.com/event4u-app/agent-config/commit/c7f0c9ca7ac300023c5da0b939e0c63554dbcfed))
756
+ * **docs:** bump getting-started command count 106 -> 108 after council debate sub-command ([5e256d7](https://github.com/event4u-app/agent-config/commit/5e256d79d3eea3046900e8afa5be64526b4fc61d))
757
+ * **roadmaps:** retag complexity from "medium" to lint-valid values ([4c5457e](https://github.com/event4u-app/agent-config/commit/4c5457e271f8dcdc03943bac7adff84455388615))
758
+ * regenerate index + catalog for council-debate skill ([3c365a3](https://github.com/event4u-app/agent-config/commit/3c365a375da22f16f97829677c875500e40d436a))
759
+ * **roadmap:** mark Phases 6-7 of step-2-ai-council-consolidation complete ([7e8e557](https://github.com/event4u-app/agent-config/commit/7e8e557505bbf88b486605980a7f5ee2f97bcbb4))
760
+ * **roadmap:** mark Phases 1-4 of step-2-ai-council-consolidation complete ([101a5cf](https://github.com/event4u-app/agent-config/commit/101a5cf70d4fc694f85a270b2bebfb8fe545833a))
761
+ * **roadmap:** mark Phase 0 of step-2-ai-council-consolidation complete ([4fa2734](https://github.com/event4u-app/agent-config/commit/4fa27346c8faad54de582757ce5cfe7216041bda))
762
+ * **template:** bump agent_config_version pin to 2.12.0 ([e5c41fd](https://github.com/event4u-app/agent-config/commit/e5c41fd433105359d6e36b03b0de62415be212f0))
763
+ * regenerate agents/index.md + docs/catalog.md after rule additions ([b7fa4b6](https://github.com/event4u-app/agent-config/commit/b7fa4b6e25cbc55d8b3197f815c00530bd1eee79))
764
+ * **roadmap:** archive completed step-1-v2-feedback-followup (20/20 done) ([88a07ea](https://github.com/event4u-app/agent-config/commit/88a07ea9a983f0b63710e5461c8fddee36b2d378))
765
+
766
+ Tests: 3868 (+150 since 2.12.0)
767
+
432
768
  ## [2.12.0](https://github.com/event4u-app/agent-config/compare/2.11.0...2.12.0) (2026-05-14)
433
769
 
434
770
  ### Features
@@ -497,129 +833,15 @@ Tests: 3718 (+0 since 2.11.0)
497
833
 
498
834
  Tests: 3718 (+55 since 2.10.0)
499
835
 
500
- ## [2.10.0](https://github.com/event4u-app/agent-config/compare/2.9.0...2.10.0) (2026-05-14)
501
-
502
- ### Features
503
-
504
- * **ci:** lint-hook-concern-budget Tier-1 fail-closed gate ([8d60b8a](https://github.com/event4u-app/agent-config/commit/8d60b8ab464c4c5bdc6d072bb2a9b0123942e13b))
505
- * **cli:** settings:check command + YAML subset contract ([638e740](https://github.com/event4u-app/agent-config/commit/638e74017ffea8d7c08073a949e86fde047db109))
506
- * **hooks:** hooks:doctor + hooks:replay subcommands + fixture corpus ([3156e25](https://github.com/event4u-app/agent-config/commit/3156e25fd3253fc926a57b92e14b407a9ed54b58))
507
- * **work-engine:** add decision-trace memory_visibility hook + scoring ([bf056ac](https://github.com/event4u-app/agent-config/commit/bf056ace877a696afa5fe758053ea1eb350e5dff))
508
-
509
- ### Bug Fixes
510
-
511
- * **roadmap:** point productization P6 gate at archived proof-not-features path ([35a1009](https://github.com/event4u-app/agent-config/commit/35a1009cffdfde28c7b0384c890c31a7e62b70cf))
512
-
513
- ### Documentation
514
-
515
- * **roadmap:** complete road-to-proof-not-features 16/16 + sync dashboard ([89af72d](https://github.com/event4u-app/agent-config/commit/89af72d5514b74c19d533b5a2e69ff7ddf16ecbc))
516
- * **readme:** split README by audience + audience-order contract ([60a87c0](https://github.com/event4u-app/agent-config/commit/60a87c056555a80585d25555f3d5b87d54c7283a))
517
-
518
- ### Refactoring
519
-
520
- * **check-council-references:** structural carve-outs for immutable inputs and decision provenance ([3ed7784](https://github.com/event4u-app/agent-config/commit/3ed77841c42c5e3ebf4191611bb7fa4a52ed2fa0))
521
-
522
- ### Chores
523
-
524
- * **roadmap:** archive road-to-proof-not-features (16/16 done, Phase 1 deferred) ([9d05aed](https://github.com/event4u-app/agent-config/commit/9d05aed79a46023b1e95c5488a1e3d5e78748e67))
525
-
526
- Tests: 3663 (+60 since 2.9.0)
527
-
528
- ## [2.9.0](https://github.com/event4u-app/agent-config/compare/2.8.0...2.9.0) (2026-05-13)
529
-
530
- ### Features
531
-
532
- * tier-usage telemetry settings + report template ([22172f2](https://github.com/event4u-app/agent-config/commit/22172f2a59b530034633ff72226506006c5fd81b))
533
- * mcp beta-readiness criteria with pending gate tests ([3653788](https://github.com/event4u-app/agent-config/commit/36537880e03546e9baf424b2fdd70aa69d41eb03))
534
- * expand doctor diagnostic hub to 10 checks ([372c193](https://github.com/event4u-app/agent-config/commit/372c19362f8037c76f919a2d918780ae5ec9cb40))
535
- * **roadmap:** add road-to-surface-discipline (council-reviewed) ([d9da987](https://github.com/event4u-app/agent-config/commit/d9da9870989ccdb7594cd693e9b18608b957ab79))
536
- * **linter:** wing-4 cognition-boundary checks + spine slot vocab ([c4d9a4b](https://github.com/event4u-app/agent-config/commit/c4d9a4ba8e5c7184b9be0a58d4d8b220a60cab7c))
537
-
538
- ### Bug Fixes
539
-
540
- * **skills:** clear missing_inspect_step + bare_noun warnings ([0c88c6e](https://github.com/event4u-app/agent-config/commit/0c88c6ee45873e47fd8c7d356ec82b28b63b12c5))
541
- * **docs:** drop roadmap-file pointers from wing-4 ADRs and handoff ([ccd7624](https://github.com/event4u-app/agent-config/commit/ccd7624127094d0a01eda0901fa41c31319f7bc5))
542
- * **template:** bump agent_config_version pin to 2.8.0 ([f21e916](https://github.com/event4u-app/agent-config/commit/f21e916c6bb793fa6efe7d264a1e069e11ab4c62))
543
- * **skills:** spine slot citations + finance-partner polish ([9072783](https://github.com/event4u-app/agent-config/commit/90727831b223bd970d8425d158940bf3e3bc104f))
544
-
545
- ### Documentation
546
-
547
- * archive surface-discipline roadmap + 2.8.0 changelog ([551e306](https://github.com/event4u-app/agent-config/commit/551e306e43fa82fffda9178bdaa690b19d8bec4e))
548
- * 6-layer architecture refresh + thin-root sync ([91d25a8](https://github.com/event4u-app/agent-config/commit/91d25a80b37fb1c1782c2d5f00f23925ba6ec1b3))
549
- * **roadmap:** complete road-to-money-strategy-ops phase 1 ([83cf9fe](https://github.com/event4u-app/agent-config/commit/83cf9fe99c034b71e146099eddc9ce5b3137f434))
550
- * **contracts:** register wing-4 spine slots + marketplace entries ([75b829d](https://github.com/event4u-app/agent-config/commit/75b829d162bc18ab3dc2dda6614d15a087a4f32a))
836
+ # Era: pre-2.11.0 — archived
551
837
 
552
- ### Refactoring
553
-
554
- * trim tier-0 surface from 13 to 7 commands ([a9eafd1](https://github.com/event4u-app/agent-config/commit/a9eafd1c5226c10209e3dee2b972f38d9c0f3dd9))
555
-
556
- ### Chores
557
-
558
- * **generated:** regenerate derived outputs for wing-4 additions ([54f3779](https://github.com/event4u-app/agent-config/commit/54f3779a6d2161ed06bfb327c3e416ec107b4016))
559
-
560
- Tests: 3603 (+26 since 2.8.0)
561
-
562
- ## [2.8.0](https://github.com/event4u-app/agent-config/compare/2.7.0...2.8.0) (2026-05-13)
563
-
564
- ### Features
565
-
566
- * **linter:** wing-scoped persona line budgets ([81c8cda](https://github.com/event4u-app/agent-config/commit/81c8cdaf08f243a61f848b2e53fad73305ec173d))
567
- * **personas:** GTM roadmap I1-I4 — Wing-3 personas (CMO, RevOps, CS, Growth-PM) ([a05d49e](https://github.com/event4u-app/agent-config/commit/a05d49e1fd2076effd68dabce7a0789676b2bbf5))
568
- * **skills:** GTM roadmap H8-H16 — RevOps, CS, Growth-PM clusters ([f79e7a1](https://github.com/event4u-app/agent-config/commit/f79e7a11f5447466c05c6be613a618b9c564a4b1))
569
- * **gtm:** H3–H7 — complete CMO cluster skills (gtm-launch, editorial-calendar, content-funnel-design, voice-and-tone-design, fundraising-narrative) ([a905bea](https://github.com/event4u-app/agent-config/commit/a905bea811a02d973a682465525ca39d274d3342))
570
- * **gtm:** H1+H2 — positioning + messaging-architecture senior skills ([00aeb27](https://github.com/event4u-app/agent-config/commit/00aeb279be9924c01dea998df7ee91442fd3ff88))
571
- * **gtm:** G3 — Wing-3 handoff guideline + Block G closed ([15643da](https://github.com/event4u-app/agent-config/commit/15643da3e2e96a6b00a738e8f4b7ba10edd18187))
572
- * **gtm:** G2 — Wing-3 cognition-boundary linter ([8445921](https://github.com/event4u-app/agent-config/commit/84459218a914dd5d39c524824e9e0a597c28daec))
573
- * **gtm:** G1 — extend context-spine with Wing-3 slots ([853e653](https://github.com/event4u-app/agent-config/commit/853e6538fff24429ab0f4136f5eec5d4b992dda4))
574
-
575
- ### Bug Fixes
576
-
577
- * **refs:** drop roadmap-file citations from GTM ADR + handoff guideline ([092a01d](https://github.com/event4u-app/agent-config/commit/092a01d7bcd6b51c85d12bfcf83dc973b35c0fcc))
578
- * **contracts:** add stability frontmatter to command-surface-tiers.md ([3ab2ffd](https://github.com/event4u-app/agent-config/commit/3ab2ffde4345b4ca30cc4d64926f571bce5ce7dd))
579
- * **lint:** teach context-spine linter the Wing-3 GTM slots ([5bf81d5](https://github.com/event4u-app/agent-config/commit/5bf81d51864b652301d890eafb0574641d05b71a))
580
- * **refs:** replace dangling skill backticks with plain phrasing in GTM skills ([9f20b06](https://github.com/event4u-app/agent-config/commit/9f20b0612b58f8ef0273bfbe5f830793f4dca131))
581
- * **template:** bump agent_config_version to 2.7.0 in agent-project-settings template ([ac65734](https://github.com/event4u-app/agent-config/commit/ac657343a81879c3aee4664728e15233863016a5))
582
-
583
- ### Refactoring
584
-
585
- * **skill:** rename positioning → positioning-strategy ([be1a5c9](https://github.com/event4u-app/agent-config/commit/be1a5c9019ac18fabde14469784db42aa7588a14))
586
-
587
- ### Chores
588
-
589
- * **index:** regenerate after positioning → positioning-strategy rename ([9f42d91](https://github.com/event4u-app/agent-config/commit/9f42d9148f196d30635ae8288e9bba0feda66067))
590
- * **changelog:** split era 2.2.x → pre-2.7.0 ([7158c30](https://github.com/event4u-app/agent-config/commit/7158c30db391f3464fd74f3c7e193698b869b82d))
591
- * **generated:** refresh agents/index.md and docs/catalog.md for GTM skills/personas ([649b86e](https://github.com/event4u-app/agent-config/commit/649b86e287ecef7d0d28ce23ed2b0cbf43f2adc6))
592
- * **generated:** regenerate .claude/ tool output + marketplace + compression hashes for GTM skills/personas ([bb7d56c](https://github.com/event4u-app/agent-config/commit/bb7d56cd8e7cafb9037a4e6ec0078e56154f9d5c))
593
- * **roadmap:** archive road-to-gtm-and-growth — G+H+I all shipped ([dc48cdd](https://github.com/event4u-app/agent-config/commit/dc48cdd29e236c745e98b5f5fb8b45fa716a4c07))
594
-
595
- Tests: 3577 (+11 since 2.7.0)
596
-
597
- ## [2.7.0](https://github.com/event4u-app/agent-config/compare/2.6.1...2.7.0) (2026-05-13)
598
-
599
- ### Features
600
-
601
- * **install:** make augment global-only per ADR-007 amendment ([ea9a82f](https://github.com/event4u-app/agent-config/commit/ea9a82f2305a2a178b058ee66c40859790620d63))
602
- * **mcp:** define mcp_scope lite vs full boundary in cloud-scope contract ([15a268c](https://github.com/event4u-app/agent-config/commit/15a268c9f86fabe677b4d70db9fd4e3d1726ef8a))
603
- * **commands:** tier the slash + CLI command surface (Phase 4 of road-to-distribution-maturity) ([cc0102f](https://github.com/event4u-app/agent-config/commit/cc0102fe9677c936f703fd6e08b75cc99f758071))
604
- * **distribution:** roadmap phases 1+2 — MCP auth-surface sync + verified-offline install ([a85c1af](https://github.com/event4u-app/agent-config/commit/a85c1afdc457c5fa4d939afc2d91649c67926501))
605
-
606
- ### Bug Fixes
607
-
608
- * **refs:** point evaluation-2-2-2-followups at archived roadmap location ([cde02e6](https://github.com/event4u-app/agent-config/commit/cde02e6fd3bfbb2d67e2a8e3976fe6794ea4de6c))
609
-
610
- ### Documentation
611
-
612
- * **architecture:** split docs/architecture.md into four pipeline sub-pages + drift test ([4f13cf5](https://github.com/event4u-app/agent-config/commit/4f13cf504c0b2d9b92661234a597b5515a7c54e8))
613
- * **roadmap:** add distribution-maturity roadmap with council verdicts folded in ([14145cf](https://github.com/event4u-app/agent-config/commit/14145cff75ef34065358a2e99ee8c220ab0e59a0))
614
-
615
- ### Chores
616
-
617
- * **ci:** refresh compression hashes after cc0102fe tiering pass ([ca06729](https://github.com/event4u-app/agent-config/commit/ca06729d03bb8bd8d1536b7aecef1d1b134d8333))
618
- * finalize roadmaps ([bb156ea](https://github.com/event4u-app/agent-config/commit/bb156ea4f52741d511c3e54cd87e3bcab2fbf107))
619
- * **roadmap:** close road-to-distribution-maturity, archive ([d48e5d6](https://github.com/event4u-app/agent-config/commit/d48e5d64f9396f6b75b47bf336fd6ac129c8e254))
620
- * **changelog:** split into eras, archive pre-2.2.0 entries ([e54c5cb](https://github.com/event4u-app/agent-config/commit/e54c5cbf0222de7f0f4c84a379118f4ea30b5a07))
838
+ > All entries from `2.10.0` through `2.7.0` live in
839
+ > [`docs/archive/CHANGELOG-pre-2.11.0.md`](docs/archive/CHANGELOG-pre-2.11.0.md).
840
+ > The archive is read-only; git tags `2.10.0` and prior remain the
841
+ > canonical source for what shipped. Splitting these out of the main
842
+ > file keeps the active era under the 200-line drift cap enforced by
843
+ > `tests/test_changelog_eras.py`.
621
844
 
622
- Tests: 3566 (+36 since 2.6.1)
623
845
 
624
846
  # Era: pre-2.7.0 — archived
625
847