@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.
- package/.agent-src/commands/onboard.md +131 -50
- package/.agent-src/commands/orchestrate.md +123 -0
- package/.agent-src/commands/sync-gitignore/fix.md +135 -0
- package/.agent-src/commands/sync-gitignore.md +31 -5
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +30 -2
- package/.agent-src/skills/subagent-orchestration/SKILL.md +9 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +25 -0
- package/.agent-src/templates/agent-settings.md +9 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +9 -2
- package/.agent-src/templates/scripts/work_engine/_lib/__init__.py +7 -0
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +168 -0
- package/.agent-src/templates/scripts/work_engine/hooks/settings.py +18 -19
- package/.agent-src/templates/scripts/work_engine/orchestration.py +168 -0
- package/.claude-plugin/marketplace.json +3 -1
- package/AGENTS.md +4 -4
- package/CHANGELOG.md +76 -0
- package/README.md +17 -6
- package/bin/install.php +13 -6
- package/config/agent-settings.template.yml +21 -0
- package/docs/DISTRIBUTION_CHECKLIST.md +169 -0
- package/docs/architecture.md +1 -1
- package/docs/catalog.md +3 -2
- package/docs/contracts/audit-log-v1.md +142 -0
- package/docs/contracts/command-clusters.md +2 -0
- package/docs/contracts/file-ownership-matrix.json +20 -0
- package/docs/contracts/orchestration-dsl-v1.md +152 -0
- package/docs/customization.md +45 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/layered-settings.md +54 -17
- package/docs/installation.md +132 -0
- package/docs/setup/mcp-client-config.md +152 -0
- package/docs/setup/mcp-cloud-endpoints.md +16 -0
- package/docs/setup/per-ide/aider.md +48 -0
- package/docs/setup/per-ide/claude-code.md +108 -0
- package/docs/setup/per-ide/claude-desktop.md +148 -0
- package/docs/setup/per-ide/cline.md +43 -0
- package/docs/setup/per-ide/codex.md +46 -0
- package/docs/setup/per-ide/copilot.md +80 -0
- package/docs/setup/per-ide/cursor.md +125 -0
- package/docs/setup/per-ide/gemini-cli.md +45 -0
- package/docs/setup/per-ide/windsurf.md +120 -0
- package/package.json +1 -1
- package/scripts/_lib/agent_settings.py +168 -0
- package/scripts/compress.py +153 -1
- package/scripts/extract_audit_patterns.py +202 -0
- package/scripts/install +156 -1
- package/scripts/install.py +270 -10
- package/scripts/install.sh +52 -7
- package/scripts/lint_orchestration_dsl.py +214 -0
- package/scripts/skill_linter.py +9 -0
- package/scripts/sync_gitignore.py +56 -1
- package/templates/claude_desktop_config.json.template +21 -0
- package/templates/cursor-rule.mdc.j2 +7 -0
- package/templates/global-install-manifest.yml +91 -0
- package/templates/marketing-copy.yml +64 -0
- package/templates/windsurf-rule.md.j2 +7 -0
package/docs/customization.md
CHANGED
|
@@ -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 |
|
package/docs/getting-started.md
CHANGED
|
@@ -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
|
|
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
|
-
|
|
4
|
-
**
|
|
5
|
-
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
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
|
-
|
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
(
|
|
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
|
|
29
|
-
2.
|
|
30
|
-
3. .agent-settings.yml
|
|
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
|
-
|
|
34
|
-
|
|
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
|
|
package/docs/installation.md
CHANGED
|
@@ -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.
|