@every-env/compound-plugin 0.12.0 → 2.34.3
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/.claude-plugin/marketplace.json +1 -1
- package/.github/workflows/publish.yml +20 -10
- package/.releaserc.json +36 -0
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +39 -0
- package/CLAUDE.md +14 -0
- package/README.md +35 -2
- package/bun.lock +977 -0
- package/docs/plans/2026-03-01-fix-setup-skill-non-claude-llm-fallback-plan.md +140 -0
- package/docs/plans/2026-03-03-feat-sync-claude-mcp-all-supported-providers-plan.md +639 -0
- package/docs/solutions/adding-converter-target-providers.md +2 -1
- package/docs/solutions/plugin-versioning-requirements.md +4 -0
- package/package.json +10 -4
- package/plugins/compound-engineering/.claude-plugin/plugin.json +1 -1
- package/plugins/compound-engineering/CHANGELOG.md +10 -0
- package/plugins/compound-engineering/CLAUDE.md +5 -0
- package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-workflow.md +6 -0
- package/plugins/compound-engineering/skills/create-agent-skills/workflows/create-new-skill.md +6 -0
- package/plugins/compound-engineering/skills/setup/SKILL.md +6 -0
- package/src/commands/sync.ts +21 -60
- package/src/index.ts +2 -1
- package/src/parsers/claude-home.ts +55 -3
- package/src/sync/codex.ts +38 -62
- package/src/sync/commands.ts +198 -0
- package/src/sync/copilot.ts +14 -36
- package/src/sync/droid.ts +50 -9
- package/src/sync/gemini.ts +87 -28
- package/src/sync/json-config.ts +47 -0
- package/src/sync/kiro.ts +49 -0
- package/src/sync/mcp-transports.ts +19 -0
- package/src/sync/openclaw.ts +18 -0
- package/src/sync/opencode.ts +10 -30
- package/src/sync/pi.ts +12 -36
- package/src/sync/qwen.ts +66 -0
- package/src/sync/registry.ts +141 -0
- package/src/sync/skills.ts +21 -0
- package/src/sync/windsurf.ts +59 -0
- package/src/types/kiro.ts +3 -1
- package/src/types/qwen.ts +3 -0
- package/src/types/windsurf.ts +1 -0
- package/src/utils/codex-agents.ts +1 -1
- package/src/utils/detect-tools.ts +4 -13
- package/src/utils/files.ts +7 -0
- package/src/utils/symlink.ts +4 -6
- package/tests/claude-home.test.ts +46 -0
- package/tests/cli.test.ts +102 -0
- package/tests/detect-tools.test.ts +30 -7
- package/tests/sync-codex.test.ts +64 -0
- package/tests/sync-copilot.test.ts +60 -4
- package/tests/sync-droid.test.ts +44 -4
- package/tests/sync-gemini.test.ts +54 -0
- package/tests/sync-kiro.test.ts +83 -0
- package/tests/sync-openclaw.test.ts +51 -0
- package/tests/sync-qwen.test.ts +75 -0
- 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.
|
|
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
|
-
|
|
5
|
-
|
|
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:
|
|
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
|
|
37
|
+
- name: Setup Node.js for release
|
|
29
38
|
uses: actions/setup-node@v4
|
|
30
39
|
with:
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
# npm trusted publishing requires Node 22.14.0+.
|
|
41
|
+
node-version: "24"
|
|
33
42
|
|
|
34
|
-
- name:
|
|
35
|
-
run: npm publish --provenance --access public
|
|
43
|
+
- name: Release
|
|
36
44
|
env:
|
|
37
|
-
|
|
45
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
46
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
47
|
+
run: npx semantic-release
|
package/.releaserc.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"branches": [
|
|
3
|
+
"main"
|
|
4
|
+
],
|
|
5
|
+
"tagFormat": "v${version}",
|
|
6
|
+
"plugins": [
|
|
7
|
+
"@semantic-release/commit-analyzer",
|
|
8
|
+
"@semantic-release/release-notes-generator",
|
|
9
|
+
[
|
|
10
|
+
"@semantic-release/changelog",
|
|
11
|
+
{
|
|
12
|
+
"changelogTitle": "# Changelog\n\nAll notable changes to the `@every-env/compound-plugin` CLI tool will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\nRelease 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."
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"@semantic-release/npm",
|
|
16
|
+
[
|
|
17
|
+
"@semantic-release/git",
|
|
18
|
+
{
|
|
19
|
+
"assets": [
|
|
20
|
+
"CHANGELOG.md",
|
|
21
|
+
"package.json"
|
|
22
|
+
],
|
|
23
|
+
"message": "chore(release): ${nextRelease.version} [skip ci]"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
[
|
|
27
|
+
"@semantic-release/github",
|
|
28
|
+
{
|
|
29
|
+
"successComment": false,
|
|
30
|
+
"failCommentCondition": false,
|
|
31
|
+
"labels": false,
|
|
32
|
+
"releasedLabels": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
]
|
|
36
|
+
}
|
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. Keep the root changelog header block in sync with `.releaserc.json` `changelogTitle` so generated release entries stay under the header. 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
|
@@ -5,6 +5,45 @@ All notable changes to the `@every-env/compound-plugin` CLI tool will be documen
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
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.
|
|
9
|
+
|
|
10
|
+
## [2.34.3](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.34.2...v2.34.3) (2026-03-03)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **release:** keep changelog header stable ([2fd29ff](https://github.com/EveryInc/compound-engineering-plugin/commit/2fd29ff6ed99583a8539b7a1e876194df5b18dd6))
|
|
16
|
+
|
|
17
|
+
## [2.34.2](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.34.1...v2.34.2) (2026-03-03)
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **release:** add package repository metadata ([eab77bc](https://github.com/EveryInc/compound-engineering-plugin/commit/eab77bc5b5361dc73e2ec8aa4678c8bb6114f6e7))
|
|
22
|
+
|
|
23
|
+
## [2.34.1](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.34.0...v2.34.1) (2026-03-03)
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **release:** align cli versioning with repo tags ([7c58eee](https://github.com/EveryInc/compound-engineering-plugin/commit/7c58eeeec6cf33675cbe2b9639c7d69b92ecef60))
|
|
28
|
+
|
|
29
|
+
## [2.34.0] - 2026-03-03
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **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.
|
|
34
|
+
- **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.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- **Global user config targets** — Copilot sync now writes to `~/.copilot/` and Gemini sync writes to `~/.gemini/`, matching current documented user-level config locations.
|
|
39
|
+
- **Gemini skill deduplication** — Gemini sync now avoids mirroring skills that Gemini already resolves from `~/.agents/skills`, preventing duplicate skill conflict warnings after sync.
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- **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.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
8
47
|
## [0.12.0] - 2026-03-01
|
|
9
48
|
|
|
10
49
|
### Added
|
package/CLAUDE.md
CHANGED
|
@@ -38,6 +38,20 @@ 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
|
+
- Keep the root `CHANGELOG.md` header block aligned with `.releaserc.json` `changelogTitle`. If they drift, semantic-release will prepend release notes above the header.
|
|
53
|
+
- Continue updating embedded plugin metadata when the plugin contents themselves change.
|
|
54
|
+
|
|
41
55
|
### Adding a New Plugin
|
|
42
56
|
|
|
43
57
|
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
|
|
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
|
```
|