@event4u/agent-config 2.13.0 → 2.15.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 (74) hide show
  1. package/.agent-src/commands/agents/user/accept.md +117 -0
  2. package/.agent-src/commands/agents/user/init.md +163 -0
  3. package/.agent-src/commands/agents/user/review.md +107 -0
  4. package/.agent-src/commands/agents/user/show.md +109 -0
  5. package/.agent-src/commands/agents/user/update.md +98 -0
  6. package/.agent-src/commands/agents/user.md +66 -0
  7. package/.agent-src/commands/agents.md +2 -0
  8. package/.agent-src/commands/memory/learn-low-impact.md +143 -0
  9. package/.agent-src/rules/ask-when-uncertain.md +10 -6
  10. package/.agent-src/rules/copilot-routing.md +1 -1
  11. package/.agent-src/rules/devcontainer-routing.md +1 -1
  12. package/.agent-src/rules/external-reference-deep-dive.md +1 -1
  13. package/.agent-src/rules/fast-path-marker-visibility.md +38 -0
  14. package/.agent-src/rules/low-impact-corpus-privacy-floor.md +74 -0
  15. package/.agent-src/rules/symfony-routing.md +1 -1
  16. package/.agent-src/skills/ai-council/SKILL.md +208 -8
  17. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  18. package/.claude-plugin/marketplace.json +8 -1
  19. package/CHANGELOG.md +328 -124
  20. package/README.md +21 -6
  21. package/config/agent-settings.template.yml +4 -0
  22. package/config/gitignore-block.txt +17 -0
  23. package/docs/architecture.md +12 -12
  24. package/docs/archive/CHANGELOG-pre-2.11.0.md +141 -0
  25. package/docs/catalog.md +16 -7
  26. package/docs/contracts/adr-architectural-consensus-mechanism.md +4 -3
  27. package/docs/contracts/adr-level-6-productization.md +7 -9
  28. package/docs/contracts/agent-user-schema.md +165 -0
  29. package/docs/contracts/ai-council-config.md +492 -20
  30. package/docs/contracts/command-clusters.md +2 -2
  31. package/docs/contracts/command-surface-tiers.md +3 -2
  32. package/docs/contracts/cost-profile-defaults.md +5 -0
  33. package/docs/contracts/decision-engine-gates.md +5 -0
  34. package/docs/contracts/decision-trace-v1.md +2 -2
  35. package/docs/contracts/file-ownership-matrix.json +1961 -108
  36. package/docs/contracts/installed-tools-lockfile.md +2 -1
  37. package/docs/contracts/low-impact-corpus-format.md +95 -0
  38. package/docs/contracts/mcp-beta-criteria.md +6 -5
  39. package/docs/contracts/mcp-cloud-scope.md +5 -4
  40. package/docs/contracts/multi-tool-projection-fidelity.md +8 -2
  41. package/docs/contracts/release-trunk-sync.md +4 -3
  42. package/docs/contracts/tier-3-contrib-plugin.md +5 -6
  43. package/docs/examples/agent-user.example.md +21 -0
  44. package/docs/getting-started.md +2 -2
  45. package/docs/guidelines/agent-infra/installed-tools-manifest.md +2 -1
  46. package/docs/installation.md +32 -0
  47. package/package.json +1 -1
  48. package/scripts/_cli/cmd_doctor.py +134 -0
  49. package/scripts/ai_council/airgap.py +165 -0
  50. package/scripts/ai_council/cli_hints.py +123 -0
  51. package/scripts/ai_council/clients.py +787 -5
  52. package/scripts/ai_council/compile_corpus.py +178 -0
  53. package/scripts/ai_council/confidence_gate.py +156 -0
  54. package/scripts/ai_council/config.py +1007 -11
  55. package/scripts/ai_council/consensus.py +41 -2
  56. package/scripts/ai_council/events_log.py +137 -0
  57. package/scripts/ai_council/learn_low_impact_preview.py +252 -0
  58. package/scripts/ai_council/low_impact.py +714 -0
  59. package/scripts/ai_council/low_impact_corpus.py +466 -0
  60. package/scripts/ai_council/low_impact_intake.py +163 -0
  61. package/scripts/ai_council/modes.py +6 -1
  62. package/scripts/ai_council/necessity.py +782 -0
  63. package/scripts/ai_council/orchestrator.py +252 -14
  64. package/scripts/ai_council/probation_gate.py +152 -0
  65. package/scripts/ai_council/redact_low_impact_entry.py +155 -0
  66. package/scripts/ai_council/replay.py +155 -0
  67. package/scripts/ai_council/session.py +19 -1
  68. package/scripts/ai_council/shadow_dispatch.py +235 -0
  69. package/scripts/ai_council/solo_dispatch.py +226 -0
  70. package/scripts/audit_cloud_compatibility.py +74 -0
  71. package/scripts/audit_command_surface.py +363 -0
  72. package/scripts/check_council_layout.py +11 -0
  73. package/scripts/council_cli.py +1046 -15
  74. package/scripts/install.sh +12 -0
@@ -17,12 +17,12 @@ MCP Lite/Full → Hosted read-only (Lite) · local stdio (Full)
17
17
 
18
18
  | Layer | Canonical contract | Tier |
19
19
  |---|---|---|
20
- | **Distribution** | [`installed-tools-lockfile.md`](contracts/installed-tools-lockfile.md) + the "Distribution model" subsection below | stable |
21
- | **Governance** | [`command-clusters.md`](contracts/command-clusters.md) + [`command-surface-tiers.md`](contracts/command-surface-tiers.md) | stable |
22
- | **Router-Kernel** | [`kernel-membership.md`](contracts/kernel-membership.md) + [`rule-router.md`](contracts/rule-router.md) | stable |
20
+ | **Distribution** | [`installed-tools-lockfile.md`](contracts/installed-tools-lockfile.md) + the "Distribution model" subsection below | (beta) |
21
+ | **Governance** | [`command-clusters.md`](contracts/command-clusters.md) + [`command-surface-tiers.md`](contracts/command-surface-tiers.md) | (beta) |
22
+ | **Router-Kernel** | [`kernel-membership.md`](contracts/kernel-membership.md) + [`rule-router.md`](contracts/rule-router.md) | (beta) |
23
23
  | **Projection** | [`architecture/source-projection.md`](architecture/source-projection.md), [`augment-projection.md`](architecture/augment-projection.md), [`multi-tool-projection.md`](architecture/multi-tool-projection.md), [`claude-bundle.md`](architecture/claude-bundle.md) | stable |
