@event4u/agent-config 3.0.0 → 3.1.1

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 (208) hide show
  1. package/.agent-src/commands/install-via-agent.md +129 -0
  2. package/.agent-src/commands/video/from-script.md +1 -1
  3. package/.agent-src/commands/video.md +1 -1
  4. package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
  5. package/.agent-src/rules/caveman-speak.md +2 -2
  6. package/.agent-src/rules/context-hygiene.md +36 -0
  7. package/.agent-src/rules/engineering-safety-floor.md +102 -0
  8. package/.agent-src/rules/finance-safety-floor.md +114 -0
  9. package/.agent-src/rules/git-history-discipline.md +1 -1
  10. package/.agent-src/rules/no-cheap-questions.md +34 -32
  11. package/.agent-src/rules/provider-lifecycle-discipline.md +4 -4
  12. package/.agent-src/rules/strategy-safety-floor.md +114 -0
  13. package/.agent-src/skills/agents-md-thin-root/SKILL.md +15 -9
  14. package/.agent-src/skills/async-python-patterns/SKILL.md +1 -1
  15. package/.agent-src/skills/project-analysis-node-express/SKILL.md +1 -1
  16. package/.agent-src/skills/readme-reviewer/SKILL.md +52 -3
  17. package/.agent-src/skills/readme-writing/SKILL.md +52 -4
  18. package/.agent-src/skills/readme-writing-package/SKILL.md +48 -5
  19. package/.agent-src/skills/systematic-debugging/SKILL.md +41 -0
  20. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  21. package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
  22. package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
  23. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +4 -1
  24. package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
  25. package/.claude-plugin/marketplace.json +2 -1
  26. package/AGENTS.md +10 -8
  27. package/CHANGELOG.md +233 -123
  28. package/README.md +165 -553
  29. package/config/agent-settings.template.yml +0 -7
  30. package/config/discovery/packs.yml +20 -0
  31. package/config/discovery/unassigned-artefacts.yml +2 -0
  32. package/config/gitignore-block.txt +19 -3
  33. package/dist/cli/commands/uiServe.js +13 -4
  34. package/dist/cli/commands/uiServe.js.map +1 -1
  35. package/dist/cli/registry.js +2 -0
  36. package/dist/cli/registry.js.map +1 -1
  37. package/dist/discovery/deprecation-report.md +7 -0
  38. package/dist/discovery/discovery-manifest.json +2107 -1409
  39. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  40. package/dist/discovery/discovery-manifest.summary.md +9 -9
  41. package/dist/discovery/orphan-report.md +10 -0
  42. package/dist/discovery/packs.json +1002 -0
  43. package/dist/discovery/trust-report.md +26 -0
  44. package/dist/discovery/workspaces.json +705 -0
  45. package/dist/mcp/registry-manifest.json +4 -4
  46. package/dist/router.json +1623 -0
  47. package/dist/server/app.js +11 -3
  48. package/dist/server/app.js.map +1 -1
  49. package/dist/server/io/atomicMultiWrite.js +3 -1
  50. package/dist/server/io/atomicMultiWrite.js.map +1 -1
  51. package/dist/server/io/yamlIO.js +22 -0
  52. package/dist/server/io/yamlIO.js.map +1 -1
  53. package/dist/server/routes/ping.js +8 -0
  54. package/dist/server/routes/ping.js.map +1 -1
  55. package/dist/server/routes/schema.js +2 -2
  56. package/dist/server/routes/schema.js.map +1 -1
  57. package/dist/server/routes/settings.js +104 -23
  58. package/dist/server/routes/settings.js.map +1 -1
  59. package/dist/server/routes/userMd.js +37 -27
  60. package/dist/server/routes/userMd.js.map +1 -1
  61. package/dist/server/routes/wizard.js +256 -20
  62. package/dist/server/routes/wizard.js.map +1 -1
  63. package/dist/server/schemas/settings.js +0 -1
  64. package/dist/server/schemas/settings.js.map +1 -1
  65. package/dist/server/token.js +10 -3
  66. package/dist/server/token.js.map +1 -1
  67. package/dist/server/writeRoot.js +28 -11
  68. package/dist/server/writeRoot.js.map +1 -1
  69. package/dist/server/writeRoot.test.js +22 -4
  70. package/dist/server/writeRoot.test.js.map +1 -1
  71. package/dist/shared/userMd/formAdapter.js +29 -51
  72. package/dist/shared/userMd/formAdapter.js.map +1 -1
  73. package/dist/shared/userMd/schema.js +32 -104
  74. package/dist/shared/userMd/schema.js.map +1 -1
  75. package/dist/shared/userMd/utils.js +64 -50
  76. package/dist/shared/userMd/utils.js.map +1 -1
  77. package/dist/ui/assets/index-D-DY1ywI.js +35 -0
  78. package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
  79. package/dist/ui/index.html +1 -1
  80. package/docs/adrs/router/0001-three-tier-routing.md +5 -5
  81. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +1 -1
  82. package/docs/architecture.md +3 -3
  83. package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
  84. package/docs/catalog.md +30 -26
  85. package/docs/contracts/CHANGELOG-conventions.md +1 -1
  86. package/docs/contracts/agent-user-schema.md +6 -9
  87. package/docs/contracts/consumer-bridge.md +79 -0
  88. package/docs/contracts/discovery-manifest.md +209 -0
  89. package/docs/contracts/discovery-manifest.schema.json +77 -4
  90. package/docs/contracts/explain-trace.schema.json +1 -1
  91. package/docs/contracts/file-ownership-matrix.json +197 -13
  92. package/docs/contracts/frontmatter-contract.md +140 -0
  93. package/docs/contracts/gui-wizard.md +223 -0
  94. package/docs/contracts/installer-agent-mode.md +137 -0
  95. package/docs/contracts/kernel-membership.md +1 -1
  96. package/docs/contracts/mcp-tool-inventory.md +9 -9
  97. package/docs/contracts/namespace.md +6 -6
  98. package/docs/contracts/provider-lifecycle.md +5 -5
  99. package/docs/contracts/rule-router.md +4 -4
  100. package/docs/contracts/settings-api.md +53 -6
  101. package/docs/contracts/smoke-contracts.md +3 -3
  102. package/docs/contracts/trust-and-safety.md +144 -0
  103. package/docs/customization.md +2 -2
  104. package/docs/decisions/ADR-007-agent-discovery-scopes.md +12 -0
  105. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +24 -0
  106. package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
  107. package/docs/decisions/ADR-016-installer-architecture.md +189 -0
  108. package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
  109. package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
  110. package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
  111. package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
  112. package/docs/decisions/ADR-021-deployment-shape.md +153 -0
  113. package/docs/decisions/INDEX.md +7 -0
  114. package/docs/deploy/connector-setup.md +129 -0
  115. package/docs/deploy/env-vars.md +70 -0
  116. package/docs/deploy/policy-cookbook.md +130 -0
  117. package/docs/deploy/quickstart.md +112 -0
  118. package/docs/distribution/public-install-smoke.md +68 -0
  119. package/docs/distribution/registries.md +55 -0
  120. package/docs/distribution/telemetry-privacy.md +128 -0
  121. package/docs/distribution/telemetry-schema.md +174 -0
  122. package/docs/featured-skills.md +95 -0
  123. package/docs/getting-started-by-role.md +19 -1
  124. package/docs/getting-started.md +2 -2
  125. package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
  126. package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
  127. package/docs/installation.md +27 -14
  128. package/docs/maintainers/dev-mode.md +105 -0
  129. package/docs/setup/per-ide/claude-desktop.md +3 -2
  130. package/docs/wizard.md +39 -4
  131. package/package.json +18 -1
  132. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  133. package/scripts/_cli/cmd_doctor.py +150 -2
  134. package/scripts/_cli/cmd_explain.py +2 -1
  135. package/scripts/_cli/cmd_migrate_to_global.py +415 -0
  136. package/scripts/_cli/cmd_settings_migrate.py +146 -0
  137. package/scripts/_cli/explain_last/route.py +2 -1
  138. package/scripts/_dispatch.bash +36 -3
  139. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  140. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  141. package/scripts/_lib/agent_settings.py +4 -1
  142. package/scripts/_lib/agent_src.py +157 -0
  143. package/scripts/agent-config +17 -6
  144. package/scripts/audit_skill_descriptions.py +18 -6
  145. package/scripts/build_discovery_manifest.py +373 -17
  146. package/scripts/check_artefact_checksums.py +104 -0
  147. package/scripts/check_cluster_patterns.py +20 -4
  148. package/scripts/check_command_count_messaging.py +33 -14
  149. package/scripts/check_council_references.py +43 -4
  150. package/scripts/check_overlay_cascade_subdirs.py +7 -3
  151. package/scripts/check_references.py +5 -2
  152. package/scripts/check_reply_consistency.py +32 -9
  153. package/scripts/check_template_pin_drift.py +24 -7
  154. package/scripts/check_token_optimizer_freshness.py +18 -3
  155. package/scripts/compile_router.py +34 -2
  156. package/scripts/compress.py +162 -44
  157. package/scripts/config/presets.py +19 -1
  158. package/scripts/config/profiles.py +16 -1
  159. package/scripts/discovery_stats.py +70 -0
  160. package/scripts/expected_perms.json +47 -0
  161. package/scripts/generate_index.py +78 -46
  162. package/scripts/generate_ownership_matrix.py +98 -43
  163. package/scripts/generate_pack_manifests.py +183 -0
  164. package/scripts/install +18 -1
  165. package/scripts/install.py +934 -59
  166. package/scripts/install.sh +27 -9
  167. package/scripts/lint_agents_layout.py +93 -13
  168. package/scripts/lint_agents_md.py +1 -1
  169. package/scripts/lint_archived_skills.py +32 -16
  170. package/scripts/lint_bench_corpus.py +14 -2
  171. package/scripts/lint_command_tiers.py +15 -2
  172. package/scripts/lint_featured_skills.py +139 -0
  173. package/scripts/lint_framework_leakage.py +33 -6
  174. package/scripts/lint_global_paths.py +147 -0
  175. package/scripts/lint_orchestration_dsl.py +6 -3
  176. package/scripts/lint_pack_boundaries.py +147 -0
  177. package/scripts/lint_pack_first_win.py +103 -0
  178. package/scripts/lint_readme_jargon.py +131 -0
  179. package/scripts/lint_readme_size.py +33 -0
  180. package/scripts/lint_rule_interactions.py +23 -5
  181. package/scripts/lint_rule_tiers.py +12 -3
  182. package/scripts/lint_trust_coherence.py +212 -0
  183. package/scripts/measure_rule_budget.py +22 -4
  184. package/scripts/move_artefact.py +143 -0
  185. package/scripts/new_skill.py +148 -0
  186. package/scripts/plan_physical_move.py +353 -0
  187. package/scripts/refine_ticket_detect.py +30 -7
  188. package/scripts/release.py +22 -2
  189. package/scripts/schemas/command.schema.json +4 -0
  190. package/scripts/skill_linter.py +248 -118
  191. package/scripts/skill_trigger_eval.py +28 -8
  192. package/scripts/smoke/kernel.sh +1 -1
  193. package/scripts/smoke/router.sh +24 -5
  194. package/scripts/smoke/skills.sh +15 -7
  195. package/scripts/smoke_quickstart.py +11 -2
  196. package/scripts/snapshot_agent_outputs.py +144 -0
  197. package/scripts/update_counts.py +45 -17
  198. package/scripts/validate_decision_engine.py +9 -1
  199. package/scripts/validate_discovery_manifest.py +94 -0
  200. package/scripts/validate_frontmatter.py +39 -20
  201. package/scripts/verify_physical_move.py +185 -0
  202. package/templates/agent-user.md +0 -1
  203. package/templates/agent-user.yml +21 -0
  204. package/templates/minimal/agents-overrides-readme.md +46 -0
  205. package/templates/minimal/overrides-gitkeep +2 -0
  206. package/dist/ui/assets/index-BTRcKDlB.js +0 -39
  207. package/dist/ui/assets/index-BTRcKDlB.js.map +0 -1
  208. package/templates/minimal/agents-gitkeep +0 -2
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <meta name="robots" content="noindex" />
7
7
  <title>agent-config</title>
