@event4u/agent-config 2.2.2 → 2.4.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 (68) hide show
  1. package/.agent-src/commands/onboard.md +14 -9
  2. package/.agent-src/rules/external-reference-deep-dive.md +69 -0
  3. package/.agent-src/skills/ai-council/SKILL.md +5 -3
  4. package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  5. package/.agent-src/templates/agents/agent-project-settings.example.yml +4 -3
  6. package/.agent-src/templates/copilot-instructions.md +7 -0
  7. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +29 -7
  8. package/.agent-src/templates/scripts/work_engine/_lib/user_global_paths.py +249 -0
  9. package/.agent-src/templates/scripts/work_engine/hooks/settings.py +8 -5
  10. package/.claude-plugin/marketplace.json +27 -1
  11. package/CHANGELOG.md +79 -0
  12. package/README.md +1 -8
  13. package/config/agent-settings.template.yml +5 -3
  14. package/docs/architecture.md +1 -1
  15. package/docs/catalog.md +5 -3
  16. package/docs/contracts/installed-tools-lockfile.md +142 -0
  17. package/docs/customization.md +23 -17
  18. package/docs/decisions/ADR-007-agent-discovery-scopes.md +6 -0
  19. package/docs/decisions/ADR-009-event4u-namespace.md +188 -0
  20. package/docs/decisions/INDEX.md +1 -0
  21. package/docs/development.md +37 -0
  22. package/docs/getting-started.md +1 -1
  23. package/docs/guidelines/agent-infra/installed-tools-manifest.md +1 -1
  24. package/docs/guidelines/agent-infra/layered-settings.md +6 -4
  25. package/docs/installation.md +17 -2
  26. package/docs/migration/v1-to-v2.md +45 -0
  27. package/docs/setup/per-ide/antigravity.md +63 -0
  28. package/docs/setup/per-ide/augment.md +77 -0
  29. package/docs/setup/per-ide/claude-desktop.md +107 -65
  30. package/docs/setup/per-ide/codebuddy.md +63 -0
  31. package/docs/setup/per-ide/continue.md +68 -0
  32. package/docs/setup/per-ide/droid.md +65 -0
  33. package/docs/setup/per-ide/jetbrains.md +76 -0
  34. package/docs/setup/per-ide/kilocode.md +66 -0
  35. package/docs/setup/per-ide/kiro.md +72 -0
  36. package/docs/setup/per-ide/opencode.md +62 -0
  37. package/docs/setup/per-ide/qoder.md +63 -0
  38. package/docs/setup/per-ide/roocode.md +68 -0
  39. package/docs/setup/per-ide/trae.md +63 -0
  40. package/docs/setup/per-ide/warp.md +63 -0
  41. package/docs/setup/per-ide/zed.md +73 -0
  42. package/package.json +1 -1
  43. package/scripts/_cli/cmd_doctor.py +351 -0
  44. package/scripts/_cli/cmd_prune.py +317 -0
  45. package/scripts/_cli/cmd_uninstall.py +465 -0
  46. package/scripts/_cli/cmd_update.py +30 -4
  47. package/scripts/_cli/cmd_versions.py +147 -0
  48. package/scripts/_lib/agent_settings.py +29 -7
  49. package/scripts/_lib/agents_overlay.py +15 -4
  50. package/scripts/_lib/claude_desktop_bundler.py +150 -0
  51. package/scripts/_lib/fs_atomic.py +116 -0
  52. package/scripts/_lib/installed_lock.py +37 -4
  53. package/scripts/_lib/installed_tools.py +189 -45
  54. package/scripts/_lib/json_pointers.py +260 -0
  55. package/scripts/_lib/update_check.py +29 -5
  56. package/scripts/_lib/user_global_paths.py +249 -0
  57. package/scripts/agent-config +69 -0
  58. package/scripts/ai_council/__init__.py +4 -3
  59. package/scripts/ai_council/budget_guard.py +34 -4
  60. package/scripts/ai_council/bundler.py +2 -0
  61. package/scripts/ai_council/clients.py +28 -7
  62. package/scripts/compress.py +78 -15
  63. package/scripts/install +8 -0
  64. package/scripts/install-hooks.sh +54 -1
  65. package/scripts/install.py +1149 -53
  66. package/scripts/install_anthropic_key.sh +5 -3
  67. package/scripts/install_openai_key.sh +5 -3
  68. package/scripts/skill_trigger_eval.py +13 -2
@@ -115,6 +115,43 @@ task install -- --target <dir> # Run the installer orchestrator on a target
115
115
  task install-hooks # Install git hooks (pre-commit marketplace lint, pre-push sync check, chat-history bridges)
