@event4u/agent-config 1.38.0 → 1.40.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 (56) hide show
  1. package/.agent-src/commands/onboard.md +131 -50
  2. package/.agent-src/commands/orchestrate.md +123 -0
  3. package/.agent-src/commands/sync-gitignore/fix.md +135 -0
  4. package/.agent-src/commands/sync-gitignore.md +31 -5
  5. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +30 -2
  6. package/.agent-src/skills/subagent-orchestration/SKILL.md +9 -0
  7. package/.agent-src/skills/using-git-worktrees/SKILL.md +25 -0
  8. package/.agent-src/templates/agent-settings.md +9 -0
  9. package/.agent-src/templates/agents/agent-project-settings.example.yml +9 -2
  10. package/.agent-src/templates/scripts/work_engine/_lib/__init__.py +7 -0
  11. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +168 -0
  12. package/.agent-src/templates/scripts/work_engine/hooks/settings.py +18 -19
  13. package/.agent-src/templates/scripts/work_engine/orchestration.py +168 -0
  14. package/.claude-plugin/marketplace.json +3 -1
  15. package/AGENTS.md +4 -4
  16. package/CHANGELOG.md +76 -0
  17. package/README.md +17 -6
  18. package/bin/install.php +13 -6
  19. package/config/agent-settings.template.yml +21 -0
  20. package/docs/DISTRIBUTION_CHECKLIST.md +169 -0
  21. package/docs/architecture.md +1 -1
  22. package/docs/catalog.md +3 -2
  23. package/docs/contracts/audit-log-v1.md +142 -0
  24. package/docs/contracts/command-clusters.md +2 -0
  25. package/docs/contracts/file-ownership-matrix.json +20 -0
  26. package/docs/contracts/orchestration-dsl-v1.md +152 -0
  27. package/docs/customization.md +45 -0
  28. package/docs/getting-started.md +1 -1
  29. package/docs/guidelines/agent-infra/layered-settings.md +54 -17
  30. package/docs/installation.md +132 -0
  31. package/docs/setup/mcp-client-config.md +152 -0
  32. package/docs/setup/mcp-cloud-endpoints.md +16 -0
  33. package/docs/setup/per-ide/aider.md +48 -0
  34. package/docs/setup/per-ide/claude-code.md +108 -0
  35. package/docs/setup/per-ide/claude-desktop.md +148 -0
  36. package/docs/setup/per-ide/cline.md +43 -0
  37. package/docs/setup/per-ide/codex.md +46 -0
  38. package/docs/setup/per-ide/copilot.md +80 -0
  39. package/docs/setup/per-ide/cursor.md +125 -0
  40. package/docs/setup/per-ide/gemini-cli.md +45 -0
  41. package/docs/setup/per-ide/windsurf.md +120 -0
  42. package/package.json +1 -1
  43. package/scripts/_lib/agent_settings.py +168 -0
  44. package/scripts/compress.py +153 -1
  45. package/scripts/extract_audit_patterns.py +202 -0
  46. package/scripts/install +156 -1
  47. package/scripts/install.py +270 -10
  48. package/scripts/install.sh +52 -7
  49. package/scripts/lint_orchestration_dsl.py +214 -0
  50. package/scripts/skill_linter.py +9 -0
  51. package/scripts/sync_gitignore.py +56 -1
  52. package/templates/claude_desktop_config.json.template +21 -0
  53. package/templates/cursor-rule.mdc.j2 +7 -0
  54. package/templates/global-install-manifest.yml +91 -0
  55. package/templates/marketing-copy.yml +64 -0
  56. package/templates/windsurf-rule.md.j2 +7 -0
@@ -42,6 +42,51 @@ The `.agent-settings.yml` file in the consumer project configures agent behavior
42
42
  It is written as YAML with section-level grouping; dotted keys below reference
43
43
  those sections.
44
44
 
