@event4u/agent-config 3.0.0 → 3.1.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 (207) 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 +223 -125
  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/schemas/command.schema.json +4 -0
  189. package/scripts/skill_linter.py +248 -118
  190. package/scripts/skill_trigger_eval.py +28 -8
  191. package/scripts/smoke/kernel.sh +1 -1
  192. package/scripts/smoke/router.sh +24 -5
  193. package/scripts/smoke/skills.sh +15 -7
  194. package/scripts/smoke_quickstart.py +11 -2
  195. package/scripts/snapshot_agent_outputs.py +144 -0
  196. package/scripts/update_counts.py +45 -17
  197. package/scripts/validate_decision_engine.py +9 -1
  198. package/scripts/validate_discovery_manifest.py +94 -0
  199. package/scripts/validate_frontmatter.py +39 -20
  200. package/scripts/verify_physical_move.py +185 -0
  201. package/templates/agent-user.md +0 -1
  202. package/templates/agent-user.yml +21 -0
  203. package/templates/minimal/agents-overrides-readme.md +46 -0
  204. package/templates/minimal/overrides-gitkeep +2 -0
  205. package/dist/ui/assets/index-BTRcKDlB.js +0 -39
  206. package/dist/ui/assets/index-BTRcKDlB.js.map +0 -1
  207. package/templates/minimal/agents-gitkeep +0 -2
package/README.md CHANGED
@@ -2,11 +2,13 @@
2
2
 
3
3
  # Agent Config — Universal AI Agent OS
4
4
 