24
- | **Execution Contracts** | [`implement-ticket-flow.md`](contracts/implement-ticket-flow.md), [`orchestration-dsl-v1.md`](contracts/orchestration-dsl-v1.md), [`adr-product-ui-track.md`](contracts/adr-product-ui-track.md) | stable (skills · commands) / beta (work-engine · roadmap engine) |
25
- | **MCP Lite/Full** | [`mcp-phase-1-scope.md`](contracts/mcp-phase-1-scope.md), [`mcp-cloud-scope.md`](contracts/mcp-cloud-scope.md), [`mcp-beta-criteria.md`](contracts/mcp-beta-criteria.md) | experimental — promotion to beta gated on `mcp-beta-criteria.md` (six artefact gates, monitored by `agent-config doctor --check mcp-beta-readiness`) |
24
+ | **Execution Contracts** | [`implement-ticket-flow.md`](contracts/implement-ticket-flow.md), [`orchestration-dsl-v1.md`](contracts/orchestration-dsl-v1.md), [`adr-product-ui-track.md`](contracts/adr-product-ui-track.md) | stable (adr-product-ui-track) / (beta) (implement-ticket-flow · orchestration-dsl-v1) |
25
+ | **MCP Lite/Full** | `docs/contracts/mcp-phase-1-scope.md`, `docs/contracts/mcp-cloud-scope.md`, `docs/contracts/mcp-beta-criteria.md` | experimental — promotion to beta gated on `mcp-beta-criteria.md` (six artefact gates, monitored by `agent-config doctor --check mcp-beta-readiness`) |
26
26
 
27
27
  Stability tiers follow [`docs/contracts/STABILITY.md`](contracts/STABILITY.md):
28
28
 
@@ -34,10 +34,10 @@ Stability tiers follow [`docs/contracts/STABILITY.md`](contracts/STABILITY.md):
34
34
 
35
35
  Four load-bearing additions reshaped the top of the model between 2.2.2 and the current release. They are listed here so the diagram above reads as the *current* package, not a historical accumulation:
36
36
 
37
- 1. **Router-Kernel** — the always-loaded Iron Laws collapsed into a 9-rule kernel with explicit per-rule character budgets enforced by `task lint-rule-budget`; everything else routes via tier-1/2 (`.agent-src/router.json`). Contract: [`kernel-membership.md`](contracts/kernel-membership.md) + [`rule-router.md`](contracts/rule-router.md).
38
- 2. **MCP Lite/Full** — replaces the old "Tool Adapters" layer at the top level. Lite is the hosted read-only surface (Claude.ai, Cloud agents); Full is the local stdio server consumers self-host. Promotion to beta is gated on six falsifiable artefacts in [`mcp-beta-criteria.md`](contracts/mcp-beta-criteria.md); the old GitHub / Jira adapters remain as an internal detail of the Execution Contracts layer (see Tool Adapters subsection below).
37
+ 1. **Router-Kernel** — the always-loaded Iron Laws collapsed into a 9-rule kernel with explicit per-rule character budgets enforced by `task lint-rule-budget`; everything else routes via tier-1/2 (`.agent-src/router.json`). Contract: [`kernel-membership.md`](contracts/kernel-membership.md) + [`rule-router.md`](contracts/rule-router.md) — both (beta).
38
+ 2. **MCP Lite/Full** — replaces the old "Tool Adapters" layer at the top level. Lite is the hosted read-only surface (Claude.ai, Cloud agents); Full is the local stdio server consumers self-host. Promotion to beta is gated on six falsifiable artefacts in `docs/contracts/mcp-beta-criteria.md`; the old GitHub / Jira adapters remain as an internal detail of the Execution Contracts layer (see Tool Adapters subsection below).
39
39
  3. **npx distribution** — Composer and `npm install` paths retired in favour of `npx @event4u/agent-config`, with the lockfile-equivalent role played by `agent_config_version` in `.agent-settings.yml`. Full rationale in the "Distribution model" subsection below.
40
- 4. **Command tiering** — `/`-commands now declare a `tier:` (0 / 1 / 2 / 3) that maps to invocation frequency and surface budget; tier-0 is the trimmed Tier-0 set surfaced in `agent-config --help` after the 2.7.x surface-discipline pass. Contract: [`command-surface-tiers.md`](contracts/command-surface-tiers.md) + [`command-clusters.md`](contracts/command-clusters.md).
40
+ 4. **Command tiering** — `/`-commands now declare a `tier:` (0 / 1 / 2 / 3) that maps to invocation frequency and surface budget; tier-0 is the trimmed Tier-0 set surfaced in `agent-config --help` after the 2.7.x surface-discipline pass. Contract: [`command-surface-tiers.md`](contracts/command-surface-tiers.md) + [`command-clusters.md`](contracts/command-clusters.md) — both (beta).
41
41
 
42
42
  > The previous "observability, feedback, lifecycle" layers were removed in
43
43
  > 1.5 — they were scaffolds without production consumers. The "Tool
@@ -142,8 +142,8 @@ note, package-internal path-swap, description budget, and the
142
142
  | Layer | Count | Purpose |
143
143
  |---|---|---|
144
144
  | **Skills** | 210 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
145
- | **Rules** | 65 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
146
- | **Commands** | 108 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
145
+ | **Rules** | 67 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
146
+ | **Commands** | 115 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
147
147
  | **Guidelines** | 72 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
148
148
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
149
149
  | **Contexts** | 5 | Shared knowledge about the system itself |
@@ -161,7 +161,7 @@ note, package-internal path-swap, description budget, and the
161
161
  - **Guidelines** → reference-only documentation
162
162
  - **Commands** → workflow orchestration
163
163
 
164
- Ensures: no guessing, analysis before action, real verification, consistent outputs. Canonical contracts: [`kernel-membership.md`](contracts/kernel-membership.md), [`rule-router.md`](contracts/rule-router.md), [`command-clusters.md`](contracts/command-clusters.md), [`command-surface-tiers.md`](contracts/command-surface-tiers.md).
164
+ Ensures: no guessing, analysis before action, real verification, consistent outputs. Canonical contracts (all (beta)): [`kernel-membership.md`](contracts/kernel-membership.md), [`rule-router.md`](contracts/rule-router.md), [`command-clusters.md`](contracts/command-clusters.md), [`command-surface-tiers.md`](contracts/command-surface-tiers.md).
165
165
 
166
166
  ### 2. Runtime Dispatcher — stable mechanism, pilot coverage
167
167
 
@@ -248,7 +248,7 @@ independent components with separate stability tiers.
248
248
 
249
249
  ### 4. Tool Adapters — experimental (internal detail; superseded at the top level by MCP)
250
250
 
251
- > **Position in the new model.** Tool Adapters no longer occupy a top-level layer — that slot is now **MCP Lite/Full**. The adapter classes still ship as the internal mechanism the Work Engine uses for inline GitHub/Jira reads, but external integration is meant to land via MCP going forward. See [`mcp-phase-1-scope.md`](contracts/mcp-phase-1-scope.md), [`mcp-cloud-scope.md`](contracts/mcp-cloud-scope.md), and [`mcp-beta-criteria.md`](contracts/mcp-beta-criteria.md) for the surface that replaces this layer at the top level.
251
+ > **Position in the new model.** Tool Adapters no longer occupy a top-level layer — that slot is now **MCP Lite/Full**. The adapter classes still ship as the internal mechanism the Work Engine uses for inline GitHub/Jira reads, but external integration is meant to land via MCP going forward. See `docs/contracts/mcp-phase-1-scope.md`, `docs/contracts/mcp-cloud-scope.md`, and `docs/contracts/mcp-beta-criteria.md` for the surface that replaces this layer at the top level.
252
252
 
