@every-env/compound-plugin 0.12.0 → 2.34.2

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 (55) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.github/workflows/publish.yml +20 -10
  3. package/.releaserc.json +31 -0
  4. package/AGENTS.md +1 -0
  5. package/CHANGELOG.md +34 -0
  6. package/CLAUDE.md +13 -0
  7. package/README.md +35 -2
  8. package/bun.lock +977 -0
  9. package/docs/plans/2026-03-01-fix-setup-skill-non-claude-llm-fallback-plan.md +140 -0
  10. package/docs/plans/2026-03-03-feat-sync-claude-mcp-all-supported-providers-plan.md +639 -0
  11. package/docs/solutions/adding-converter-target-providers.md +2 -1
  12. package/docs/solutions/plugin-versioning-requirements.md +4 -0
  13. package/package.json +10 -4
  14. package/plugins/compound-engineering/.claude-plugin/plugin.json +1 -1
  15. package/plugins/compound-engineering/CHANGELOG.md +10 -0
  16. package/plugins/compound-engineering/CLAUDE.md +5 -0
  17. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-workflow.md +6 -0
  18. package/plugins/compound-engineering/skills/create-agent-skills/workflows/create-new-skill.md +6 -0
  19. package/plugins/compound-engineering/skills/setup/SKILL.md +6 -0
  20. package/src/commands/sync.ts +21 -60
  21. package/src/index.ts +2 -1
  22. package/src/parsers/claude-home.ts +55 -3
  23. package/src/sync/codex.ts +38 -62
  24. package/src/sync/commands.ts +198 -0
  25. package/src/sync/copilot.ts +14 -36
  26. package/src/sync/droid.ts +50 -9
  27. package/src/sync/gemini.ts +87 -28
  28. package/src/sync/json-config.ts +47 -0
  29. package/src/sync/kiro.ts +49 -0
  30. package/src/sync/mcp-transports.ts +19 -0
  31. package/src/sync/openclaw.ts +18 -0
  32. package/src/sync/opencode.ts +10 -30
  33. package/src/sync/pi.ts +12 -36
  34. package/src/sync/qwen.ts +66 -0
  35. package/src/sync/registry.ts +141 -0
  36. package/src/sync/skills.ts +21 -0
  37. package/src/sync/windsurf.ts +59 -0
  38. package/src/types/kiro.ts +3 -1
  39. package/src/types/qwen.ts +3 -0
  40. package/src/types/windsurf.ts +1 -0
  41. package/src/utils/codex-agents.ts +1 -1
  42. package/src/utils/detect-tools.ts +4 -13
  43. package/src/utils/files.ts +7 -0
  44. package/src/utils/symlink.ts +4 -6
  45. package/tests/claude-home.test.ts +46 -0
  46. package/tests/cli.test.ts +102 -0
  47. package/tests/detect-tools.test.ts +30 -7
  48. package/tests/sync-codex.test.ts +64 -0
  49. package/tests/sync-copilot.test.ts +60 -4
  50. package/tests/sync-droid.test.ts +44 -4
  51. package/tests/sync-gemini.test.ts +54 -0
  52. package/tests/sync-kiro.test.ts +83 -0
  53. package/tests/sync-openclaw.test.ts +51 -0
  54. package/tests/sync-qwen.test.ts +75 -0
  55. package/tests/sync-windsurf.test.ts +89 -0
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "name": "compound-engineering",
14
14
  "description": "AI-powered development tools that get smarter with every use. Make each unit of engineering work easier than the last. Includes 29 specialized agents, 22 commands, and 20 skills.",