5
- [![Skills](https://img.shields.io/badge/Skills-218-1f6feb?style=flat-square)](.augment/skills/) [![Rules](https://img.shields.io/badge/Rules-72-d73a49?style=flat-square)](.augment/rules/) [![Commands](https://img.shields.io/badge/Commands-128-2da44e?style=flat-square)](.augment/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-73-8957e5?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-24-bf8700?style=flat-square)](docs/personas.md) [![Advisors](https://img.shields.io/badge/Advisors-5-fb8500?style=flat-square)](docs/profiles.md) [![AI Tools](https://img.shields.io/badge/AI%20Tools-8-1abc9c?style=flat-square)](docs/architecture.md) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE)
5
+ [![Smoke](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [![Public install smoke (3 OS × 2 Node)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [![npm](https://img.shields.io/npm/v/@event4u/agent-config?style=flat-square&label=npm&color=orange)](https://www.npmjs.com/package/@event4u/agent-config)
6
6
 
7
- > **A deterministic orchestration contract for AI agents — audited skills, governance rules, replayable state usable by developers, founders, and creators alike.**
7
+ [![Skills](https://img.shields.io/badge/Skills-218-orange?style=flat-square)](.agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-75-orange?style=flat-square)](.agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-129-orange?style=flat-square)](.agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-73-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-24-orange?style=flat-square)](.agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](.agent-src/personas/advisors/)
8
8
 
9
- Give your AI agents an audit-disciplined execution layer: multiple **skills**, **governance rules**, **commands**, and a replayable state machine that turns any host agent (Claude Code, Augment, Cursor, Copilot, Windsurf) into a reliable team member.
9
+ > **The Universal AI Agent OS for Founders, Content Creators, Consultants, Sales, Finance, and Engineering teams. Bring your own AI provider.**
10
+
11
+ Six role-shaped entry paths, one shared **skills + rules + commands** layer that turns any host agent (Claude Code, Augment, Cursor, Copilot, Windsurf) into a reliable team member — without locking you to a single model or vendor.
10
12
 
11
13
  > **Cinematic AI video** — script → character-locked image → motion+audio prompt → provider render → stitched clip, with `AIV_DRYRUN=true` as the cost-safety default. See [`/video:from-script`](.augment/commands/video/from-script.md).
12
14
 
@@ -28,10 +30,10 @@ six entries, no role-detection guesswork.
28
30
  **Not sure which one?** Run `npx @event4u/agent-config init` then
29
31
  `agent-config setup` — the browser wizard asks a single 8-option role
30
32
  question and maps to the closest profile. Source-of-truth:
31
- [`.agent-src.uncompressed/profiles/`](.agent-src.uncompressed/profiles/) ·
33
+ [`packages/core/.agent-src.uncompressed/profiles/`](packages/core/.agent-src.uncompressed/profiles/) ·
32
34
  schema: [`docs/contracts/profile-system.md`](docs/contracts/profile-system.md).
33
- Beyond software: [`user-types/`](.agent-src.uncompressed/user-types/)
34
- (galabau · metalworking · truck — see [Who this is for](#who-this-is-for)).
35
+ Beyond software: [`user-types/`](packages/core/.agent-src.uncompressed/user-types/)
36
+ (galabau · metalworking · truck — see [Beyond software](#beyond-software).
35
37
 
36
38
  <p align="center">
37
39
  <a href="CHANGELOG.md">CHANGELOG</a> ·
@@ -45,20 +47,18 @@ Beyond software: [`user-types/`](.agent-src.uncompressed/user-types/)
45
47
 
46
48
  Run from a consumer repo — bootstrap via `npx`, the agent picks up
47
49
  your stack, and you ship work end-to-end. New install? Start with the
48
- [Quickstart](#quickstart). Already installed? [Supported Tools](#supported-tools)
50
+ [Quickstart](#quickstart). Already installed? [Supported tools](#supported-tools)
49
51
  shows the wired AIs; [`docs/featured-commands.md`](docs/featured-commands.md)
50
52
  lists the end-to-end workflows (`/implement-ticket`, `/work`,
51
- `/commit`, `/create-pr`). Deeper tour: [2-minute demo](#2-minute-demo-implement-ticket).
53
+ `/commit`, `/create-pr`). Deeper tour: [2-minute demo](#2-minute-demo--implement-ticket).
52
54
 
53
55
  ## Prove it
54
56
 
55
57
  Audit-disciplined by construction — every memory consult, decision
56
58
  key, and hook concern lands in `agents/runtime/state/` so you can replay it.
57
- [Core Principles](#core-principles) names the four invariants;
58
- [What this package is — and what it isn't](#what-this-package-is--and-what-it-isnt)
59
- draws the scope boundary. Beta contracts:
60
- [`memory-visibility-v1`](docs/contracts/memory-visibility-v1.md) ·
61
- [`decision-trace-v1`](docs/contracts/decision-trace-v1.md).
59
+ [Core principles](#core-principles) names the four invariants;
60
+ [What `agent-config` is — and what it isn't](#what-agent-config-is--and-what-it-isnt)
61
+ draws the scope boundary.
62
62
 
63
63
  ## Contribute
64
64
 
@@ -66,278 +66,68 @@ Working on the package itself? [Development](#development) covers the
66
66
  `task ci` pipeline, [Requirements](#requirements) the toolchain,
67
67
  [Maintainer telemetry](#maintainer-telemetry-opt-in-default-off) the
68
68
  opt-in measurement loop. Source-of-truth tree is
69
- `.agent-src.uncompressed/`; never hand-edit `.augment/` or `.agent-src/`.
69
+ `packages/core/.agent-src.uncompressed/`; never hand-edit `.augment/` or `.agent-src/`.
70
+
71
+ ---
70
72
 
71
73
  ## Quickstart
72
74
 
73
- **Three steps. Five minutes. Decision-traced first task.**
75
+ **Three steps. Five minutes. Browser wizard, no YAML by hand.**
74
76
 
75
77
  ```bash
76
- # 1. Install (writes .agent-settings.yml, .augment/, .claude/, …)
77
- npx @event4u/agent-config init
78
+ # 1. Install wizard auto-launches on first run.
79
+ npx -y @event4u/agent-config init
78
80
 
79
- # 2. First-run setup browser wizard (writes .agent-settings.yml)
80
- agent-config setup # browser, lands on #/wizard
81
+ # 2. Pick your profile + tools in the wizard, click Finish.
82
+ # (Writes ~/.event4u/agent-config/, ~/.claude/, ~/.cursor/, …)
81
83
 
82
- # 3. First real task — agent refines, plans, logs a decision_result
84
+ # 3. First real task — agent refines, plans, verifies.
83
85
  /work "your first real task"
84
86
  ```
85
87
 
86
- The wizard uses the `commitMulti` 2PC substrate to write
87
- `.agent-settings.yml` (and optional `.agent-user.md`) atomically — see
88
- [`docs/wizard.md`](docs/wizard.md). A `decision_result` lands in
89
- `agents/runtime/state/`. Stack-aware skills auto-load.
90
-
91
- > Pick specific AIs, switch to global scope, deploy MCP on Cloudflare,
92
- > or wire optional memory — see [**Detailed installation**](#detailed-installation)
93
- > below. Contributors rebuilding the package — jump to
94
- > [**Development**](#development).
95
- >
96
- > **Non-developer? No terminal?** Skip `npx` entirely — host
97
- > agent-config as a [Cloudflare MCP endpoint](#self-hosted-mcp-on-cloudflare--zero-local-install)
98
- > and connect from Claude Desktop. The [role-based getting started](docs/getting-started-by-role.md)
99
- > guide names the three skills each role reaches for first (Creator,
100
- > Founder, Consultant, GTM, Finance/Ops, Developer).
101
-
102
- ### Detailed installation
103
-
104
- Two minutes from `npx` to a better-behaved agent — no install, no
105
- vendored package, no postinstall hook.
106
-
107
- **v2.1+ — global-first by default.** Running `init` outside a project
108
- defaults to a user-scope install (`~/.claude/`, `~/.cursor/`, …) and
109
- records itself in `~/.config/agent-config/installed.lock`. Running it
110
- inside a project (a `package.json` / `composer.json` / `pyproject.toml`
111
- manifest is present) defaults to a project-scope install. Override with
112
- `--scope=global` or `--scope=project`. See
113
- [`docs/installation.md`](docs/installation.md) for the full matrix.
114
-
115
- ### For teams (recommended)
116
-
117
- Run once in the project root — `npx` resolves the runtime against the
118
- npm registry on every invocation, and the version pin in
119
- `.agent-settings.yml` keeps it reproducible:
120
-
121
- ```bash
122
- # Bootstrap (writes .agent-settings.yml, .augment/, .claude/, …):
123
- npx @event4u/agent-config init
124
-
125
- # Any subsequent command:
126
- npx @event4u/agent-config <command>
127
- ```
128
-
129
- The init writes:
130
-
131
- - `.agent-settings.yml` (including the `agent_config_version` pin)
132
- - `.vscode/settings.json`, `.augment/settings.json`
133
- - per-tool glue: `.claude/`, `.cursor/`, `.clinerules/`,
134
- `.windsurfrules`, `GEMINI.md`, `.github/copilot-instructions.md`
135
-
136
- Want to keep the runtime global and commit only the per-project
137
- shell (`.agent-settings.yml`, `agents/`, `./agent-config` wrapper —
138
- no `.augment/` / `.claude/` / `.cursor/` in the repo)?
139
-
140
- ```bash
141
- npm install -g @event4u/agent-config && agent-config init --minimal
142
- ```
143
-
144
- See [`docs/installation.md § Global CLI + per-project settings`](docs/installation.md#global-cli--per-project-settings-minimal-flow)
145
- for the decision table and migration notes.
88
+ **Headless / CI:** add `--no-ui` and pass flags (`--profile=developer --tools=claude-code,cursor`); add `--dry-run` to preview writes. Reference: [`docs/wizard.md`](docs/wizard.md).
146
89
 
147
- Migrating from a pre-vX.0 install? See
148
- [`docs/migration/v1-to-v2.md`](docs/migration/v1-to-v2.md). The one-shot
149
- `npx @event4u/agent-config migrate` removes the legacy
150
- `composer.json` entry / `node_modules/@event4u/agent-config`,
151
- deletes the retired `~/.claude/{rules,skills}/event4u/` namespace if
152
- present, and writes the new `.agent-settings.yml` shape.
90
+ **Pick specific AIs:** `--tools=claude-code,cursor,augment,windsurf,cline,gemini-cli,copilot,roocode,aider,codex,claude-desktop,continue` (any subset). Visual picker: add `--gui` (loopback-bound, CSRF-gated; contract [`gui-wizard`](docs/contracts/gui-wizard.md)).
153
91
 
154
- **To run:** Node 18 and Python 3 (stdlib only default on macOS
155
- 12.3+ / major Linux distros). Python missing → orchestrator warns and
156
- continues payload-only. Task is needed only for *contributors*
157
- rebuilding compressed content — see [CONTRIBUTING.md](CONTRIBUTING.md).
92
+ **Verify hook coverage:** `npx @event4u/agent-config hooks:status` prints the per-platform matrix (`--strict` for CI, `--format json` for tooling).
158
93
 
159
- **Verify hook coverage** after installing every supported platform
160
- (Augment, Claude Code, Cowork, Cursor, Cline, Windsurf, Gemini CLI,
161
- Copilot fallback) is wired through one universal dispatcher per
162
- [`hook-architecture-v1`](docs/contracts/hook-architecture-v1.md) (beta). Run
163
- `./agent-config hooks:status` for the matrix (`--strict` for CI,
164
- `--format json` for tooling). The installer also dry-fires the
165
- dispatcher per bridge as a post-install smoke test (skip: `--no-smoke`).
94
+ > **Scope (v2.5+):** `init` writes **global** only`~/.event4u/agent-config/`, `~/.claude/`, `~/.cursor/`, …. The project tree gets `agents/overrides/` + `agents/.event4u-bridge.yml`. `--project` is maintainer-only behind `AGENT_CONFIG_DEV_MODE=1` ([ADR-020](docs/decisions/ADR-020-global-only-consumer-scope.md), [dev-mode](docs/maintainers/dev-mode.md)).
166
95
 
167
- ### Pick specific AIs
168
-
169
- Default `init` wires every supported AI. To install just one, pass
170
- `--tools=<name>`:
171
-
172
- ```bash
173
- npx @event4u/agent-config init --tools=claude-code # Claude Code
174
- npx @event4u/agent-config init --tools=cursor # Cursor
175
- npx @event4u/agent-config init --tools=windsurf # Windsurf
176
- npx @event4u/agent-config init --tools=cline # Cline
177
- npx @event4u/agent-config init --tools=gemini-cli # Gemini CLI
178
- npx @event4u/agent-config init --tools=copilot # GitHub Copilot
179
- npx @event4u/agent-config init --tools=augment --global # Augment Code (global-only)
180
- npx @event4u/agent-config init --tools=roocode # Roo Code
181
- npx @event4u/agent-config init --tools=aider # Aider
182
- npx @event4u/agent-config init --tools=codex # Codex CLI
183
- npx @event4u/agent-config init --tools=claude-desktop # Claude Desktop
184
- npx @event4u/agent-config init --tools=continue # Continue
185
- ```
96
+ Migrating from a v1.x install? `npx @event4u/agent-config migrate` — full notes in [`docs/migration/v1-to-v2.md`](docs/migration/v1-to-v2.md).
186
97
 
187
- Multiple AIs in one shot: `--tools=claude-code,cursor,augment`.
188
-
189
- #### Global install (user-scope, available across projects)
190
-
191
- Add `--global` to write to the user-scope paths from
192
- [`ADR-007`](docs/decisions/ADR-007-agent-discovery-scopes.md) (`~/.claude/`,
193
- `~/.cursor/`, …) instead of the current project:
194
-
195
- ```bash
196
- npx @event4u/agent-config init --global # all tools, user-scope
197
- npx @event4u/agent-config init --tools=claude-code --global # → ~/.claude/
198
- npx @event4u/agent-config init --tools=cursor --global # → ~/.cursor/
199
- ```
200
-
201
- Per-AI scope support varies — Claude Desktop and Augment Code, for
202
- example, are global-only (Claude Desktop has no project-local
203
- discovery on macOS; Augment ships from a single user-scope tree
204
- (`~/.augment/`) — see [`ADR-007 § Amendment 2026-05-13 — global-only`](docs/decisions/ADR-007-agent-discovery-scopes.md#amendment-2026-05-13--augment-global-only)),
205
- while Roo Code and Continue.dev are project-local. The Supported
206
- Tools table below documents per-AI scope. Incompatible combinations
207
- (e.g. `--tools=roocode --global`, `--tools=claude-desktop` without
208
- `--global`, or `--tools=augment` without `--global`) are rejected
209
- with a directive error; `--tools=all` silently filters to the scope's
210
- compatible subset.
211
-
212
- ### For individual use (optional)
213
-
214
- Skills-only, global across projects — installs into the agent itself,
215
- no per-repo `init`:
216
-
217
- ```bash
218
- <auggie|claude|copilot> plugin install agent-config@event4u-agent-config
219
- ```
220
-
221
- → [All install options & project bridge setup](docs/installation.md)
222
-
223
- **Open your agent and try these 3 prompts:**
224
-
225
- 1. `"Refactor this function"` → watch: agent analyzes first
226
- 2. `"Add caching to this"` → watch: agent asks instead of guessing
227
- 3. `"Implement this feature"` → watch: agent respects your codebase
228
-
229
- → [Full getting started guide](docs/getting-started.md) ·
230
- [More examples & expected behavior](docs/showcase.md)
231
-
232
- ### Self-hosted MCP on Cloudflare — zero local install
233
-
234
- Skills, commands, rules, and guidelines can be served as an MCP endpoint
235
- from your own Cloudflare Worker — no clone, no `task mcp:setup`, no
236
- Python venv on the consumer machine, just an HTTP URL any MCP client
237
- (Claude Desktop, Claude Code, Cursor, Zed, Continue, hosted agents)
238
- talks to.
239
-
240
- The Worker source lives in `workers/mcp/`; deploying it to your own
241
- Cloudflare account takes ~5 minutes:
242
-
243
- ```bash
244
- task mcp:cloud:login # one-time, opens browser
245
- task mcp:cloud:setup # check → r2-create → r2-verify → whoami
246
- task mcp:cloud:secret-put # opt in to bearer-auth mode (recommended for private deploys)
247
- # Then deploy via CI — see operator guide below.
248
- ```
249
-
250
- The Worker ships **two MVP-1 auth modes** the operator picks at deploy
251
- time (per `docs/contracts/mcp-cloud-scope.md` § `Auth surface`):
252
-
253
- - **`public`** — default. No per-request auth. Edge cache plus
254
- Cloudflare account-level DDoS shielding are the ingress controls.
255
- Use only for OSS, read-only deploys where the URL is shared widely.
256
- - **`bearer-auth`** — operator opt-in. Set the `MCP-Token` Wrangler
257
- secret with `task mcp:cloud:secret-put`. Every `POST /` then
258
- requires `Authorization: Bearer <MCP-Token>`. `GET /` liveness
259
- stays open. Use this for private deploys.
260
-
261
- HMAC and Cloudflare Access modes are declared but **deferred** in the
262
- contract (`hmac-deferred`, `cf-access-deferred`) — wake-up triggers
263
- listed there. The README intentionally names no mode the contract
264
- has not declared (bidirectional drift test enforces this).
265
-
266
- After deploy your Worker lives at
267
- `https://agent-config-mcp.<your-account>.workers.dev` (or a custom
268
- domain you wire in Step 7 of the operator guide). Verify:
269
-
270
- ```bash
271
- curl https://agent-config-mcp.<your-account>.workers.dev
272
- # → { "ok": true, "name": "agent-config-mcp", "release_key": "v…", … }
273
- ```
274
-
275
- Per-client setup snippets (Claude Desktop, Claude Code, Cursor, Zed,
276
- Continue) — [`docs/setup/mcp-client-config.md`](docs/setup/mcp-client-config.md).
277
- URL shapes (latest vs. pinned `/v<X.Y.Z>`) — [`docs/setup/mcp-cloud-endpoints.md`](docs/setup/mcp-cloud-endpoints.md).
278
- Full operator walkthrough (account, R2, GitHub secrets, deploy) —
279
- [`docs/setup/mcp-cloud-setup.md`](docs/setup/mcp-cloud-setup.md).
280
- Experimental — A0-cloud contract lives at `docs/contracts/mcp-cloud-scope.md` (internal reference only per `STABILITY.md`).
281
-
282
- #### Lock your Worker behind a Bearer token (`bearer-auth` mode)
283
-
284
- In `bearer-auth` mode the Worker requires `Authorization: Bearer
285
- <MCP-Token>` on every `POST /` and returns HTTP 401 + RFC 6750
286
- `WWW-Authenticate` on mismatch. The `GET /` liveness probe stays open
287
- so health checks keep working without the token. Switch modes by
288
- setting (or clearing) the `MCP-Token` secret:
289
-
290
- ```bash
291
- task mcp:cloud:secret-put # wraps `npx wrangler secret put MCP-Token --name agent-config-mcp`
292
- # wrangler prompts for the value interactively — never passed via argv.
293
- ```
98
+ ---
294
99
 
295
- Once the secret is set, every client config block needs the token in
296
- its headers — see [`docs/setup/mcp-client-config.md`](docs/setup/mcp-client-config.md) § Bearer auth for the
297
- per-client snippets (Claude Desktop, Claude Code, Cursor, Zed,
298
- Continue). Mode contract is normative: `docs/contracts/mcp-cloud-scope.md`
299
- § `Auth surface` § `bearer-auth`.
300
-
301
- > **Scope — Lite, not Full.** The Worker serves the **MCP Lite
302
- > scope** (`mcp_scope: lite` per `docs/contracts/mcp-cloud-scope.md`):
303
- > the read-only governance surface (skills · commands · rules ·
304
- > guidelines · contexts) as MCP prompts and resources, plus a small
305
- > set of read-only tools (`memory_lookup`, `chat_history_read`,
306
- > `list_*`, `read_resource_body`). It does **not** execute any of the
307
- > ~112 Python scripts that ship with the package (linters, audits,
308
- > `task ci`, work-engine hooks, …) — those require the **MCP Full
309
- > scope** (`mcp_scope: full` — local install per [Quickstart](#quickstart)).
310
- > The Lite vs Full boundary is normative in
311
- > `docs/contracts/mcp-cloud-scope.md` (internal reference only per
312
- > `STABILITY.md`).
100
+ ## What `agent-config` is and what it isn't
313
101
 
314
- ### Optional: persistent agent memory
102
+ A **content layer** skills, rules, commands, guidelines, personas — distributed via npm and projected into every supported AI tool's native config format. It follows the [Agent Skills open standard](https://agentskills.io).
315
103
 
316
- `agent-config` integrates with [`@event4u/agent-memory`](https://www.npmjs.com/package/@event4u/agent-memory)
317
- — an MCP-based memory backend that gives agents persistent learnings
318
- across sessions. It is **strictly optional**:
104
+ It is **not** an agent runtime. The agent loop, the LLM dispatcher, and tool orchestration stay with the host tool (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI, Copilot). Think of it as a playbook and style guide for those tools — not a replacement.
319
105
 
320
- - Not a required dependency (declared as `suggest` in Composer and as an
321
- optional peer in npm). `agent-config` itself never imports it.
322
- - Without it, agent skills fall back to **file-based memory** under
323
- `agents/memory/` and continue to work normally.
324
- - Recommended for teams that want learnings to survive across machines,
325
- branches, and chat sessions.
106
+ | In scope | Out of scope |
107
+ |---|---|
108
+ | Skills, rules, commands, guidelines, personas | Agent loop / LLM dispatcher |
109
+ | Multi-tool projection + compression pipeline | Execution engine inside the package |
110
+ | Memory helpers (`memory-add`, `memory-promote`) | Cross-tool observability dashboard |
111
+ | Linters, CI, frontmatter validation against [JSON-Schema](scripts/schemas/) ([contract](agents/reference/docs/frontmatter-contract.md)) | Runtime GUI / web dashboard |
112
+ | Skill orchestration via citations + deterministic helpers | Opinionated skill-resolver algorithm |
326
113
 
327
- Install in the same project (dev-only):
114
+ ### What your agent is asked to do
328
115
 
329
- ```bash
330
- npm install --save-dev @event4u/agent-memory
331
- ```
332
-
333
- [Memory contract & retrieval API](docs/contracts/agent-memory-contract.md) (beta) · [Built-in MCP server](docs/mcp-server.md) (experimental — local stdio access from Claude Desktop / Cursor / Zed / Continue, install with `task mcp:setup`; promotion to beta gated on `docs/contracts/mcp-beta-criteria.md`)
116
+ | Default behavior | With agent-config |
117
+ |---|---|
118
+ | Guess and edit blindly | Analyze code before changing it |
119
+ | Drift from project conventions | Follow detected stack conventions |
120
+ | Skip or invent tests | Write tests in the project's framework |
121
+ | Generic commit messages | Conventional Commits with scope + ticket links |
122
+ | Skip quality checks | Run the project's quality pipeline and fix reported errors |
123
+ | Open PRs without context | Structured PR descriptions from Jira / Linear / GitHub |
124
+ | Claim "done" without proof | Verify with real execution before claiming done |
334
125
 
335
126
  ---
336
127
 
337
- ## 2-minute demo: `/implement-ticket`
128
+ ## 2-minute demo `/implement-ticket`
338
129
 
339
- The flagship command. Drives a ticket end-to-end through a fixed
340
- linear flow — and **blocks on ambiguity instead of guessing**.
130
+ The flagship command. Drives a ticket end-to-end through a fixed linear flow — and **blocks on ambiguity instead of guessing**.
341
131
 
342
132
  ```
343
133
  /implement-ticket PROJ-123
@@ -352,331 +142,178 @@ refine → memory → analyze → plan → implement → test → verify → rep
352
142
  - **Refines** the ticket if acceptance criteria are vague.
353
143
  - **Queries memory** for past decisions, invariants, incidents.
354
144
  - **Plans** the change; you confirm before any file is touched.
355
- - **Implements** under `minimal-safe-diff` + `scope-control` — no
356
- drive-by edits.
357
- - **Runs tests** (targeted first, full suite on success).
358
- - **Reviews** the diff through four judges (bugs, security,
359
- tests, code quality).
360
- - **Reports** a copyable markdown block with changes, verdicts,
361
- and follow-ups — then stops. `/commit` and `/create-pr` are
362
- suggestions, never run automatically.
145
+ - **Implements** under `minimal-safe-diff` + `scope-control` — no drive-by edits.
146
+ - **Tests** (targeted first, full suite on success).
147
+ - **Reviews** the diff through four judges (bugs, security, tests, code quality).
148
+ - **Reports** changes, verdicts, follow-ups then stops. `/commit` and `/create-pr` are suggestions, never auto-run.
363
149
 
364
- If any step hits ambiguity, the flow halts with numbered options
365
- so you decide — never a silent guess. Persona comes from
366
- `.agent-settings.yml` (`roles.active_role`): `senior-engineer`
367
- (default), `qa` (widens to the full test suite), or `advisory`
368
- (plan-only, skips implementation).
150
+ Any ambiguity halts the flow with numbered options — never a silent guess. Persona comes from `.agent-settings.yml` (`roles.active_role`): `senior-engineer` (default), `qa`, or `advisory` (plan-only).
369
151
 
370
- → [Command reference](.agent-src/commands/implement-ticket.md) ·
371
- [Flow contract](docs/contracts/implement-ticket-flow.md) (beta)
152
+ → [Command reference](.agent-src/commands/implement-ticket.md) · [Flow contract](docs/contracts/implement-ticket-flow.md)
372
153
 
373
- ### Sibling entrypoint: `/work` (free-form prompt)
154
+ ### Sibling `/work` (free-form prompt)
374
155
 
375
- Same engine, different envelope. Use `/work` when you have a goal
376
- but no ticket yet:
156
+ Same engine, no ticket required:
377
157
 
378
158
  ```
379
159
  /work add a CSV export endpoint to the audit-log controller
380
160
  ```
381
161
 
382
- The first pass scores the prompt on five dimensions
383
- (`goal_clarity`, `scope_boundary`, `ac_evidence`, `stack_data`,
384
- `reversibility`) and routes on the resulting band:
162
+ The first pass scores the prompt on five dimensions and routes on the band:
385
163
 
386
- | Band | Score | Engine action |
164
+ | Band | Score | Action |
387
165
  |---|---|---|
388
- | **high** | `≥ 0.8` | Silent proceed — reconstructed AC + assumptions land in the delivery report |
389
- | **medium** | `0.5–0.79` | Halts with assumptions report; you confirm or edit before plan |
166
+ | **high** | `≥ 0.8` | Silent proceed — AC + assumptions in the report |
167
+ | **medium** | `0.5–0.79` | Halts with assumptions report; confirm or edit |
390
168
  | **low** | `< 0.5` | Halts with **one** clarifying question on the weakest dimension |
391
169
 
392
- After the band gate releases, the rest of the flow is identical
393
- to `/implement-ticket`. UI-shaped prompts are routed through the
394
- **product UI track** — see below.
170
+ After the band gate, the flow is identical to `/implement-ticket`. Free-form goal → `/work`; ticket payload → `/implement-ticket`.
395
171
 
396
- → [Command reference](.agent-src/commands/work.md) ·
397
- [`refine-prompt` skill](.agent-src/skills/refine-prompt/SKILL.md) ·
398
- [ADR](docs/contracts/adr-prompt-driven-execution.md)
399
-
400
- **Pick which one:** ticket id or pasted ticket payload → `/implement-ticket`.
401
- Free-form goal, no ticket → `/work`. The two share `.work-state.json`
402
- and refuse to switch envelopes mid-flight.
172
+ → [Command reference](.agent-src/commands/work.md) · [`refine-prompt` skill](.agent-src/skills/refine-prompt/SKILL.md)
403
173
 
404
174
  **After the run:** `agent-config explain last` reconstructs the trace (route · memory · council · halts · provider) — read-only, PII-scrubbed, offline. [Docs](docs/customization.md#explainability--explain-last)
405
175
 
406
176
  ### Product UI track
407
177
 
408
- UI-shaped work (build a screen, improve a component, fix microcopy)
409
- switches the engine to one of three directive sets:
178
+ UI-shaped work routes to one of three directive sets — `ui` (full audit→design→apply→review→polish→report), `ui-trivial` (≤ 1 file, 5 lines: apply→test→report), `mixed` (backend + UI: contract→ui→stitch). Existing-UI audit is a **hard gate** ([`ui-audit-gate`](.agent-src/rules/ui-audit-gate.md)); polish has a 2-round ceiling with a11y precedence. Stack detection → `blade-livewire-flux` / `react-shadcn` / `vue` / `plain`.
410
179
 
411
- | `directive_set` | When | Flow |
412
- |---|---|---|
413
- | `ui` | Non-trivial UI surface | `audit → design → apply → review → polish → report` |
414
- | `ui-trivial` | Bounded edit (≤ 1 file, ≤ 5 changed lines) | `apply → test → report` |
415
- | `mixed` | Backend + UI | `contract → ui → stitch` |
416
-
417
- Four load-bearing properties: (1) **existing-UI audit is a hard gate** —
418
- no `apply` without audit, enforced at dispatcher AND
419
- [`ui-audit-gate`](.agent-src/rules/ui-audit-gate.md) rule;
420
- (2) **design brief is locked microcopy** — placeholders (`<placeholder>`,
421
- `Lorem`, `TODO:`) rejected at both ends; (3) **polish has a 2-round
422
- ceiling**, then halts ship-as-is / abort / hand-off; (4) **a11y precedence**
423
- — unresolved axe-core / pa11y violations must be fixed or explicitly
424
- accepted before ship, regardless of round counter (one-shot extension
425
- allowed). The engine never renders UI itself: rendering happens
426
- out-of-process, the engine consumes a `preview_envelope` (status /
427
- screenshots / findings) via a defined contract. Stack detection routes
428
- (`composer.json` + `package.json`) to `blade-livewire-flux` /
429
- `react-shadcn` / `vue` / `plain`; trivial path reclassifies loudly when
430
- preconditions fail. Halt budget on the happy path is 2.
431
-
432
- → [Mental model](docs/ui-track-mental-model.md) (1 page — when each set, where it stops, what the agent must never do) ·
433
- [Flow contract](docs/contracts/ui-track-flow.md) (beta) ·
434
- [ADR](docs/contracts/adr-product-ui-track.md) ·
435
- [Stack-extension recipe](docs/contracts/ui-stack-extension.md) (beta)
180
+ [Mental model](docs/ui-track-mental-model.md) (1 page) · [Flow contract](docs/contracts/ui-track-flow.md)
436
181
 
437
182
  ---
438
183
 
439
- ## What your agent is asked to do
184
+ ## Customize
440
185
 
441
- The package ships rules and skills that guide the agent toward these
442
- behaviors. The agent still decides in the moment, so the table is a
443
- description of intent — not a guarantee of output.
186
+ ### Profiles how much governance gets loaded
444
187
 
445
- | Default behavior | With agent-config (the agent is instructed to) |
446
- |---|---|
447
- | Guess and edit blindly | Analyze code before changing it — no blind edits |
448
- | Drift from project conventions | Follow the project's coding standards (detected from the stack) |
449
- | Skip or invent tests | Write tests in the project's framework (Pest, PHPUnit, Vitest, Jest, …) |
450
- | Write generic commit messages | Use Conventional Commits with scope and ticket links |
451
- | Skip quality checks | Run the project's quality pipeline (PHPStan/Rector/ECS, ESLint/Prettier/tsc, …) and fix reported errors |
452
- | Open PRs without context | Produce structured PR descriptions from Jira / Linear / GitHub tickets |
453
- | Claim "done" without proof | Verify with real execution before claiming "done" |
188
+ Safety floor (non-destructive defaults · ask-before-guessing · mirror-the-user's-language) ships in **every** profile. What changes is how much extra coaching gets pulled in.
454
189
 
455
- ---
190
+ | Profile | What you get | When to pick it |
191
+ |---|---|---|
192
+ | **`minimal`** | Non-negotiable safety floor only. Cheapest, fastest. | Quick questions · throw-away scripts · CI · tight token budgets |
193
+ | **`balanced`** (default) | Safety floor + everyday coaching (sensible defaults, review nudges, common pitfalls). | Day-to-day work |
194
+ | **`full`** | Everything, including long-tail rules normally only maintainers need. | Working on `agent-config` itself · audits · max-fidelity demos |
456
195
 
457
- ## What this package is and what it isn't
196
+ Under the hood: kernel-only · kernel + tier-1 · kernel + tier-1 + tier-2. Details: [`rule-router`](docs/contracts/rule-router.md) · [`kernel-membership`](docs/contracts/kernel-membership.md) · [Configure →](docs/customization.md).
458
197
 
459
- `agent-config` is a **content layer** skills, rules, commands, and
460
- guidelines — distributed via Composer and npm and projected into every
461
- supported AI tool's native config format. It follows the
462
- [Agent Skills open standard](https://agentskills.io).
198
+ > **Stability:** [`STABILITY.md`](docs/contracts/STABILITY.md) for the full matrix. Work Engine (`/work` + `/implement-ticket`): **beta**. Runtime Dispatcher: **stable**. Tool Adapters: **experimental** (`full` profile only).
463
199
 
464
- It is **not** an agent runtime. The agent loop, the LLM dispatcher, and
465
- tool orchestration stay with the host tool (Claude Code, Augment Code,
466
- Cursor, Cline, Windsurf, Gemini CLI, GitHub Copilot). Think of this
467
- package as a playbook and style guide for those tools — not a
468
- replacement for them.
200
+ ### `.agent-user.md` and Ghostwriter voice primitives
469
201
 
470
- | In scope | Out of scope |
471
- |---|---|
472
- | Skills, rules, commands, guidelines | Agent loop / LLM dispatcher |
473
- | Multi-tool projection + compression pipeline | Execution engine inside the package |
474
- | Memory helpers (`memory-add`, `memory-promote`, query scripts) | Cross-tool observability dashboard |
475
- | Linters, CI, frontmatter validation | Runtime GUI / web dashboard |
476
- | Skill orchestration via markdown citations + deterministic helpers | Opinionated skill-resolver algorithm |
202
+ | Primitive | Voice | Disclosure |
203
+ |---|---|---|
204
+ | [`personas/*.md`](.agent-src/personas/) | Review-lens (internal critique) | n/a |
205
+ | `.agent-user.md` (project root, gitignored) | The maintainer's own voice — `/post-as:me` | None (you are the author) |
206
+ | [`agents/reference/ghostwriter/<slug>.md`](docs/contracts/ghostwriter-schema.md) (gitignored) | Documented public figure — `/post-as:ghostwriter` | **Mandatory, non-removable** footer |
207
+
208
+ Create the user file interactively: `/agents user init` ([schema](docs/contracts/agent-user-schema.md)). Ghostwriter cluster: `/ghostwriter:fetch <url-or-name>` runs an attestation gate; private individuals rejected; paywalled / leaked / DM content banned at the schema level.
477
209
 
478
- Frameworks like LangChain or CrewAI are **runtimes**; this package
479
- sits one layer above them — it tells whichever agent you already use
480
- how to behave, not how to execute.
210
+ ### Self-hosted MCP on Cloudflare zero local install
481
211
 
482
- Example of what *is* in scope: every artefact's frontmatter validates
483
- against a JSON-Schema under [`scripts/schemas/`](scripts/schemas/)
484
- ([contract](agents/reference/docs/frontmatter-contract.md)), enforced by
485
- `task validate-schema` in CI. Runtime validation inside a live agent
486
- session is explicitly not.
212
+ Skills, commands, rules, and guidelines can be served as an MCP endpoint from your own Cloudflare Worker — any MCP client (Claude Desktop, Claude Code, Cursor, Zed, Continue, hosted agents) talks to it over HTTP. Two auth modes: `public` (default, OSS read-only deploys) and `bearer-auth` (operator opt-in, `MCP-Token` Wrangler secret).
487
213
 
488
- ---
214
+ ```bash
215
+ task mcp:cloud:login # one-time, opens browser
216
+ task mcp:cloud:setup # check → r2-create → r2-verify → whoami
217
+ task mcp:cloud:secret-put # opt in to bearer-auth (recommended for private deploys)
218
+ ```
489
219
 
490
- ## You don't need everything
220
+ Operator walkthrough: [`mcp-cloud-setup`](docs/setup/mcp-cloud-setup.md) · Per-client config: [`mcp-client-config`](docs/setup/mcp-client-config.md) · Endpoints: [`mcp-cloud-endpoints`](docs/setup/mcp-cloud-endpoints.md).
491
221
 
492
- Pick how much governance your agent loads up front. The safety floor
493
- (non-destructive defaults, ask-before-guessing, mirror-the-user's-language)
494
- ships in **every** profile — what changes is how much extra coaching gets
495
- pulled in alongside it.
222
+ > **Scope Lite, not Full.** The Worker serves read-only governance (skills · commands · rules · guidelines · contexts) as MCP prompts and resources, plus small read-only tools (`memory_lookup`, `chat_history_read`, `list_*`). It does **not** execute the ~112 Python scripts (linters, audits, `task ci`, work-engine hooks) — those require local install per [Quickstart](#quickstart).
496
223
 
497
- | Profile | What you get | When to pick it |
498
- |---|---|---|
499
- | **`minimal`** | The non-negotiable safety floor and nothing else. Cheapest, fastest. | Quick questions · throw-away scripts · running in CI · tight token budgets |
500
- | **`balanced`** (default) | Safety floor plus the everyday coaching most teams want — sensible defaults, code-review nudges, common pitfalls flagged. | Day-to-day work · the right answer if you're not sure |
501
- | **`full`** | Everything, including the long-tail rules normally only the package maintainers need. | Working on `agent-config` itself · audits · maximum fidelity demos |
502
-
503
- Under the hood, this is the rule-tier switch: kernel-only · kernel + tier-1
504
- auto-rules · kernel + tier-1 + tier-2. Architecture details:
505
- [`docs/contracts/rule-router.md`](docs/contracts/rule-router.md) (beta) ·
506
- kernel set: [`docs/contracts/kernel-membership.md`](docs/contracts/kernel-membership.md) (beta) ·
507
- [Configure profiles →](docs/customization.md)
508
-
509
- > **Stability tiers** — [`STABILITY.md`](docs/contracts/STABILITY.md) for
510
- > the full matrix. Runtime Dispatcher: **stable** (`php` / `node` handlers
511
- > scaffold). Work Engine: **beta (beta)** — orchestrator behind `/work`
512
- > + `/implement-ticket`. Tool Adapters: **experimental**, read-only,
513
- > behind `full`. `minimal` profile unaffected.
224
+ ### Optional: persistent agent memory
225
+
226
+ [`@event4u/agent-memory`](https://www.npmjs.com/package/@event4u/agent-memory) MCP-based backend for cross-session learnings. **Strictly optional**; without it, skills fall back to file-based memory under `agents/memory/`.
227
+
228
+ ```bash
229
+ npm install --save-dev @event4u/agent-memory
230
+ ```
231
+
232
+ [Memory contract](docs/contracts/agent-memory-contract.md) · [Built-in MCP server](docs/mcp-server.md) (experimental)
514
233
 
515
234
  ---
516
235
 
517
- ## Who this is for
236
+ ## Supported tools
518
237
 
519
- `agent-config` ships a **stack-agnostic governance core** (orchestration contract, role modes, command clusters, quality gates, audit-discipline) plus **parallel stack-specific skill sets** at varying depth:
238
+ ### Project-installed (`npx`)
520
239
 
521
- | Stack | Coverage |
522
- |---|---|
523
- | Laravel · modern PHP | Skills, rules, project-analysis, quality-tool wiring (Pest · PHPStan · Rector · ECS) |
524
- | Symfony | Workflow skill (`symfony-workflow`) + project-analysis + shared PHP coder/quality skills |
525
- | Zend / Laminas | Project-analysis skills + shared PHP coder/quality skills |
526
- | Next.js · App Router | Workflow skill (`nextjs-patterns`) + project-analysis + UI directive set (`react-shadcn`) |
527
- | React · Node / Express | Project-analysis skills + UI directive set (`react-shadcn`) |
528
- | Vue · plain HTML | UI directive set (`vue` / `plain`) — analysis skills as they ship |
529
- | Cross-stack | API design · testing · security · database · Docker · Git · CI · review · threat modeling · observability |
240
+ | Tool | Rules | Skills | Commands | How it works |
241
+ |---|---|---|---|---|
242
+ | **Claude Code** | | | | Reads `.claude/` |
243
+ | **Cursor** | | | ☑️ | Reads `.cursor/rules/` + commands via AGENTS.md |
244
+ | **Cline** | | | ☑️ | Reads `.clinerules/` + commands via AGENTS.md |
245
+ | **Windsurf** | | | ☑️ | Reads `.windsurfrules` + commands via AGENTS.md |
246
+ | **Gemini CLI** | | | ☑️ | Reads `GEMINI.md` |
247
+ | **GitHub Copilot** | | | ☑️ | Reads `.github/copilot-instructions.md` |
248
+ | **Roo Code** | | | ☑️ | Auto-discovers `.roo/rules/*.md` + AGENTS.md |
249
+ | **Codex CLI** | ✅ | — | ☑️ | Auto-discovers `AGENTS.md` |
250
+ | **Continue.dev** | ✅ | — | ☑️ | Auto-discovers `.continue/rules/*.md` + AGENTS.md |
251
+ | **Aider** | 📌 | — | — | Manual `read:` in `.aider.conf.yml` |
252
+ | **Augment** (VSCode/IntelliJ) | 📌 | — | — | Global-only; project writes marker |
253
+ | **Claude Desktop** | 📌 | — | — | Global-only |
530
254
 
531
- **Deepest reference stack today: Laravel** Pest, PHPStan, Rector, Eloquent, Livewire/Flux, Horizon, Pulse, Reverb, Pennant. **Workflow-grade second tier: Symfony** (`symfony-workflow` — DI, Doctrine, Messenger, voters, Twig) and **Next.js App Router** (`nextjs-patterns`RSC boundaries, Server Actions, caching, route handlers). Other stacks ship in the order they are battle-tested, not second-class. Adopting on a thin stack? Open an issue so we can prioritize the right skills for extraction.
255
+ native &nbsp; ☑️ text reference (in AGENTS.md, not invokable as native slash-command) &nbsp; 📌 marker only &nbsp; — not available
532
256
 
533
- ### …and beyond software (`user-types/`)
257
+ > **Team reproducibility:** every tool you `init` is recorded in `agents/installed-tools.lock` (committed, machine-managed). New team members run `npx @event4u/agent-config sync` after cloning; CI gates drift with `agent-config validate`. Schema: [`installed-tools-manifest`](docs/guidelines/agent-infra/installed-tools-manifest.md).
534
258
 
535
- The same orchestration core drives non-software trades. Worked-example user types ship as the actual prompt-pack the agent loads: [`galabau-field-crew`](.agent-src.uncompressed/user-types/galabau-field-crew.md) (landscaping) · [`metalworking-shop`](.agent-src.uncompressed/user-types/metalworking-shop.md) · [`truck-driver`](.agent-src.uncompressed/user-types/truck-driver.md). Contributing your own? [5-minute scaffold](.agent-src.uncompressed/user-types/_template/) + [conventions](.agent-src.uncompressed/user-types/README.md). Same governance, command suite, and safety rules apply.
259
+ ### Plugin-installed (optional, global)
536
260
 
537
- ---
261
+ | Tool | Install |
262
+ |---|---|
263
+ | **Augment CLI** · **Claude Code** · **Copilot CLI** | [Install →](docs/installation.md) — rules + skills + commands, marketplace-updated |
538
264
 
539
- ## Data governance & domain safety
265
+ ### Cloud / Hosted-agent surfaces
266
+
267
+ For platforms where the package's scripts cannot run, artefacts are built for paste-in or upload:
268
+
269
+ - **Linear AI** (Codegen, Charlie, …) — `dist/linear/{workspace,team,personal}.md`
270
+ - **Claude.ai Web Skills** — `dist/cloud/<skill>.zip`
540
271
 
541
- 12 domain-safety rules (`.agent-src.uncompressed/rules/domain-safety-*.md`) act as a per-domain output floor — PII redaction for support / finance / recruiting / marketing, advice disclaimers for legal / financial / medical / consulting drafts, retention guidance for finance / support, and ops floors for logging / export. Full surface rule(s) floor matrix: [`docs/safety.md`](docs/safety.md).
272
+ [Install →](docs/installation.md#linear-ai-codegen-charlie-)
542
273
 
543
274
  ---
544
275
 
545
- ## Profile entry paths & featured commands
276
+ ## Who this is for
546
277
 
547
- Deep version of the profile table above (audience · first commands ·
548
- first skills · preset default per profile):
549
- [`docs/profiles.md`](docs/profiles.md). Curated featured-commands
550
- subset: [`docs/featured-commands.md`](docs/featured-commands.md).
551
- [Browse all 128 active commands](.agent-src/commands/) · full catalog:
552
- [`docs/catalog.md`](docs/catalog.md) ·
553
- [skills only](docs/skills-catalog.md) · [`llms.txt`](llms.txt).
278
+ Stack-agnostic governance core (orchestration · role modes · command clusters · quality gates · audit-discipline) plus parallel stack-specific skill sets:
554
279
 
555
- ---
280
+ | Stack | Coverage |
281
+ |---|---|
282
+ | **Laravel · modern PHP** (deepest) | Pest · PHPStan · Rector · ECS · Eloquent · Livewire/Flux · Horizon · Pulse · Reverb · Pennant |
283
+ | **Symfony** | `symfony-workflow` (DI · Doctrine · Messenger · voters · Twig) + project-analysis |
284
+ | **Next.js App Router** | `nextjs-patterns` (RSC · Server Actions · caching · route handlers) + UI `react-shadcn` |
285
+ | **Zend / Laminas** | project-analysis + shared PHP coder/quality skills |
286
+ | **React · Node / Express** | project-analysis + UI `react-shadcn` |
287
+ | **Vue · plain HTML** | UI directive set (`vue` / `plain`) |
288
+ | **Cross-stack** | API design · testing · security · database · Docker · Git · CI · review · threat modeling · observability |
556
289
 
557
- ## Supported Tools
290
+ ### Beyond software
558
291
 
559
- ### Project-installed (`npx`)
292
+ The same orchestration core drives non-software trades via [`user-types/`](packages/core/.agent-src.uncompressed/user-types/): [`galabau-field-crew`](packages/core/.agent-src.uncompressed/user-types/galabau-field-crew.md) · [`metalworking-shop`](packages/core/.agent-src.uncompressed/user-types/metalworking-shop.md) · [`truck-driver`](packages/core/.agent-src.uncompressed/user-types/truck-driver.md). Contribute your own — [5-minute scaffold](packages/core/.agent-src.uncompressed/user-types/_template/).
560
293
 
561
- Every developer gets the same behavior. No per-user setup needed —
562
- `npx @event4u/agent-config init` writes the per-tool glue listed below.
294
+ ---
563
295
 
564
- | Tool | Rules | Skills | Commands | How it works |
565
- |---|---|---|---|---|
566
- | **Claude Code** | ✅ | ✅ | ✅ | Reads `.claude/` (skills + commands as skills) |
567
- | **Cursor** | ✅ | — | ☑️ | Reads `.cursor/rules/` + commands via AGENTS.md |
568
- | **Cline** | ✅ | — | ☑️ | Reads `.clinerules/` + commands via AGENTS.md |
569
- | **Windsurf** | ✅ | — | ☑️ | Reads `.windsurfrules` + commands via AGENTS.md |
570
- | **Gemini CLI** | ✅ | — | ☑️ | Reads `GEMINI.md` (includes commands reference) |
571
- | **GitHub Copilot** | ✅ | — | ☑️ | Reads `.github/copilot-instructions.md` (includes commands) |
572
- | **Roo Code** | ✅ | — | ☑️ | Auto-discovers `.roo/rules/*.md` + AGENTS.md |
573
- | **Codex CLI** | ✅ | — | ☑️ | Auto-discovers `AGENTS.md` at project root |
574
- | **Continue.dev** | ✅ | — | ☑️ | Auto-discovers `.continue/rules/*.md` + AGENTS.md |
575
- | **Aider** | 📌 | — | — | Marker + manual `read:` in `.aider.conf.yml` |
576
- | **Augment VSCode/IntelliJ** | 📌 | — | — | Global-only — install with `--global` (see [ADR-007 Amendment 2026-05-13](docs/decisions/ADR-007-agent-discovery-scopes.md#amendment-2026-05-13--augment-global-only)); project writes `.augment/settings.json` marker only |
577
- | **Claude Desktop** | 📌 | — | — | Global-only — install with `--global` (see ADR-007) |
578
-
579
- ✅ = native support &nbsp; — = not available &nbsp; ☑️ = text reference only
580
- (commands listed in `AGENTS.md`, tool cannot invoke them as native
581
- slash-commands) &nbsp; 📌 = informational marker only (no auto-discovery
582
- or manual wiring required)
583
-
584
- > **What this means in practice:** Claude Code gets the full project-scoped
585
- > package (rules + 218 skills + 128 native commands); Augment Code gets the
586
- > same content but only from a single global install at `~/.augment/`.
587
- > Cursor, Cline, Windsurf, Gemini CLI, GitHub Copilot, Roo Code, Codex CLI,
588
- > and Continue.dev only get the **rules** natively; skills and commands are
589
- > available as documentation the agent can read, not as first-class features.
590
- > Aider, Augment, and Claude Desktop ship marker-only bridges in projects —
591
- > Aider needs a one-line `read:` entry in `.aider.conf.yml`; Augment and
592
- > Claude Desktop are global-scope and pair with `--global`.
593
-
594
- > **Team reproducibility (ADR-008):** every tool you `init` is also recorded in
595
- > `agents/installed-tools.lock` — committed, machine-managed. New team members
596
- > run `npx @event4u/agent-config sync` after cloning and every bridge in the
597
- > table above is replayed locally. CI can gate drift with `agent-config validate`.
598
- > Schema, workflow, and drift catalog:
599
- > [`docs/guidelines/agent-infra/installed-tools-manifest.md`](docs/guidelines/agent-infra/installed-tools-manifest.md).
600
-
601
- ### Plugin-installed (optional, for global use)
602
-
603
- Works across all your projects. Auto-updates via marketplace.
604
-
605
- | Tool | Rules | Skills | Commands | Install |
606
- |---|---|---|---|---|
607
- | **Augment CLI** | ✅ | ✅ | ✅ | [Install →](docs/installation.md#augment-cli) |
608
- | **Claude Code** | ✅ | ✅ | ✅ | [Install →](docs/installation.md#claude-code) |
609
- | **Copilot CLI** | ✅ | ✅ | ✅ | [Install →](docs/installation.md#copilot-cli) |
296
+ ## Data governance & domain safety
610
297
 
611
- Skills use a `SKILL.md` format with YAML frontmatter that is compatible with
612
- the [Agent Skills](https://agentskills.io) community spec and with Claude
613
- Code's Agent Skills specification.
298
+ Three domain-safety rules ([`domain-safety-pii`](packages/core/.agent-src.uncompressed/rules/domain-safety-pii.md), [`domain-safety-disclaimer`](packages/core/.agent-src.uncompressed/rules/domain-safety-disclaimer.md), [`domain-safety-retention`](packages/core/.agent-src.uncompressed/rules/domain-safety-retention.md)) act as per-domain output floors across ~12 areas — PII redaction (support / finance / recruiting / marketing), advice disclaimers (legal / financial / medical / consulting), retention guidance (finance / support), ops floors (logging / export). Full surface → rule → floor matrix: [`docs/safety.md`](docs/safety.md). Beta contracts: [`memory-visibility-v1`](docs/contracts/memory-visibility-v1.md) · [`decision-trace-v1`](docs/contracts/decision-trace-v1.md).
614
299
 
615
- ### Cloud / Hosted-agent surfaces (paste-in or upload)
300
+ ### Maintainer telemetry (opt-in, default-off)
616
301
 
617
- For platforms where the package's scripts cannot run, the package
618
- builds artefacts you upload or paste into the platform's own surface.
302
+ Local-only artefact-engagement log. Set `telemetry.artifact_engagement.enabled: true` in `.agent-settings.yml`. Records which skills / rules / commands / guidelines the agent consults during `/implement-ticket` / `/work`. JSONL under the project root, nothing uploaded. Reports: `npx @event4u/agent-config telemetry:report`.
619
303
 
620
- | Surface | Output | How to install |
621
- |---|---|---|
622
- | **Linear AI** (Codegen, Charlie, …) | `dist/linear/{workspace,team,personal}.md` | [Install →](docs/installation.md#linear-ai-codegen-charlie-) |
623
- | **Claude.ai Web Skills** | `dist/cloud/<skill>.zip` | [Install →](docs/installation.md#claudeai-web-skills-ui) |
304
+ ### Context-aware command suggestion
624
305
 
625
- The Linear digest is split into three layersworkspace (universal
626
- coding posture), team (framework-specific), personal (empty stub). See
627
- [`docs/contracts/linear-ai-three-layers.md`](docs/contracts/linear-ai-three-layers.md) (beta)
628
- for the rationale and
629
- [`docs/contracts/linear-ai-rules-inclusion.md`](docs/contracts/linear-ai-rules-inclusion.md) (beta)
630
- for the per-rule routing.
306
+ When a prompt matches a command's purpose ("setze ticket ABC-123 um" → `/implement-ticket`), the agent surfaces matches as numbered options **nothing auto-executes**. Per-conversation off: `/command-suggestion-off`. Settings: `commands.suggestion.{enabled,blocklist,confidence_floor}` in `.agent-settings.yml`.
631
307
 
632
308
  ---
633
309
 
634
- ## User persona (`.agent-user.md`)
635
-
636
- A project-root `.agent-user.md` file captures who the user is — name,
637
- primary language, role, work style, and a single voice sample — so the
638
- agent can address them correctly from the first turn. The file is
639
- gitignored by default, paste-only, and contains zero PII beyond what the
640
- user explicitly volunteers. Schema is locked v1 in
641
- [`docs/contracts/agent-user-schema.md`](docs/contracts/agent-user-schema.md).
642
-
643
- Create it interactively with `/agents user init`. Inspect with
644
- `/agents user show`. Updates happen only through the explicit
645
- `review` / `accept` / `update` flow — never silent auto-writes. The
646
- legacy `personal.user_name` key in `.agent-settings.yml` stays as a
647
- fallback when `.agent-user.md` is absent.
648
-
649
- ## Ghostwriter (`agents/reference/ghostwriter/<slug>.md`)
650
-
651
- Third voice primitive — captures **public-facing writing voice of
652
- documented public figures** (authors, executives, academics,
653
- journalists, public speakers, deceased historical figures).
654
- `/ghostwriter:fetch <url-or-name>` runs an attestation gate, delegates
655
- to the host agent's `web-fetch` / `web-search` (zero network code in
656
- the package), and writes `agents/reference/ghostwriter/<slug>.md` — **gitignored
657
- by default**, never shipped in the OSS package. `/ghostwriter:write
658
- --as=<slug>` drafts in that voice and appends the **mandatory
659
- non-removable disclosure footer** (`*Written in the style of <name>,
660
- not by them.*`); `/post-as:ghostwriter` is a thin alias. Private
661
- individuals are rejected; paywalled / leaked / DM content banned at
662
- the schema level. `:list`, `:show`, `:delete` round out the cluster.
663
- Schema: [`docs/contracts/ghostwriter-schema.md`](docs/contracts/ghostwriter-schema.md).
664
-
665
- | Primitive | Voice | Disclosure footer |
666
- |---|---|---|
667
- | `personas/*.md` | review-lens (internal critique) | n/a |
668
- | `.agent-user.md` | maintainer's own voice (`/post-as:me`) | none — you are the author |
669
- | `agents/reference/ghostwriter/<slug>.md` | external public-figure (`/post-as:ghostwriter`) | mandatory, non-removable |
670
-
671
- ## Core Principles
310
+ ## Core principles
672
311
 
673
312
  - **Analyze before implementing** — no guessing, no blind edits
674
313
  - **Verify with real execution** — no "should work"
675
314
  - **Challenge to improve** — agents are thought partners, not yes-machines
676
315
  - **Strict by design** — quality over flexibility
677
316
  - **Zero overhead by default** — nothing runs until you ask for it
678
- - **Terse-by-default chat output** — verbosity flags off, intent narration off,
679
- caveman-speak prose-only — flip back via [`docs/customization.md` § Verbosity](docs/customization.md#verbosity)
680
317
 
681
318
  ---
682
319
 
@@ -685,64 +322,39 @@ Schema: [`docs/contracts/ghostwriter-schema.md`](docs/contracts/ghostwriter-sche
685
322
  | Document | Content |
686
323
  |---|---|
687
324
  | [**Getting Started**](docs/getting-started.md) | First run, 3-test experience, profiles, next steps |
688
- | [**Installation**](docs/installation.md) | Plugin setup, Composer/npm, Git submodule, orchestrator details |
325
+ | [**Installation**](docs/installation.md) | All install paths, Composer/npm, orchestrator details |
689
326
  | [**Architecture**](docs/architecture.md) | System layers, content pipeline, tool support matrix |
690
- | [**Development**](docs/development.md) | Prerequisites, editing workflow, all `task` commands, project structure |
691
327
  | [**Customization**](docs/customization.md) | Overrides, AGENTS.md, agent settings, cost profiles |
692
328
  | [**Quality & CI**](docs/quality.md) | Linting, CI pipeline, compression system |
693
- | [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps (e.g. `implement_ticket → work_engine` in 1.15.0) |
694
-
695
- Uninstalling: see
696
- [docs/installation.md#uninstalling](docs/installation.md#uninstalling) —
697
- there is no dedicated uninstall command; removal is a documented manual
698
- step (package manager + `rm -rf` of generated dirs).
699
-
700
- ### Maintainer telemetry (opt-in, default-off)
329
+ | [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps |
330
+ | [**Showcase**](docs/showcase.md) | More examples & expected behavior |
701
331
 
702
- Local-only artefact-engagement log (`telemetry.artifact_engagement.enabled: true` in `.agent-settings.yml`) records which skills / rules / commands / guidelines the agent consults during `/implement-ticket` / `/work`. JSONL under the project root, nothing uploaded, nothing shared. Reports via `./agent-config telemetry:report`. Contract + privacy floor: [`contexts/contracts/artifact-engagement-flow.md`](.agent-src.uncompressed/contexts/contracts/artifact-engagement-flow.md) (beta).
703
-
704
- ### Context-aware command suggestion
705
-
706
- When a user prompt matches a command's purpose ("setze ticket ABC-123 um"
707
- → `/implement-ticket`), the agent surfaces matches as a numbered-options
708
- block with an always-present "run the prompt as-is" escape. **Nothing
709
- auto-executes** — the user picks every time. Three opt-out paths:
710
-
711
- ```yaml
712
- # .agent-settings.yml
713
- commands:
714
- suggestion:
715
- enabled: true # global on/off
716
- blocklist: [] # specific commands never suggested
717
- confidence_floor: 0.6 # tunable per command in frontmatter
718
- ```
719
-
720
- Per-conversation: `/command-suggestion-off` disables the layer until
721
- re-enabled or the chat ends. Full scoring contract and hardening:
722
- [`adr-command-suggestion`](docs/contracts/adr-command-suggestion.md),
723
- [`command-suggestion-flow`](.agent-src.uncompressed/contexts/contracts/command-suggestion-flow.md) (beta).
332
+ Browse content: [all 129 commands](.agent-src/commands/) · [skills catalog](docs/skills-catalog.md) · [full catalog](docs/catalog.md) · [`llms.txt`](llms.txt).
724
333
 
725
334
  ---
726
335
 
727
336
  ## Development
728
337
 
729
- Working on the package itself? Edit in `.agent-src.uncompressed/`,
730
- then regenerate compressed and projected trees:
338
+ Working on the package itself? Edit `packages/core/.agent-src.uncompressed/`, regenerate trees:
731
339
 
732
340
  ```bash
733
341
  task sync # regenerate .agent-src/ and .augment/
734
342
  task generate-tools # regenerate .claude/, .cursor/, .clinerules/, .windsurfrules
735
343
  task ci # full pipeline — green before PR
736
344
  task test # unit + integration tests
345
+ task dev:setup # boot the onboarding wizard against the working tree
737
346
  ```
738
347
 
739
- Full commands and project structure: [**docs/development.md**](docs/development.md). Stack: **TypeScript** CLI/UI (`dist/cli/`, `dist/ui/`) + **Python 3.10+** build/lint scripts. Prompt-engineering primitives `/optimize-prompt`, `/refine-prompt`, the `prompt-engineering-patterns` skillship for every host agent. MCP registry payloads render under `dist/mcp/` (submissions tracked in [`docs/distribution/mcp-submission-checklist.md`](docs/distribution/mcp-submission-checklist.md)).
348
+ **Invoking the CLI from a source checkout:** `./agent-config <command>` (the maintainer shim at the repo root → `scripts/agent-config` `dist/cli/agent-config.js`). `npx @event4u/agent-config` doesn't resolve in the source repo without a prior `npm link`, since there's no `node_modules/.bin/agent-config` symlinkuse `./agent-config` instead. Build the TS binary with `npm run build:cli` if `dist/cli/agent-config.js` is missing.
349
+
350
+ → Full project structure and commands: [**docs/development.md**](docs/development.md) · [CONTRIBUTING.md](CONTRIBUTING.md). Stack: **TypeScript** CLI/UI + **Python 3.10+** build/lint scripts. MCP registry payloads render under `dist/mcp/` ([submission checklist](docs/distribution/mcp-submission-checklist.md)).
351
+
352
+ ---
740
353
 
741
354
  ## Requirements
742
355
 
743
- - **Bash** — `scripts/install` orchestrates payload sync (`install.sh`) and bridges (`install.py`).
744
- - **Python 3.10+** — bridge stage only; missing → orchestrator skips bridges.
745
- - **Composer or npm** — to pull the package.
356
+ - **Node ≥ 18** — `npx @event4u/agent-config init` is the canonical install path.
357
+ - **Python 3.10+** — bridge stage only; missing → installer skips bridges.
746
358
  - **Platform:** macOS 12.3+, Linux, WSL2. Git Bash needs Developer Mode for symlinks; native PowerShell / cmd unsupported. Contributors rebuilding `.augment/` also need [Task](https://taskfile.dev/).
747
359
 
748
360
  ## License