45
+ ### User-global DX-comfort defaults (cross-project)
46
+
47
+ Six **DX-comfort** keys can be carried across every project that uses
48
+ `event4u/agent-config` by storing them once in a user-global file at:
49
+
50
+ ```
51
+ ~/.config/agent-config/agent-settings.yml
52
+ ```
53
+
54
+ The path is XDG-style and matches the existing
55
+ `~/.config/agent-config/` directory used for `anthropic.key`,
56
+ `openai.key`, and `council-spend.jsonl`.
57
+
58
+ **Whitelist (locked, exact dotted paths)** — only these six keys are
59
+ mergeable from the user-global file; every other key is silently ignored:
60
+
61
+ ```
62
+ name
63
+ ide
64
+ cost_profile
65
+ personal.bot_icon
66
+ personal.autonomy
67
+ caveman.speak_scope
68
+ ```
69
+
70
+ **Merge order** (lowest → highest precedence):
71
+
72
+ ```
73
+ 1. Package defaults (shipped by event4u/agent-config)
74
+ 2. ~/.config/agent-config/agent-settings.yml (user-global · whitelist-filtered)
75
+ 3. <project>/.agent-settings.yml (project-local · always wins)
76
+ ```
77
+
78
+ Project-local values **always win**. The user-global file is a
79
+ fallback, never a lock. Non-whitelisted keys in the user-global file
80
+ are dropped without error — adding `personal.theme` there has no
81
+ effect.
82
+
83
+ The file is created **only on explicit opt-in via `/onboard`**. The
84
+ loader at [`scripts/_lib/agent_settings.py`](../scripts/_lib/agent_settings.py)
85
+ is **read-only** — no script can create or mutate it without an
86
+ explicit `/onboard` confirmation. Edit the file by hand for mid-life
87
+ changes; `/sync-agent-settings` stays project-scoped and never touches
88
+ user-global state.
89
+
45
90
  ### Available settings
46
91
 
47
92
  | Setting | Default | Description |
@@ -153,7 +153,7 @@ Your agent now understands slash commands:
153
153
  | `/quality-fix` | Run and fix all quality checks |
154
154
  | `/chat-history` | Inspect the persistent chat-history log (read-only `show`) |
155
155
 
156
- → [Browse all 104 active commands](../.agent-src/commands/)
156
+ → [Browse all 105 active commands](../.agent-src/commands/)
157
157
 
158
158
  ---
159
159
 
@@ -1,37 +1,74 @@
1
1
  # Layered Settings
2
2
 
3
- Two-file settings model: **team defaults** (committed) and
4
- **developer overrides** (git-ignored). Lets a project pin decisions
5
- without forcing every developer to work the same way.
3
+ Three-file settings model: **team defaults** (committed),
4
+ **user-global DX-comfort defaults** (per-developer, cross-project), and
5
+ **developer overrides** (per-project, git-ignored). Lets a project pin
6
+ decisions, a developer carry DX preferences across every project, and
7
+ project-local choices always win.
6
8
 
7
- Referenced by `road-to-project-memory.md` Phase 0. Consumed by the
8
- settings loader, the `/onboard` command, and any agent that edits
9
- `.agent-settings.yml` on user request.
9
+ Referenced by `road-to-project-memory.md` Phase 0 and
10
+ `road-to-portable-dev-preferences.md`. Consumed by the centralized
11
+ settings loader at
12
+ [`scripts/_lib/agent_settings.py`](../../../scripts/_lib/agent_settings.py),
13
+ the `/onboard` command, and any agent that edits `.agent-settings.yml`
14
+ on user request.
10
15
 
11
- ## The two files
16
+ ## The three files
12
17
 
13
18
  | File | Git | Scope | Owner | Example values |
14
19
  |---|---|---|---|---|
15
20
  | `.agent-project-settings.yml` | **committed** | team / repo | lead maintainer | `project.stack`, `quality.php.tools`, `memory.dogfood` |
16
- | `.agent-settings.yml` | **gitignored** | developer workstation | individual | `personal.ide`, `personal.user_name`, `subagents.max_parallel` |
21
+ | `~/.config/agent-config/agent-settings.yml` | **n/a** (outside repo) | individual developer · cross-project | individual | `name`, `ide`, `cost_profile`, `personal.bot_icon`, `personal.autonomy`, `caveman.speak_scope` |
22
+ | `.agent-settings.yml` | **gitignored** | individual developer · this project | individual | `personal.ide`, `personal.user_name`, `subagents.max_parallel`, `onboarding.onboarded` |
17
23
 