116
116
  ```
117
117
 
118
+ ### Local dev install (no release)
119
+
120
+ Use these tasks to run the working tree as if it were a published
121
+ release — useful for testing changes before `task release` cuts an npm
122
+ version.
123
+
124
+ ```bash
125
+ task dev:install-global # Refresh ~/.claude, ~/.cursor, ~/.augment, … from this working tree (--force)
126
+ task dev:link # Symlink this repo as the global @event4u/agent-config (npm link)
127
+ task dev:unlink # Remove the global symlink
128
+ ```
129
+
130
+ **Typical flow:**
131
+
132
+ 1. In this repo: `task dev:link` — once. The `agent-config` bin on PATH
133
+ now resolves into the working tree.
134
+ 2. In this repo: `task dev:install-global` — every time you want
135
+ user-scope content (`~/.claude/rules`, `~/.cursor/`, …) refreshed.
136
+ 3. In a consumer project that uses `@event4u/agent-config` from npm,
137
+ opt in to the linked dev tree:
138
+
139
+ ```bash
140
+ cd /path/to/consumer-project
141
+ npm link @event4u/agent-config
142
+ ```
143
+
144
+ `npx @event4u/agent-config …` and `node_modules/.bin/agent-config`
145
+ in that project now resolve into the dev tree. Undo with
146
+ `npm unlink @event4u/agent-config` (project) and `task dev:unlink`
147
+ (this repo).
148
+
149
+ **Caveat — npx outside a linked project:** `npx @event4u/agent-config`
150
+ in a directory without a linked `node_modules/@event4u/agent-config`
151
+ fetches the published version from the registry. Either run `npm link
152
+ @event4u/agent-config` in that project first, or call the global
153
+ `agent-config` bin directly (which `task dev:link` puts on PATH).
154
+
118
155
  ---
119
156
 
120
157
  ## Project Structure
@@ -106,7 +106,7 @@ Your agent is now:
106
106
  - **Respecting your codebase** — no conflicting patterns
107
107
  - **Following standards** — consistent code quality
108
108
 
109
- This is enforced automatically by 60 rules. No configuration needed.
109
+ This is enforced automatically by 61 rules. No configuration needed.
110
110
 
111
111
  ---
112
112
 
@@ -105,7 +105,7 @@ the next commit.
105
105
  |---|---|---|
106
106
  | `agents/installed-tools.lock` | **which AIs?** (this guideline) | bill of materials |
107
107
  | `.agent-project-settings.yml` | **how do agents behave?** | layered-settings (team file) |
108
- | `~/.config/agent-config/installed.lock` | **which package version did I install globally?** | per-developer global lockfile (Phase 1) |
108
+ | `~/.event4u/agent-config/installed.lock` | **which package version did I install globally?** | per-developer global lockfile (Phase 1; legacy `~/.config/agent-config/installed.lock` read as fallback) |
109
109
  | `.agent-settings.yml` | **what are my personal preferences in this project?** | layered-settings (developer file) |
110
110
 
111
111
  Each file has one job. They never overlap. The two `.lock` files look
@@ -18,7 +18,7 @@ on user request.
18
18
  | File | Git | Scope | Owner | Example values |
19
19
  |---|---|---|---|---|
20
20
  | `.agent-project-settings.yml` | **committed** | team / repo | lead maintainer | `project.stack`, `quality.php.tools`, `memory.dogfood` |
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` |
21
+ | `~/.event4u/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` (legacy `~/.config/agent-config/agent-settings.yml` read as fallback) |
22
22
  | `.agent-settings.yml` | **gitignored** | individual developer · this project | individual | `personal.ide`, `personal.user_name`, `subagents.max_parallel`, `onboarding.onboarded` |
23
23
 
24
24
  All three are YAML. Schemas:
@@ -34,7 +34,7 @@ Lowest priority → highest priority:
34
34
 
35
35
  ```
36
36
  1. Package defaults (shipped by event4u/agent-config)
37
- 2. ~/.config/agent-config/agent-settings.yml (user-global · whitelist-filtered)
37
+ 2. ~/.event4u/agent-config/agent-settings.yml (user-global · whitelist-filtered · legacy ~/.config/agent-config/ read as fallback)
38
38
  3. .agent-project-settings.yml (team file, committed)
39
39
  4. .agent-settings.yml (developer file, gitignored)
40
40
  ```
@@ -67,8 +67,10 @@ Loader contract:
67
67
  back to the next tier without raising.
68
68
  - **Silent on out-of-whitelist keys.** `verbose=True` logs which keys
69
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.
70
+ - **Never auto-creates `~/.event4u/agent-config/`** (nor the legacy
71
+ `~/.config/agent-config/`). The new directory is created by the
72
+ migration shim or by `/onboard` on opt-in; key installation also
73
+ `mkdir -p`s as needed.
72
74
 
73
75
  ## Lock semantics