15
- "version": "2.38.0",
15
+ "version": "2.38.1",
16
16
  "author": {
17
17
  "name": "Kieran Klaassen",
18
18
  "url": "https://github.com/kieranklaassen",
@@ -1,18 +1,27 @@
1
1
  name: Publish to npm
2
2
 
3
3
  on:
4
- release:
5
- types: [published]
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
6
7
 
7
8
  jobs:
8
9
  publish:
9
10
  runs-on: ubuntu-latest
10
11
  permissions:
11
- contents: read
12
+ contents: write
12
13
  id-token: write
14
+ issues: write
15
+ pull-requests: write
16
+
17
+ concurrency:
18
+ group: publish-${{ github.ref }}
19
+ cancel-in-progress: false
13
20
 
14
21
  steps:
15
22
  - uses: actions/checkout@v6
23
+ with:
24
+ fetch-depth: 0
16
25
 
17
26
  - name: Setup Bun
18
27
  uses: oven-sh/setup-bun@v2
@@ -20,18 +29,19 @@ jobs:
20
29
  bun-version: latest
21
30
 
22
31
  - name: Install dependencies
23
- run: bun install
32
+ run: bun install --frozen-lockfile
24
33
 
25
34
  - name: Run tests
26
35
  run: bun test
27
36
 
28
- - name: Setup Node.js for npm publish
37
+ - name: Setup Node.js for release
29
38
  uses: actions/setup-node@v4
30
39
  with:
31
- node-version: "20"
32
- registry-url: "https://registry.npmjs.org"
40
+ # npm trusted publishing requires Node 22.14.0+.
41
+ node-version: "24"
33
42
 
34
- - name: Publish to npm
35
- run: npm publish --provenance --access public
43
+ - name: Release
36
44
  env:
37
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
45
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
47
+ run: npx semantic-release
@@ -0,0 +1,31 @@
1
+ {
2
+ "branches": [
3
+ "main"
4
+ ],
5
+ "tagFormat": "v${version}",
6
+ "plugins": [
7
+ "@semantic-release/commit-analyzer",
8
+ "@semantic-release/release-notes-generator",
9
+ "@semantic-release/changelog",
10
+ "@semantic-release/npm",
11
+ [
12
+ "@semantic-release/git",
13
+ {
14
+ "assets": [
15
+ "CHANGELOG.md",
16
+ "package.json"
17
+ ],
18
+ "message": "chore(release): ${nextRelease.version} [skip ci]"
19
+ }
20
+ ],
21
+ [
22
+ "@semantic-release/github",
23
+ {
24
+ "successComment": false,
25
+ "failCommentCondition": false,
26
+ "labels": false,
27
+ "releasedLabels": false
28
+ }
29
+ ]
30
+ ]
31
+ }
package/AGENTS.md CHANGED
@@ -7,6 +7,7 @@ This repository contains a Bun/TypeScript CLI that converts Claude Code plugins
7
7
  - **Branching:** Create a feature branch for any non-trivial change. If already on the correct branch for the task, keep using it; do not create additional branches or worktrees unless explicitly requested.
8
8
  - **Safety:** Do not delete or overwrite user data. Avoid destructive commands.
9
9
  - **Testing:** Run `bun test` after changes that affect parsing, conversion, or output.
10
+ - **Release versioning:** The root CLI package (`package.json`, `CHANGELOG.md`, and repo `v*` tags) uses one shared release line managed by semantic-release on `main`. Do not start or maintain a separate root CLI version stream. Use conventional commits and let release automation write the next root package version. Embedded marketplace plugin metadata (`plugins/compound-engineering/.claude-plugin/plugin.json` and `.claude-plugin/marketplace.json`) is a separate version surface and may differ.
10
11
  - **Output Paths:** Keep OpenCode output at `opencode.json` and `.opencode/{agents,skills,plugins}`. For OpenCode, command go to `~/.config/opencode/commands/<name>.md`; `opencode.json` is deep-merged (never overwritten wholesale).
11
12
  - **ASCII-first:** Use ASCII unless the file already contains Unicode.
12
13
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [2.34.2](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.34.1...v2.34.2) (2026-03-03)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **release:** add package repository metadata ([eab77bc](https://github.com/EveryInc/compound-engineering-plugin/commit/eab77bc5b5361dc73e2ec8aa4678c8bb6114f6e7))
7
+
8
+ ## [2.34.1](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.34.0...v2.34.1) (2026-03-03)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **release:** align cli versioning with repo tags ([7c58eee](https://github.com/EveryInc/compound-engineering-plugin/commit/7c58eeeec6cf33675cbe2b9639c7d69b92ecef60))
14
+
1
15
  # Changelog
2
16
 
3
17
  All notable changes to the `@every-env/compound-plugin` CLI tool will be documented in this file.
@@ -5,6 +19,26 @@ All notable changes to the `@every-env/compound-plugin` CLI tool will be documen
5
19
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
20
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
21
 
22
+ Release numbering now follows the repository `v*` tag line. Starting at `v2.34.0`, the root CLI package and this changelog stay on that shared version stream. Older entries below retain the previous `0.x` CLI numbering.
23
+
24
+ ## [2.34.0] - 2026-03-03
25
+
26
+ ### Added
27
+
28
+ - **Sync parity across supported providers** — `sync` now uses a shared target registry and supports MCP sync for Codex, Droid, Gemini, Copilot, Pi, Windsurf, Kiro, and Qwen, with OpenClaw kept validation-gated for skills-only sync.
29
+ - **Personal command sync** — Personal Claude commands from `~/.claude/commands/` now sync into provider-native command surfaces, including Codex prompts and generated skills, Gemini TOML commands, OpenCode command markdown, Windsurf workflows, and converted skills where that is the closest available equivalent.
30
+
31
+ ### Changed
32
+
33
+ - **Global user config targets** — Copilot sync now writes to `~/.copilot/` and Gemini sync writes to `~/.gemini/`, matching current documented user-level config locations.
34
+ - **Gemini skill deduplication** — Gemini sync now avoids mirroring skills that Gemini already resolves from `~/.agents/skills`, preventing duplicate skill conflict warnings after sync.
35
+
36
+ ### Fixed
37
+
38
+ - **Safe skill sync replacement** — When a real directory already exists at a symlink target (for example `~/.config/opencode/skills/proof`), sync now logs a warning and skips instead of throwing an error.
39
+
40
+ ---
41
+
8
42
  ## [0.12.0] - 2026-03-01
9
43
 
10
44
  ### Added
package/CLAUDE.md CHANGED
@@ -38,6 +38,19 @@ When working on this repository, follow the compounding engineering process:
38
38
 
39
39
  ## Working with This Repository
40
40
 
41
+ ## CLI Release Versioning
42
+
43
+ The repository has two separate version surfaces:
44
+
45
+ 1. **Root CLI package** — `package.json`, root `CHANGELOG.md`, and repo `v*` tags all share one release line managed by semantic-release on `main`.
46
+ 2. **Embedded marketplace plugin metadata** — `plugins/compound-engineering/.claude-plugin/plugin.json` and `.claude-plugin/marketplace.json` track the distributed Claude plugin metadata and can differ from the root CLI package version.
47
+
48
+ Rules:
49
+
50
+ - Do not start a separate root CLI version stream. The root CLI follows the repo tag line.
51
+ - Do not hand-bump the root CLI `package.json` or root `CHANGELOG.md` for routine feature work. Use conventional commits and let semantic-release write the released root version back to git.
52
+ - Continue updating embedded plugin metadata when the plugin contents themselves change.
53
+
41
54
  ### Adding a New Plugin
42
55
 
43
56
  1. Create plugin directory: `plugins/new-plugin-name/`
package/README.md CHANGED
@@ -88,7 +88,7 @@ All provider targets are experimental and may change as the formats evolve.
88
88
 
89
89
  ## Sync Personal Config
90
90
 
91
- Sync your personal Claude Code config (`~/.claude/`) to other AI coding tools. Omit `--target` to sync to all detected tools automatically:
91
+ Sync your personal Claude Code config (`~/.claude/`) to other AI coding tools. Omit `--target` to sync to all detected supported tools automatically:
92
92
 
93
93
  ```bash
94
94
  # Sync to all detected tools (default)
@@ -103,7 +103,7 @@ bunx @every-env/compound-plugin sync --target codex
103
103
  # Sync to Pi
104
104
  bunx @every-env/compound-plugin sync --target pi
105
105
 
106
- # Sync to Droid (skills only)
106
+ # Sync to Droid
107
107
  bunx @every-env/compound-plugin sync --target droid
108
108
 
109
109
  # Sync to GitHub Copilot (skills + MCP servers)
@@ -112,16 +112,49 @@ bunx @every-env/compound-plugin sync --target copilot
112
112
  # Sync to Gemini (skills + MCP servers)
113
113
  bunx @every-env/compound-plugin sync --target gemini
114
114
 
115
+ # Sync to Windsurf
116
+ bunx @every-env/compound-plugin sync --target windsurf
117
+
118
+ # Sync to Kiro
119
+ bunx @every-env/compound-plugin sync --target kiro
120
+
121
+ # Sync to Qwen
122
+ bunx @every-env/compound-plugin sync --target qwen
123
+
124
+ # Sync to OpenClaw (skills only; MCP is validation-gated)
125
+ bunx @every-env/compound-plugin sync --target openclaw
126
+
115
127
  # Sync to all detected tools
116
128
  bunx @every-env/compound-plugin sync --target all
117
129
  ```
118
130
 
119
131
  This syncs:
120
132
  - Personal skills from `~/.claude/skills/` (as symlinks)
133
+ - Personal slash commands from `~/.claude/commands/` (as provider-native prompts, workflows, or converted skills where supported)
121
134
  - MCP servers from `~/.claude/settings.json`
122
135
 
123
136
  Skills are symlinked (not copied) so changes in Claude Code are reflected immediately.
124
137
 
138
+ Supported sync targets:
139
+ - `opencode`
140
+ - `codex`
141
+ - `pi`
142
+ - `droid`
143
+ - `copilot`
144
+ - `gemini`
145
+ - `windsurf`
146
+ - `kiro`
147
+ - `qwen`
148
+ - `openclaw`
149
+
150
+ Notes:
151
+ - Codex sync preserves non-managed `config.toml` content and now includes remote MCP servers.
152
+ - Command sync reuses each provider's existing Claude command conversion, so some targets receive prompts or workflows while others receive converted skills.
153
+ - Copilot sync writes personal skills to `~/.copilot/skills/` and MCP config to `~/.copilot/mcp-config.json`.
154
+ - Gemini sync writes MCP config to `~/.gemini/` and avoids mirroring skills that Gemini already discovers from `~/.agents/skills`, which prevents duplicate-skill warnings.
155
+ - Droid, Windsurf, Kiro, and Qwen sync merge MCP servers into the provider's documented user config.
156
+ - OpenClaw currently syncs skills only. Personal command sync is skipped because this repo does not yet have a documented user-level OpenClaw command surface, and MCP sync is skipped because the current official OpenClaw docs do not clearly document an MCP server config contract.
157
+
125
158
  ## Workflow
126
159
 
127
160
  ```