@event4u/agent-config 2.0.0 → 2.2.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 (41) hide show
  1. package/.agent-src/commands/fix/{pr-bots.md → pr-bot-comments.md} +3 -3
  2. package/.agent-src/commands/fix/{pr.md → pr-comments.md} +6 -6
  3. package/.agent-src/commands/fix/{pr-developers.md → pr-developer-comments.md} +3 -3
  4. package/.agent-src/commands/fix.md +6 -6
  5. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
  6. package/.agent-src/rules/no-cheap-questions.md +11 -2
  7. package/.agent-src/skills/readme-writing-package/SKILL.md +24 -0
  8. package/.claude-plugin/marketplace.json +4 -4
  9. package/CHANGELOG.md +79 -0
  10. package/README.md +76 -12
  11. package/docs/architecture.md +2 -2
  12. package/docs/catalog.md +3 -3
  13. package/docs/contracts/command-clusters.md +3 -3
  14. package/docs/contracts/file-ownership-matrix.json +9 -9
  15. package/docs/contracts/tier-3-contrib-plugin.md +129 -0
  16. package/docs/decisions/ADR-007-agent-discovery-scopes.md +278 -0
  17. package/docs/decisions/ADR-008-installed-tools-manifest.md +160 -0
  18. package/docs/decisions/INDEX.md +2 -0
  19. package/docs/getting-started.md +16 -25
  20. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +32 -0
  21. package/docs/guidelines/agent-infra/installed-tools-manifest.md +135 -0
  22. package/docs/installation.md +116 -49
  23. package/docs/migrations/commands-1.15.0.md +3 -3
  24. package/docs/setup/per-ide/claude-desktop.md +8 -4
  25. package/docs/skills-catalog.md +23 -2
  26. package/docs/troubleshooting.md +20 -32
  27. package/llms.txt +22 -1
  28. package/package.json +1 -1
  29. package/scripts/_cli/cmd_export.py +157 -0
  30. package/scripts/_cli/cmd_sync.py +162 -0
  31. package/scripts/_cli/cmd_update.py +23 -1
  32. package/scripts/_cli/cmd_validate.py +164 -0
  33. package/scripts/_lib/installed_lock.py +160 -0
  34. package/scripts/_lib/installed_tools.py +237 -0
  35. package/scripts/agent-config +62 -0
  36. package/scripts/install +68 -13
  37. package/scripts/install.py +984 -33
  38. package/scripts/install.sh +6 -11
  39. package/templates/agent-config-wrapper.sh +40 -25
  40. package/templates/consumer-settings/README.md +2 -2
  41. package/scripts/setup.sh +0 -230
@@ -1,7 +1,7 @@
1
1
  ---
2
- name: fix:pr-bots
2
+ name: fix:pr-bot-comments
3
3
  cluster: fix
4
- sub: pr-bots
4
+ sub: pr-bot-comments
5
5
  skills: [php-coder, quality-tools]
6
6
  description: Fix and reply to bot review comments (Copilot, Augment, Greptile, etc.) on a GitHub PR
7
7
  disable-model-invocation: true
@@ -11,7 +11,7 @@ suggestion:
11
11
  trigger_context: "open PR with bot review comments unresolved"
12
12
  ---
13
13
 
14
- # /fix pr-bots
14
+ # /fix pr-bot-comments
15
15
  ## Input
16
16
 
17
17
  The user may or may not provide a PR URL.
@@ -1,7 +1,7 @@
1
1
  ---
2
- name: fix:pr
2
+ name: fix:pr-comments
3
3
  cluster: fix
4
- sub: pr
4
+ sub: pr-comments
5
5
  skills: [php-coder]
6
6
  description: Fix and reply to all open review comments (bots + human reviewers) on a GitHub PR
7
7
  disable-model-invocation: true
@@ -11,8 +11,8 @@ suggestion:
11
11
  trigger_context: "open PR with unresolved comments (bot + human)"
12
12
  ---
13
13
 
14
- # /fix pr
15
- This command runs `/fix pr-bots` and `/fix pr-developers` in sequence on the same PR.
14
+ # /fix pr-comments
15
+ This command runs `/fix pr-bot-comments` and `/fix pr-developer-comments` in sequence on the same PR.
16
16
 
17
17
  ## Input
18
18
 
@@ -45,14 +45,14 @@ The chosen mode applies to **both** phases.
45
45
 
46
46
  ### Phase 1: Bot comments
47
47
 
48
- Follow the full `/fix pr-bots` instructions (see `commands/fix/pr-bots.md`).
48
+ Follow the full `/fix pr-bot-comments` instructions (see `commands/fix/pr-bot-comments.md`).
49
49
  Use the already-confirmed PR and mode — do not ask again.
50
50
 
51
51
  Report when done: "Bot comments done. Continuing with reviewer comments..."
52
52
 
53
53
  ### Phase 2: Developer comments