74
76
 
@@ -11,8 +11,9 @@ committed to a repo. No Task, no Make, no build tools required.
11
11
  > to **project**. Pass `--scope=global` or `--scope=project` to override
12
12
  > detection. See `--scope` in the CLI help for the full matrix.
13
13
 
14
- A global install records itself in `~/.config/agent-config/installed.lock`
15
- (schema_version, agent_config_version, installed_at, tools[]). `npx
14
+ A global install records itself in `~/.event4u/agent-config/installed.lock`
15
+ (schema_version, agent_config_version, installed_at, tools[]; the legacy
16
+ `~/.config/agent-config/installed.lock` is read as a fallback). `npx
16
17
  @event4u/agent-config update` keeps that manifest in lockstep
17
18
  with the project pin in `.agent-settings.yml`. A version-mismatched
18
19
  re-run of `init --scope=global` is refused with exit code 1 until you
@@ -46,6 +47,20 @@ section below this index is reference material for advanced installs
46
47
  | **Codex CLI** | `npx @event4u/agent-config init --tools=codex` | [`per-ide/codex.md`](setup/per-ide/codex.md) |
47
48
  | **Gemini CLI** | `npx @event4u/agent-config init --tools=gemini` | [`per-ide/gemini-cli.md`](setup/per-ide/gemini-cli.md) |
48
49
  | **GitHub Copilot** | `npx @event4u/agent-config init --tools=copilot` | [`per-ide/copilot.md`](setup/per-ide/copilot.md) |
50
+ | **Augment Code** | `npx @event4u/agent-config init --tools=augment` | [`per-ide/augment.md`](setup/per-ide/augment.md) |
51
+ | **Roo Code** | `npx @event4u/agent-config init --tools=roocode` | [`per-ide/roocode.md`](setup/per-ide/roocode.md) |
52
+ | **Kilo Code** | `npx @event4u/agent-config init --tools=kilocode` | [`per-ide/kilocode.md`](setup/per-ide/kilocode.md) |
53
+ | **Continue.dev** | `npx @event4u/agent-config init --tools=continue` | [`per-ide/continue.md`](setup/per-ide/continue.md) |
54
+ | **Kiro** | `npx @event4u/agent-config init --tools=kiro` | [`per-ide/kiro.md`](setup/per-ide/kiro.md) |
55
+ | **Zed** | `npx @event4u/agent-config init --tools=zed` | [`per-ide/zed.md`](setup/per-ide/zed.md) |
56
+ | **JetBrains AI** | `npx @event4u/agent-config init --tools=jetbrains --global` | [`per-ide/jetbrains.md`](setup/per-ide/jetbrains.md) |
57
+ | **Qoder** | `npx @event4u/agent-config init --tools=qoder --global` | [`per-ide/qoder.md`](setup/per-ide/qoder.md) |
58
+ | **OpenCode** | `npx @event4u/agent-config init --tools=opencode --global` | [`per-ide/opencode.md`](setup/per-ide/opencode.md) |
59
+ | **Trae** | `npx @event4u/agent-config init --tools=trae --global` | [`per-ide/trae.md`](setup/per-ide/trae.md) |
60
+ | **Antigravity** | `npx @event4u/agent-config init --tools=antigravity --global` | [`per-ide/antigravity.md`](setup/per-ide/antigravity.md) |
61
+ | **CodeBuddy** | `npx @event4u/agent-config init --tools=codebuddy --global` | [`per-ide/codebuddy.md`](setup/per-ide/codebuddy.md) |
62
+ | **Droid (Factory)** | `npx @event4u/agent-config init --tools=droid --global` | [`per-ide/droid.md`](setup/per-ide/droid.md) |
63
+ | **Warp** | `npx @event4u/agent-config init --tools=warp --global` | [`per-ide/warp.md`](setup/per-ide/warp.md) |
49
64
  | **All surfaces** | `npx @event4u/agent-config init` (default) | (each page above applies) |
50
65
 
51
66
  Combine surfaces by comma-separating: `--tools=claude-code,cursor,windsurf`.
@@ -91,8 +91,53 @@ npx @event4u/agent-config doctor # P3 — runtime sanity check
91
91
 
92
92
  Expected: pin resolved, no v1 markers detected, `update_check` reachable.
93
93
 
94
+ ## v2 → v2.4 — `~/.event4u/agent-config/` namespace move
95
+
96
+ v2.4 relocates package-owned user-scope state from
97
+ `~/.config/agent-config/` to `~/.event4u/agent-config/`. Tool anchors
98
+ (`~/.claude/`, `~/.augment/`, `~/.cursor/`, `~/.codeium/windsurf/`) are
99
+ **not** moved — those belong to their host tools.
100
+
101
+ ### What moves
102
+
103
+ | Old path | New path |
104
+ |-----------------------------------------------------|---------------------------------------------------------|
105
+ | `~/.config/agent-config/agent-settings.yml` | `~/.event4u/agent-config/agent-settings.yml` |
106
+ | `~/.config/agent-config/installed.lock` | `~/.event4u/agent-config/installed.lock` |
107
+ | `~/.config/agent-config/installed-tools.yml` | `~/.event4u/agent-config/installed-tools.yml` |
108
+ | `~/.config/agent-config/update-check.json` | `~/.event4u/agent-config/update-check.json` |
109
+ | `~/.config/agent-config/ai-council/` | `~/.event4u/agent-config/ai-council/` |
110
+
111
+ ### Migration — zero action required
112
+
113
+ A one-shot auto-migration shim runs on the first `init` / `update` /
114
+ `uninstall` after upgrading to ≥ 2.4:
115
+
116
+ 1. If `~/.event4u/agent-config/` already exists → no-op.
117
+ 2. Otherwise, copy every file from `~/.config/agent-config/` to the new
118
+ path, preserving mtimes.
119
+ 3. Drop a `MIGRATED.md` breadcrumb in the legacy dir pointing at the new
120
+ home. Legacy files stay readable; loaders fall back to them until a
121
+ subsequent install overwrites the new path.
122
+
123
+ Override the target dir with `EVENT4U_HOME=/some/path` if you keep a
124
+ non-standard home (`$HOME` substitute) or want to test the migration
125
+ against a sandbox.
126
+
127
+ ### Claude Desktop — new bundle output
128
+
129
+ v2.4 ships a real Claude Desktop deployment instead of the
130
+ marker-only stub. Running `npx @event4u/agent-config init
131
+ --tools=claude-desktop` (or any superset that includes it) now produces
132
+ one ZIP per `.claude/skills/<name>/` under
133
+ `~/.event4u/agent-config/claude-desktop/bundles/`. Import them via
134
+ Claude Desktop → Customize → Skills → Upload. See
135
+ [`docs/setup/per-ide/claude-desktop.md`](../setup/per-ide/claude-desktop.md)
136
+ for the click-through.
137
+
94
138
  ## See also
95
139
 
96
140
  - [`docs/architecture.md` § Distribution model](../architecture.md#distribution-model--npx-only--version-pin-governance) — Q1 council rejection + override + pin substitution.
97
141
  - [`agents/roadmaps/road-to-portable-runtime-and-update-check.md`](../../agents/roadmaps/road-to-portable-runtime-and-update-check.md) — full delivery plan and acceptance criteria.
142
+ - [`agents/roadmaps/road-to-event4u-namespace-and-claude-desktop.md`](../../agents/roadmaps/road-to-event4u-namespace-and-claude-desktop.md) — v2.4 namespace + bundle delivery plan.
98
143
  - [`docs/installation.md`](../installation.md) — v2 install reference.
@@ -0,0 +1,63 @@
1
+ # Antigravity Setup
2
+
3
+ Antigravity (Google's agentic IDE) reads the Anthropic-shaped
4
+ markdown skill bundle from its user-scope anchor `~/.agents/`. The
5
+ package deploys via the universal skill convention; project-scope
6
+ bridge is not yet wired (Phase 2.4 anchor).
7
+
8
+ ## Prerequisites
9
+
10
+ - Antigravity IDE.
11
+ - Node.js ≥ 18 for the install entrypoints.
12
+
13
+ ## Install
14
+
15
+ Global only (canonical scope):
16
+
17
+ ```bash
18
+ npx @event4u/agent-config init --tools=antigravity --global
19
+ ```
20
+
21
+ Populates:
22
+
23
+ - `~/.agents/skills/` — Anthropic-shaped skill bundle
24
+ - `~/.agents/rules/` — kernel + tier-1/2 rules
25
+ - `~/.agents/personas/` — review-lens personas
26
+
27
+ (Project-scope `--tools=antigravity` is rejected with exit code 1
28
+ — Antigravity has no documented project-discovery convention yet.)
29
+
30
+ ## How to use
31
+
32
+ - Antigravity reads the skill bundle from `~/.agents/skills/` on
33
+ every session — no manual action required.
34
+ - Slash commands (`/work`, `/implement-ticket`, `/commit`,
35
+ `/create-pr`, …) ship inside the skill bundle as named skills.
36
+ Invoke them by name in chat.
37
+ - Antigravity ships an agent-orchestration surface; point it at
38
+ the project root so the agent can locate `AGENTS.md` and the
39
+ project's own `agents/` overlay.
40
+
41
+ ## Verification
42
+
43
+ ```bash
44
+ test -d ~/.agents/skills
45
+ test -d ~/.agents/rules
46
+ ```
47
+
48
+ In Antigravity: ask *"What is this repo?"* — the answer should
49
+ cite the AGENTS.md emergency triage block when the workspace is
50
+ open.
51
+
52
+ ## Troubleshooting
53
+
54
+ | Symptom | Fix |
55
+ |---|---|
56
+ | Skills not listed | Re-run `npx @event4u/agent-config init --tools=antigravity --global --force`. |
57
+ | `--tools=antigravity` rejected | Add `--global` (Antigravity has global-only scope). |
58
+ | `~/.agents/` collides with another tool | The anchor is shared by convention; coexists with other agents that use the same path. |
59
+
60
+ ## Cross-references
61
+
62
+ - [`AGENTS.md`](../../../AGENTS.md) — canonical agent self-orientation.
63
+ - [`docs/installation.md`](../../installation.md) — install matrix index.
@@ -0,0 +1,77 @@
1
+ # Augment Code Setup
2
+
3
+ Augment Code is the **substrate** for this package — every other tool
4
+ mirrors content from the canonical `.augment/` tree. The Augment
5
+ extension (VS Code, JetBrains) reads `.augment/rules/`,
6
+ `.augment/skills/`, `.augment/commands/`, `.augment/personas/`, and
7
+ `.augment/contexts/` directly.
8
+
9
+ ## Prerequisites
10
+
11
+ - Augment Code extension: <https://www.augmentcode.com/>.
12
+ - Node.js ≥ 18 for the install entrypoints.
13
+
14
+ ## Install
15
+
16
+ Project scope (default):
17
+
18
+ ```bash
19
+ npx @event4u/agent-config init --tools=augment
20
+ ```
21
+
22
+ Global scope (cross-project, deploys the full bundle to `~/.augment/`):
23
+
24
+ ```bash
25
+ npx @event4u/agent-config init --tools=augment --global
26
+ ```
27
+
28
+ Populates (project):
29
+
30
+ - `.augment/rules/` — kernel (9 Iron-Law rules) + tier-1/2 routed rules
31
+ - `.augment/skills/` — domain skills
32
+ - `.augment/commands/` — slash commands
33
+ - `.augment/personas/` — review-lens personas
34
+ - `.augment/contexts/` — knowledge-layer contexts
35
+ - `.augment/templates/` — scaffolds for AGENTS.md, copilot-instructions, etc.
36
+ - `AGENTS.md` — canonical agent self-orientation
37
+ - `.agent-settings.yml` — per-project knobs
38
+
39
+ ## How to use
40
+
41
+ - Augment auto-discovers `.augment/` on every session — no manual
42
+ action required.
43
+ - The kernel rules (always-on Iron Laws) load first; tier-1/2
44
+ rules are routed by the rule-router based on intent.
45
+ - Slash commands (`/work`, `/implement-ticket`, `/commit`,
46
+ `/create-pr`, `/refine-ticket`, …) are registered as Augment
47
+ Skills and surfaced in the agent's available-skills list.
48
+ - Personas are review-lens voices; invoke them per `/mode` or by
49
+ name inside `/work` and `/implement-ticket` plans.
50
+ - `.agent-settings.yml` controls per-project knobs (autonomy
51
+ default, cost profile, role-mode, learning opt-out).
52
+
53
+ ## Verification
54
+
55
+ ```bash
56
+ test -d .augment/rules
57
+ test -d .augment/skills
58
+ test -d .augment/commands
59
+ test -f AGENTS.md
60
+ ```
61
+
62
+ Open the Augment panel and ask *"What is this repo?"* — the answer
63
+ should cite the AGENTS.md emergency triage block.
64
+
65
+ ## Troubleshooting
66
+
67
+ | Symptom | Fix |
68
+ |---|---|
69
+ | Skills not surfaced | Reload the Augment workspace; skills are indexed on session start. |
70
+ | Symlinked sub-dirs missing | `.augment/skills` is a symlink to `.agent-src/skills`; run `task sync` to rebuild. |
71
+ | Iron Laws not firing | Confirm `.augment/rules/` contains 9 kernel files (`task ci` validates the kernel count). |
72
+
73
+ ## Cross-references
74
+
75
+ - [`AGENTS.md`](../../../AGENTS.md) — canonical agent self-orientation.
76
+ - [`docs/architecture.md`](../../architecture.md) — kernel + router + projection pipeline.
77
+ - [`docs/installation.md`](../../installation.md) — install matrix index.
@@ -1,65 +1,97 @@
1
1
  # Claude Desktop — agent-config setup
2
2
 
3
3
  The fastest path to running our skills, rules, and (optionally) the MCP
4
- server inside Claude Desktop. macOS / Windows / Linux. ~5 minutes.
5
-
6
- > **TL;DR** — Claude Desktop reads from `~/.claude/` (global only, no
7
- > project-local discovery on macOS). Run `npx @event4u/agent-config
8
- > global --tools=claude-desktop` once per user, or
9
- > `npx @event4u/agent-config init --tools=claude-code` per project
10
- > (Claude Code's project install also covers Desktop on macOS via the
11
- > shared `~/.claude/` location seeded during `init`). The v1 npm /
12
- > composer install scheme is retired; the new global-first scheme is
13
- > ADR-007 and writes through `~/.config/agent-config/installed.lock`.
4
+ server inside Claude Desktop. macOS / Windows / Linux. ~10 minutes.
5
+
6
+ > **TL;DR** — Claude Desktop does **not** auto-discover skills from any
7
+ > filesystem path. It loads skills only after they are uploaded through
8
+ > **Settings Customize Skills → Upload**. The package generates one
9
+ > ZIP per skill under
10
+ > `~/.event4u/agent-config/claude-desktop/bundles/` so you can drag /
11
+ > drop them into the Customize panel. The v1 npm / composer install
12
+ > scheme is retired; the new global-first scheme is ADR-007 and writes
13
+ > through `~/.event4u/agent-config/installed.lock` (legacy
14
+ > `~/.config/agent-config/installed.lock` read as fallback).
14
15
 
15
16
  ## Prerequisites
16
17
 
17
18
  - Claude Desktop installed (free or paid plan — same install path).
18
19
  - Node ≥ 18 (`npx` resolves the package per-project).
19
- - 5 minutes.
20
+ - 10 minutes (most of it is clicking through the Customize panel once).
20
21
 
21
- ## Step 1 — project-local install
22
+ ## Step 1 — generate the ZIP bundles
22
23
 
23
- Run inside each project that should be visible to Claude Desktop:
24
+ Run once per user. Writes the per-skill ZIPs into the namespace dir:
24
25
 
25
26
  ```bash