18
- Both are YAML. Schema is documented in
19
- [`agent-settings.md`](../../templates/agent-settings.md) (dev layer)
20
- and [`agent-project-settings.example.yml`](../../templates/agents/agent-project-settings.example.yml)
21
- (team layer).
24
+ All three are YAML. Schemas:
25
+
26
+ - Developer (project-local): [`agent-settings.md`](../../templates/agent-settings.md).
27
+ - Team: [`agent-project-settings.example.yml`](../../templates/agents/agent-project-settings.example.yml).
28
+ - User-global: six exact dotted paths — whitelist in
29
+ [`scripts/_lib/agent_settings.py`](../../../scripts/_lib/agent_settings.py).
22
30
 
23
31
  ## Merge order
24
32
 
25
33
  Lowest priority → highest priority:
26
34
 
27
35
  ```
28
- 1. Package defaults (shipped by event4u/agent-config)
29
- 2. .agent-project-settings.yml (team file, committed)
30
- 3. .agent-settings.yml (developer file, gitignored)
36
+ 1. Package defaults (shipped by event4u/agent-config)
37
+ 2. ~/.config/agent-config/agent-settings.yml (user-global · whitelist-filtered)
38
+ 3. .agent-project-settings.yml (team file, committed)
39
+ 4. .agent-settings.yml (developer file, gitignored)
40
+ ```
41
+
42
+ Keys from higher layers win unless a lower layer marks them
43
+ `locked` (team file only). The user-global file does **not** support
44
+ `locked` — its purpose is cross-project comfort, never policy.
45
+
46
+ ## User-global whitelist
47
+
48
+ Only these exact dotted paths are mergeable from the user-global file;
49
+ every other key is silently dropped by the loader. The whitelist is
50
+ intentionally tiny — adding a key requires an ADR.
51
+
52
+ ```
53
+ name
54
+ ide
55
+ cost_profile
56
+ personal.bot_icon
57
+ personal.autonomy
58
+ caveman.speak_scope
31
59
  ```
32
60
 
33
- Keys from higher layers win unless the lower layer marks them
34
- `locked`. Locked keys cannot be shadowed by a higher layer.
61
+ Loader contract:
62
+
63
+ - **Read-only.** The loader never creates, modifies, or deletes the
64
+ user-global file. Writes are the exclusive responsibility of the
65
+ `/onboard` command on explicit user opt-in.
66
+ - **Tolerant.** Missing file, malformed YAML, empty file — all fall
67
+ back to the next tier without raising.
68
+ - **Silent on out-of-whitelist keys.** `verbose=True` logs which keys
69
+ were dropped for debugging; default mode is silent.
70
+ - **Never auto-creates `~/.config/agent-config/`.** That directory
71
+ pre-exists from key installation; `/onboard` `mkdir -p`s on opt-in.
35
72
 
36
73
  ## Lock semantics
37
74
 
@@ -3,6 +3,41 @@
3
3
  **Principle:** Project-installed by default, plugin-enhanced when available.
4
4
  No Task, no Make, no build tools required for installation.
5
5
 
6
+ ## Per-IDE setup — quick index
7
+
8
+ Pick your editor, follow the linked page, done. Each page lists its
9
+ own one-liner, verification, and troubleshooting. The mechanisms
10
+ section below this index is reference material for advanced installs
11
+ (Composer, npm, manual, plugin marketplaces).
12
+
13
+ | Surface | One-liner | Per-IDE page |
14
+ |---|---|---|
15
+ | **Claude Code** | `npx @event4u/create-agent-config init --tools=claude-code` | [`per-ide/claude-code.md`](setup/per-ide/claude-code.md) |
16
+ | **Claude Desktop** | (uses `~/.claude/skills/` from Claude Code global install) | [`per-ide/claude-desktop.md`](setup/per-ide/claude-desktop.md) |
17
+ | **Cursor** | `npx @event4u/create-agent-config init --tools=cursor` | [`per-ide/cursor.md`](setup/per-ide/cursor.md) |
18
+ | **Windsurf** | `npx @event4u/create-agent-config init --tools=windsurf` | [`per-ide/windsurf.md`](setup/per-ide/windsurf.md) |
19
+ | **Cline** | `npx @event4u/create-agent-config init --tools=cline` | [`per-ide/cline.md`](setup/per-ide/cline.md) |
20
+ | **Aider** | `npx @event4u/create-agent-config init --tools=aider` | [`per-ide/aider.md`](setup/per-ide/aider.md) |
21
+ | **Codex CLI** | `npx @event4u/create-agent-config init --tools=codex` | [`per-ide/codex.md`](setup/per-ide/codex.md) |
22
+ | **Gemini CLI** | `npx @event4u/create-agent-config init --tools=gemini` | [`per-ide/gemini-cli.md`](setup/per-ide/gemini-cli.md) |
23
+ | **GitHub Copilot** | `npx @event4u/create-agent-config init --tools=copilot` | [`per-ide/copilot.md`](setup/per-ide/copilot.md) |
24
+ | **All surfaces** | `npx @event4u/create-agent-config init` (default) | (each page above applies) |
25
+
26
+ Combine surfaces by comma-separating: `--tools=claude-code,cursor,windsurf`.
27
+
28
+ > Looking for **global** (cross-project) install? Each per-IDE page
29
+ > documents its own `npx @event4u/agent-config global --tools=<ide>`
30
+ > command.
31
+
32
+ ---
33
+
34
+ ## Mechanisms reference
35
+
36
+ The rest of this page documents the underlying install mechanisms
37
+ (Composer, npm, manual clone, plugin marketplaces). Most users want
38
+ the per-IDE index above.
39
+
40
+
6
41
  > **Primary installer:** `scripts/install` — a small bash orchestrator that