253
253
  > **Status: scaffold + read-only GitHub calls.** With a `GITHUB_TOKEN` the
254
254
  > GitHub adapter performs real read calls; without one it returns scaffold
@@ -0,0 +1,141 @@
1
+ # Changelog Archive — pre-2.11.0
2
+
3
+ > Frozen snapshot of `event4u/agent-config` changelog entries from
4
+ > `2.10.0` and earlier (back to `2.7.0`), split out of the main
5
+ > [`CHANGELOG.md`](../../CHANGELOG.md) on 2026-05-15 once the active
6
+ > era's body crossed the 200-line drift cap enforced by
7
+ > `tests/test_changelog_eras.py`.
8
+ >
9
+ > **Read-only.** New entries land in `CHANGELOG.md` § "Era: 2.11.x".
10
+ > Entries here are not amended — git tags `2.10.0` and prior remain the
11
+ > canonical source for what shipped.
12
+ >
13
+ > Entry shape follows the conventions documented in
14
+ > [`docs/contracts/CHANGELOG-conventions.md`](../contracts/CHANGELOG-conventions.md).
15
+ > Earlier eras live in
16
+ > [`CHANGELOG-pre-2.7.0.md`](CHANGELOG-pre-2.7.0.md) and
17
+ > [`CHANGELOG-pre-2.2.0.md`](CHANGELOG-pre-2.2.0.md).
18
+
19
+ ## [2.10.0](https://github.com/event4u-app/agent-config/compare/2.9.0...2.10.0) (2026-05-14)
20
+
21
+ ### Features
22
+
23
+ * **ci:** lint-hook-concern-budget Tier-1 fail-closed gate ([8d60b8a](https://github.com/event4u-app/agent-config/commit/8d60b8ab464c4c5bdc6d072bb2a9b0123942e13b))
24
+ * **cli:** settings:check command + YAML subset contract ([638e740](https://github.com/event4u-app/agent-config/commit/638e74017ffea8d7c08073a949e86fde047db109))
25
+ * **hooks:** hooks:doctor + hooks:replay subcommands + fixture corpus ([3156e25](https://github.com/event4u-app/agent-config/commit/3156e25fd3253fc926a57b92e14b407a9ed54b58))
26
+ * **work-engine:** add decision-trace memory_visibility hook + scoring ([bf056ac](https://github.com/event4u-app/agent-config/commit/bf056ace877a696afa5fe758053ea1eb350e5dff))
27
+
28
+ ### Bug Fixes
29
+
30
+ * **roadmap:** point productization P6 gate at archived proof-not-features path ([35a1009](https://github.com/event4u-app/agent-config/commit/35a1009cffdfde28c7b0384c890c31a7e62b70cf))
31
+
32
+ ### Documentation
33
+
34
+ * **roadmap:** complete road-to-proof-not-features 16/16 + sync dashboard ([89af72d](https://github.com/event4u-app/agent-config/commit/89af72d5514b74c19d533b5a2e69ff7ddf16ecbc))
35
+ * **readme:** split README by audience + audience-order contract ([60a87c0](https://github.com/event4u-app/agent-config/commit/60a87c056555a80585d25555f3d5b87d54c7283a))
36
+
37
+ ### Refactoring
38
+
39
+ * **check-council-references:** structural carve-outs for immutable inputs and decision provenance ([3ed7784](https://github.com/event4u-app/agent-config/commit/3ed77841c42c5e3ebf4191611bb7fa4a52ed2fa0))
40
+
41
+ ### Chores
42
+
43
+ * **roadmap:** archive road-to-proof-not-features (16/16 done, Phase 1 deferred) ([9d05aed](https://github.com/event4u-app/agent-config/commit/9d05aed79a46023b1e95c5488a1e3d5e78748e67))
44
+
45
+ Tests: 3663 (+60 since 2.9.0)
46
+
47
+ ## [2.9.0](https://github.com/event4u-app/agent-config/compare/2.8.0...2.9.0) (2026-05-13)
48
+
49
+ ### Features
50
+
51
+ * tier-usage telemetry settings + report template ([22172f2](https://github.com/event4u-app/agent-config/commit/22172f2a59b530034633ff72226506006c5fd81b))
52
+ * mcp beta-readiness criteria with pending gate tests ([3653788](https://github.com/event4u-app/agent-config/commit/36537880e03546e9baf424b2fdd70aa69d41eb03))
53
+ * expand doctor diagnostic hub to 10 checks ([372c193](https://github.com/event4u-app/agent-config/commit/372c19362f8037c76f919a2d918780ae5ec9cb40))
54
+ * **roadmap:** add road-to-surface-discipline (council-reviewed) ([d9da987](https://github.com/event4u-app/agent-config/commit/d9da9870989ccdb7594cd693e9b18608b957ab79))
55
+ * **linter:** wing-4 cognition-boundary checks + spine slot vocab ([c4d9a4b](https://github.com/event4u-app/agent-config/commit/c4d9a4ba8e5c7184b9be0a58d4d8b220a60cab7c))
56
+
57
+ ### Bug Fixes
58
+
59
+ * **skills:** clear missing_inspect_step + bare_noun warnings ([0c88c6e](https://github.com/event4u-app/agent-config/commit/0c88c6ee45873e47fd8c7d356ec82b28b63b12c5))
60
+ * **docs:** drop roadmap-file pointers from wing-4 ADRs and handoff ([ccd7624](https://github.com/event4u-app/agent-config/commit/ccd7624127094d0a01eda0901fa41c31319f7bc5))
61
+ * **template:** bump agent_config_version pin to 2.8.0 ([f21e916](https://github.com/event4u-app/agent-config/commit/f21e916c6bb793fa6efe7d264a1e069e11ab4c62))
62
+ * **skills:** spine slot citations + finance-partner polish ([9072783](https://github.com/event4u-app/agent-config/commit/90727831b223bd970d8425d158940bf3e3bc104f))
63
+
64
+ ### Documentation
65
+
66
+ * archive surface-discipline roadmap + 2.8.0 changelog ([551e306](https://github.com/event4u-app/agent-config/commit/551e306e43fa82fffda9178bdaa690b19d8bec4e))
67
+ * 6-layer architecture refresh + thin-root sync ([91d25a8](https://github.com/event4u-app/agent-config/commit/91d25a80b37fb1c1782c2d5f00f23925ba6ec1b3))
68
+ * **roadmap:** complete road-to-money-strategy-ops phase 1 ([83cf9fe](https://github.com/event4u-app/agent-config/commit/83cf9fe99c034b71e146099eddc9ce5b3137f434))
69
+ * **contracts:** register wing-4 spine slots + marketplace entries ([75b829d](https://github.com/event4u-app/agent-config/commit/75b829d162bc18ab3dc2dda6614d15a087a4f32a))
70
+
71
+ ### Refactoring
72
+
73
+ * trim tier-0 surface from 13 to 7 commands ([a9eafd1](https://github.com/event4u-app/agent-config/commit/a9eafd1c5226c10209e3dee2b972f38d9c0f3dd9))
74
+
75
+ ### Chores
76
+
77
+ * **generated:** regenerate derived outputs for wing-4 additions ([54f3779](https://github.com/event4u-app/agent-config/commit/54f3779a6d2161ed06bfb327c3e416ec107b4016))
78
+
79
+ Tests: 3603 (+26 since 2.8.0)
80
+
81
+ ## [2.8.0](https://github.com/event4u-app/agent-config/compare/2.7.0...2.8.0) (2026-05-13)
82
+
83
+ ### Features
84
+
85
+ * **linter:** wing-scoped persona line budgets ([81c8cda](https://github.com/event4u-app/agent-config/commit/81c8cdaf08f243a61f848b2e53fad73305ec173d))
86
+ * **personas:** GTM roadmap I1-I4 — Wing-3 personas (CMO, RevOps, CS, Growth-PM) ([a05d49e](https://github.com/event4u-app/agent-config/commit/a05d49e1fd2076effd68dabce7a0789676b2bbf5))
87
+ * **skills:** GTM roadmap H8-H16 — RevOps, CS, Growth-PM clusters ([f79e7a1](https://github.com/event4u-app/agent-config/commit/f79e7a11f5447466c05c6be613a618b9c564a4b1))
88
+ * **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))
89
+ * **gtm:** H1+H2 — positioning + messaging-architecture senior skills ([00aeb27](https://github.com/event4u-app/agent-config/commit/00aeb279be9924c01dea998df7ee91442fd3ff88))
90
+ * **gtm:** G3 — Wing-3 handoff guideline + Block G closed ([15643da](https://github.com/event4u-app/agent-config/commit/15643da3e2e96a6b00a738e8f4b7ba10edd18187))
91
+ * **gtm:** G2 — Wing-3 cognition-boundary linter ([8445921](https://github.com/event4u-app/agent-config/commit/84459218a914dd5d39c524824e9e0a597c28daec))
92
+ * **gtm:** G1 — extend context-spine with Wing-3 slots ([853e653](https://github.com/event4u-app/agent-config/commit/853e6538fff24429ab0f4136f5eec5d4b992dda4))
93
+
94
+ ### Bug Fixes
95
+
96
+ * **refs:** drop roadmap-file citations from GTM ADR + handoff guideline ([092a01d](https://github.com/event4u-app/agent-config/commit/092a01d7bcd6b51c85d12bfcf83dc973b35c0fcc))
97
+ * **contracts:** add stability frontmatter to command-surface-tiers.md ([3ab2ffd](https://github.com/event4u-app/agent-config/commit/3ab2ffde4345b4ca30cc4d64926f571bce5ce7dd))
98
+ * **lint:** teach context-spine linter the Wing-3 GTM slots ([5bf81d5](https://github.com/event4u-app/agent-config/commit/5bf81d51864b652301d890eafb0574641d05b71a))
99
+ * **refs:** replace dangling skill backticks with plain phrasing in GTM skills ([9f20b06](https://github.com/event4u-app/agent-config/commit/9f20b0612b58f8ef0273bfbe5f830793f4dca131))
100
+ * **template:** bump agent_config_version to 2.7.0 in agent-project-settings template ([ac65734](https://github.com/event4u-app/agent-config/commit/ac657343a81879c3aee4664728e15233863016a5))
101
+
102
+ ### Refactoring
103
+
104
+ * **skill:** rename positioning → positioning-strategy ([be1a5c9](https://github.com/event4u-app/agent-config/commit/be1a5c9019ac18fabde14469784db42aa7588a14))
105
+
106
+ ### Chores
107
+
108
+ * **index:** regenerate after positioning → positioning-strategy rename ([9f42d91](https://github.com/event4u-app/agent-config/commit/9f42d9148f196d30635ae8288e9bba0feda66067))
109
+ * **changelog:** split era 2.2.x → pre-2.7.0 ([7158c30](https://github.com/event4u-app/agent-config/commit/7158c30db391f3464fd74f3c7e193698b869b82d))
110
+ * **generated:** refresh agents/index.md and docs/catalog.md for GTM skills/personas ([649b86e](https://github.com/event4u-app/agent-config/commit/649b86e287ecef7d0d28ce23ed2b0cbf43f2adc6))
111
+ * **generated:** regenerate .claude/ tool output + marketplace + compression hashes for GTM skills/personas ([bb7d56c](https://github.com/event4u-app/agent-config/commit/bb7d56cd8e7cafb9037a4e6ec0078e56154f9d5c))
112
+ * **roadmap:** archive road-to-gtm-and-growth — G+H+I all shipped ([dc48cdd](https://github.com/event4u-app/agent-config/commit/dc48cdd29e236c745e98b5f5fb8b45fa716a4c07))
113
+
114
+ Tests: 3577 (+11 since 2.7.0)
115
+
116
+ ## [2.7.0](https://github.com/event4u-app/agent-config/compare/2.6.1...2.7.0) (2026-05-13)
117
+
118
+ ### Features
119
+
120
+ * **install:** make augment global-only per ADR-007 amendment ([ea9a82f](https://github.com/event4u-app/agent-config/commit/ea9a82f2305a2a178b058ee66c40859790620d63))
121
+ * **mcp:** define mcp_scope lite vs full boundary in cloud-scope contract ([15a268c](https://github.com/event4u-app/agent-config/commit/15a268c9f86fabe677b4d70db9fd4e3d1726ef8a))
122
+ * **commands:** tier the slash + CLI command surface (Phase 4 of road-to-distribution-maturity) ([cc0102f](https://github.com/event4u-app/agent-config/commit/cc0102fe9677c936f703fd6e08b75cc99f758071))
123
+ * **distribution:** roadmap phases 1+2 — MCP auth-surface sync + verified-offline install ([a85c1af](https://github.com/event4u-app/agent-config/commit/a85c1afdc457c5fa4d939afc2d91649c67926501))
124
+
125
+ ### Bug Fixes
126
+
127
+ * **refs:** point evaluation-2-2-2-followups at archived roadmap location ([cde02e6](https://github.com/event4u-app/agent-config/commit/cde02e6fd3bfbb2d67e2a8e3976fe6794ea4de6c))
128
+
129
+ ### Documentation
130
+
131
+ * **architecture:** split docs/architecture.md into four pipeline sub-pages + drift test ([4f13cf5](https://github.com/event4u-app/agent-config/commit/4f13cf504c0b2d9b92661234a597b5515a7c54e8))
132
+ * **roadmap:** add distribution-maturity roadmap with council verdicts folded in ([14145cf](https://github.com/event4u-app/agent-config/commit/14145cff75ef34065358a2e99ee8c220ab0e59a0))
133
+
134
+ ### Chores
135
+
136
+ * **ci:** refresh compression hashes after cc0102fe tiering pass ([ca06729](https://github.com/event4u-app/agent-config/commit/ca06729d03bb8bd8d1536b7aecef1d1b134d8333))
137
+ * finalize roadmaps ([bb156ea](https://github.com/event4u-app/agent-config/commit/bb156ea4f52741d511c3e54cd87e3bcab2fbf107))
138
+ * **roadmap:** close road-to-distribution-maturity, archive ([d48e5d6](https://github.com/event4u-app/agent-config/commit/d48e5d64f9396f6b75b47bf336fd6ac129c8e254))
139
+ * **changelog:** split into eras, archive pre-2.2.0 entries ([e54c5cb](https://github.com/event4u-app/agent-config/commit/e54c5cbf0222de7f0f4c84a379118f4ea30b5a07))
140
+
141
+ Tests: 3566 (+36 since 2.6.1)
package/docs/catalog.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # agent-config — Public Catalog
2
2
 
3
- Consumer-facing catalog of all **452 public artefacts** shipped by
3
+ Consumer-facing catalog of all **461 public artefacts** shipped by
4
4
  this package. Internal package-maintenance rules and deprecation shims
5
5
  are excluded.
6
6
 
@@ -222,7 +222,7 @@ are excluded.
222
222
  | skill | [`voice-and-tone-design`](../.agent-src/skills/voice-and-tone-design/SKILL.md) | | Use when shaping brand voice — voice attributes, tone-by-context matrix, consistency review. Triggers on 'define our voice', 'why does our copy sound different on every surface'. |
223
223
  | skill | [`websocket`](../.agent-src/skills/websocket/SKILL.md) | | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
224
224
 
225
- ## Rules (62)
225
+ ## Rules (64)
226
226
 
227
227
  | kind | name | type | description |
228
228
  |---|---|---|---|
@@ -241,20 +241,22 @@ are excluded.
241
241
  | rule | [`commit-conventions`](../.agent-src/rules/commit-conventions.md) | auto | Git commit message format, branch naming, conventional commits, committing, pushing, or creating pull requests |
242
242
  | rule | [`commit-policy`](../.agent-src/rules/commit-policy.md) | always | Commit policy — never commit and never ask about committing unless the user said so this turn, the roadmap authorizes it, or a commit command is invoked |
243
243
  | rule | [`context-hygiene`](../.agent-src/rules/context-hygiene.md) | auto | When debugging, fixing errors, or running long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers |
244
- | rule | [`copilot-routing`](../.agent-src/rules/copilot-routing.md) | auto | When configuring the GitHub Copilot AI assistant — copilot-instructions.md, PR-review comment patterns, suggestion behavior — route to the copilot-config skill |
245
- | rule | [`devcontainer-routing`](../.agent-src/rules/devcontainer-routing.md) | auto | When wiring DevContainers or GitHub Codespaces — devcontainer.json, container images, VS Code features, port forwarding — route to the devcontainer skill |
244
+ | rule | [`copilot-routing`](../.agent-src/rules/copilot-routing.md) | auto | Configuring GitHub Copilot — copilot-instructions.md, PR-review comment patterns, suggestion behavior — route to the copilot-config skill |
245
+ | rule | [`devcontainer-routing`](../.agent-src/rules/devcontainer-routing.md) | auto | Wiring DevContainers or GitHub Codespaces — devcontainer.json, images, VS Code features, port forwarding — route to the devcontainer skill |
246
246
  | rule | [`direct-answers`](../.agent-src/rules/direct-answers.md) | always | Always — direct, unembellished answers. No flattery, no invented facts (verify load-bearing claims, otherwise ask). Emojis only as functional markers. Brevity is the default. |
247
247
  | rule | [`docker-commands`](../.agent-src/rules/docker-commands.md) | auto | Running PHP commands inside Docker containers — artisan, composer, phpstan, rector, ecs, phpunit, tests, migrations, and any CLI tool execution |
248
248
  | rule | [`domain-adoption-policy`](../.agent-src/rules/domain-adoption-policy.md) | auto | Adopting a new domain track (mobile, ML, blockchain, IoT, gaming) — gates import on demand, ownership, CI fit, Sunset compatibility BEFORE harvest |
249
249
  | rule | [`downstream-changes`](../.agent-src/rules/downstream-changes.md) | auto | After EVERY code edit, find ALL downstream changes needed to existing files, including callers, tests, imports, types, and documentation |
250
250
  | rule | [`e2e-testing`](../.agent-src/rules/e2e-testing.md) | auto | Playwright E2E tests — locators, assertions, Page Objects, fixtures, CI, and flaky test prevention |
251
- | rule | [`external-reference-deep-dive`](../.agent-src/rules/external-reference-deep-dive.md) | auto | When the user names an external repo, file, URL, or artifact as a reference — fetch the actual tree and inspect, never summarize from README or metadata |
251
+ | rule | [`external-reference-deep-dive`](../.agent-src/rules/external-reference-deep-dive.md) | auto | User names an external repo, file, URL, or artifact as reference — fetch the actual tree and inspect, never summarize from README or metadata |
252
+ | rule | [`fast-path-marker-visibility`](../.agent-src/rules/fast-path-marker-visibility.md) | auto | Low-impact council fast-path dispatch — host agent MUST surface the transparency marker verbatim in the reply opening; never swallow or paraphrase it. |
252
253
  | rule | [`guidelines`](../.agent-src/rules/guidelines.md) | manual | Writing or reviewing code — check relevant guideline before writing or reviewing code |
253
254
  | rule | [`improve-before-implement`](../.agent-src/rules/improve-before-implement.md) | auto | Before implementing features or architectural changes — validate the request against existing code, challenge weak requirements, suggest improvements |
254
255
  | rule | [`invite-challenge`](../.agent-src/rules/invite-challenge.md) | auto | Before executing a complex plan or non-trivial design — ask 'am I solving the right problem?' and pause for user confirmation, even when no ambiguity |
255
256
  | rule | [`language-and-tone`](../.agent-src/rules/language-and-tone.md) | always | Language and tone — informal German Du, English code comments, .md files always English |
256
257
  | rule | [`laravel-routing`](../.agent-src/rules/laravel-routing.md) | auto | When writing or reviewing Laravel code — controllers, Eloquent, Artisan, jobs, events, policies — route to the laravel skill |
257
258
  | rule | [`laravel-translations`](../.agent-src/rules/laravel-translations.md) | auto | Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization, multilingual text |
259
+ | rule | [`low-impact-corpus-privacy-floor`](../.agent-src/rules/low-impact-corpus-privacy-floor.md) | auto | Writing, editing, or upstreaming entries in `agents/low-impact-decisions.md` — non-bypassable privacy floor for the learning corpus. |
258
260
  | rule | [`markdown-safe-codeblocks`](../.agent-src/rules/markdown-safe-codeblocks.md) | auto | Generating markdown output that contains code blocks — prevent broken nesting |
259
261
  | rule | [`minimal-safe-diff`](../.agent-src/rules/minimal-safe-diff.md) | auto | When writing or reviewing a diff — the smallest change that solves the stated problem; no drive-by edits, opportunistic refactors, or reformatting |
260
262
  | rule | [`missing-tool-handling`](../.agent-src/rules/missing-tool-handling.md) | auto | When a CLI tool needed for the task is not installed — ask before working around it; do NOT install silently |
@@ -279,7 +281,7 @@ are excluded.
279
281
  | rule | [`skill-improvement-trigger`](../.agent-src/rules/skill-improvement-trigger.md) | auto | After completing a meaningful task — trigger post-task learning capture if pipelines.skill_improvement is enabled |
280
282
  | rule | [`skill-quality`](../.agent-src/rules/skill-quality.md) | auto | Creating, editing, or reviewing skills — minimum quality standard, every skill must be executable, validated, and self-contained |
281
283
  | rule | [`slash-command-routing-policy`](../.agent-src/rules/slash-command-routing-policy.md) | auto | When user types a slash command like /create-pr, /commit, or pastes command file content |
282
- | rule | [`symfony-routing`](../.agent-src/rules/symfony-routing.md) | auto | When writing or reviewing Symfony code — DI container, bundles, Doctrine, Messenger, Security voters, console commands — route to the symfony-workflow skill |
284
+ | rule | [`symfony-routing`](../.agent-src/rules/symfony-routing.md) | auto | Writing or reviewing Symfony code — DI, bundles, Doctrine, Messenger, Security voters, console commands — route to the symfony-workflow skill |
283
285
  | rule | [`think-before-action`](../.agent-src/rules/think-before-action.md) | auto | Before coding, modifying, or debugging — analyze first, verify with real tools, never guess or trial-and-error |
284
286
  | rule | [`token-efficiency`](../.agent-src/rules/token-efficiency.md) | auto | When running CLI tools, fetching logs, or producing replies — redirect verbose output, minimize tool calls, keep replies concise |
285
287
  | rule | [`token-optimizer-maintenance`](../.agent-src/rules/token-optimizer-maintenance.md) | auto | Editing a token-optimizer-cited asset (cli-output-handling, rtk-output-filtering, token-efficiency, markitdown) — sync catalog same commit |
@@ -289,7 +291,7 @@ are excluded.
289
291
  | rule | [`user-interaction`](../.agent-src/rules/user-interaction.md) | auto | Asking the user a question, presenting options, or summarizing progress — numbered-options Iron Law, single-recommendation rule, progress indicators |
290
292
  | rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
291
293
 
292
- ## Commands (108)
294
+ ## Commands (115)
293
295
 
294
296
  | kind | name | cluster | description |
295
297
  |---|---|---|---|
@@ -298,6 +300,12 @@ are excluded.
298
300
  | command | [`agents:audit`](../.agent-src/commands/agents/audit.md) | cluster: agents | Audit agent infrastructure — token overhead, rule triggers, AGENTS.md health, Capability-over-Structure adherence, stale references. Read-only, suggest-only, never auto-apply. |
299
301
  | command | [`agents:init`](../.agent-src/commands/agents/init.md) | cluster: agents | Initialize the agent layer for a consumer project — creates AGENTS.md and .github/copilot-instructions.md from package templates, auto-detects stack, never leaks other projects' identifiers. |
300
302
  | command | [`agents:optimize`](../.agent-src/commands/agents/optimize.md) | cluster: agents | Refactor AGENTS.md to the Thin-Root contract (caps, pointer ratio, capability bullets, emergency-triage) and propagate to tool stubs. Suggest only, never auto-apply. |
303
+ | command | [`agents:user-accept`](../.agent-src/commands/agents/user/accept.md) | cluster: agents | Apply a buffered observation to .agent-user.md after explicit user confirmation; bumps last_updated and drops the applied observations from the buffer. |
304
+ | command | [`agents:user-init`](../.agent-src/commands/agents/user/init.md) | cluster: agents | Interactive interview that creates the project-root .agent-user.md from the locked v1 schema (name, language, role, style, voice_sample). |
305
+ | command | [`agents:user-review`](../.agent-src/commands/agents/user/review.md) | cluster: agents | List buffered observations from .agent-user.observations.jsonl with numbered options to inspect or accept individually. |
306
+ | command | [`agents:user-show`](../.agent-src/commands/agents/user/show.md) | cluster: agents | Read-only render of .agent-user.md — prints the persona summary the host agent loads at session start. |
307
+ | command | [`agents:user-update`](../.agent-src/commands/agents/user/update.md) | cluster: agents | Open .agent-user.md in the user's IDE for manual edit; validates schema and 100-line cap on save. |
308
+ | command | [`agents:user`](../.agent-src/commands/agents/user.md) | cluster: agents | User-persona file (.agent-user.md) — interview, render, and maintain who the user is and how they want to be addressed. |
301
309
  | command | [`agents`](../.agent-src/commands/agents.md) | cluster: agents | Agent-layer orchestrator — routes to init, optimize, audit. Covers AGENTS.md and its multi-tool stubs (CLAUDE.md, GEMINI.md, copilot-instructions.md, .cursorrules). |
302
310
  | command | [`analyze-reference-repo`](../.agent-src/commands/analyze-reference-repo.md) | | Analyze an external reference repository (competitor, inspiration, peer) and produce a structured comparison + adoption plan for this project. |
303
311
  | command | [`bug-fix`](../.agent-src/commands/bug-fix.md) | | Plan and implement a bug fix — based on investigation, with quality checks and test verification |
@@ -351,6 +359,7 @@ are excluded.
351
359
  | command | [`judge:steps`](../.agent-src/commands/judge/steps.md) | cluster: judge | Execute an ordered plan step by step with a judge gate between steps — stops on first failed verdict |
352
360
  | command | [`judge`](../.agent-src/commands/judge.md) | cluster: judge | Judge orchestrator — routes to solo, steps, on-diff |
353
361
  | command | [`memory:add`](../.agent-src/commands/memory/add.md) | cluster: memory | Interactively add a validated entry to an engineering-memory file (domain-invariants, architecture-decisions, incident-learnings, product-rules) |
362
+ | command | [`memory:learn-low-impact`](../.agent-src/commands/memory/learn-low-impact.md) | cluster: memory | Preview validated low-impact entries that would be upstreamed to the package seed (default `--preview`); `--apply` opens a draft PR via `upstream-contribute` after re-redaction. |
354
363
  | command | [`memory:load`](../.agent-src/commands/memory/load.md) | cluster: memory | Load ALL curated entries of a given memory type into the current context — opt-in full load for deep analysis, never auto-triggered |
355
364
  | command | [`memory:mine-session`](../.agent-src/commands/memory/mine-session.md) | cluster: memory | Mine the active session transcript for memory signals (corrections, preferences, decisions, recurring patterns) — preview-by-default, opt-in transcript access, host-agnostic via TranscriptAdapter. |
356
365
  | command | [`memory:promote`](../.agent-src/commands/memory/promote.md) | cluster: memory | Promote an intake signal (or provisional proposal) into a curated memory entry — opens a PR and runs the admission gate. |
@@ -6,8 +6,9 @@ keep-beta-until: 2026-08-12
6
6
  # ADR — Architectural Consensus Mechanism (bus-factor / multi-author readiness)
7
7
 
8
8
  > **Status:** Decided · 2026-05-14
9
- > **Context:** v2 council finding C1 (file [01-bus-factor-and-consensus.md](../../agents/council-sessions/2026-05-14-v2-analysis/feedback/01-bus-factor-and-consensus.md)) flagged that a single-author skill suite cannot detect ontology drift (two skills with overlapping triggers, drift between description and body, generic best-practice patterns repeated across clusters). The package needs a **mechanical consensus signal** that does not depend on the original author's judgment.
10
- > **Roadmap:** Closes Phase 5.2 of [`step-1-v2-feedback-followup`](../../agents/roadmaps/step-1-v2-feedback-followup.md).
9
+ > **Context:** v2 council finding C1 (file [01-bus-factor-and-consensus.md](../../agents/council-sessions/2026-05-14-v2-analysis/feedback/01-bus-factor-and-consensus.md)) flagged that a single-author skill suite cannot detect ontology drift (two skills with overlapping triggers, drift between description and body, generic best-practice patterns repeated across clusters). The package needs a **mechanical consensus signal** that does not depend on the original author's judgment. <!-- council-ref-allowed: ADR decision trace -->
10
+ > **Roadmap:** Closes Phase 5.2 of the v2 feedback follow-up roadmap
11
+ > (see `agents/roadmaps/`).
11
12
 
12
13
  ## Decision
13
14
 
@@ -60,7 +61,7 @@ The final acceptance gate (lint going from warn-only to fail-the-build) is defer
60
61
 
61
62
  ## Related
62
63
 
63
- - Origin: [`agents/council-sessions/2026-05-14-v2-analysis/feedback/01-bus-factor-and-consensus.md`](../../agents/council-sessions/2026-05-14-v2-analysis/feedback/01-bus-factor-and-consensus.md)
64
+ - Origin: [`agents/council-sessions/2026-05-14-v2-analysis/feedback/01-bus-factor-and-consensus.md`](../../agents/council-sessions/2026-05-14-v2-analysis/feedback/01-bus-factor-and-consensus.md) <!-- council-ref-allowed: ADR decision trace -->
64
65
  - Mechanical scripts: [`scripts/skill_collision_clusters.py`](../../scripts/skill_collision_clusters.py), [`scripts/score_skill_selection.py`](../../scripts/score_skill_selection.py)
65
66
  - Sibling decision: [`docs/contracts/rule-router.md`](rule-router.md) — the routing layer the ADR feeds
66
67
  - Sibling decision: [`docs/contracts/multi-tool-projection-fidelity.md`](multi-tool-projection-fidelity.md) — Phase 4 of the same roadmap
@@ -11,10 +11,10 @@ stability: stable
11
11
  > package from Level-4 (execution engine) to Level-5 (observable
12
12
  > decision system); this roadmap was the Level-5 → Level-6 jump:
13
13
  > **steerable + provable + onboardable**.
14
- > **Cross-links:**
15
- > [`road-to-productization.md`](../../agents/roadmaps/road-to-productization.md) ·
16
- > [`road-to-proof-not-features.md`](../../agents/roadmaps/archive/road-to-proof-not-features.md) ·
17
- > [`road-to-better-skills-and-profiles.md`](../../agents/roadmaps/archive/road-to-better-skills-and-profiles.md).
14
+ > **Cross-links:** sibling roadmaps `road-to-productization`,
15
+ > `road-to-proof-not-features`, and `road-to-better-skills-and-profiles`
16
+ > — see `agents/roadmaps/` (or `agents/roadmaps/archive/` for the
17
+ > closed ones) for current status.
18
18
 
19
19
  ## What shipped
20
20
 
@@ -72,9 +72,8 @@ stability: stable
72
72
  - Beta-review marker protocol shipped in [`STABILITY.md`](STABILITY.md)
73
73
  § Beta-review markers; `scripts/check_beta_review_markers.py` wired
74
74
  into `task ci`; 39 beta contracts back-filled (P5.4).
75
- - Test-redundancy audit produced
76
- [`step-5-test-cleanup.md`](../../agents/roadmaps/step-5-test-cleanup.md)
77
- — audit-only, no deletions (P5.5).
75
+ - Test-redundancy audit produced the `step-5-test-cleanup` sibling
76
+ roadmap — audit-only, no deletions (P5.5).
78
77
 
79
78
  ### Release-trunk discipline (Phase 1)
80
79
 
@@ -118,8 +117,7 @@ keep-beta-until dates beyond the window.
118
117
 
119
118
  - **Showcase capture** → future `road-to-showcase-capture.md` when a
120
119
  hosted-LLM runner is on the table.
121
- - **Test-suite deletion** →
122
- [`step-5-test-cleanup.md`](../../agents/roadmaps/step-5-test-cleanup.md)
120
+ - **Test-suite deletion** → `step-5-test-cleanup` sibling roadmap
123
121
  (audit-only sibling spawned by P5.5; non-destructive by default).
124
122
  - **Persona Block B** (Architect / Risk-Officer extension) —
125
123
  anti-recommended per the sibling closure decision; not deferred,
@@ -0,0 +1,165 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-13
4
+ ---
5
+
6
+ # `.agent-user.md` schema (v1)
7
+
8
+ > **Status:** beta — locked for `1.18.0`. Re-evaluate fields after
9
+ > Phase 3 has been in active use for ≥1 week.
10
+
11
+ `.agent-user.md` is a single, project-root, gitignored Markdown file
12
+ that captures who the user is and how they want the agent to address
13
+ them. It is **deliberately minimal in v1** — name, language, role,
14
+ style, and a single voice sample. Everything else is deferred until
15
+ usage signal exists.
16
+
17
+ The file is owned by the user. The agent never edits it without an
18
+ explicit `accept` step.
19
+
20
+ ## Locked frontmatter (v1)
21
+
22
+ ```yaml
23
+ ---
24
+ version: 1
25
+ identity:
26
+ name: "Mathias" # required — full name or how the user wants to be addressed
27
+ nickname: "Matze" # optional — preferred shorthand (used by default in chat)
28
+ language: "de" # required — BCP-47-ish primary language ("de", "en", "fr", ...)
29
+ role: "founder/engineer" # required — short free-form role label
30
+ style:
31
+ formality: "informal" # informal | formal
32
+ pace: "pragmatic" # pragmatic | thorough | rapid
33
+ voice_sample: | # required — one paste of the user's typical writing
34
+ Mach das einfach. Wenn unklar, frag im Council.
35
+ last_updated: "2026-05-15" # YYYY-MM-DD — bumped on every accepted change
36
+ ---
37
+ ```
38
+
39
+ After the frontmatter, the body is a single freeform **`# Notes`**
40
+ section. Hard cap: **100 lines** total file size (including
41
+ frontmatter, body, and the Notes section). The 100-line cap is
42
+ enforced by `/agents user accept` and `/agents user update`.
43
+
44
+ ## Field reference
45
+
46
+ | Field | Required | Purpose |
47
+ |---|---|---|
48
+ | `version` | yes | Schema version. v1 is the only valid value today. |
49
+ | `identity.name` | yes | Default address form. |
50
+ | `identity.nickname` | no | Preferred shorthand — agent uses this by default in chat replies when set. |
51
+ | `language` | yes | Primary language; the agent mirrors per [`language-and-tone`](../../.agent-src/rules/language-and-tone.md). |
52
+ | `role` | yes | Short free-form label — drives reviewer voice selection and persona pairing. |
53
+ | `style.formality` | yes | `informal` (Du / first-name) or `formal` (Sie / full name). |
54
+ | `style.pace` | yes | `pragmatic` (default), `thorough` (more verification), or `rapid` (shorter replies). |
55
+ | `voice_sample` | yes | One representative paste — anchors mirror-back and tone calibration. |
56
+ | `last_updated` | yes | ISO date, bumped on every accept. |
57
+
58
+ ## Explicit exclusions
59
+
60
+ The agent NEVER writes any of the following to `.agent-user.md`, even
61
+ with the user's explicit consent — they violate the privacy floor:
62
+
63
+ - Credentials, API keys, passwords, tokens.
64
+ - Third-party names (children, partners, colleagues, clients).
65
+ - Third-party birthdays or dates.
66
+ - Financial figures (salary, revenue, net worth, runway numbers).
67
+ - Health, legal, or therapy status.
68
+ - Demographics (relationship status, family context, age, location) —
69
+ **deferred to v2** pending usage data per the re-validation gate.
70
+ - LinkedIn URL or any other external-source identifier — **deferred**
71
+ until a written host-agent-fetch contract and a "what counts as a
72
+ public profile field" privacy floor exist.
73
+
74
+ ## Loader contract
75
+
76
+ Host agents read `.agent-user.md` at session start, in this priority
77
+ order:
78
+
79
+ 1. `.agent-user.md` at project root (this contract).
80
+ 2. `personal.user_name` in `.agent-settings.yml` (legacy fallback).
81
+ 3. Nothing — agent uses generic address forms.
82
+
83
+ The host agent surfaces the user's `identity.nickname` (or `name` if
84
+ unset) on first reply when the file is present.
85
+
86
+ ## Determinism floor
87
+
88
+ The `agent-config` package itself contains **zero network code**.
89
+ External enrichment (e.g. LinkedIn profile fetch) was rejected on
90
+ determinism / ToS / test-impossibility grounds, and the host-agent
91
+ delegation workaround was additionally rejected on contract-floor
92
+ grounds (AI Council convergence — Anthropic, OpenAI, Google · 2026-05-14).
93
+ v1 is paste-only via `/agents user init`.
94
+
95
+ ## Staleness
96
+
97
+ When `last_updated` is older than 90 days, any `/agents user *`
98
+ command surfaces a one-line warning (not a blocker):
99
+
100
+ ```
101
+ ⚠️ .agent-user.md was last updated YYYY-MM-DD (>90 days ago). Run /agents user review or /agents user update.
102
+ ```
103
+
104
+ ## Commands
105
+
106
+ | Command | Role |
107
+ |---|---|
108
+ | `/agents user init` | Creates the file from a short interview. Refuses overwrite without `--force`. |
109
+ | `/agents user show` | Read-only render. (Phase 2.) |
110
+ | `/agents user review` | List buffered observations. (Phase 3.) |
111
+ | `/agents user accept` | Apply selected observations; bumps `last_updated`. (Phase 3.) |
112
+ | `/agents user update` | Open in IDE for manual edit; validates on save. (Phase 3.) |
113
+
114
+ See [`command-clusters.md`](command-clusters.md) for the locked
115
+ cluster registration.
116
+
117
+ ## Observation buffer
118
+
119
+ Agents MAY append observations about the user (preferred reply style,
120
+ detected language drift, repeated correction patterns) to a separate
121
+ JSONL buffer at the project root:
122
+
123
+ ```
124
+ .agent-user.observations.jsonl
125
+ ```
126
+
127
+ The buffer is **append-only**, gitignored, and never read by the
128
+ host-agent loader directly. It only feeds `/agents user review` →
129
+ `/agents user accept`.
130
+
131
+ Each line is a single JSON object:
132
+
133
+ ```json
134
+ {"ts":"2026-05-15T10:23:00Z","field":"style.pace","suggest":"rapid","source":"chat","evidence":"user said 'mach kürzer' 3× this session"}
135
+ ```
136
+
137
+ Allowed `field` values mirror the schema (`identity.nickname`,
138
+ `language`, `role`, `style.formality`, `style.pace`, `voice_sample`,
139
+ `notes`). Anything outside that set is dropped on read.
140
+
141
+ Privacy floor applies on write — never buffer credentials, third-party
142
+ PII, financial figures, or health/legal status. The same
143
+ [exclusions list](#explicit-exclusions) governs both `.agent-user.md`
144
+ and the buffer.
145
+
146
+ ## Gitignore
147
+
148
+ `.agent-user.md` and `.agent-user.observations.jsonl` are added to the
149
+ package-managed `.gitignore` block
150
+ ([`config/gitignore-block.txt`](../../config/gitignore-block.txt)) and
151
+ ignored by default. A `--shared` opt-in to commit `.agent-user.md` is
152
+ deferred — only the doc note lands in v1. The observation buffer is
153
+ **never** shared.
154
+
155
+ ## Example
156
+
157
+ A complete, paste-ready fixture lives at
158
+ [`docs/examples/agent-user.example.md`](../examples/agent-user.example.md).
159
+ Copy it to the project root as `.agent-user.md` and edit, or run
160
+ `/agents user init` for the interactive flow.
161
+
162
+ ## See also
163
+
164
+ - [`language-and-tone`](../../.agent-src/rules/language-and-tone.md) — language-mirroring rule the loader feeds.
165
+ - [`agents-md-thin-root`](../../.agent-src/skills/agents-md-thin-root/SKILL.md) — Thin-Root contract that this file complements (user-state vs project-state).