8
- <script type="module" crossorigin src="/assets/index-BTRcKDlB.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-D-DY1ywI.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-Dqfhmg-d.css">
10
10
  </head>
11
11
  <body>
@@ -21,8 +21,8 @@ look that up cheaply at session start**.
21
21
  ## Decision
22
22
 
23
23
  **Three tiers, declared in rule frontmatter, compiled into a single
24
- [`router.json`](../../../router.json) at the repo root.** Host agents
25
- read `router.json` once per session.
24
+ [`dist/router.json`](../../../dist/router.json), tracked in git.** Host
25
+ agents read `dist/router.json` once per session.
26
26
 
27
27
  ### Tier semantics
28
28
 
@@ -49,7 +49,7 @@ unconditional by definition.
49
49
 
50
50
  1. `scripts/sync.py` projects `.agent-src.uncompressed/` → `.agent-src/`.
51
51
  2. `scripts/compile_router.py` walks rule frontmatter, validates the
52
- `routes_to:` targets exist on disk, writes `router.json`.
52
+ `routes_to:` targets exist on disk, writes `dist/router.json`.
53
53
  3. `scripts/skill_linter.py` runs the bidirectional check: every
54
54
  `routes_to:` target has a matching `triggered_by:` back-ref.
55
55
 
@@ -105,7 +105,7 @@ diff cleanly in PRs.
105
105
  [`rule-router.md`](../../contracts/rule-router.md) being the
106
106
  single citable contract and the linter catching shape errors.
107
107
  - **Reversal cost:** flatten by removing tier-1 / tier-2 distinction
108
- in the compiler — `router.json` becomes a list of all rules. The
108
+ in the compiler — `dist/router.json` becomes a list of all rules. The
109
109
  rule frontmatter stays valid (extra fields are tolerated by
110
110
  Draft-07 once `additionalProperties` is relaxed).
111
111
 
@@ -113,7 +113,7 @@ diff cleanly in PRs.
113
113
 
114
114
  - [`docs/contracts/rule-router.md`](../../contracts/rule-router.md) — frontmatter contract.
115
115
  - [`docs/contracts/kernel-membership.md`](../../contracts/kernel-membership.md) — kernel cap.
116
- - [`router.json`](../../../router.json) — compiled output.
116
+ - [`dist/router.json`](../../../dist/router.json) — compiled output.
117
117
  - [`scripts/compile_router.py`](../../../scripts/compile_router.py) — compiler.
118
118
  - [`scripts/schemas/rule.schema.json`](../../../scripts/schemas/rule.schema.json) — schema.
119
119
  - [`agents/roadmaps/step-11-ruflo-parity.md`](../../../agents/roadmaps/step-11-ruflo-parity.md) Phase 4 Step 3 — origin.
@@ -26,7 +26,7 @@ declaration as its last stdout line.** Scripts live under
26
26
  | Tier | Script | Validates | Path-trigger globs |
27
27
  |---|---|---|---|
28
28
  | Kernel | [`kernel.sh`](../../../scripts/smoke/kernel.sh) | 9 kernel rules present, char-budget respected | `.agent-src.uncompressed/rules/**`, `docs/contracts/kernel-membership.md` |
29
- | Router | [`router.sh`](../../../scripts/smoke/router.sh) | `router.json` compiles, all `routes_to:` resolve | `router.json`, `.agent-src.uncompressed/rules/**` |
29
+ | Router | [`router.sh`](../../../scripts/smoke/router.sh) | `dist/router.json` compiles, all `routes_to:` resolve | `dist/router.json`, `.agent-src.uncompressed/rules/**` |
30
30
  | Schema | [`schema.sh`](../../../scripts/smoke/schema.sh) | Random skill / rule sample validates against JSON Schema | `scripts/schemas/**`, `.agent-src.uncompressed/{rules,skills}/**` |
31
31
  | Skills | [`skills.sh`](../../../scripts/smoke/skills.sh) | 5 random skills pass frontmatter + `name == dir` | `.agent-src.uncompressed/skills/**` |
32
32
 