7
42
  > runs the two real installer stages in order:
8
43
  >
@@ -42,6 +77,63 @@ No Task, no Make, no build tools required for installation.
42
77
 
43
78
  ---
44
79
 
80
+ ## Quickstart — one-liner entrypoints
81
+
82
+ Try `@event4u/agent-config` in any directory in under 30 seconds, without
83
+ `composer require` or `git clone` first. Both entrypoints are thin
84
+ wrappers around `scripts/install` — same payload, same flags, no extra
85
+ state.
86
+
87
+ ### `npx` (Node ≥ 18)
88
+
89
+ ```bash
90
+ # Pick tools interactively (TTY checkbox prompt)
91
+ npx @event4u/create-agent-config init
92
+
93
+ # Pick tools explicitly, non-interactive
94
+ npx @event4u/create-agent-config init --tools=claude-code,cursor --yes
95
+
96
+ # Install everything (the default — backward-compatible)
97
+ npx @event4u/create-agent-config init --tools=all --yes
98
+
99
+ # Test a specific git ref (branch, tag, sha) instead of the latest npm tag
100
+ npx @event4u/create-agent-config init --ref=main --yes
101
+ ```
102
+
103
+ The `@event4u/create-agent-config` package is a thin wrapper: it
104
+ downloads the latest `@event4u/agent-config` tarball into a temp
105
+ directory, runs `bash scripts/install --target <cwd> ...`, and cleans
106
+ up after itself. The project-local payload package
107
+ (`@event4u/agent-config`) is unchanged.
108
+
109
+ ### `curl | bash` (no Node required)
110
+
111
+ ```bash
112
+ # Defaults (interactive picker if your terminal is a TTY, else --tools=all)
113
+ curl -sSL https://raw.githubusercontent.com/event4u-app/agent-config/main/setup.sh | bash
114
+
115
+ # Explicit tools, non-interactive (same flags as scripts/install)
116
+ curl -sSL https://raw.githubusercontent.com/event4u-app/agent-config/main/setup.sh \
117
+ | bash -s -- --tools=claude-code,cursor --yes
118
+
119
+ # Install from a specific git ref
120
+ curl -sSL https://raw.githubusercontent.com/event4u-app/agent-config/main/setup.sh \
121
+ | bash -s -- --ref=v1.39.0 --tools=cursor --yes
122
+ ```
123
+
124
+ Requires `bash`, `tar`, `curl` (or `wget`), and Python ≥ 3.10 on the
125
+ host. Mirrors the agent-os `setup.sh` pattern.
126
+
127
+ ### Interactive `--tools` picker
128
+
129
+ When `scripts/install` runs without an explicit `--tools` flag in an
130
+ interactive terminal (stdin + stdout both TTYs, `--yes` not passed), it
131
+ prompts for a comma-separated tool selection. In CI / piped invocations
132
+ the picker is skipped and the backward-compatible `all` default is
133
+ used. Pass `--yes` (or `-y`) to force non-interactive mode anywhere.
134
+
135
+ ---
136
+
45
137
  ## Project-installed mode (recommended for teams)