54
54
 
55
- Follow the full `/fix pr-developers` instructions (see `commands/fix/pr-developers.md`).
55
+ Follow the full `/fix pr-developer-comments` instructions (see `commands/fix/pr-developer-comments.md`).
56
56
  Use the same PR and mode.
57
57
 
58
58
  ### After both phases
@@ -1,7 +1,7 @@
1
1
  ---
2
- name: fix:pr-developers
2
+ name: fix:pr-developer-comments
3
3
  cluster: fix
4
- sub: pr-developers
4
+ sub: pr-developer-comments
5
5
  skills: [php-coder]
6
6
  description: Fix and reply to human reviewer comments on a GitHub PR
7
7
  disable-model-invocation: true
@@ -11,7 +11,7 @@ suggestion:
11
11
  trigger_context: "open PR with unresolved human-reviewer comments"
12
12
  ---
13
13
 
14
- # /fix pr-developers
14
+ # /fix pr-developer-comments
15
15
  ## Input
16
16
 
17
17
  The user may or may not provide a PR URL.
@@ -22,9 +22,9 @@ with a single entry point + sub-command dispatch.
22
22
  | `/fix refs` | `commands/fix/refs.md` | Find and fix broken cross-references in `.augment/` and `agents/` |
23
23
  | `/fix portability` | `commands/fix/portability.md` | Find and fix project-specific references in shared `.augment/` files |
24
24
  | `/fix seeder` | `commands/fix/seeder.md` | Scan seeder data files for broken FK references |
25
- | `/fix pr` | `commands/fix/pr.md` | Fix and reply to **all** open review comments (bots + humans) |
26
- | `/fix pr-bots` | `commands/fix/pr-bots.md` | Fix and reply to **bot** review comments only |
27
- | `/fix pr-developers` | `commands/fix/pr-developers.md` | Fix and reply to **human** reviewer comments only |
25
+ | `/fix pr-comments` | `commands/fix/pr-comments.md` | Fix and reply to **all** open review comments (bots + humans) |
26
+ | `/fix pr-bot-comments` | `commands/fix/pr-bot-comments.md` | Fix and reply to **bot** review comments only |
27
+ | `/fix pr-developer-comments` | `commands/fix/pr-developer-comments.md` | Fix and reply to **human** reviewer comments only |
28
28
 
29
29
  Sub-command names match the locked contract in