@@ -9,7 +9,7 @@ Six layers, ordered from "how the package reaches a consumer" down to "what a co
9
9
  ```
10
10
  Distribution → npx-only runtime · install.sh · lockfile pin ← stable
11
11
  Governance → Kernel rules · tier-1/2 routing · command clusters ← stable
12
- Router-Kernel → router.json · always-loaded Iron Laws · char caps ← stable
12
+ Router-Kernel → dist/router.json · always-loaded Iron Laws · char caps ← stable
13
13
  Projection → Source · augment / multi-tool / cloud bundles ← stable
14
14
  Execution Contracts → Skills · commands · work-engine · roadmap engine ← stable / beta
15
15
  MCP Lite/Full → Hosted read-only (Lite) · local stdio (Full) ← experimental
@@ -143,8 +143,8 @@ note, package-internal path-swap, description budget, and the
143
143
  | Layer | Count | Purpose |
144
144
  |---|---|---|
145
145
  | **Skills** | 218 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
146
- | **Rules** | 72 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
147
- | **Commands** | 128 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
146
+ | **Rules** | 75 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
147
+ | **Commands** | 129 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
148
148
  | **Guidelines** | 73 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
149
149
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
150
150
  | **Contexts** | 5 | Shared knowledge about the system itself |
@@ -0,0 +1,167 @@
1
+ # Changelog Archive — pre-3.1.0
2
+
3
+ > Frozen snapshot of `event4u/agent-config` changelog entries for
4
+ > `3.0.0`, split out of the main
5
+ > [`CHANGELOG.md`](../../CHANGELOG.md) on 2026-05-24 once the active
6
+ > era's body crossed the drift cap enforced by
7
+ > `tests/test_changelog_eras.py`.
8
+ >
9
+ > **Read-only.** New entries land in `CHANGELOG.md` § "Era: 3.1.x".
10
+ > Entries here are not amended — git tag `3.0.0` remains the canonical
11
+ > 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-3.0.0.md`](CHANGELOG-pre-3.0.0.md),
17
+ > [`CHANGELOG-pre-2.25.0.md`](CHANGELOG-pre-2.25.0.md),
18
+ > [`CHANGELOG-pre-2.20.0.md`](CHANGELOG-pre-2.20.0.md),
19
+ > [`CHANGELOG-pre-2.17.0.md`](CHANGELOG-pre-2.17.0.md),
20
+ > [`CHANGELOG-pre-2.16.0.md`](CHANGELOG-pre-2.16.0.md),
21
+ > [`CHANGELOG-pre-2.15.0.md`](CHANGELOG-pre-2.15.0.md),
22
+ > [`CHANGELOG-pre-2.11.0.md`](CHANGELOG-pre-2.11.0.md),
23
+ > [`CHANGELOG-pre-2.7.0.md`](CHANGELOG-pre-2.7.0.md), and
24
+ > [`CHANGELOG-pre-2.2.0.md`](CHANGELOG-pre-2.2.0.md).
25
+
26
+ ## [3.0.0](https://github.com/event4u-app/agent-config/compare/2.26.0...3.0.0) (2026-05-21)
27
+
28
+ ### BREAKING CHANGES
29
+
30
+ * **wizard:** remove legacy /onboard chat skill and skill-bridge IPC ([04acd29](https://github.com/event4u-app/agent-config/commit/04acd290a0e50cb675b987b57ecfe2086dd2be04))
31
+
32
+ ### Features
33
+
34
+ * **scripts:** add lint_agents_layout enforcing agents/ flat-file whitelist ([77070e4](https://github.com/event4u-app/agent-config/commit/77070e4a53873ad3a5e1425e119f5762e455efc0))
35
+ * **storage:** default wizard writes to user-scope with legacy-read fallback ([974c4d9](https://github.com/event4u-app/agent-config/commit/974c4d9ca53fcbd7f36ac4f7e06f5125733f72cf))
36
+ * **wizard:** move step nav from header chips to summary jump-list ([648824f](https://github.com/event4u-app/agent-config/commit/648824f57483945de78167aa5662ded65c8845e4))
37
+ * **wizard:** dry-run mode, error handling, expanded schema help text ([8ea254b](https://github.com/event4u-app/agent-config/commit/8ea254baa2f8fab0bebdd6cbd494a7ebd1b014df))
38
+ * **wizard:** add dry-run mode to setup, settings, and ui:serve ([d369553](https://github.com/event4u-app/agent-config/commit/d369553aa48486d8fe6a6ca4137df0004f9dfae8))
39
+ * **ui:** 7-step wizard + Settings page + .agent-user.md panel ([135b35c](https://github.com/event4u-app/agent-config/commit/135b35ca11d6203f0111aaf2b9d89da58c9aa735))
40
+ * **ui:** form primitives + schema-driven form renderer ([4dfde4e](https://github.com/event4u-app/agent-config/commit/4dfde4e5c6730b80350dd5b08ee665f26383044a))
41
+ * **ui:** scaffold Preact SPA shell (entry + router + API client) ([cc1e395](https://github.com/event4u-app/agent-config/commit/cc1e395e9d48018b07cde68656f50c6b55a2f64e))
42
+ * **cli:** add 'agent-config settings' subcommand ([e799119](https://github.com/event4u-app/agent-config/commit/e799119041114323c05ddf24a5033567295e81c7))
43
+ * **server:** inline settings JSON-Schema + 7-step wizard count ([a46948c](https://github.com/event4u-app/agent-config/commit/a46948c0db2f833bd87859a308ef3df9fa4c2183))
44
+ * **server:** GUI skill-bridge discovery files ([01b3889](https://github.com/event4u-app/agent-config/commit/01b388902585c18657ff46940f40363abe312180))
45
+ * **cli:** add onboard:finish subcommand for chat-skill convergence ([ccac4f9](https://github.com/event4u-app/agent-config/commit/ccac4f900ae3906dcfc70d11f00b5d377bf576de))
46
+ * **setup-wizard:** wire settings API into app + 2PC boot replay ([bf2b1c9](https://github.com/event4u-app/agent-config/commit/bf2b1c9028ac5f3698a7605d94b46727ea4f4c70))
47
+ * **setup-wizard:** add settings API routes (settings, userMd, wizard, schema) ([f1256b1](https://github.com/event4u-app/agent-config/commit/f1256b11d47bc5a9d2e8b50291c8b076c1f8836e))
48
+ * **setup-wizard:** add atomic IO primitives for 2PC wizard commit ([1b5dbda](https://github.com/event4u-app/agent-config/commit/1b5dbdad51cda3fcfa625f1053ec2da1286493f4))
49
+ * **gui:** phase 0 — contracts (ADR-014, schemas, design tokens, API doc) ([96462e6](https://github.com/event4u-app/agent-config/commit/96462e6c25b104c94a2a036af29f9ab8122f982d))
50
+ * **visibility:** R5 Phase 4 — docs, decay policy, roadmap archival ([4de0c22](https://github.com/event4u-app/agent-config/commit/4de0c224f58f125df803c15848a259bec5a159dc))
51
+ * **visibility:** R5 Phase 3 — positioning consistency lint ([68daa4f](https://github.com/event4u-app/agent-config/commit/68daa4f6d0ec09939c424bfadfaf3382941e7c8f))
52
+ * **visibility:** R5 Phase 2 — MCP registry manifest + lifecycle tracking ([e0b8f8b](https://github.com/event4u-app/agent-config/commit/e0b8f8b8ac7d78a603405429b179e9a0fd985735))
53
+ * **visibility:** topics-as-code + about manifest + split sync/drift workflows ([d61c648](https://github.com/event4u-app/agent-config/commit/d61c648377b705b04b57a38246c52259e1f22d2a))
54
+ * **explain-last:** wire halt + provider why-slots into trace and renderer ([92d5bfc](https://github.com/event4u-app/agent-config/commit/92d5bfc67f83b1dcd7242e3d85502915e195b29b))
55
+ * **work-engine:** persist HookHalt events into state.halts for explainability ([68fe11e](https://github.com/event4u-app/agent-config/commit/68fe11e204c7b0fb94d1201eb867f0a41a443a90))
56
+ * **explain:** wire 'last' subcommand into cmd_explain dispatcher ([f871d67](https://github.com/event4u-app/agent-config/commit/f871d67bcc3bc2104d3ae7b67643684ba912f3d1))
57
+ * **explain:** add explain_last trace builder package ([af32423](https://github.com/event4u-app/agent-config/commit/af32423c7a4d1df382fcf98df018ad0d4859ff97))
58
+ * **settings:** add explain.enable_last knob ([1c518d8](https://github.com/event4u-app/agent-config/commit/1c518d8948421eae86d3f02961b6bb6a186a712c))
59
+ * **explain:** lock ExplainTrace v1 schema and lint surface (Phase 1) ([6f81f65](https://github.com/event4u-app/agent-config/commit/6f81f65c901a8b9ba6582b4218bb6a0c6cbf9c09))
60
+ * **discovery:** add artefact frontmatter linter (Phase 6.1) ([ce49720](https://github.com/event4u-app/agent-config/commit/ce49720f0b0405c13e07ba2fff6cfc86cfc2f379))
61
+ * **discovery:** wire release pipeline to ship manifest (Phase 5) ([61aea0a](https://github.com/event4u-app/agent-config/commit/61aea0a97991395b75a4b392e8fa789030dbdb73))
62
+ * **discovery:** auto-strict scanner under CI (Phase 4.4) ([1b2b0b3](https://github.com/event4u-app/agent-config/commit/1b2b0b3472bda036be03cdfb3b649d2c19594b43))
63
+ * **discovery:** annotate meta pack + quarantine scaffold templates ([941a5c4](https://github.com/event4u-app/agent-config/commit/941a5c4190cd507750fcb4ba090b735a684b33a4))
64
+ * **discovery:** annotate vertical packs (product, gtm, finance, ops, founder, ai-video) ([5d96d37](https://github.com/event4u-app/agent-config/commit/5d96d37681772283ee8b4e236b6f6f21b742bcfc))
65
+ * **discovery:** annotate language/framework packs ([9af770f](https://github.com/event4u-app/agent-config/commit/9af770ffc708fa402c513896c414bf5566fafeab))
66
+ * **discovery/engineering-base:** annotate engineering-base pack ([a6f498f](https://github.com/event4u-app/agent-config/commit/a6f498fc389642acc3d9a1a4dea60ce8d96397ff))
67
+ * **discovery/php:** annotate php pack (pilot) ([2f94b33](https://github.com/event4u-app/agent-config/commit/2f94b331ae317d9996d05bd1a87bacbd47f6eb6b))
68
+ * **discovery:** Phase 4 annotation helper ([2d5b816](https://github.com/event4u-app/agent-config/commit/2d5b81610d1eea7e36f492d35efdd01a0fee26cb))
69
+ * **discovery:** R3 Phase 3 — TS CLI subcommands + Fastify discovery route ([5d58a6d](https://github.com/event4u-app/agent-config/commit/5d58a6d5852b2d7058159df7241fb144251bde47))
70
+ * **discovery:** R3 Phase 2 — release-time scanner + manifest tooling ([784d072](https://github.com/event4u-app/agent-config/commit/784d0720cbea94304d4b8f75edf64152b221686f))
71
+ * **discovery:** R3 Phase 1 — workspace & pack vocabulary as YAML ([ca08f1e](https://github.com/event4u-app/agent-config/commit/ca08f1ea9de0f3b8d52cb5b9746fb9ee56d749f8))
72
+ * **discovery:** R3 Phase 0 — frontmatter contract and manifest schema ([633973e](https://github.com/event4u-app/agent-config/commit/633973e810f7cbf4758afe4151c20f8b01cab959))
73
+ * **ui:** Vite UI scaffold (placeholder) ([169edbd](https://github.com/event4u-app/agent-config/commit/169edbd53de0b7be1d6454df7d3c7e3e3cbbf0c6))
74
+ * **server:** embed Fastify server with security guards ([8c2f9ff](https://github.com/event4u-app/agent-config/commit/8c2f9ffde3126681a63a8f1cd04397fda2e536f8))
75
+ * **cli:** TypeScript entry binary as thin forwarder ([df6c92c](https://github.com/event4u-app/agent-config/commit/df6c92c3b3aa3b63fb6edf54670f8a5d166e57f9))
76
+
77
+ ### Bug Fixes
78
+
79
+ * **ci:** sync compressed outputs (fetch description, failure-modes heading, agent-settings code block) ([6bb9b36](https://github.com/event4u-app/agent-config/commit/6bb9b363a46310ffe32d1859ed356eaf0cbd6b18))
80
+ * **ci:** propagate path refactor into .agent-src/, trim ghostwriter description ([2747288](https://github.com/event4u-app/agent-config/commit/2747288b62ee4135d5f5459d2864f3a8fe0ce97a))
81
+ * **ui:** surface field errors on wizard step nav and toggle/radio inputs ([3abd156](https://github.com/event4u-app/agent-config/commit/3abd1560691397a4bfbf85f1279b6f9146513418))
82
+ * **roadmaps:** update wizard-install-py-wiring parent link to archive path ([a40ae6e](https://github.com/event4u-app/agent-config/commit/a40ae6e2da01e2b96120af3fe87f2a787dc9b076))
83
+ * **ui:** close diff modal and focus first errored field on save failure ([dd5bc72](https://github.com/event4u-app/agent-config/commit/dd5bc7236e26757dc4f809f49ee8f600710baebf))
84
+ * **server:** wrap userMd through commitMulti helper for parity ([752199c](https://github.com/event4u-app/agent-config/commit/752199cf3907fca27b8198989b9edbc5ce56c28a))
85
+ * **server:** satisfy noUncheckedIndexedAccess in yamlIO.replaceScalar ([53e9759](https://github.com/event4u-app/agent-config/commit/53e97597e87b41744e939ae9dd4c6ff5d804ca86))
86
+ * **server:** hoist inline import() types to top-level import type ([515ddda](https://github.com/event4u-app/agent-config/commit/515dddadf391410b76c93d5829e27a2948b011e5))
87
+ * **readme:** keep line count under lint floor + drop archived-roadmap link ([2b5e63c](https://github.com/event4u-app/agent-config/commit/2b5e63c3f29d74a20c344455d015d89cec326abd))
88
+ * **sync:** drop stale .pytest_cache hash entry ([31dcaa4](https://github.com/event4u-app/agent-config/commit/31dcaa4cf614566db36f566a2388dc3f1a4dba0f))
89
+ * **discovery:** allow ADR-013 discovery frontmatter in JSON schemas ([4100ef4](https://github.com/event4u-app/agent-config/commit/4100ef45796144e3e3bbf8c1a9cfd704ac9749cb))
90
+ * **discovery:** absorb +189 frontmatter into concentration allowlist ([d0e160d](https://github.com/event4u-app/agent-config/commit/d0e160db9b575b95c73c9423a089f2018bb76f92))
91
+ * **discovery:** shift framework-leakage allowlist by +12 after frontmatter inject ([6deacba](https://github.com/event4u-app/agent-config/commit/6deacba9523f7519a17b65e79f9e5b5f88f96371))
92
+ * **discovery:** mirror generated_at normalisation in manifest linter ([5a30bf6](https://github.com/event4u-app/agent-config/commit/5a30bf65b87d86655bddcc2598b13d8ad5d61c32))
93
+ * **discovery:** exclude generated_at from manifest checksum ([84dd81a](https://github.com/event4u-app/agent-config/commit/84dd81ab6eeb886ed2cb449eaf975466f16a5cd5))
94
+ * **discovery:** allow documented_unassigned in manifest schema ([357a817](https://github.com/event4u-app/agent-config/commit/357a817d30486d5dc420ac326c625d0ec1277e00))
95
+ * **discovery:** defer strict mode to --strict flag only (Phase 4.4 gate) ([45c1d67](https://github.com/event4u-app/agent-config/commit/45c1d679d26c8eae2c2f666400973cd170813660))
96
+ * **golden:** silence deprecation banner in capture runner ([a98ed4e](https://github.com/event4u-app/agent-config/commit/a98ed4eaebb32cab229e5bce038000abdbf13f50))
97
+ * **ci:** build dist before test:ts + restore symlink-safe shim ([ebd64a6](https://github.com/event4u-app/agent-config/commit/ebd64a6dd77ba2c474982ff88d1e9ee429cfd9b1))
98
+
99
+ ### Documentation
100
+
101
+ * **wizard:** pivot onboarding-gate and consumer docs to agent-config setup ([be83c1b](https://github.com/event4u-app/agent-config/commit/be83c1b4a6aa16400a3c5f5ce80571bcbff26dbd))
102
+ * **readme:** tighten quickstart wizard line to stay at 750-line cap ([9ebe01f](https://github.com/event4u-app/agent-config/commit/9ebe01f4b46f3a32c59a546243c1cf7023f7026b))
103
+ * **setup-gui:** wizard guide + customization + contracts ([dcd1ecb](https://github.com/event4u-app/agent-config/commit/dcd1ecb68b7fa84060108ddb273b593983809b6b))
104
+ * **contracts,customization:** document /onboard ↔ wizard convergence ([0a7c707](https://github.com/event4u-app/agent-config/commit/0a7c7074aff338c18517deeec006a051ddafc59a))
105
+ * **skill:** rewrite /onboard to use agent-config onboard:finish ([2a0053d](https://github.com/event4u-app/agent-config/commit/2a0053dd71d4feb7d44bee70833f40607f9b143c))
106
+ * **contracts:** add onboard-skill-wizard bridge IPC contract ([08b5e22](https://github.com/event4u-app/agent-config/commit/08b5e22928760f3677408989373ba14c0ccff125))
107
+ * **roadmap:** carve out /onboard convergence as follow-up (council HARD-BLOCKER) ([16445fe](https://github.com/event4u-app/agent-config/commit/16445fe005e7f1545aa98c5318c770d99ac62e9a))
108
+ * **readme:** condense explainability blurb to stay under 750-line lint floor ([f5e1882](https://github.com/event4u-app/agent-config/commit/f5e1882c304acabb2993d98ec0aad0b69fddd2b4))
109
+ * **explain:** document 'explain last' in customization.md and README ([dc5fe30](https://github.com/event4u-app/agent-config/commit/dc5fe304bca51ade2d94a04c09bcd816399b991a))
110
+ * **discovery:** point references at archived R3 roadmap + virtual-pack note + sha256 sidecar ([1437b82](https://github.com/event4u-app/agent-config/commit/1437b8289fbf8578ccda283eb8ce810012232676))
111
+ * **discovery:** add Phase 4 annotation audit trail + fix archive ref ([9f034a8](https://github.com/event4u-app/agent-config/commit/9f034a8edd2d8009a931e30c600474e9b4d88935))
112
+ * **roadmap:** mark R3 Phases 4-6 + council resolution complete ([1b0bb2d](https://github.com/event4u-app/agent-config/commit/1b0bb2d3c718c97f328496d65163081796f4ba65))
113
+ * **discovery:** cross-link ADR-013 from AGENTS.md and customization (Phase 6.2) ([acd82af](https://github.com/event4u-app/agent-config/commit/acd82af601547bb4dfe48ec8ca59c01142e4a20a))
114
+ * **adr:** add ADR-012 — TypeScript CLI shell ([29e6bc4](https://github.com/event4u-app/agent-config/commit/29e6bc45c06bcbc41c48d3e984128b6716b795c2))
115
+
116
+ ### Refactoring
117
+
118
+ * relocate durable records (runtime→evidence, low-impact→decisions) ([6d72262](https://github.com/event4u-app/agent-config/commit/6d722620d1d289ccd18fa05010f134f9cf088595))
119
+ * consolidate agents/ into privilege-first taxonomy ([d2ce674](https://github.com/event4u-app/agent-config/commit/d2ce6748872fcda71a58517202882b4d49b7f82f))
120
+ * **agents:** relocate council to runtime/, audit bundles to audits/, ai-council config to settings/ ([8cee3b3](https://github.com/event4u-app/agent-config/commit/8cee3b3a4b8c43d1036047324d2c3e9ad1615fce))
121
+ * relocate user-md schema to shared and drop gray-matter ([cd9dba7](https://github.com/event4u-app/agent-config/commit/cd9dba7511637a8ca858d416e6b20609c3097b10))
122
+
123
+ ### Tests
124
+
125
+ * **command-suggester:** drop onboard-specific assertion ([61c925b](https://github.com/event4u-app/agent-config/commit/61c925b30399b7903847a53b7b04e2a008b5bf7c))
126
+ * Phase 5 evidence — server routes, atomic writes, wizard state, UI pages ([b968d06](https://github.com/event4u-app/agent-config/commit/b968d06892a0ba8039811e33004fed20c6c27cea))
127
+ * **ui:** wizard flow + resume acceptance gates ([e63b54d](https://github.com/event4u-app/agent-config/commit/e63b54d908c7b0a4d5abc96c97f46619f8993f37))
128
+ * **server:** parity gate — onboard:finish ↔ wizard byte-identical ([4d4c7e4](https://github.com/event4u-app/agent-config/commit/4d4c7e48aa19bbda1814dc2058bc8e25d7be90bc))
129
+ * **golden:** regenerate GT baselines after adding state.halts field ([0363256](https://github.com/event4u-app/agent-config/commit/036325610bd97ac911ea94fbc5be578efc4b6ed5))
130
+ * **explain:** add 43-test coverage suite + fixtures ([765392c](https://github.com/event4u-app/agent-config/commit/765392c7a70d954caf6db7a4afd2a0c49ec5be7e))
131
+ * **ts:** cover CLI forwarder, server, and UI build ([a4bc38b](https://github.com/event4u-app/agent-config/commit/a4bc38b3fde0bc77565caaf21fa681884c445f2f))
132
+
133
+ ### CI
134
+
135
+ * **tests:** install jsonschema for explain-trace contract validation ([3448273](https://github.com/event4u-app/agent-config/commit/3448273d16115cbb4b57f73fef34a3a64cd0ee8f))
136
+ * **ts:** wire TypeScript gates + ship local-server-api contract ([68bcf86](https://github.com/event4u-app/agent-config/commit/68bcf86ffec4b47c935f2db27fe0909002c1fb84))
137
+
138
+ ### Chores
139
+
140
+ * untrack agents/runtime/ as volatile local-only ([2b87436](https://github.com/event4u-app/agent-config/commit/2b87436e7916fb145a5db16ed9e71e7e9d1f4046))
141
+ * capture 2026-05-18 AI council responses for taxonomy convergence ([821def9](https://github.com/event4u-app/agent-config/commit/821def9e687d29db3e41b49c89bd3bed81274223))
142
+ * **roadmap:** land onboarding-wizard-takeover and regenerated indexes ([5d26671](https://github.com/event4u-app/agent-config/commit/5d26671223c3d8244bac4f3d00aabc04a20b2667))
143
+ * **rules:** trim auto-rule descriptions to fit 95% augment budget ([7a3fa4a](https://github.com/event4u-app/agent-config/commit/7a3fa4a00343603c3ab4155458f2c74d4c7ce770))
144
+ * **roadmap:** close unified-setup-and-settings-gui + archive + sibling frontmatter ([6bfc11e](https://github.com/event4u-app/agent-config/commit/6bfc11e045d7b40cd27268f9ea517a05c5111d15))
145
+ * **roadmap:** close phases 1-4 of unified-setup-and-settings-gui + carve out install.py wiring ([a460ef4](https://github.com/event4u-app/agent-config/commit/a460ef434f1b7ca78e7109e90e7a785fdc2abe8e))
146
+ * **build:** wire Preact + Signals + happy-dom for GUI ([483630b](https://github.com/event4u-app/agent-config/commit/483630b693b86dc1591b59ace22ee881c1a8df83))
147
+ * **roadmap:** archive completed convergence roadmap ([9b5f9fe](https://github.com/event4u-app/agent-config/commit/9b5f9fe7ee86f5c6415c77589cba716ee0d73ca3))
148
+ * **policy:** add project-local TypeScript-first engineering policy ([9b4f0b8](https://github.com/event4u-app/agent-config/commit/9b4f0b85734d4ec6e73cd1cf361fd880bd7614f9))
149
+ * **rules:** add pre-PR freshness gate to prevent stale-base conflicts ([c913a7f](https://github.com/event4u-app/agent-config/commit/c913a7fa3ab78bbb090c4203e3d291063a90be57))
150
+ * **sync:** regenerate compressed mirrors + hashes for trimmed descriptions ([fe8c7c2](https://github.com/event4u-app/agent-config/commit/fe8c7c23e9127a5031ece5b0f85e68dcbde59c2a))
151
+ * **rules:** trim 4 over-budget rule descriptions to ≤150 chars ([326f7d1](https://github.com/event4u-app/agent-config/commit/326f7d1f68d1fd2e438d1e6d5caf7c0b2ddc09dc))
152
+ * **ownership:** regenerate file-ownership matrix ([aaabe42](https://github.com/event4u-app/agent-config/commit/aaabe4220edebea9f52185bf9322893cb5540f6c))
153
+ * **lint:** allowlist 2 pre-existing multi-stack enumerations ([e192281](https://github.com/event4u-app/agent-config/commit/e1922817e251aeb2b9fd0e47735b93ca08fb26ad))
154
+ * **roadmap:** mark phase 0 done on onboard-skill-wizard-convergence ([9c642f3](https://github.com/event4u-app/agent-config/commit/9c642f37e0fcc9e25f0f39ddc61ba6dc216a95a2))
155
+ * **roadmap:** close and archive explainability-v2-explain-last ([5016b20](https://github.com/event4u-app/agent-config/commit/5016b202dbf2015461f13ea8786ad0ccb2538a2d))
156
+ * **roadmap:** mark Phase 3 of explainability-v2-explain-last complete ([b7bbed7](https://github.com/event4u-app/agent-config/commit/b7bbed775a279ca7179a9433cd0c33b1395ac102))
157
+ * **roadmap:** close and archive R3 — automated-pack-workspace-and-skill-discovery ([f67f0ec](https://github.com/event4u-app/agent-config/commit/f67f0ecff81ce35b99a396b55a2b99d80d11db9d))
158
+ * **templates:** bump agent_config_version pin to 2.26.0 ([ad0f30f](https://github.com/event4u-app/agent-config/commit/ad0f30f9f219636a3a711ee86bafd2b3456eacf8))
159
+ * **index:** regenerate after Phase 4 annotation lands ([25ec177](https://github.com/event4u-app/agent-config/commit/25ec1773bf0518931e7c39abf292af4a0e074e79))
160
+ * **roadmap:** flip R3 Phases 0–3 + regenerate progress dashboard ([03d0b26](https://github.com/event4u-app/agent-config/commit/03d0b266dc4ff85bbb400373f43227c54ed4d694))
161
+ * **roadmap:** persist progress-sync rule across autonomous runs ([db06aae](https://github.com/event4u-app/agent-config/commit/db06aae4f8e60b2a92925057902cce241c723a2b))
162
+ * **roadmaps:** archive typescript-cli-and-local-gui-foundation (delivered in PR #187) ([d87e5ff](https://github.com/event4u-app/agent-config/commit/d87e5ffb42099ca9664538a7c057f7b434548501))
163
+ * **deps:** scaffold TypeScript toolchain for CLI shell ([453dcdd](https://github.com/event4u-app/agent-config/commit/453dcddb638a175b6cdcdb99ba31e476dcae2968))
164
+ * **roadmaps:** archive framework-neutrality-audit (shipped in 2.26.0) ([4935c26](https://github.com/event4u-app/agent-config/commit/4935c2640c80557ec949ac3c841a3bb5d2b335e6))
165
+
166
+ Tests: 4697 (+52 since 2.26.0)
167
+
package/docs/catalog.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # agent-config — Public Catalog
2
2
 
3
- Consumer-facing catalog of all **490 public artefacts** shipped by
3
+ Consumer-facing catalog of all **494 public artefacts** shipped by
4
4
  this package. Internal package-maintenance rules and deprecation shims
5
5
  are excluded.
6
6
 
@@ -230,7 +230,7 @@ are excluded.
230
230
  | skill | [`voc-extract`](../.agent-src/skills/voc-extract/SKILL.md) | | Use when extracting Voice-of-Customer themes from existing artefacts — GH issues, PR threads, Sentry patterns. Triggers on 'what are users saying', 'recurring complaints', 'top themes'. |
231
231
  | 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'. |
232
232
 
233
- ## Rules (71)
233
+ ## Rules (74)
234
234
 
235
235
  | kind | name | type | description |
236
236
  |---|---|---|---|
@@ -257,8 +257,10 @@ are excluded.
257
257
  | rule | [`domain-safety-pii`](../.agent-src/rules/domain-safety-pii.md) | auto | Drafts, logs, exports touching real customer/candidate data — redact direct IDs, use placeholders, flag re-identification on quasi-IDs |
258
258
  | rule | [`domain-safety-retention`](../.agent-src/rules/domain-safety-retention.md) | auto | Data retention (finance, support/CRM) — name jurisdiction gap, default to longest floor, honor DSR/audit holds, never delete under inquiry |
259
259
  | rule | [`downstream-changes`](../.agent-src/rules/downstream-changes.md) | auto | After EVERY code edit, find ALL downstream changes — callers, tests, imports, types, documentation |
260
+ | rule | [`engineering-safety-floor`](../.agent-src/rules/engineering-safety-floor.md) | auto | Engineering output touching production, infra, security, data, or external systems — surface blast radius, name rollback path, never autonomous on Hard-Floor triggers |
260
261
  | rule | [`external-reference-deep-dive`](../.agent-src/rules/external-reference-deep-dive.md) | auto | User names external repo/file/URL/artifact as reference — fetch the actual tree and inspect, never summarize from README or metadata |
261
262
  | rule | [`fast-path-marker-visibility`](../.agent-src/rules/fast-path-marker-visibility.md) | auto | Low-impact council fast-path dispatch — host MUST surface transparency marker verbatim in reply opening; never paraphrase |
263
+ | rule | [`finance-safety-floor`](../.agent-src/rules/finance-safety-floor.md) | auto | Finance-pack output (runway, valuation, DCF, scenario, unit economics, forecasting) — never issue final invest/raise call; mandatory disclosure footer; sensitivity + counter-case required |
262
264
  | rule | [`framework-neutrality-in-generic-skills`](../.agent-src/rules/framework-neutrality-in-generic-skills.md) | auto | Editing a generic skill/rule/command — block single-stack mandates; use language-agnostic procedures with carve-out pointers |
263
265
  | rule | [`git-history-discipline`](../.agent-src/rules/git-history-discipline.md) | auto | Git history ops — never rebase/squash/amend without explicit request; once pushed, rewrites must pair with immediate re-push same turn |
264
266
  | rule | [`guidelines`](../.agent-src/rules/guidelines.md) | manual | Writing or reviewing code — check relevant guideline before writing or reviewing code |
@@ -295,6 +297,7 @@ are excluded.
295
297
  | rule | [`skill-improvement-trigger`](../.agent-src/rules/skill-improvement-trigger.md) | auto | After a meaningful task — trigger post-task learning capture if pipelines.skill_improvement is enabled |
296
298
  | rule | [`skill-quality`](../.agent-src/rules/skill-quality.md) | auto | Creating/editing/reviewing skills — minimum quality standard; every skill executable, validated, self-contained |
297
299
  | rule | [`slash-command-routing-policy`](../.agent-src/rules/slash-command-routing-policy.md) | auto | User types a slash command like /create-pr, /commit, or pastes command file content |
300
+ | rule | [`strategy-safety-floor`](../.agent-src/rules/strategy-safety-floor.md) | auto | Founder-strategy output (vision, positioning, competitive moats, market entry, OKR trees, build-vs-buy) — never issue final strategic call; surface trade-offs; human owns the decision |
298
301
  | rule | [`symfony-routing`](../.agent-src/rules/symfony-routing.md) | auto | Writing/reviewing Symfony — DI, bundles, Doctrine, Messenger, Security voters, console commands — route to symfony-workflow |
299
302
  | rule | [`think-before-action`](../.agent-src/rules/think-before-action.md) | auto | Before coding/modifying/debugging — analyze first, verify with real tools, never guess or trial-and-error |
300
303
  | rule | [`token-efficiency`](../.agent-src/rules/token-efficiency.md) | auto | Running CLI tools, fetching logs, or producing replies — redirect verbose output, minimize tool calls, keep replies concise |
@@ -306,58 +309,59 @@ are excluded.
306
309
  | rule | [`user-interrupt-priority`](../.agent-src/rules/user-interrupt-priority.md) | always | User interrupts override the current task — STOP, complete new task in full, then ASK before resuming; never silently return to prior work |
307
310
  | rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
308
311
 
309
- ## Commands (128)
312
+ ## Commands (129)
310
313
 
311
314
  | kind | name | cluster | description |
312
315
  |---|---|---|---|
313
316
  | command | [`agent-handoff`](../.agent-src/commands/agent-handoff.md) | | Generate a context summary for continuing work in a fresh chat. Replaces the session system. |
314
317
  | command | [`agent-status`](../.agent-src/commands/agent-status.md) | | Show current conversation stats — message count, token costs, task progress, next freshness check. |
318
+ | 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). |
315
319
  | 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. |
316
320
  | 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. |
317
321
  | 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. |
322
+ | 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. |
318
323
  | 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. |
319
324
  | 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). |
320
325
  | 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. |
321
326
  | 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. |
322
327
  | 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. |
323
- | 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. |
324
- | 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). |
325
328
  | 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. |
326
329
  | command | [`bug-fix`](../.agent-src/commands/bug-fix.md) | | Plan and implement a bug fix — based on investigation, with quality checks and test verification |
327
330
  | command | [`bug-investigate`](../.agent-src/commands/bug-investigate.md) | | Investigate a bug — auto-detect ticket from branch, gather Jira/Sentry/description context, trace root cause |
331
+ | command | [`challenge-me`](../.agent-src/commands/challenge-me.md) | cluster: challenge-me | Challenge-me orchestrator — routes to vision, with-docs |
328
332
  | command | [`challenge-me:vision`](../.agent-src/commands/challenge-me/vision.md) | cluster: challenge-me | Stress-test a plan or idea by one-question-at-a-time interview until 95% confidence — emits a copyable Markdown vision pitch for tickets, roadmaps, or fresh-chat handoff. |
329
333
  | command | [`challenge-me:with-docs`](../.agent-src/commands/challenge-me/with-docs.md) | cluster: challenge-me | Doc-aware /challenge-me — 95%-confidence interview with session glossary vs CONTEXT.md, load-bearing claim-vs-code verification, optional CONTEXT.md patch + ADR candidates in the pitch. |
330
- | command | [`challenge-me`](../.agent-src/commands/challenge-me.md) | cluster: challenge-me | Challenge-me orchestrator — routes to vision, with-docs |
334
+ | command | [`chat-history`](../.agent-src/commands/chat-history.md) | cluster: chat-history | Chat-history orchestrator — routes to show, import, learn |
331
335
  | command | [`chat-history:import`](../.agent-src/commands/chat-history/import.md) | cluster: chat-history | Surface prior chat-history sessions as a numbered table, let the user pick one, read it silently, and emit a short summary plus a resume offer — selective, user-driven cross-session import |
332
336
  | command | [`chat-history:learn`](../.agent-src/commands/chat-history/learn.md) | cluster: chat-history | Pick a prior chat-history session and mine it for project-improving learnings — runs learning-to-rule-or-skill on the picked session, drafts proposal(s) under agents/proposals/ |
333
337
  | command | [`chat-history:show`](../.agent-src/commands/chat-history/show.md) | cluster: chat-history | Show the status of the persistent chat-history log — file size, entry count, header fingerprint, age, and the last few entries |
334
- | command | [`chat-history`](../.agent-src/commands/chat-history.md) | cluster: chat-history | Chat-history orchestrator — routes to show, import, learn |
335
338
  | command | [`check-current-md`](../.agent-src/commands/check-current-md.md) | | Check the open .md file (or a passed path) for German outside DE:/EN: anchor blocks — umlauts, function words, untranslated quotes. Reports and offers fixes. |
336
- | command | [`commit:in-chunks`](../.agent-src/commands/commit/in-chunks.md) | cluster: commit | Stage and commit all uncommitted changes in logical chunks WITHOUT confirmation — sibling of /commit for autonomous flows |
337
339
  | command | [`commit`](../.agent-src/commands/commit.md) | cluster: commit | Stage and commit all uncommitted changes — splits into logical commits following Conventional Commits |
340
+ | command | [`commit:in-chunks`](../.agent-src/commands/commit/in-chunks.md) | cluster: commit | Stage and commit all uncommitted changes in logical chunks WITHOUT confirmation — sibling of /commit for autonomous flows |
338
341
  | command | [`compress`](../.agent-src/commands/compress.md) | | Compress .md files from .agent-src.uncompressed/ into caveman format and write to .agent-src/ |
342
+ | command | [`context`](../.agent-src/commands/context.md) | cluster: context | Context orchestrator — routes to create, refactor |
339
343
  | command | [`context:create`](../.agent-src/commands/context/create.md) | cluster: context | Analyze a codebase area and create a structured context document |
340
344
  | command | [`context:refactor`](../.agent-src/commands/context/refactor.md) | cluster: context | Analyze, update, and extend an existing context document |
341
- | command | [`context`](../.agent-src/commands/context.md) | cluster: context | Context orchestrator — routes to create, refactor |
342
345
  | command | [`cost-report`](../.agent-src/commands/cost-report.md) | | Capture token cost from the active Claude Code session, append to the local sessions store, and surface the 50/75/90/100% budget alert ladder with cost-profile suggestions. |
346
+ | command | [`council`](../.agent-src/commands/council.md) | cluster: council | Council orchestrator — routes to default, pr, design, optimize, analysis, debate |
343
347
  | command | [`council:analysis`](../.agent-src/commands/council/analysis.md) | cluster: council | Run the council on a local analysis output (project-analyze, audit script, codebase scan) — critiques the analysis itself for dedup, evidence quality, and roadmap-readiness. |
344
348
  | command | [`council:debate`](../.agent-src/commands/council/debate.md) | cluster: council | Multi-round council debate with progressive cost disclosure — each member produces a position, then rebuts the strongest opposing position in subsequent rounds. User confirms spend between rounds. |
345
349
  | command | [`council:default`](../.agent-src/commands/council/default.md) | cluster: council | Default council lens — neutral framing, redacted context, advisory output only. Run `/council default <input>` for prompt/roadmap/diff/files; the cluster shows a menu when invoked bare. |
346
350
  | command | [`council:design`](../.agent-src/commands/council/design.md) | cluster: council | Run the council on a design document, ADR, or architecture proposal — surfaces hidden coupling, missing rollback, and sequencing risk before commitment. |
347
351
  | command | [`council:optimize`](../.agent-src/commands/council/optimize.md) | cluster: council | Run the council on an optimization target — perf hot path, memory pattern, query, or an /optimize-* output — for ranked, evidence-based suggestions instead of generic advice. |
348
352
  | command | [`council:pr`](../.agent-src/commands/council/pr.md) | cluster: council | Pull a GitHub PR via gh CLI and run the council on the diff with a PR-specific neutrality preamble — read-only by default; comment posting is opt-in. |
349
- | command | [`council`](../.agent-src/commands/council.md) | cluster: council | Council orchestrator — routes to default, pr, design, optimize, analysis, debate |
350
- | command | [`create-pr:description-only`](../.agent-src/commands/create-pr/description-only.md) | cluster: create-pr | Generate a PR description as a copyable markdown block — used standalone or by create-pr |
351
353
  | command | [`create-pr`](../.agent-src/commands/create-pr.md) | cluster: create-pr | Create a GitHub PR with structured description from Jira ticket and code changes |
354
+ | command | [`create-pr:description-only`](../.agent-src/commands/create-pr/description-only.md) | cluster: create-pr | Generate a PR description as a copyable markdown block — used standalone or by create-pr |
352
355
  | command | [`e2e-heal`](../.agent-src/commands/e2e-heal.md) | | Find, debug, and fix failing Playwright E2E tests |
353
356
  | command | [`e2e-plan`](../.agent-src/commands/e2e-plan.md) | | Explore the application and create a structured E2E test plan in Markdown |
354
357
  | command | [`estimate-ticket`](../.agent-src/commands/estimate-ticket.md) | | Estimate a Jira/Linear ticket before sprint planning — size + risk + split recommendation + uncertainty, sibling to /refine-ticket, ends with a close-prompt |
358
+ | command | [`feature`](../.agent-src/commands/feature.md) | cluster: feature | Feature orchestrator — routes to explore, plan, refactor, roadmap, dev |
355
359
  | command | [`feature:dev`](../.agent-src/commands/feature/dev.md) | cluster: feature | Full 7-phase feature development workflow for complex features. |
356
360
  | command | [`feature:explore`](../.agent-src/commands/feature/explore.md) | cluster: feature | Brainstorm and explore a feature idea before committing to a full plan |
357
361
  | command | [`feature:plan`](../.agent-src/commands/feature/plan.md) | cluster: feature | Interactively plan a feature — research, discuss, and create a structured feature document |
358
362
  | command | [`feature:refactor`](../.agent-src/commands/feature/refactor.md) | cluster: feature | Refine and update an existing feature plan through interactive discussion |
359
363
  | command | [`feature:roadmap`](../.agent-src/commands/feature/roadmap.md) | cluster: feature | Generate implementation roadmap(s) from a feature plan and link them |
360
- | command | [`feature`](../.agent-src/commands/feature.md) | cluster: feature | Feature orchestrator — routes to explore, plan, refactor, roadmap, dev |
364
+ | command | [`fix`](../.agent-src/commands/fix.md) | cluster: fix | Fix orchestrator — routes to ci, references, portability, seeder, pr-comments, pr-bot-comments, pr-developer-comments |
361
365
  | command | [`fix:ci`](../.agent-src/commands/fix/ci.md) | cluster: fix | Fetch CI errors from GitHub Actions and fix them |
362
366
  | command | [`fix:portability`](../.agent-src/commands/fix/portability.md) | cluster: fix | Find and fix project-specific references in shared .augment/ package files |
363
367
  | command | [`fix:pr-bot-comments`](../.agent-src/commands/fix/pr-bot-comments.md) | cluster: fix | Fix and reply to bot review comments (Copilot, Augment, Greptile, etc.) on a GitHub PR |
@@ -365,78 +369,78 @@ are excluded.
365
369
  | command | [`fix:pr-developer-comments`](../.agent-src/commands/fix/pr-developer-comments.md) | cluster: fix | Fix and reply to human reviewer comments on a GitHub PR |
366
370
  | command | [`fix:refs`](../.agent-src/commands/fix/refs.md) | cluster: fix | Find and fix broken cross-references in .augment/ and agents/ files |
367
371
  | command | [`fix:seeder`](../.agent-src/commands/fix/seeder.md) | cluster: fix | Scan seeder data files for broken foreign key references — find constants used without getReference() and fix them |
368
- | command | [`fix`](../.agent-src/commands/fix.md) | cluster: fix | Fix orchestratorroutes to ci, references, portability, seeder, pr-comments, pr-bot-comments, pr-developer-comments |
372
+ | command | [`ghostwriter`](../.agent-src/commands/ghostwriter.md) | cluster: ghostwriter | Ghostwriter clusterfetch, write, list, show, and delete public-figure voice profiles (the third voice primitive alongside personas/ and .agent-user.md). |
369
373
  | command | [`ghostwriter:delete`](../.agent-src/commands/ghostwriter/delete.md) | cluster: ghostwriter | Hard-delete a ghostwriter profile at agents/reference/ghostwriter/<slug>.md after a two-step confirmation. No backup, no soft delete — the file is gone after acceptance. |
370
374
  | command | [`ghostwriter:fetch`](../.agent-src/commands/ghostwriter/fetch.md) | cluster: ghostwriter | Build or refresh a public-figure voice profile under agents/reference/ghostwriter/ from a URL or bare name; runs the public-figure attestation gate; delegates web-fetch/web-search to host. |
371
375
  | command | [`ghostwriter:list`](../.agent-src/commands/ghostwriter/list.md) | cluster: ghostwriter | List captured ghostwriter profiles under agents/reference/ghostwriter/ as a numbered table with confidence, last-fetched, and stale-warning flags. Read-only. |
372
376
  | command | [`ghostwriter:show`](../.agent-src/commands/ghostwriter/show.md) | cluster: ghostwriter | Render a single ghostwriter profile in full — identity, style fingerprint, voice samples, taboos, source URLs. Read-only. |
373
377
  | command | [`ghostwriter:write`](../.agent-src/commands/ghostwriter/write.md) | cluster: ghostwriter | Draft a markdown post in the voice of a captured public-figure ghostwriter profile; appends the mandatory non-removable disclosure footer. |
374
- | command | [`ghostwriter`](../.agent-src/commands/ghostwriter.md) | cluster: ghostwriter | Ghostwriter cluster — fetch, write, list, show, and delete public-figure voice profiles (the third voice primitive alongside personas/ and .agent-user.md). |
375
378
  | command | [`grill-me`](../.agent-src/commands/grill-me.md) | cluster: challenge-me | Alias for /challenge-me — interactive grill-style interview that sharpens a fuzzy plan/idea into a copyable Markdown pitch |
376
379
  | command | [`implement-ticket`](../.agent-src/commands/implement-ticket.md) | | Drive a ticket end-to-end through refine → memory → analyze → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, block-on-ambiguity, no auto-git. |
380
+ | command | [`install-via-agent`](../.agent-src/commands/install-via-agent.md) | | Drive `@event4u/agent-config` installer through its JSON agent-mode protocol — turn-by-turn workspace + pack selection without TTY. |
377
381
  | command | [`jira-ticket`](../.agent-src/commands/jira-ticket.md) | | Read Jira ticket from branch name, analyze linked Sentry issues, implement feature or fix bug |
382
+ | command | [`judge`](../.agent-src/commands/judge.md) | cluster: judge | Judge orchestrator — routes to solo, steps, on-diff |
378
383
  | command | [`judge:on-diff`](../.agent-src/commands/judge/on-diff.md) | cluster: judge | Run a single change through an implementer→judge loop with a two-revision ceiling, then hand back to the user |
379
384
  | command | [`judge:solo`](../.agent-src/commands/judge/solo.md) | cluster: judge | Run a standalone judge on an existing diff or code change — no implementer, no revision loop, verdict only |
380
385
  | 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 |
381
- | command | [`judge`](../.agent-src/commands/judge.md) | cluster: judge | Judge orchestrator — routes to solo, steps, on-diff |
386
+ | command | [`memory`](../.agent-src/commands/memory.md) | cluster: memory | Memory orchestrator — routes to add, load, mine-session, promote, propose |
382
387
  | 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) |
383
388
  | 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. |
384
389
  | 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 |
385
390
  | 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. |
386
391
  | 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. |
387
392
  | command | [`memory:propose`](../.agent-src/commands/memory/propose.md) | cluster: memory | Append a provisional memory signal to the intake stream — the universal fallback for any producer (human or agent) to record a finding without committing to a curated entry. |
388
- | command | [`memory`](../.agent-src/commands/memory.md) | cluster: memory | Memory orchestrator — routes to add, load, mine-session, promote, propose |
389
393
  | command | [`mode`](../.agent-src/commands/mode.md) | | Set the active role mode — prints the contract, lists default skills, and refuses work outside the contract (see role-contracts) |
394
+ | command | [`module`](../.agent-src/commands/module.md) | cluster: module | Module orchestrator — routes to create, explore |
390
395
  | command | [`module:create`](../.agent-src/commands/module/create.md) | cluster: module | Create a new module from .module-template with interactive setup |
391
396
  | command | [`module:explore`](../.agent-src/commands/module/explore.md) | cluster: module | Explore a module — load its structure, docs, and context into the current conversation |
392
- | command | [`module`](../.agent-src/commands/module.md) | cluster: module | Module orchestratorroutes to create, explore |
397
+ | command | [`optimize-prompt`](../.agent-src/commands/optimize-prompt.md) | cluster: optimize | Optimize a raw prompt for ChatGPT, Claude, Gemini, or another AI via the 4-D methodology BASIC vs DETAIL auto-detect, one clarifying question per turn, returns the polished prompt. |
398
+ | command | [`optimize`](../.agent-src/commands/optimize.md) | cluster: optimize | Optimize orchestrator — routes to skills, agents-dir, augmentignore, rtk-filters |
393
399
  | command | [`optimize:agents-dir`](../.agent-src/commands/optimize/agents-dir.md) | cluster: optimize | Manage the agents/ directory — scaffold, folder-audit, fix. Single command with three modes (--scaffold / --audit / --fix); default = interactive wizard. |
394
400
  | command | [`optimize:augmentignore`](../.agent-src/commands/optimize/augmentignore.md) | cluster: optimize | Creates or updates .augmentignore based on the project's actual tech stack, large files, generated artifacts, and irrelevant agent skills/rules. |
395
401
  | command | [`optimize:rtk`](../.agent-src/commands/optimize/rtk.md) | cluster: optimize | Create or optimize project-local rtk filters based on the actual toolchain |
396
402
  | command | [`optimize:skills`](../.agent-src/commands/optimize/skills.md) | cluster: optimize | Audits skills — measures baseline, finds duplicates/merge candidates, runs linter. Suggest only, never auto-apply. |
397
- | command | [`optimize-prompt`](../.agent-src/commands/optimize-prompt.md) | cluster: optimize | Optimize a raw prompt for ChatGPT, Claude, Gemini, or another AI via the 4-D methodology — BASIC vs DETAIL auto-detect, one clarifying question per turn, returns the polished prompt. |
398
- | command | [`optimize`](../.agent-src/commands/optimize.md) | cluster: optimize | Optimize orchestrator — routes to skills, agents-dir, augmentignore, rtk-filters |
399
403
  | command | [`orchestrate`](../.agent-src/commands/orchestrate.md) | cluster: orchestrate | Run a YAML pipeline defined under `.agent-config/orchestrations/` — chains personas / skills / commands / sub-agents per the orchestration-dsl-v1 contract |
404
+ | command | [`override`](../.agent-src/commands/override.md) | cluster: override | Override orchestrator — routes to create, manage |
400
405
  | command | [`override:create`](../.agent-src/commands/override/create.md) | cluster: override | Creates a project-level override for a shared skill, rule, or command. |
401
406
  | command | [`override:manage`](../.agent-src/commands/override/manage.md) | cluster: override | Reviews, updates, and refactors existing project-level overrides. |
402
- | command | [`override`](../.agent-src/commands/override.md) | cluster: override | Override orchestrator — routes to create, manage |
403
407
  | command | [`package-reset`](../.agent-src/commands/package-reset.md) | | /package-reset |
404
408
  | command | [`package-test`](../.agent-src/commands/package-test.md) | | /package-test |
409
+ | command | [`post-as`](../.agent-src/commands/post-as.md) | cluster: post-as | Consumer-facing write entry points — :me drafts in the maintainer's own voice from .agent-user.md (no disclosure); :ghostwriter is a thin alias for /ghostwriter:write (mandatory disclosure footer). |
405
410
  | command | [`post-as:ghostwriter`](../.agent-src/commands/post-as/ghostwriter.md) | cluster: post-as | Thin alias for /ghostwriter:write — drafts a copyable markdown post in a captured public-figure voice with the mandatory non-removable disclosure footer. |
406
411
  | command | [`post-as:me`](../.agent-src/commands/post-as/me.md) | cluster: post-as | Draft a copyable markdown post in the maintainer's own voice (style source = .agent-user.md.voice_sample). No disclosure footer — the user is the author. |
407
- | command | [`post-as`](../.agent-src/commands/post-as.md) | cluster: post-as | Consumer-facing write entry points — :me drafts in the maintainer's own voice from .agent-user.md (no disclosure); :ghostwriter is a thin alias for /ghostwriter:write (mandatory disclosure footer). |
408
412
  | command | [`prepare-for-review`](../.agent-src/commands/prepare-for-review.md) | | Prepare a PR branch for local review — updates main and merges the full branch chain so the branch is up to date |
409
413
  | command | [`project-analyze`](../.agent-src/commands/project-analyze.md) | | Full project analysis — detect stack, inventory modules, audit docs, create missing contexts |
410
414
  | command | [`project-health`](../.agent-src/commands/project-health.md) | | Quick project health check — show status of docs, modules, contexts, and roadmaps without creating anything |
411
415
  | command | [`quality-fix`](../.agent-src/commands/quality-fix.md) | | Run quality pipeline (PHP and/or JS/TS) and fix all errors — auto-detects language from changed files |
412
416
  | command | [`refine-ticket`](../.agent-src/commands/refine-ticket.md) | | Refine a Jira/Linear ticket before planning — rewritten ticket + Top-5 risks + persona voices, orchestrates validate-feature-fit and threat-modeling, ends with a close-prompt |
417
+ | command | [`research`](../.agent-src/commands/research.md) | cluster: research | Preliminary research scaffolder — pick objects, define fields, emit `outline.yaml` + `fields.yaml` for downstream deep research. Use for surveys, benchmarks, tech selection, competitive scans. |
413
418
  | command | [`research:deep`](../.agent-src/commands/research/deep.md) | cluster: research | Read `outline.yaml`, research each item in batches, write per-item JSON validated against the project-local research-schema. No Python runtime, no `~/.claude/` paths. |
414
419
  | command | [`research:report`](../.agent-src/commands/research/report.md) | cluster: research | Summarise per-item JSON results from `/research:deep` into `report.md`. Agent renders directly + emits an optional `jq` template for deterministic regeneration. No Python runtime. |
415
- | command | [`research`](../.agent-src/commands/research.md) | cluster: research | Preliminary research scaffolder — pick objects, define fields, emit `outline.yaml` + `fields.yaml` for downstream deep research. Use for surveys, benchmarks, tech selection, competitive scans. |
416
420
  | command | [`review-changes`](../.agent-src/commands/review-changes.md) | | Self-review local changes before creating a PR — dispatches to five specialized judges (bug, security, tests, quality, architecture) and consolidates verdicts |
417
421
  | command | [`review-routing`](../.agent-src/commands/review-routing.md) | | Compute reviewer roles and matched historical bug patterns for the current diff, using project-local ownership-map.yml and historical-bug-patterns.yml |
422
+ | command | [`roadmap`](../.agent-src/commands/roadmap.md) | cluster: roadmap | Roadmap orchestrator — routes to create (authoring) and process-step / process-phase / process-full (autonomous execution). |
418
423
  | command | [`roadmap:ai-council`](../.agent-src/commands/roadmap/ai-council.md) | cluster: roadmap | Challenge a roadmap with the AI council (deep tier) and refactor from convergence findings. Wraps `/council default` pinned to `--input-mode roadmap --depth deep`; patches surface as numbered options. |
419
424
  | command | [`roadmap:create`](../.agent-src/commands/roadmap/create.md) | cluster: roadmap | Interactively create a new roadmap file in agents/roadmaps/ |
420
425
  | command | [`roadmap:process-full`](../.agent-src/commands/roadmap/process-full.md) | cluster: roadmap | Autonomously process every open step across every phase of a roadmap until the file is fully closed. Largest execution scope of the /roadmap cluster — runs continuously across phase boundaries. |
421
426
  | command | [`roadmap:process-phase`](../.agent-src/commands/roadmap/process-phase.md) | cluster: roadmap | Autonomously process every open step in the next or current phase of a roadmap, then stop. Default execution scope of the /roadmap cluster. |
422
427
  | command | [`roadmap:process-step`](../.agent-src/commands/roadmap/process-step.md) | cluster: roadmap | Autonomously process the single next open step of a roadmap and stop. Smallest execution scope of the /roadmap cluster — one step in, one step out. |
423
- | command | [`roadmap`](../.agent-src/commands/roadmap.md) | cluster: roadmap | Roadmap orchestrator — routes to create (authoring) and process-step / process-phase / process-full (autonomous execution). |
424
428
  | command | [`rule-compliance-audit`](../.agent-src/commands/rule-compliance-audit.md) | | Audit rule trigger quality, simulate activation, detect overlaps, and find never-activating rules |
425
429
  | command | [`set-cost-profile`](../.agent-src/commands/set-cost-profile.md) | | Change the cost_profile in .agent-settings.yml — shows each profile's meaning and applies the selection |
426
430
  | command | [`sync-agent-settings`](../.agent-src/commands/sync-agent-settings.md) | | Sync `.agent-settings.yml` against the current template + profile — adds new sections/keys, preserves user values, shows a diff before writing |
427
- | command | [`sync-gitignore:fix`](../.agent-src/commands/sync-gitignore/fix.md) | cluster: sync-gitignore | Scrub legacy pre-`/agents/` patterns from the consumer's .gitignore (inside or outside the managed block) and re-sync the canonical entries |
428
431
  | command | [`sync-gitignore`](../.agent-src/commands/sync-gitignore.md) | cluster: sync-gitignore | Sync the `event4u/agent-config` block in the consumer project's .gitignore — adds missing entries, preserves user-added lines, shows a diff before writing |
432
+ | command | [`sync-gitignore:fix`](../.agent-src/commands/sync-gitignore/fix.md) | cluster: sync-gitignore | Scrub legacy pre-`/agents/` patterns from the consumer's .gitignore (inside or outside the managed block) and re-sync the canonical entries |
433
+ | command | [`tests`](../.agent-src/commands/tests.md) | cluster: tests | Tests orchestrator — routes to create, execute |
429
434
  | command | [`tests:create`](../.agent-src/commands/tests/create.md) | cluster: tests | Write meaningful tests for the changes in the current branch |
430
435
  | command | [`tests:execute`](../.agent-src/commands/tests/execute.md) | cluster: tests | Run PHP tests inside the Docker container |
431
- | command | [`tests`](../.agent-src/commands/tests.md) | cluster: tests | Tests orchestrator — routes to create, execute |
432
436
  | command | [`threat-model`](../.agent-src/commands/threat-model.md) | | Run a pre-implementation threat model on a proposed change — enumerates abuse cases, trust boundaries, and authorization gaps before the first line of code is written |
433
437
  | command | [`update-form-request-messages`](../.agent-src/commands/update-form-request-messages.md) | | Sync the messages() method of a FormRequest class — add missing entries, link them to language keys, and clean up stale ones. |
434
438
  | command | [`upstream-contribute`](../.agent-src/commands/upstream-contribute.md) | | Contribute a learning, skill, rule, or fix from a consumer project back to the shared agent-config package |
439
+ | command | [`video`](../.agent-src/commands/video.md) | cluster: video | Video-creation orchestrator — Hollywood-level AI video pipeline. Routes to from-script, scene, storyboard, stitch. |
435
440
  | command | [`video:from-script`](../.agent-src/commands/video/from-script.md) | cluster: video | Drive a script end-to-end through the AI video pipeline — scenes → blueprint → image → operator pick → motion → video → stitch. Dry-run default; network calls require explicit per-turn confirmation. |
436
441
  | command | [`video:scene`](../.agent-src/commands/video/scene.md) | cluster: video | Render a single scene from a one-line idea — scene-expander → blueprint → image → operator pick → motion → video. Dry-run default; live calls require explicit per-turn confirmation. |
437
442
  | command | [`video:stitch`](../.agent-src/commands/video/stitch.md) | cluster: video | Re-stitch existing clips in `<project>/scenes/*/` after operator edits — no re-render. ffmpeg concat driven by manifest.json. |
438
443
  | command | [`video:storyboard`](../.agent-src/commands/video/storyboard.md) | cluster: video | Image-only storyboard — script → scenes → blueprint → image render → contact-sheet PNG via ffmpeg montage. No video calls. |
439
- | command | [`video`](../.agent-src/commands/video.md) | cluster: video | Video-creation orchestrator — Hollywood-level AI video pipeline. Routes to from-script, scene, storyboard, stitch. |
440
444
  | command | [`work`](../.agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
441
445
 
442
446
  ## Guidelines (73)
@@ -92,7 +92,7 @@ under [`docs/archive/`](../archive/) and are read-only.
92
92
 
93
93
  Drift gate — `tests/test_changelog_eras.py` fails when the current
94
94
  era's body (lines between `# Era: X.Y.x — current` and the next era
95
- header) exceeds **200 lines**. When that happens:
95
+ header) exceeds **250 lines**. When that happens:
96
96
 
97
97
  1. Pick the next major or significant minor boundary at the bottom of
98
98
  the current era (typically the last `X.Y.0` release).
@@ -23,8 +23,7 @@ explicit `accept` step.
23
23
  ---
24
24
  version: 1
25
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)
26
+ name: "Matze" # required — how the user wants to be addressed (full name or shorthand)
28
27
  language: "de" # required — BCP-47-ish primary language ("de", "en", "fr", ...)
29
28
  role: # required — unordered list of role labels; ≥ 1 entry
30
29
  - founder
@@ -55,8 +54,7 @@ enforced by `/agents user accept` and `/agents user update`.
55
54
  | Field | Required | Purpose |
56
55
  |---|---|---|
57
56
  | `version` | yes | Schema version. v1 is the only valid value today. |
58
- | `identity.name` | yes | Default address form. |
59
- | `identity.nickname` | no | Preferred shorthand — agent uses this by default in chat replies when set. |
57
+ | `identity.name` | yes | How the agent addresses the user (full name or shorthand — user's choice). |
60
58
  | `language` | yes | Primary language; the agent mirrors per [`language-and-tone`](../../.agent-src/rules/language-and-tone.md). |
61
59
  | `role` | yes | Unordered list of role labels (≥ 1). Drives reviewer-voice selection and persona pairing. Seeded enum mirrors `SEED_PROFILE_IDS`; additional free-form entries accepted. |
62
60
  | `style.formality` | yes | `informal` (Du / first-name) or `formal` (Sie / full name). |
@@ -86,11 +84,10 @@ Host agents read `.agent-user.md` at session start, in this priority
86
84
  order:
87
85
 
88
86
  1. `.agent-user.md` at project root (this contract).
89
- 2. `personal.user_name` in `.agent-settings.yml` (legacy fallback).
90
- 3. Nothing — agent uses generic address forms.
87
+ 2. Nothing agent uses generic address forms.
91
88
 
92
- The host agent surfaces the user's `identity.nickname` (or `name` if
93
- unset) on first reply when the file is present.
89
+ The host agent surfaces the user's `identity.name` on first reply
90
+ when the file is present.
94
91
 
95
92
  ## Determinism floor
96
93
 
@@ -143,7 +140,7 @@ Each line is a single JSON object:
143
140
  {"ts":"2026-05-15T10:23:00Z","field":"style.pace","suggest":"rapid","source":"chat","evidence":"user said 'mach kürzer' 3× this session"}
144
141
  ```
145
142
 
146
- Allowed `field` values mirror the schema (`identity.nickname`,
143
+ Allowed `field` values mirror the schema (`identity.name`,
147
144
  `language`, `role`, `style.formality`, `style.pace`, `voice_sample`,
148
145
  `notes`). Anything outside that set is dropped on read.
149
146