46
138
 
47
139
  Install once in the project — available to everyone working on it.
@@ -426,6 +518,8 @@ Options:
426
518
  --quiet Suppress non-error output
427
519
  --skip-sync Skip payload sync (install.sh)
428
520
  --skip-bridges Skip bridge files (install.py)
521
+ --global Ship kernel rules + curated skills to user-scope dirs
522
+ --uninstall With --global: remove the event4u/ namespace dir
429
523
  --help, -h Show this help
430
524
  ```
431
525
 
@@ -434,6 +528,44 @@ The underlying stages keep their own CLI surfaces:
434
528
 
435
529
  ---
436
530
 
531
+ ## Global user-level install (`--global`)
532
+
533
+ `--global` ships a curated subset of kernel rules + top-N skills into
534
+ **per-tool user-scope directories**, so the agent has them in every
535
+ project on the machine without a per-project install.
536
+
537
+ ```bash
538
+ # Default: every supported surface, namespaced under event4u/.
539
+ bash scripts/install --global
540
+
541
+ # Scope to specific surfaces (mirrors the project install --tools flag).
542
+ bash scripts/install --global --tools=claude-code,cursor
543
+
544
+ # Remove only what we put there — never touches user files.
545
+ bash scripts/install --global --uninstall
546
+ ```
547
+
548
+ | Surface | Target directory |
549
+ | ------------- | --------------------------------------------------------------- |
550
+ | Claude Code | `~/.claude/rules/event4u/`, `~/.claude/skills/event4u/` |
551
+ | Cursor | `~/.cursor/rules/imported/event4u/{rules,skills}/` |
552
+ | Windsurf | `~/.codeium/windsurf/global_workflows/event4u/{rules,skills}/` |
553
+ | Fallback | `~/.config/agent-config/{rules,skills}/event4u/` |
554
+
555
+ The fallback path is always written so an editor we don't yet know
556
+ about can still pick the files up.
557
+
558
+ **Curation source:** `templates/global-install-manifest.yml`. Edit
559
+ post-install to grow or shrink the global set; re-run `--global` to
560
+ re-project. `--uninstall` only removes the `event4u/` namespace —
561
+ user-added rules / skills under sibling paths stay untouched.
562
+
563
+ **When to use:** running multiple unrelated projects where a per-project
564
+ install is overkill, or wiring up a new editor (Claude Desktop, Cursor)
565
+ that benefits from a baseline set of skills out of the box.
566
+
567
+ ---
568
+
437
569
  ## Updating
438
570
 
439
571
  When a new version of the package is published:
@@ -0,0 +1,152 @@
1
+ # MCP Client Config — Remote agent-config
2
+
3
+ Connect any MCP-capable client to the hosted `agent-config-mcp` Worker
4
+ at `https://agent-config-mcp.event4u.workers.dev`. Read-only,
5
+ identity-stable per release, no auth.
6
+
7
+ For URL shapes (latest vs. pinned `/v<X.Y.Z>`) see
8
+ [`mcp-cloud-endpoints.md`](mcp-cloud-endpoints.md). For operator
9
+ setup of your own deployment see [`mcp-cloud-setup.md`](mcp-cloud-setup.md).
10
+
11
+ ## Transport note
12
+
13
+ The Worker speaks JSON-RPC over HTTP POST. Clients that support
14
+ HTTP transport natively (Claude Code, Cursor) talk to it directly.
15
+ Clients that only support stdio (Claude Desktop, Zed) need the
16
+ [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) bridge from
17
+ npm — invoked via `npx`, no install required.
18
+
19
+ ## Where settings live — `.agent-settings.yml` vs. MCP config
20
+
21
+ These are **two different files** for two different layers. Don't
22
+ look for MCP server config inside `.agent-settings.yml`.
23
+
24
+ | File | Where | Who reads it | Purpose |
25
+ |---|---|---|---|
26
+ | MCP client config (this page) | client-specific path per section above | the MCP client at startup | which MCP servers to talk to (name + URL / command) |
27
+ | `.agent-settings.yml` | consumer project root (`<repo>/.agent-settings.yml`) | the agent at runtime (Claude / Cursor / …) | per-developer preferences: `name`, `ide`, `cost_profile`, `personal.autonomy`, `pipelines.skill_improvement`, `caveman.speak_scope`, … |
28
+
29
+ The hosted MCP is **stateless** and **project-agnostic** — it serves
30
+ the same skill / rule / command catalog to every client. Personalization
31
+ happens agent-side after the MCP delivers its content blob; the Worker
32
+ itself does not read `.agent-settings.yml`.
33
+
34
+ First-time setup of `.agent-settings.yml` runs through `/onboard`;
35
+ template drift is handled by `/sync-agent-settings`.
36
+
37
+ ## Claude Desktop
38
+
39
+ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`
40
+ (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "agent-config": {
46
+ "command": "npx",
47
+ "args": ["-y", "mcp-remote", "https://agent-config-mcp.event4u.workers.dev"]
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ Restart Claude Desktop. The connector appears in the dropdown.
54
+
55
+ Newer builds also support **Settings → Connectors → Add Custom
56
+ Connector** with the URL directly — no `mcp-remote` wrapper needed.
57
+
58
+ ## Claude Code
59
+
60
+ Native HTTP transport — one command:
61
+
62
+ ```bash
63
+ claude mcp add --transport http agent-config https://agent-config-mcp.event4u.workers.dev
64
+ ```
65
+
66
+ Verify:
67
+
68
+ ```bash
69
+ claude mcp list
70
+ ```
71
+
72
+ ## Cursor
73
+
74
+ `~/.cursor/mcp.json` (global) or `<repo>/.cursor/mcp.json`
75
+ (project-local):
76
+
77
+ ```json
78
+ {
79
+ "mcpServers": {
80
+ "agent-config": {
81
+ "url": "https://agent-config-mcp.event4u.workers.dev"
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ Reload Cursor (`Cmd+Shift+P → Reload Window`).
88
+
89
+ ## Zed
90
+
91
+ `~/.config/zed/settings.json`:
92
+
93
+ ```json
94
+ {
95
+ "context_servers": {
96
+ "agent-config": {
97
+ "source": "custom",
98
+ "command": "npx",
99
+ "args": ["-y", "mcp-remote", "https://agent-config-mcp.event4u.workers.dev"]
100
+ }
101
+ }
102
+ }
103
+ ```
104
+
105
+ Zed has no native remote-MCP transport yet, so the `mcp-remote`
106
+ bridge is required.
107
+
108
+ ## Continue
109
+
110
+ `~/.continue/config.yaml` (or `<repo>/.continue/config.yaml`):
111
+
112
+ ```yaml
113
+ mcpServers:
114
+ - name: agent-config
115
+ command: npx
116
+ args: ["-y", "mcp-remote", "https://agent-config-mcp.event4u.workers.dev"]
117
+ ```
118
+
119
+ ## Verify
120
+
121
+ After reload, every client should:
122
+
123
+ 1. List `agent-config` under connectors / tools with a release-key
124
+ matching the live deploy. Probe the endpoint to see the current
125
+ release:
126
+
127
+ ```bash
128
+ curl https://agent-config-mcp.event4u.workers.dev
129
+ # → { "ok": true, "release_key": "v…", "signature": "…", … }
130
+ ```
131
+
132
+ 2. Expose skill + command prompts under URIs like `skill://…` and
133
+ `command://…`.
134
+ 3. Expose rule + guideline + context resources under `rule://…`,
135
+ `guideline://…`, `context://…`.
136
+
137
+ If the client shows the connector but no prompts / resources,
138
+ re-probe the URL — a 5xx from the Worker indicates the deploy is
139
+ mid-roll, retry after a minute.
140
+
141
+ ## Local stdio alternative
142
+
143
+ If you have the repo cloned and prefer running the MCP server
144
+ locally (faster startup, no network), the stdio kernel under
145
+ `scripts/mcp_server/` is the same wire surface. Setup:
146
+ `task mcp:setup`, run details in [`../mcp-server.md`](../mcp-server.md).
147
+
148
+ ## See also
149
+
150
+ - URL shapes & DNS — [`mcp-cloud-endpoints.md`](mcp-cloud-endpoints.md)
151
+ - Operator setup (your own deploy) — [`mcp-cloud-setup.md`](mcp-cloud-setup.md)
152
+ - A0-cloud contract — [`../contracts/mcp-cloud-scope.md`](../contracts/mcp-cloud-scope.md)
@@ -10,6 +10,21 @@ by `docs/contracts/mcp-cloud-scope.md` (A0-cloud) and Phase 5.2 of
10
10
  shapes below are pinned for the lifetime of the *experimental* window;
11
11
  breaking changes require a stability-label bump.
12
12
 
13
+ ## Scope — Lite surface
14
+
15
+ The hosted endpoint exposes the **read-only governance surface**
16
+ (skills, commands, rules, guidelines, contexts) as MCP prompts +
17
+ resources. `tools/list` returns two **deprecated stubs**
18
+ (`lint_skills`, `chat_history_append`) that point at their local-stdio
19
+ successors; `tools/call` against either returns `isError=true`. No
20
+ script execution, no FS access, no shell.
21
+
22
+ Full power — the ~112 Python scripts (linters, audits, `task ci`,
23
+ work-engine hooks) — requires the local install. See
24
+ [`../contracts/mcp-cloud-scope.md`](../contracts/mcp-cloud-scope.md)
25
+ for the execution-safety boundary and the Phase-7-DEFERRED gate that
26
+ governs any future tool restoration.
27
+
13
28
  ## URL shapes (pinned)
14
29
 
15
30
  Two surfaces, both serve identical wire contracts (JSON-RPC over POST,
@@ -88,6 +103,7 @@ serving on `/latest/`.
88
103
 
89
104
  ## See also
90
105
 
106
+ - Per-client config snippets: [`mcp-client-config.md`](mcp-client-config.md)
91
107
  - A0-cloud contract: `docs/contracts/mcp-cloud-scope.md`
92
108
  - R2 bootstrap: `docs/setup/mcp-r2-bootstrap.md`
93
109
  - Local stdio fallback: `scripts/mcp_server/` (unchanged)
@@ -0,0 +1,48 @@
1
+ # Aider Setup
2
+
3
+ Aider reads `AGENTS.md` (and the legacy `CONVENTIONS.md` if present)
4
+ from the repo root for project conventions.
5
+
6
+ ## Prerequisites
7
+
8
+ - Aider installed: <https://aider.chat>.
9
+ - Node.js ≥ 18 (for the install entrypoints).
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ npx @event4u/create-agent-config init --tools=aider
15
+ ```
16
+
17
+ Populates:
18
+
19
+ - `AGENTS.md` — agent self-orientation (Aider auto-loads)
20
+ - `.agent-settings.yml` — per-project knobs
21
+
22
+ Aider's chat will read `AGENTS.md` on every session start. Add it to
23
+ the chat explicitly if Aider doesn't pick it up:
24
+
25
+ ```bash
26
+ aider AGENTS.md
27
+ ```
28
+
29
+ ## Verification
30
+
31
+ ```bash
32
+ test -f AGENTS.md
33
+ ```
34
+
35
+ In Aider: type `/tokens` — `AGENTS.md` should appear in the loaded
36
+ files list.
37
+
38
+ ## Troubleshooting
39
+
40
+ | Symptom | Fix |
41
+ |---|---|
42
+ | `AGENTS.md` not auto-loaded | `aider --read AGENTS.md` or `/read AGENTS.md`. |
43
+ | Conventions ignored | Aider reads `CONVENTIONS.md` legacy too — check `--auto-commits` flag. |
44
+
45
+ ## Cross-references
46
+
47
+ - [`AGENTS.md`](../../../AGENTS.md) — canonical agent self-orientation.
48
+ - [`docs/installation.md`](../../installation.md) — install matrix index.
@@ -0,0 +1,108 @@
1
+ # Claude Code Setup
2
+
3
+ Claude Code is the canonical agent surface for `event4u/agent-config`. It
4
+ reads from `.claude/skills/`, `.claude/commands/`, `CLAUDE.md`,
5
+ `.claude/hooks/`, and project-level MCP servers. Everything in this repo
6
+ projects to those paths during install.
7
+
8
+ ## Prerequisites
9
+
10
+ - Claude Code installed (CLI or VS Code extension): <https://claude.com/code>.
11
+ - Node.js ≥ 18 (for the `npx` entrypoints).
12
+ - Git working tree (the package is repository-aware).
13
+
14
+ ## Project install (recommended)
15
+
16
+ ```bash
17
+ # Inside an existing repo:
18
+ npx @event4u/create-agent-config init --tools=claude-code
19
+
20
+ # Or with the curl entrypoint:
21
+ curl -sSL https://raw.githubusercontent.com/event4u-app/agent-config/main/setup.sh \
22
+ | bash -s -- --tools=claude-code
23
+ ```
24
+
25
+ Either form populates:
26
+
27
+ - `.claude/skills/` — symlinks into `.agent-src/skills/`
28
+ - `.claude/commands/` — symlinks into `.agent-src/commands/`
29
+ - `CLAUDE.md` — agent root pointer (auto-loaded by Claude Code)
30
+ - `.agent-settings.yml` — your per-project knobs (kept out of git)
31
+
32
+ ## Global install (cross-project skills)
33
+
34
+ ```bash
35
+ npx @event4u/agent-config global --tools=claude-code
36
+ ```
37
+
38
+ Seeds `~/.claude/skills/` with the curated top-N skills from
39
+ [`templates/global-install-manifest.yml`](../../../templates/global-install-manifest.yml).
40
+ Available across every project on the machine; project-level files
41
+ always take precedence.
42
+
43
+ Uninstall:
44
+
45
+ ```bash
46
+ npx @event4u/agent-config global --uninstall
47
+ ```
48
+
49
+ ## Plugin marketplace (Claude Code 2026+)
50
+
51
+ Claude Code 2026 supports plugin marketplaces via
52
+ `.claude-plugin/marketplace.json`. The package ships one — once
53
+ listed at the Anthropic marketplace (Phase 7 / S34) you can also:
54
+
55
+ ```bash
56
+ claude plugin install event4u/agent-config
57
+ ```
58
+
59
+ Today the npm/curl entrypoints above are the supported install path.
60
+
61
+ ## CLAUDE.md
62
+
63
+ Auto-loaded by Claude Code from the repo root. The package's `CLAUDE.md`
64
+ points to `AGENTS.md` (single source of truth for all agent surfaces);
65
+ edit `AGENTS.md`, never `CLAUDE.md`.
66
+
67
+ ## Hooks
68
+
69
+ Claude Code reads `.claude/hooks/` for pre/post tool hooks. The package
70
+ ships a memory-extraction hook (Phase 7 of `road-to-mcp-full-coverage`).
71
+ Local overrides go in `agents/overrides/.claude/hooks/`.
72
+
73
+ ## Skills you'll use most
74
+
75
+ - `/work "<prompt>"` — refine → plan → implement → verify → report loop.
76
+ - `/commit` — Conventional-Commit splitter with confirmation gate.
77
+ - `/create-pr` — opens a structured PR from the current branch.
78
+ - `/review-changes` — five-judge self-review before requesting human review.
79
+ - `/agent-handoff` — produces a fresh-chat continuation summary.
80
+
81
+ Full list: `ls .claude/skills/`.
82
+
83
+ ## Verification
84
+
85
+ ```bash
86
+ ls -la .claude/skills/ # should symlink into .agent-src/skills/
87
+ ls -la CLAUDE.md # exists, points to AGENTS.md
88
+ test -f .agent-settings.yml # per-project settings rendered
89
+ ```
90
+
91
+ In Claude Code itself: type `/` — the slash menu should list `work`,
92
+ `commit`, `create-pr`, etc.
93
+
94
+ ## Troubleshooting
95
+
96
+ | Symptom | Fix |
97
+ |---|---|
98
+ | `/` menu empty | `ls .claude/skills/` — re-run installer if empty. |
99
+ | Skills look stale after `git pull` | `task sync && task generate-tools`. |
100
+ | Hook never fires | `claude --debug` and inspect hook output. |
101
+ | Memory MCP missing | See `road-to-mcp-full-coverage` — Phase 3 ships read-only tools. |
102
+
103
+ ## Cross-references
104
+
105
+ - [`docs/installation.md`](../../installation.md) — install matrix index.
106
+ - [`docs/setup/per-ide/claude-desktop.md`](claude-desktop.md) — Desktop +
107
+ Cowork share the same `~/.claude/skills/` path; install once, both surfaces benefit.
108
+ - [`AGENTS.md`](../../../AGENTS.md) — package self-orientation.