30
30
  [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
@@ -41,9 +41,9 @@ Sub-command names match the locked contract in
41
41
  > 2. refs — fix broken cross-refs in agent docs
42
42
  > 3. portability — purge project-specific refs from shared package
43
43
  > 4. seeder — scan seeders for broken FK references
44
- > 5. pr — address all open review comments
45
- > 6. pr-bots — address bot reviewer comments only
46
- > 7. pr-developers — address human reviewer comments only
44
+ > 5. pr-comments — address all open review comments
45
+ > 6. pr-bot-comments — address bot reviewer comments only
46
+ > 7. pr-developer-comments — address human reviewer comments only
47
47
 
48
48
  ## Rules
49
49
 
@@ -4,7 +4,7 @@ Lookup table for the `slash-command-routing-policy` rule. Lists the
4
4
  locked clusters and their sub-commands so the rule itself can stay at
5
5
  its current LOC while still reflecting the full surface. Source of
6
6
  truth for the cluster names is
7
- [`docs/contracts/command-clusters.md`](../../../../../../docs/contracts/command-clusters.md);
7
+ [`docs/contracts/command-clusters.md`](../../../../../docs/contracts/command-clusters.md);
8
8
  this file mirrors that contract for runtime lookup. Linter:
9
9
  `scripts/check_cluster_patterns.py` (verifies dispatcher shape).
10
10
 
@@ -12,7 +12,7 @@ this file mirrors that contract for runtime lookup. Linter:
12
12
 
13
13
  | Cluster | Phase | Sub-commands | Replaces |
14
14
  |---|:-:|---|-------------------------------------------------------------------------------------------------------------------------------------------------|
15
- | `/fix` | 1 | `ci` · `pr` · `pr-bots` · `pr-developers` · `portability` · `refs` · `seeder` | `/fix-ci` · `/fix-pr-comments` · `/fix-pr-bot-comments` · `/fix-pr-developer-comments` · `/fix-portability` · `/fix-references` · `/fix-seeder` |
15
+ | `/fix` | 1 | `ci` · `pr-comments` · `pr-bot-comments` · `pr-developer-comments` · `portability` · `refs` · `seeder` | `/fix-ci` · `/fix-pr-comments` · `/fix-pr-bot-comments` · `/fix-pr-developer-comments` · `/fix-portability` · `/fix-references` · `/fix-seeder` |
16
16
  | `/optimize` | 1 | `agents` · `augmentignore` · `rtk` · `skills` | `/optimize-agents` · `/optimize-augmentignore` · `/optimize-rtk-filters` · `/optimize-skills` |
17
17
  | `/feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` | `/feature-explore` · `/feature-plan` · `/feature-refactor` · `/feature-roadmap` |
18
18
  | `/chat-history` | 2 | `show` | `/chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` |
@@ -20,9 +20,17 @@ NEVER OFFER NUMBERED CHOICES WITHOUT A REAL TRADE-OFF.
20
20
 
21
21
  ## What counts as cheap
22
22
 
23
- Nine classes — sequencing · format-only · commit asks (forbidden by [`commit-policy`](commit-policy.md)) · CI / test asks ([`verify-before-complete`](verify-before-complete.md) decides) · fenced-step re-asks ([`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates)) · Iron-Law option (breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default`) · context-derived · dominant option · re-ask after decline ([`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task)).
23
+ Ten classes — sequencing · format-only · commit asks · CI / test asks · fenced-step re-asks · Iron-Law option · context-derived · dominant option · re-ask after decline · **paternalistic state-assuming option** (Iron Law 3 below). Per-class detail + governing rule: [`asking-and-brevity-examples § cheap-question-catalog`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#cheap-question-class-catalog--extended-examples).
24
24
 
25
- Per-class patterns and examples: [`asking-and-brevity-examples § cheap-question-catalog`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#cheap-question-class-catalog--extended-examples).
25
+ ## Iron Law 3 No Paternalistic State-Assuming Options
26
+
27
+ ```
28
+ NEVER FABRICATE USER STATE TO JUSTIFY AN OPTION.
29
+ "TAKE A BREAK", "SLEEP ON IT", "COME BACK FRESH" — FORBIDDEN.
30
+ THE USER DECIDES WHEN TO STOP. THE AGENT DECIDES WHAT TO BUILD NEXT.
31
+ ```
32
+
33
+ Every numbered option = technical / scope / sequencing choice with real trade-off, not mood-management nudge. Forbidden patterns + carve-outs: [`asking-and-brevity-examples § iron-law-3`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#no-cheap-questions--iron-law-3-detail-paternalistic-state-options).
26
34
 
27
35
  ## Pre-Send Self-Check — MANDATORY before every question
28
36
 
@@ -34,6 +42,7 @@ Run silently before any numbered-options block:
34
42
  4. One option obviously dominant?
35
43
  5. User fenced next step (*"plan only"*, *"review first"*) → deliver + handback per `scope-control § fenced step`.
36
44
  6. User already declined? Re-ask forbidden per `scope-control § decline = silence`.
45
+ 7. Any option assumes user fatigue / frustration / "had enough" without in-message citation? Iron Law 3 — drop it.
37
46
 
38
47
  Any "yes" → **do not ask**. Pick the dominant path, state assumption inline (*"assuming X — adjust if wrong"*), hand back. One-question-per-turn from [`ask-when-uncertain`](ask-when-uncertain.md) still applies when the question is genuine.
39
48
 
@@ -146,6 +146,30 @@ install, first example, or requirements.
146
146
  deep-link-table pattern, collapsibles, and anti-patterns (premature
147
147
  splitting, duplication between README and `/docs/`).
148
148
 
149
+ #### Per-AI catalog pattern (multi-platform AI / CLI packages)
150
+
151
+ For packages targeting many AI assistants or platforms (CLI installers,
152
+ agent-config tools, language SDKs with 10+ targets), prefer flat per-AI
153
+ catalog over giant matrix. One line per target, install command on left,
154
+ aligned trailing comment naming platform:
155
+
156
+ ```bash
157
+ npx <package> init --tools=claude-code # Claude Code
158
+ npx <package> init --tools=cursor # Cursor
159
+ npx <package> init --tools=windsurf # Windsurf
160
+ # ... one line per supported target
161
+ ```
162
+
163
+ Pair catalog with separate "Global install" subsection (same flags plus
164
+ `--global`) and "Other commands" subsection. Reference example:
165
+ [`README.md § Pick specific AIs`](../../../README.md#pick-specific-ais) in
166
+ this repo. Inspiration:
167
+ [`ui-ux-pro-max-skill § Installation`](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill#installation).
168
+
169
+ Use catalog when package's primary install action varies by platform; use
170
+ matrix table (Tool / Rules / Skills / Commands) for capability comparison.
171
+ Different jobs — install vs. coverage.
172
+
149
173
  README = enough to adopt. Docs = enough to master.
150
174
 
151
175
  ### 8. Validate
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
9
- "version": "2.0.0"
9
+ "version": "2.2.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -112,9 +112,9 @@
112
112
  "./.claude/skills/fix",
113
113
  "./.claude/skills/fix-ci",
114
114
  "./.claude/skills/fix-portability",
115
- "./.claude/skills/fix-pr",
116
- "./.claude/skills/fix-pr-bots",
117
- "./.claude/skills/fix-pr-developers",
115
+ "./.claude/skills/fix-pr-bot-comments",
116
+ "./.claude/skills/fix-pr-comments",
117
+ "./.claude/skills/fix-pr-developer-comments",
118
118
  "./.claude/skills/fix-refs",
119
119
  "./.claude/skills/fix-seeder",
120
120
  "./.claude/skills/flux",
package/CHANGELOG.md CHANGED
@@ -9,6 +9,23 @@ versioning policy is documented in [CONTRIBUTING.md](CONTRIBUTING.md#versioning-
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ Four roadmaps land in this release.
13
+
14
+ **Global-First Install (R4)** — `npx @event4u/create-agent-config init`
15
+ now defaults to a **global** install (`~/.claude/`, `~/.cursor/`, …)
16
+ when run outside a project, and a **project** install when run inside
17
+ one. A new global lockfile at `~/.config/agent-config/installed.lock`
18
+ records `agent_config_version` + `tools[]` and refuses mismatched
19
+ re-installs (exit 1) until `update` or `--force` realigns it. New
20
+ `agent-config export --tool=<id> --output=<path>` subcommand ejects a
21
+ named tool's resolved content into the project tree (idempotent;
22
+ `--force` overrides drift). 12 supported tool ids (claude-code,
23
+ cursor, windsurf, cline, aider, codex, gemini, copilot,
24
+ claude-desktop, continue, kilocode, zed, jetbrains, kiro). Windows
25
+ CI matrix added for the lockfile + export paths. See
26
+ [`docs/decisions/ADR-007-agent-discovery-scopes.md`](docs/decisions/ADR-007-agent-discovery-scopes.md)
27
+ and [`docs/decisions/ADR-008-installed-tools-manifest.md`](docs/decisions/ADR-008-installed-tools-manifest.md).
28
+
12
29
  Three roadmaps land in this release.
13
30
 
14
31
  **Universal Execution Engine (R1)** — the `/implement-ticket` runtime is
@@ -318,6 +335,68 @@ our recommendation order, not its support status.
318
335
  users" tension without removing any path that an existing user
319
336
  might rely on.
320
337
 
338
+ ## [2.2.0](https://github.com/event4u-app/agent-config/compare/2.1.0...2.2.0) (2026-05-12)
339
+
340
+ ### Features
341
+
342
+ * **npx:** expand --tools validator to 13 supported AI ids ([7af69a7](https://github.com/event4u-app/agent-config/commit/7af69a766f575c30d8f29ea04052647b6a1b8a19))
343
+ * **cli:** add sync and validate subcommands for installed-tools manifest ([62a5c66](https://github.com/event4u-app/agent-config/commit/62a5c66a131bcf8866be2a8c0e76ba6e054017af))
344
+ * **cli:** add export subcommand and update version-drift handling ([6110f3b](https://github.com/event4u-app/agent-config/commit/6110f3b0ee454ca215c569d8f42ca38ffce577e8))
345
+ * **install:** global-first install with lockfile + installed-tools manifest engine ([6200d42](https://github.com/event4u-app/agent-config/commit/6200d42225d5712a10d5458dc608da3f5cd0164c))
346
+
347
+ ### Bug Fixes
348
+
349
+ * **rules:** trim no-cheap-questions to satisfy 12% concentration cap ([4abf946](https://github.com/event4u-app/agent-config/commit/4abf94628838c027da13d190e5e7b27738070db2))
350
+
351
+ ### Documentation
352
+
353
+ * **rules:** add no-cheap-questions Iron Law 3 against paternalistic state options ([b98687b](https://github.com/event4u-app/agent-config/commit/b98687bd397d39eae6811e54eb743a095fa33b8b))
354
+ * README + installation + manifest guideline for global-first install ([cdc52ff](https://github.com/event4u-app/agent-config/commit/cdc52ffc5abb9cff6fda9133dd0b8dc524794d18))
355
+ * **contracts:** add tier-3 contrib plugin contract ([2dbf9cd](https://github.com/event4u-app/agent-config/commit/2dbf9cd2ec772dc2248de2b8f17248e97a67a60b))
356
+ * **adr:** add ADR-007 global-first install + ADR-008 installed-tools manifest ([e214de2](https://github.com/event4u-app/agent-config/commit/e214de27bd8d19858fdc16cecc4ebfeaaebce136))
357
+
358
+ ### CI
359
+
360
+ * **windows:** add lockfile + export tests on Windows runner ([e5802a5](https://github.com/event4u-app/agent-config/commit/e5802a56f45bcfd5eb845c7af816bb12a0b4492b))
361
+
362
+ ### Chores
363
+
364
+ * **taskfile:** add test-install-local for offline one-liner smoke test ([594ac69](https://github.com/event4u-app/agent-config/commit/594ac69c8682f106dee9ebc9ce3e55bb0083e254))
365
+ * **roadmap:** archive road-to-global-first-install (24/24 complete) ([71d8cf2](https://github.com/event4u-app/agent-config/commit/71d8cf2966976c286ffecc1646cb7990255cccd1))
366
+
367
+ Tests: 3350 (+97 since 2.1.0)
368
+
369
+ ## [2.1.0](https://github.com/event4u-app/agent-config/compare/2.0.0...2.1.0) (2026-05-12)
370
+
371
+ ### Features
372
+
373
+ * **wrapper:** add npx fallback and sanitize wrapper error test ([9f4326b](https://github.com/event4u-app/agent-config/commit/9f4326bffc59d79e4421b0cd8966c99348afe1e6))
374
+ * **installer:** add source-repo guard and drop composer/global paths ([5388de2](https://github.com/event4u-app/agent-config/commit/5388de2598ea668a8671f49bd7bacd4866ed1c33))
375
+
376
+ ### Documentation
377
+
378
+ * **installation:** add Upgrading from v1 section ([f35df4b](https://github.com/event4u-app/agent-config/commit/f35df4b9667eb848ce2ec47f4a7c550b1bba4054))
379
+ * align install guides with v2 npx-only flow ([e841a14](https://github.com/event4u-app/agent-config/commit/e841a14cdbb6691433976c57ff9b28b3ec4992ad))
380
+ * **readme:** collapse plugin-install table to one-liner ([b3407bb](https://github.com/event4u-app/agent-config/commit/b3407bb2fda39a8a57c0e2f72c8b430bed4fd012))
381
+
382
+ ### Refactoring
383
+
384
+ * **cli:** rename fix:pr sub-commands for clarity ([fbdf636](https://github.com/event4u-app/agent-config/commit/fbdf636a50a06f3b35fe5c3d5fb108e9c15e6266))
385
+
386
+ ### Tests
387
+
388
+ * **install:** drop composer-detection tests retired in v2 ([e37ad99](https://github.com/event4u-app/agent-config/commit/e37ad99beaebbb5f6a98b41e02ecefd6b0d39453))
389
+
390
+ ### Build
391
+
392
+ * **tasks:** add npm:login + npm:publish-installer ([22639f8](https://github.com/event4u-app/agent-config/commit/22639f877feee33a3cbadb9147941cfb32fb6c9e))
393
+
394
+ ### Chores
395
+
396
+ * remove retired setup.sh and global-install test surface ([3eebcf7](https://github.com/event4u-app/agent-config/commit/3eebcf72bcc45af168df4fd4b172a2484901a793))
397
+
398
+ Tests: 3253 (-4 since 2.0.0)
399
+
321
400
  ## [2.0.0](https://github.com/event4u-app/agent-config/compare/1.41.2...2.0.0) (2026-05-12)
322
401
 
323
402
  ### BREAKING CHANGES
package/README.md CHANGED
@@ -14,7 +14,7 @@ Give your AI agents an audit-disciplined orchestration contract — testing, Git
14
14
  > Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
15
15
 
16
16
  <p align="center">
17
- <strong>174 Skills</strong> · <strong>60 Rules</strong> · <strong>106 Commands</strong> · <strong>69 Guidelines</strong> · <strong>8 AI Tools</strong>
17
+ <strong>174 Skills</strong> · <strong>60 Rules</strong> · <strong>106 Commands</strong> · <strong>70 Guidelines</strong> · <strong>8 AI Tools</strong>
18
18
  </p>
19
19
 
20
20
  ---
@@ -36,6 +36,14 @@ If none of those apply yet — start with the [Quickstart](#quickstart) and pick
36
36
  Two minutes from `npx` to a better-behaved agent — no install, no
37
37
  vendored package, no postinstall hook.
38
38
 
39
+ **v2.1+ — global-first by default.** Running `init` outside a project
40
+ defaults to a user-scope install (`~/.claude/`, `~/.cursor/`, …) and
41
+ records itself in `~/.config/agent-config/installed.lock`. Running it
42
+ inside a project (a `package.json` / `composer.json` / `pyproject.toml`
43
+ manifest is present) defaults to a project-scope install. Override with
44
+ `--scope=global` or `--scope=project`. See
45
+ [`docs/installation.md`](docs/installation.md) for the full matrix.
46
+
39
47
  ### For teams (recommended)
40
48
 
41
49
  Run once in the project root — `npx` resolves the runtime against the
@@ -77,15 +85,56 @@ Copilot fallback) is wired through one universal dispatcher per
77
85
  `--format json` for tooling). The installer also dry-fires the
78
86
  dispatcher per bridge as a post-install smoke test (skip: `--no-smoke`).
79
87
 
88
+ ### Pick specific AIs
89
+
90
+ Default `init` wires every supported AI. To install just one, pass
91
+ `--tools=<name>`:
92
+
93
+ ```bash
94
+ npx @event4u/agent-config init --tools=claude-code # Claude Code
95
+ npx @event4u/agent-config init --tools=cursor # Cursor
96
+ npx @event4u/agent-config init --tools=windsurf # Windsurf
97
+ npx @event4u/agent-config init --tools=cline # Cline
98
+ npx @event4u/agent-config init --tools=gemini-cli # Gemini CLI
99
+ npx @event4u/agent-config init --tools=copilot # GitHub Copilot
100
+ npx @event4u/agent-config init --tools=augment # Augment Code
101
+ npx @event4u/agent-config init --tools=roocode # Roo Code
102
+ npx @event4u/agent-config init --tools=aider # Aider
103
+ npx @event4u/agent-config init --tools=codex # Codex CLI
104
+ npx @event4u/agent-config init --tools=claude-desktop # Claude Desktop
105
+ npx @event4u/agent-config init --tools=continue # Continue
106
+ ```
107
+
108
+ Multiple AIs in one shot: `--tools=claude-code,cursor,augment`.
109
+
110
+ #### Global install (user-scope, available across projects)
111
+
112
+ Add `--global` to write to the user-scope paths from
113
+ [`ADR-007`](docs/decisions/ADR-007-agent-discovery-scopes.md) (`~/.claude/`,
114
+ `~/.cursor/`, …) instead of the current project:
115
+
116
+ ```bash
117
+ npx @event4u/agent-config init --global # all tools, user-scope
118
+ npx @event4u/agent-config init --tools=claude-code --global # → ~/.claude/
119
+ npx @event4u/agent-config init --tools=cursor --global # → ~/.cursor/
120
+ ```
121
+
122
+ Per-AI scope support varies — Claude Desktop, for example, is
123
+ global-only (no project-local discovery on macOS), while Roo Code and
124
+ Continue.dev are project-local. The Supported Tools table below
125
+ documents per-AI scope. Incompatible combinations (e.g.
126
+ `--tools=roocode --global` or `--tools=claude-desktop` without
127
+ `--global`) are rejected with a directive error; `--tools=all`
128
+ silently filters to the scope's compatible subset.
129
+
80
130
  ### For individual use (optional)
81
131
 
82
- Install directly in your agent for global, cross-project use:
132
+ Skills-only, global across projects installs into the agent itself,
133
+ no per-repo `init`:
83
134
 
84
- | Tool | Install |
85
- |---|---|
86
- | **Augment CLI** | `auggie plugin install agent-config@event4u-agent-config` |
87
- | **Claude Code** | `claude plugin install agent-config@event4u-agent-config` |
88
- | **Copilot CLI** | `copilot plugin install agent-config@event4u-agent-config` |
135
+ ```bash
136
+ <auggie|claude|copilot> plugin install agent-config@event4u-agent-config
137
+ ```
89
138
 
90
139
  → [All install options & project bridge setup](docs/installation.md)
91
140
 
@@ -432,16 +481,31 @@ Every developer gets the same behavior. No per-user setup needed —
432
481
  | **Windsurf** | ✅ | — | ☑️ | Reads `.windsurfrules` + commands via AGENTS.md |
433
482
  | **Gemini CLI** | ✅ | — | ☑️ | Reads `GEMINI.md` (includes commands reference) |
434
483
  | **GitHub Copilot** | ✅ | — | ☑️ | Reads `.github/copilot-instructions.md` (includes commands) |
484
+ | **Roo Code** | ✅ | — | ☑️ | Auto-discovers `.roo/rules/*.md` + AGENTS.md |
485
+ | **Codex CLI** | ✅ | — | ☑️ | Auto-discovers `AGENTS.md` at project root |
486
+ | **Continue.dev** | ✅ | — | ☑️ | Auto-discovers `.continue/rules/*.md` + AGENTS.md |
487
+ | **Aider** | 📌 | — | — | Marker + manual `read:` in `.aider.conf.yml` |
488
+ | **Claude Desktop** | 📌 | — | — | Global-only — install with `--global` (see ADR-007) |
435
489
 
436
490
  ✅ = native support &nbsp; — = not available &nbsp; ☑️ = text reference only
437
- (commands are listed in `AGENTS.md`, but the tool cannot invoke them as
438
- native slash-commands)
491
+ (commands listed in `AGENTS.md`, tool cannot invoke them as native
492
+ slash-commands) &nbsp; 📌 = informational marker only (no auto-discovery
493
+ or manual wiring required)
439
494
 
440
495
  > **What this means in practice:** Augment Code and Claude Code get the full
441
496
  > package (rules + 174 skills + 106 native commands). Cursor, Cline, Windsurf,
442
- > Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
443
- > commands are available to them as documentation the agent can read, not as
444
- > first-class features.
497
+ > Gemini CLI, GitHub Copilot, Roo Code, Codex CLI, and Continue.dev only get
498
+ > the **rules** natively; skills and commands are available as documentation
499
+ > the agent can read, not as first-class features. Aider and Claude Desktop
500
+ > ship marker-only bridges — Aider needs a one-line `read:` entry in
501
+ > `.aider.conf.yml`; Claude Desktop is global-scope and pairs with `--global`.
502
+
503
+ > **Team reproducibility (ADR-008):** every tool you `init` is also recorded in
504
+ > `agents/installed-tools.lock` — committed, machine-managed. New team members
505
+ > run `npx @event4u/agent-config sync` after cloning and every bridge in the
506
+ > table above is replayed locally. CI can gate drift with `agent-config validate`.
507
+ > Schema, workflow, and drift catalog:
508
+ > [`docs/guidelines/agent-infra/installed-tools-manifest.md`](docs/guidelines/agent-infra/installed-tools-manifest.md).
445
509
 
446
510
  ### Plugin-installed (optional, for global use)
447
511
 
@@ -54,7 +54,7 @@ tree where:
54
54
  `.agent-src/<subdir>/`. Reading a context follows the symlink to
55
55
  the package payload.
56
56
  - `.augment/docs/guidelines/` — **symlink** into the package's
57
- `docs/guidelines/` (consumer side: `vendor/event4u/agent-config/docs/guidelines/`;
57
+ `docs/guidelines/` (consumer side: `node_modules/@event4u/agent-config/docs/guidelines/`;
58
58
  package self-projection: `../docs/guidelines/`). This is the only
59
59
  `docs/` subdirectory exposed in `.augment/`; `docs/contracts/` and
60
60
  `docs/decisions/` are package-internal — rules that reference
@@ -145,7 +145,7 @@ fails on any source-side violation, without producing artifacts.
145
145
  | **Skills** | 174 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
146
146
  | **Rules** | 60 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
147
147
  | **Commands** | 106 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
148
- | **Guidelines** | 69 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
148
+ | **Guidelines** | 70 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
149
149
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
150
150
  | **Contexts** | 5 | Shared knowledge about the system itself |
151
151
 
package/docs/catalog.md CHANGED
@@ -294,9 +294,9 @@ are excluded.
294
294
  | command | [`feature`](../.agent-src/commands/feature.md) | cluster: feature | Feature orchestrator — routes to explore, plan, refactor, roadmap, dev |
295
295
  | command | [`fix:ci`](../.agent-src/commands/fix/ci.md) | cluster: fix | Fetch CI errors from GitHub Actions and fix them |
296
296
  | command | [`fix:portability`](../.agent-src/commands/fix/portability.md) | cluster: fix | Find and fix project-specific references in shared .augment/ package files |
297
- | command | [`fix:pr-bots`](../.agent-src/commands/fix/pr-bots.md) | cluster: fix | Fix and reply to bot review comments (Copilot, Augment, Greptile, etc.) on a GitHub PR |
298
- | command | [`fix:pr-developers`](../.agent-src/commands/fix/pr-developers.md) | cluster: fix | Fix and reply to human reviewer comments on a GitHub PR |
299
- | command | [`fix:pr`](../.agent-src/commands/fix/pr.md) | cluster: fix | Fix and reply to all open review comments (bots + human reviewers) on a GitHub PR |
297
+ | command | [`fix:pr-bot-comments`](../.agent-src/commands/fix/pr-bot-comments.md) | cluster: fix | Fix and reply to bot review comments (Copilot, Augment, Greptile, etc.) on a GitHub PR |
298
+ | command | [`fix:pr-comments`](../.agent-src/commands/fix/pr-comments.md) | cluster: fix | Fix and reply to all open review comments (bots + human reviewers) on a GitHub PR |
299
+ | command | [`fix:pr-developer-comments`](../.agent-src/commands/fix/pr-developer-comments.md) | cluster: fix | Fix and reply to human reviewer comments on a GitHub PR |
300
300
  | command | [`fix:refs`](../.agent-src/commands/fix/refs.md) | cluster: fix | Find and fix broken cross-references in .augment/ and agents/ files |
301
301
  | command | [`fix:seeder`](../.agent-src/commands/fix/seeder.md) | cluster: fix | Scan seeder data files for broken foreign key references — find constants used without getReference() and fix them |
302
302
  | command | [`fix`](../.agent-src/commands/fix.md) | cluster: fix | Fix orchestrator — routes to ci, references, portability, seeder, pr-comments, pr-bot-comments, pr-developer-comments |
@@ -11,7 +11,7 @@ stability: beta
11
11
  The agent-config command surface collapses related atomic commands
12
12
  into **verb clusters**. A cluster is a single top-level command
13
13
  (e.g. `/fix`) that dispatches to sub-commands (e.g. `/fix ci`,
14
- `/fix pr`). Old atomic commands stay one release as deprecation
14
+ `/fix pr-comments`). Old atomic commands stay one release as deprecation
15
15
  shims, then disappear.
16
16
 
17
17
  This file is the **locked source of truth** for which clusters
@@ -27,7 +27,7 @@ column 1 of this table.
27
27
 
28
28
  | Cluster | Phase | Sub-commands | Replaces |
29
29
  |---|:-:|---|---|
30
- | `fix` | 1 | `ci` · `pr` · `pr-bots` · `pr-developers` · `portability` · `refs` · `seeder` | `fix-ci` · `fix-pr-comments` · `fix-pr-bot-comments` · `fix-pr-developer-comments` · `fix-portability` · `fix-references` · `fix-seeder` |
30
+ | `fix` | 1 | `ci` · `pr-comments` · `pr-bot-comments` · `pr-developer-comments` · `portability` · `refs` · `seeder` | `fix-ci` · `fix-pr-comments` · `fix-pr-bot-comments` · `fix-pr-developer-comments` · `fix-portability` · `fix-references` · `fix-seeder` |
31
31
  | `optimize` | 1 | `agents-dir` · `augmentignore` · `rtk` · `skills` | `optimize-augmentignore` · `optimize-rtk-filters` · `optimize-skills` · former `/optimize agents` and `/optimize agents-md` moved to the `/agents` file-family cluster 2026-05-09; `/agents prepare/audit/cleanup` collapsed into the single `/optimize agents-dir` (flags or wizard) per the agent-doc consolidation |
32
32
  | `feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` · `dev` | `feature-explore` · `feature-plan` · `feature-refactor` · `feature-roadmap` · `feature-dev` |
33
33
  | `chat-history` | 2 | `show` · `import` · `learn` | `chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` (auto-adopt + structural hooks); `import` (verbatim cross-session render) and `learn` (project-improving learning extraction) added in the v4 stateless schema |
@@ -84,7 +84,7 @@ every new sub-command added to an existing cluster.
84
84
  cluster's primary verb (e.g. `/roadmap:create` + `process-*`
85
85
  composites).
86
86
 
87
- 3. **Sub-name format.** kebab-case (`pr-bots`, `process-phase`),
87
+ 3. **Sub-name format.** kebab-case (`pr-bot-comments`, `process-phase`),
88
88
  ≤ 24 chars, no leading verb that duplicates the cluster name
89
89
  (use `/fix:ci`, not `/fix:fix-ci`).
90
90
 
@@ -261,19 +261,19 @@
261
261
  "load_context": [],
262
262
  "load_context_eager": []
263
263
  },
264
- ".agent-src.uncompressed/commands/fix/pr-bots.md": {
264
+ ".agent-src.uncompressed/commands/fix/pr-bot-comments.md": {
265
265
  "kind": "command",
266
266
  "rule_type": null,
267
267
  "load_context": [],
268
268
  "load_context_eager": []
269
269
  },
270
- ".agent-src.uncompressed/commands/fix/pr-developers.md": {
270
+ ".agent-src.uncompressed/commands/fix/pr-comments.md": {
271
271
  "kind": "command",
272
272
  "rule_type": null,
273
273
  "load_context": [],
274
274
  "load_context_eager": []
275
275
  },
276
- ".agent-src.uncompressed/commands/fix/pr.md": {
276
+ ".agent-src.uncompressed/commands/fix/pr-developer-comments.md": {
277
277
  "kind": "command",
278
278
  "rule_type": null,
279
279
  "load_context": [],
@@ -3088,22 +3088,22 @@
3088
3088
  "depth": 0
3089
3089
  },
3090
3090
  {
3091
- "source": ".agent-src.uncompressed/commands/fix/pr-bots.md",
3092
- "target": ".agent-src.uncompressed/commands/fix/pr-bots.md",
3091
+ "source": ".agent-src.uncompressed/commands/fix/pr-bot-comments.md",
3092
+ "target": ".agent-src.uncompressed/commands/fix/pr-bot-comments.md",
3093
3093
  "type": "WRITE",
3094
3094
  "via": "self",
3095
3095
  "depth": 0
3096
3096
  },
3097
3097
  {
3098
- "source": ".agent-src.uncompressed/commands/fix/pr-developers.md",
3099
- "target": ".agent-src.uncompressed/commands/fix/pr-developers.md",
3098
+ "source": ".agent-src.uncompressed/commands/fix/pr-comments.md",
3099
+ "target": ".agent-src.uncompressed/commands/fix/pr-comments.md",
3100
3100
  "type": "WRITE",
3101
3101
  "via": "self",
3102
3102
  "depth": 0
3103
3103
  },
3104
3104
  {
3105
- "source": ".agent-src.uncompressed/commands/fix/pr.md",
3106
- "target": ".agent-src.uncompressed/commands/fix/pr.md",
3105
+ "source": ".agent-src.uncompressed/commands/fix/pr-developer-comments.md",
3106
+ "target": ".agent-src.uncompressed/commands/fix/pr-developer-comments.md",
3107
3107
  "type": "WRITE",
3108
3108
  "via": "self",
3109
3109
  "depth": 0