26
- npx @event4u/agent-config init --tools=claude-code
27
+ npx @event4u/agent-config init --tools=claude-desktop --global
27
28
  ```
28
29
 
29
- > `--tools=claude-code` covers both Claude Code **and** Claude
30
- > Desktop — the two surfaces share the project's `.claude/`
31
- > directory. Pass `--tools=claude-code,cursor,windsurf` to seed
32
- > additional surfaces in the same run.
33
-
34
30
  The init writes:
35
31
 
36
32
  ```
37
- .claude/
38
- ├── rules/ # active rules for the project
39
- ├── skills/ # active skills for the project
40
- └── commands/ # slash commands
33
+ ~/.event4u/agent-config/
34
+ ├── claude-desktop/
35
+ ├── bundles/ # one <skill-name>.zip per .claude/skills/* folder
36
+ └── claude-desktop.md # human-readable marker with the import flow
37
+ ├── agent-settings.yml
38
+ ├── installed.lock
39
+ └── installed-tools.yml
41
40
  ```
42
41
 
43
- `.agent-settings.yml` carries the `agent_config_version` pin so every
44
- `npx` invocation resolves the same runtime.
42
+ Re-running is safe: each ZIP carries a SHA-256 sidecar. Bundles whose
43
+ content didn't change are skipped (idempotent).
44
+
45
+ ## Step 1b — import skills into Customize
46
+
47
+ Claude Desktop does not read the bundle dir directly — you upload each
48
+ ZIP through the **Customize** panel.
49
+
50
+ 1. Open Claude Desktop → **Settings** (`Cmd+,` on macOS).
51
+ 2. Pick **Customize** in the left sidebar, then the **Skills** tab.
52
+ 3. Click **Upload** (the button shown next to the search box).
53
+ 4. Navigate to `~/.event4u/agent-config/claude-desktop/bundles/` and
54
+ either:
55
+ - drag-drop the ZIPs you want into the upload zone, or
56
+ - select multiple ZIPs in the file picker (`Cmd-click` on macOS,
57
+ `Ctrl-click` on Windows / Linux) and confirm.
58
+ 5. The skills appear in the Customize list. Toggle each one **On**
59
+ (the toggle is the gate Claude Desktop uses at runtime, not the
60
+ upload itself).
61
+
62
+ > The bundles dir prints in the install summary so you can paste-copy
63
+ > it into Finder / Explorer. The marker file at the same path
64
+ > (`claude-desktop.md`) repeats the click-through instructions.
45
65
 
46
66
  ## Step 2 — verify
47
67
 
48
- 1. Restart Claude Desktop (full quit, not just window close).
49
- 2. Open the project folder in a new conversation.
50
- 3. Type `/` the curated skills (`/work`, `/commit`, `/create-pr`,
51
- `/quality-fix`, `/review-changes`, `/agent-handoff`,
52
- `/project-analyze`, …) appear in the slash-command menu.
53
- 4. Open Settings Connectors. The kernel rules count appears under
54
- "rules loaded".
68
+ 1. Restart Claude Desktop (full quit, not just window close — `Cmd+Q`
69
+ on macOS).
70
+ 2. Open a new conversation.
71
+ 3. Type `/` — the uploaded skills appear in the slash-command menu.
72
+ 4. **Settings Customize Skills** should list every skill you
73
+ uploaded, each with its **On** toggle live.
74
+
75
+ If a skill is missing from `/`:
76
+
77
+ - Confirm the **On** toggle is enabled in Customize → Skills.
78
+ - Re-upload that specific ZIP — partial uploads can show up listed but
79
+ disabled.
80
+ - Quit Claude Desktop fully (the menubar process on macOS caches old
81
+ skill state). Re-open and re-check.
55
82
 
56
- If the menu is empty:
83
+ ## Step 2b optional: project-local install for Claude Code
57
84
 
58
- - Check `ls .claude/skills/` inside the project should list the
59
- curated skills.
60
- - Quit Claude Desktop (`Cmd+Q` on macOS, **not** just close the
61
- window — the menubar process keeps the old skills cached).
62
- - Re-open and try `/` again.
85
+ If you also use **Claude Code** in the same project, install the
86
+ project-local config in the same run:
87
+
88
+ ```bash
89
+ npx @event4u/agent-config init --tools=claude-code
90
+ ```
91
+
92
+ Claude Code reads `.claude/` directly from the project — no upload
93
+ step required. Pass `--tools=claude-code,claude-desktop,cursor,…` to
94
+ seed multiple surfaces with one invocation.
63
95
 
64
96
  ## Step 3 — optional MCP server
65
97
 
@@ -116,34 +148,39 @@ Restart Claude Desktop. The 🔌 icon shows the connector under
116
148
  native HTTP) and per-client Bearer-auth snippets live in
117
149
  [`../mcp-client-config.md`](../mcp-client-config.md).
118
150
 
119
- ## Claude Desktop ↔ Claude Code config sharing
120
-
121
- Both surfaces read **the same project `.claude/` directory**. Anything
122
- the `npx init` writes for one is automatically picked up by the
123
- other when the project folder is opened:
124
-
125
- | File / dir | Shared by Desktop & Code? |
126
- | -------------------------------- | ------------------------- |
127
- | `<project>/.claude/CLAUDE.md` | yes project system prompt |
128
- | `<project>/.claude/rules/` | yes — written by `npx … init` |
129
- | `<project>/.claude/skills/` | yes — written by `npx … init` |
130
- | `<project>/.claude/commands/` | yes — slash commands |
131
- | `<project>/.claude/hooks/` | yes — lifecycle hooks |
132
- | `claude_desktop_config.json` | Desktop only (MCP) |
133
- | `~/.claude.json` (CLI config) | Code only |
134
-
135
- Translation: run `npx @event4u/agent-config init` once per project,
136
- both clients pick the files up. Cross-link to
137
- [`claude-code.md`](claude-code.md) for the CLI-side view.
151
+ ## Claude Desktop ↔ Claude Code what is shared, what is not
152
+
153
+ Claude Code reads `.claude/` directly from the project. Claude Desktop
154
+ does **not** auto-discover from any filesystem path skills must be
155
+ uploaded through Customize Skills (Step 1b). MCP configuration is
156
+ shared via `claude_desktop_config.json`.
157
+
158
+ | Surface | Loaded by Desktop? | Loaded by Code? |
159
+ | -------------------------------- | ---------------------------- | -------------------------- |
160
+ | `<project>/.claude/CLAUDE.md` | no | yes — project system prompt |
161
+ | `<project>/.claude/rules/` | no | yes — written by `npx … init` |
162
+ | `<project>/.claude/skills/` | no (upload via Customize) | yes — written by `npx … init` |
163
+ | `<project>/.claude/commands/` | no | yes — slash commands |
164
+ | `<project>/.claude/hooks/` | no | yes — lifecycle hooks |
165
+ | `~/.event4u/agent-config/claude-desktop/bundles/*.zip` | imported via Customize → Skills | not used |
166
+ | `claude_desktop_config.json` | yes — MCP servers | no |
167
+ | `~/.claude.json` (CLI config) | no | yes CLI session state |
168
+
169
+ Translation: run `npx @event4u/agent-config init --tools=claude-desktop
170
+ --global` once per user to refresh the bundles, then re-upload through
171
+ Customize → Skills whenever a bundle is rebuilt. Run
172
+ `npx @event4u/agent-config init --tools=claude-code` per project for
173
+ the Code-side files. Cross-link to [`claude-code.md`](claude-code.md)
174
+ for the CLI-side view.
138
175
 
139
176
  ## Claude Cowork
140
177
 
141
- Claude Cowork (paid plans only — Pro / Max / Team) **shares the
142
- Desktop config**. Once Step 1 + Step 3 are done in Desktop:
178
+ Claude Cowork (paid plans only — Pro / Max / Team) **inherits the
179
+ Desktop session**. Once Steps 1 + 1b + 3 are done in Desktop:
143
180
 
144
- - Skills and rules under `~/.claude/` are picked up automatically.
145
- - MCP servers under `claude_desktop_config.json` are available
146
- inside Cowork sessions without a separate install.
181
+ - Uploaded skills from Customize are available inside Cowork.
182
+ - MCP servers under `claude_desktop_config.json` are available inside
183
+ Cowork sessions without a separate install.
147
184
  - Cowork-specific limit (per Anthropic docs): MCP tools that write to
148
185
  the local filesystem are sandboxed — read-only tools (the entire
149
186
  `agent-config-mcp` Worker surface) work fine.
@@ -154,9 +191,14 @@ client-side feature set.
154
191
 
155
192
  ## Uninstall
156
193
 
157
- Remove the project's `.claude/`, `.agent-settings.yml`, and any bridge
158
- files written by `npx … init`. Nothing lives under `~/.claude/` from
159
- this package any more.
194
+ 1. Open Claude Desktop Settings Customize → Skills, toggle off and
195
+ delete each skill you uploaded.
196
+ 2. Delete `~/.event4u/agent-config/claude-desktop/` to remove the local
197
+ bundles. The legacy `~/.config/agent-config/` path can stay; the
198
+ loader treats it as read-only fallback.
199
+ 3. Run `npx @event4u/agent-config uninstall --tools=claude-desktop` to
200
+ refresh `installed.lock` (or `--all` to fully remove the user-scope
201
+ state).
160
202
 
161
203
  ## See also
162
204
 
@@ -0,0 +1,63 @@
1
+ # CodeBuddy Setup
2
+
3
+ CodeBuddy (Tencent's AI coding assistant) reads the Anthropic-shaped
4
+ markdown skill bundle from its user-scope anchor `~/.codebuddy/`.
5
+ The package deploys via the universal skill convention; project-scope
6
+ bridge is not yet wired (Phase 2.4 anchor).
7
+
8
+ ## Prerequisites
9
+
10
+ - CodeBuddy extension / CLI.
11
+ - Node.js ≥ 18 for the install entrypoints.
12
+
13
+ ## Install
14
+
15
+ Global only (canonical scope):
16
+
17
+ ```bash
18
+ npx @event4u/agent-config init --tools=codebuddy --global
19
+ ```
20
+
21
+ Populates:
22
+
23
+ - `~/.codebuddy/skills/` — Anthropic-shaped skill bundle
24
+ - `~/.codebuddy/rules/` — kernel + tier-1/2 rules
25
+ - `~/.codebuddy/personas/` — review-lens personas
26
+
27
+ (Project-scope `--tools=codebuddy` is rejected with exit code 1 —
28
+ CodeBuddy has no documented project-discovery convention yet.)
29
+
30
+ ## How to use
31
+
32
+ - CodeBuddy reads the skill bundle from `~/.codebuddy/skills/` on
33
+ every session — no manual action required.
34
+ - Slash commands (`/work`, `/implement-ticket`, `/commit`,
35
+ `/create-pr`, …) ship inside the skill bundle as named skills.
36
+ Invoke them by name in chat.
37
+ - For repository-aware work, open the project root in CodeBuddy
38
+ so the agent can locate `AGENTS.md` and the project's own
39
+ `agents/` overlay.
40
+
41
+ ## Verification
42
+
43
+ ```bash
44
+ test -d ~/.codebuddy/skills
45
+ test -d ~/.codebuddy/rules
46
+ ```
47
+
48
+ In CodeBuddy: open the chat panel and ask *"What is this repo?"*
49
+ — the answer should cite the AGENTS.md emergency triage block
50
+ when the workspace is open.
51
+
52
+ ## Troubleshooting
53
+
54
+ | Symptom | Fix |
55
+ |---|---|
56
+ | Skills not listed | Re-run `npx @event4u/agent-config init --tools=codebuddy --global --force`. |
57
+ | `--tools=codebuddy` rejected | Add `--global` (CodeBuddy has global-only scope). |
58
+ | AGENTS.md not picked up | Open the project root in CodeBuddy; the agent reads `AGENTS.md` from the workspace. |
59
+
60
+ ## Cross-references
61
+
62
+ - [`AGENTS.md`](../../../AGENTS.md) — canonical agent self-orientation.
63
+ - [`docs/installation.md`](../../installation.md) — install matrix index.