@every-env/compound-plugin 2.35.0 → 2.36.1
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 +2 -2
- package/CHANGELOG.md +23 -0
- package/README.md +5 -2
- package/package.json +1 -1
- package/plugins/compound-engineering/.claude-plugin/plugin.json +2 -2
- package/plugins/compound-engineering/CHANGELOG.md +26 -0
- package/plugins/compound-engineering/CLAUDE.md +7 -6
- package/plugins/compound-engineering/README.md +1 -1
- package/plugins/compound-engineering/agents/research/learnings-researcher.md +1 -1
- package/plugins/compound-engineering/{commands/ce/review.md → skills/ce-review/SKILL.md} +35 -2
- package/plugins/compound-engineering/{commands/deploy-docs.md → skills/deploy-docs/SKILL.md} +0 -1
- package/plugins/compound-engineering/{commands/generate_command.md → skills/generate_command/SKILL.md} +4 -4
- package/src/converters/claude-to-opencode.ts +8 -0
- package/src/sync/json-config.ts +1 -1
- package/src/targets/opencode.ts +4 -0
- package/tests/converter.test.ts +12 -0
- package/tests/opencode-writer.test.ts +36 -0
- package/plans/grow-your-own-garden-plugin-architecture.md +0 -102
- package/plans/landing-page-launchkit-refresh.md +0 -279
- /package/plugins/compound-engineering/{commands/agent-native-audit.md → skills/agent-native-audit/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/ce/brainstorm.md → skills/ce-brainstorm/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/ce/compound.md → skills/ce-compound/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/ce/plan.md → skills/ce-plan/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/ce/work.md → skills/ce-work/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/changelog.md → skills/changelog/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/create-agent-skill.md → skills/create-agent-skill/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/deepen-plan.md → skills/deepen-plan/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/feature-video.md → skills/feature-video/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/heal-skill.md → skills/heal-skill/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/lfg.md → skills/lfg/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/report-bug.md → skills/report-bug/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/reproduce-bug.md → skills/reproduce-bug/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/resolve_parallel.md → skills/resolve_parallel/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/resolve_todo_parallel.md → skills/resolve_todo_parallel/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/slfg.md → skills/slfg/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/test-browser.md → skills/test-browser/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/test-xcode.md → skills/test-xcode/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/triage.md → skills/triage/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/workflows/brainstorm.md → skills/workflows-brainstorm/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/workflows/compound.md → skills/workflows-compound/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/workflows/plan.md → skills/workflows-plan/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/workflows/review.md → skills/workflows-review/SKILL.md} +0 -0
- /package/plugins/compound-engineering/{commands/workflows/work.md → skills/workflows-work/SKILL.md} +0 -0
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "compound-engineering",
|
|
14
|
-
"description": "AI-powered development tools that get smarter with every use. Make each unit of engineering work easier than the last. Includes
|
|
15
|
-
"version": "2.
|
|
14
|
+
"description": "AI-powered development tools that get smarter with every use. Make each unit of engineering work easier than the last. Includes 28 specialized agents and 47 skills.",
|
|
15
|
+
"version": "2.40.0",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "Kieran Klaassen",
|
|
18
18
|
"url": "https://github.com/kieranklaassen",
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
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
9
|
|
|
10
|
+
## [2.36.1](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.36.0...v2.36.1) (2026-03-13)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **agents:** update learnings-researcher model from haiku to inherit ([30852b7](https://github.com/EveryInc/compound-engineering-plugin/commit/30852b72937091b0a85c22b7c8c45d513ab49fd1)), closes [#249](https://github.com/EveryInc/compound-engineering-plugin/issues/249)
|
|
16
|
+
|
|
17
|
+
# [2.36.0](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.35.0...v2.36.0) (2026-03-11)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **hooks:** wrap PreToolUse handlers in try-catch to prevent parallel tool call crashes ([598222e](https://github.com/EveryInc/compound-engineering-plugin/commit/598222e11cb2206a2e3347cb5dd38cacdc3830df)), closes [#85](https://github.com/EveryInc/compound-engineering-plugin/issues/85)
|
|
23
|
+
* **install:** merge config instead of overwriting on opencode target ([1db7680](https://github.com/EveryInc/compound-engineering-plugin/commit/1db76800f91fefcc1bb9c1798ef273ddd0b65f5c)), closes [#125](https://github.com/EveryInc/compound-engineering-plugin/issues/125)
|
|
24
|
+
* **review:** add serial mode to prevent context limit crashes ([d96671b](https://github.com/EveryInc/compound-engineering-plugin/commit/d96671b9e9ecbe417568b2ce7f7fa4d379c2bec2)), closes [#166](https://github.com/EveryInc/compound-engineering-plugin/issues/166)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
* **compound:** add context budget precheck and compact-safe mode ([c4b1358](https://github.com/EveryInc/compound-engineering-plugin/commit/c4b13584312058cb8db3ad0f25674805bbb91b2d)), closes [#198](https://github.com/EveryInc/compound-engineering-plugin/issues/198)
|
|
30
|
+
* **plan:** add daily sequence number to plan filenames ([e94ca04](https://github.com/EveryInc/compound-engineering-plugin/commit/e94ca0409671efcfa2d4a8fcb2d60b79a848fd85)), closes [#135](https://github.com/EveryInc/compound-engineering-plugin/issues/135)
|
|
31
|
+
* **plugin:** release v2.39.0 with community contributions ([d2ab6c0](https://github.com/EveryInc/compound-engineering-plugin/commit/d2ab6c076882a4dacaa787c0a6f3c9d555d38af0))
|
|
32
|
+
|
|
10
33
|
# [2.35.0](https://github.com/EveryInc/compound-engineering-plugin/compare/v2.34.7...v2.35.0) (2026-03-10)
|
|
11
34
|
|
|
12
35
|
|
package/README.md
CHANGED
|
@@ -158,17 +158,20 @@ Notes:
|
|
|
158
158
|
## Workflow
|
|
159
159
|
|
|
160
160
|
```
|
|
161
|
-
Plan → Work → Review → Compound → Repeat
|
|
161
|
+
Brainstorm → Plan → Work → Review → Compound → Repeat
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
| Command | Purpose |
|
|
165
165
|
|---------|---------|
|
|
166
|
+
| `/ce:brainstorm` | Explore requirements and approaches before planning |
|
|
166
167
|
| `/ce:plan` | Turn feature ideas into detailed implementation plans |
|
|
167
168
|
| `/ce:work` | Execute plans with worktrees and task tracking |
|
|
168
169
|
| `/ce:review` | Multi-agent code review before merging |
|
|
169
170
|
| `/ce:compound` | Document learnings to make future work easier |
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
The `brainstorming` skill supports `/ce:brainstorm` with collaborative dialogue to clarify requirements and compare approaches before committing to a plan.
|
|
173
|
+
|
|
174
|
+
Each cycle compounds: brainstorms sharpen plans, plans inform future plans, reviews catch more issues, patterns get documented.
|
|
172
175
|
|
|
173
176
|
## Philosophy
|
|
174
177
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "compound-engineering",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "AI-powered development tools. 28 agents,
|
|
3
|
+
"version": "2.40.0",
|
|
4
|
+
"description": "AI-powered development tools. 28 agents, 47 skills, 1 MCP server for code review, research, design, and workflow automation.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kieran Klaassen",
|
|
7
7
|
"email": "kieran@every.to",
|
|
@@ -5,6 +5,32 @@ All notable changes to the compound-engineering plugin will be documented in thi
|
|
|
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
|
+
## [2.39.0] - 2026-03-10
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **ce:compound context budget precheck** — Warns when context is constrained and offers compact-safe mode to avoid compaction mid-compound ([#235](https://github.com/EveryInc/compound-engineering-plugin/pull/235))
|
|
13
|
+
- **ce:plan daily sequence numbers** — Plan filenames now include a 3-digit daily sequence number (e.g., `2026-03-10-001-feat-...`) to prevent collisions ([#238](https://github.com/EveryInc/compound-engineering-plugin/pull/238))
|
|
14
|
+
- **ce:review serial mode** — Pass `--serial` flag (or auto-detects when 6+ agents configured) to run review agents sequentially, preventing context limit crashes ([#237](https://github.com/EveryInc/compound-engineering-plugin/pull/237))
|
|
15
|
+
- **agent-browser inspection & debugging commands** — Added JS eval, console/errors, network, storage, device emulation, element debugging, recording/tracing, tabs, and advanced mouse commands to agent-browser skill ([#236](https://github.com/EveryInc/compound-engineering-plugin/pull/236))
|
|
16
|
+
- **test-browser port detection** — Auto-detects dev server port from CLAUDE.md, package.json, or .env files; supports `--port` flag ([#233](https://github.com/EveryInc/compound-engineering-plugin/pull/233))
|
|
17
|
+
- **lfg phase gating** — Added explicit GATE checks between /lfg steps to enforce plan-before-work ordering ([#231](https://github.com/EveryInc/compound-engineering-plugin/pull/231))
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **Context7 API key auth** — MCP server config now passes `CONTEXT7_API_KEY` via `x-api-key` header to avoid anonymous rate limits ([#232](https://github.com/EveryInc/compound-engineering-plugin/pull/232))
|
|
22
|
+
- **CLI: MCP server merge order** — `sync` now correctly overwrites same-named MCP servers with plugin values instead of preserving stale entries
|
|
23
|
+
|
|
24
|
+
### Removed
|
|
25
|
+
|
|
26
|
+
- **every-style-editor agent** — Removed duplicate agent; functionality already exists as `every-style-editor` skill ([#234](https://github.com/EveryInc/compound-engineering-plugin/pull/234))
|
|
27
|
+
|
|
28
|
+
### Contributors
|
|
29
|
+
|
|
30
|
+
- Matt Van Horn ([@mvanhorn](https://x.com/mvanhorn)) — PRs #231–#238
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
8
34
|
## [2.38.1] - 2026-03-01
|
|
9
35
|
|
|
10
36
|
### Fixed
|
|
@@ -34,15 +34,16 @@ agents/
|
|
|
34
34
|
├── workflow/ # Workflow automation agents
|
|
35
35
|
└── docs/ # Documentation agents
|
|
36
36
|
|
|
37
|
-
commands/
|
|
38
|
-
├── ce/ # Core workflow commands (ce:plan, ce:review, etc.)
|
|
39
|
-
├── workflows/ # Deprecated aliases for ce:* commands
|
|
40
|
-
└── *.md # Utility commands
|
|
41
|
-
|
|
42
37
|
skills/
|
|
43
|
-
|
|
38
|
+
├── ce-*/ # Core workflow skills (ce:plan, ce:review, etc.)
|
|
39
|
+
├── workflows-*/ # Deprecated aliases for ce:* skills
|
|
40
|
+
└── */ # All other skills
|
|
44
41
|
```
|
|
45
42
|
|
|
43
|
+
> **Note:** Commands were migrated to skills in v2.39.0. All former
|
|
44
|
+
> `/command-name` slash commands now live under `skills/command-name/SKILL.md`
|
|
45
|
+
> and work identically (Claude Code 2.1.3+ merged the two formats).
|
|
46
|
+
|
|
46
47
|
## Command Naming Convention
|
|
47
48
|
|
|
48
49
|
**Workflow commands** use `ce:` prefix to unambiguously identify them as compound-engineering commands:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: learnings-researcher
|
|
3
3
|
description: "Searches docs/solutions/ for relevant past solutions by frontmatter metadata. Use before implementing features or fixing problems to surface institutional knowledge and prevent repeated mistakes."
|
|
4
|
-
model:
|
|
4
|
+
model: inherit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<examples>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ce:review
|
|
3
3
|
description: Perform exhaustive code reviews using multi-agent analysis, ultra-thinking, and worktrees
|
|
4
|
-
argument-hint: "[PR number, GitHub URL, branch name, or latest]"
|
|
4
|
+
argument-hint: "[PR number, GitHub URL, branch name, or latest] [--serial]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Review Command
|
|
@@ -65,17 +65,50 @@ Read `compound-engineering.local.md` in the project root. If found, use `review_
|
|
|
65
65
|
|
|
66
66
|
If no settings file exists, invoke the `setup` skill to create one. Then read the newly created file and continue.
|
|
67
67
|
|
|
68
|
+
#### Choose Execution Mode
|
|
69
|
+
|
|
70
|
+
<execution_mode>
|
|
71
|
+
|
|
72
|
+
Before launching review agents, check for context constraints:
|
|
73
|
+
|
|
74
|
+
**If `--serial` flag is passed OR conversation is in a long session:**
|
|
75
|
+
|
|
76
|
+
Run agents ONE AT A TIME in sequence. Wait for each agent to complete before starting the next. This uses less context but takes longer.
|
|
77
|
+
|
|
78
|
+
**Default (parallel):**
|
|
79
|
+
|
|
80
|
+
Run all agents simultaneously for speed. If you hit context limits, retry with `--serial` flag.
|
|
81
|
+
|
|
82
|
+
**Auto-detect:** If more than 5 review agents are configured, automatically switch to serial mode and inform the user:
|
|
83
|
+
"Running review agents in serial mode (6+ agents configured). Use --parallel to override."
|
|
84
|
+
|
|
85
|
+
</execution_mode>
|
|
86
|
+
|
|
68
87
|
#### Parallel Agents to review the PR:
|
|
69
88
|
|
|
70
89
|
<parallel_tasks>
|
|
71
90
|
|
|
91
|
+
**Parallel mode (default for ≤5 agents):**
|
|
92
|
+
|
|
72
93
|
Run all configured review agents in parallel using Task tool. For each agent in the `review_agents` list:
|
|
73
94
|
|
|
74
95
|
```
|
|
75
96
|
Task {agent-name}(PR content + review context from settings body)
|
|
76
97
|
```
|
|
77
98
|
|
|
78
|
-
|
|
99
|
+
**Serial mode (--serial flag, or auto for 6+ agents):**
|
|
100
|
+
|
|
101
|
+
Run configured review agents ONE AT A TIME. For each agent in the `review_agents` list, wait for it to complete before starting the next:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
For each agent in review_agents:
|
|
105
|
+
1. Task {agent-name}(PR content + review context)
|
|
106
|
+
2. Wait for completion
|
|
107
|
+
3. Collect findings
|
|
108
|
+
4. Proceed to next agent
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Always run these last regardless of mode:
|
|
79
112
|
- Task agent-native-reviewer(PR content) - Verify new features are agent-accessible
|
|
80
113
|
- Task learnings-researcher(PR content) - Search docs/solutions/ for past issues related to this PR's modules and patterns
|
|
81
114
|
|
package/plugins/compound-engineering/{commands/deploy-docs.md → skills/deploy-docs/SKILL.md}
RENAMED
|
@@ -15,7 +15,6 @@ Run these checks:
|
|
|
15
15
|
```bash
|
|
16
16
|
# Count components
|
|
17
17
|
echo "Agents: $(ls plugins/compound-engineering/agents/*.md | wc -l)"
|
|
18
|
-
echo "Commands: $(ls plugins/compound-engineering/commands/*.md | wc -l)"
|
|
19
18
|
echo "Skills: $(ls -d plugins/compound-engineering/skills/*/ 2>/dev/null | wc -l)"
|
|
20
19
|
|
|
21
20
|
# Validate JSON
|
|
@@ -7,7 +7,7 @@ disable-model-invocation: true
|
|
|
7
7
|
|
|
8
8
|
# Create a Custom Claude Code Command
|
|
9
9
|
|
|
10
|
-
Create a new
|
|
10
|
+
Create a new skill in `.claude/skills/` for the requested task.
|
|
11
11
|
|
|
12
12
|
## Goal
|
|
13
13
|
|
|
@@ -128,10 +128,10 @@ Implement #$ARGUMENTS following these steps:
|
|
|
128
128
|
|
|
129
129
|
## Creating the Command File
|
|
130
130
|
|
|
131
|
-
1. **Create the
|
|
131
|
+
1. **Create the directory** at `.claude/skills/[name]/SKILL.md`
|
|
132
132
|
2. **Start with YAML frontmatter** (see section above)
|
|
133
|
-
3. **Structure the
|
|
134
|
-
4. **Test the
|
|
133
|
+
3. **Structure the skill** using the template above
|
|
134
|
+
4. **Test the skill** by using it with appropriate arguments
|
|
135
135
|
|
|
136
136
|
## Command File Template
|
|
137
137
|
|
|
@@ -202,7 +202,15 @@ function renderHookHandlers(
|
|
|
202
202
|
const wrapped = options.requireError
|
|
203
203
|
? ` if (input?.error) {\n${statements.map((line) => ` ${line}`).join("\n")}\n }`
|
|
204
204
|
: rendered
|
|
205
|
+
|
|
206
|
+
// Wrap tool.execute.before handlers in try-catch to prevent a failing hook
|
|
207
|
+
// from crashing parallel tool call batches (causes API 400 errors).
|
|
208
|
+
// See: https://github.com/EveryInc/compound-engineering-plugin/issues/85
|
|
209
|
+
const isPreToolUse = event === "tool.execute.before"
|
|
205
210
|
const note = options.note ? ` // ${options.note}\n` : ""
|
|
211
|
+
if (isPreToolUse) {
|
|
212
|
+
return ` "${event}": async (input) => {\n${note} try {\n ${wrapped}\n } catch (err) {\n console.error("[hook] ${event} error (non-fatal):", err)\n }\n }`
|
|
213
|
+
}
|
|
206
214
|
return ` "${event}": async (input) => {\n${note}${wrapped}\n }`
|
|
207
215
|
}
|
|
208
216
|
|
package/src/sync/json-config.ts
CHANGED
package/src/targets/opencode.ts
CHANGED
|
@@ -58,12 +58,16 @@ export async function writeOpenCodeBundle(outputRoot: string, bundle: OpenCodeBu
|
|
|
58
58
|
const openCodePaths = resolveOpenCodePaths(outputRoot)
|
|
59
59
|
await ensureDir(openCodePaths.root)
|
|
60
60
|
|
|
61
|
+
const hadExistingConfig = await pathExists(openCodePaths.configPath)
|
|
61
62
|
const backupPath = await backupFile(openCodePaths.configPath)
|
|
62
63
|
if (backupPath) {
|
|
63
64
|
console.log(`Backed up existing config to ${backupPath}`)
|
|
64
65
|
}
|
|
65
66
|
const merged = await mergeOpenCodeConfig(openCodePaths.configPath, bundle.config)
|
|
66
67
|
await writeJson(openCodePaths.configPath, merged)
|
|
68
|
+
if (hadExistingConfig) {
|
|
69
|
+
console.log("Merged plugin config into existing opencode.json (user settings preserved)")
|
|
70
|
+
}
|
|
67
71
|
|
|
68
72
|
const agentsDir = openCodePaths.agentsDir
|
|
69
73
|
for (const agent of bundle.agents) {
|
package/tests/converter.test.ts
CHANGED
|
@@ -132,6 +132,18 @@ describe("convertClaudeToOpenCode", () => {
|
|
|
132
132
|
expect(hookFile!.content).toContain("// timeout: 30s")
|
|
133
133
|
expect(hookFile!.content).toContain("// Prompt hook for Write|Edit")
|
|
134
134
|
expect(hookFile!.content).toContain("// Agent hook for Write|Edit: security-sentinel")
|
|
135
|
+
|
|
136
|
+
// PreToolUse (tool.execute.before) handlers are wrapped in try-catch
|
|
137
|
+
// to prevent hook failures from crashing parallel tool call batches (#85)
|
|
138
|
+
const beforeIdx = hookFile!.content.indexOf('"tool.execute.before"')
|
|
139
|
+
const afterIdx = hookFile!.content.indexOf('"tool.execute.after"')
|
|
140
|
+
const beforeBlock = hookFile!.content.slice(beforeIdx, afterIdx)
|
|
141
|
+
expect(beforeBlock).toContain("try {")
|
|
142
|
+
expect(beforeBlock).toContain("} catch (err) {")
|
|
143
|
+
|
|
144
|
+
// PostToolUse (tool.execute.after) handlers are NOT wrapped in try-catch
|
|
145
|
+
const afterBlock = hookFile!.content.slice(afterIdx, hookFile!.content.indexOf('"session.created"'))
|
|
146
|
+
expect(afterBlock).not.toContain("try {")
|
|
135
147
|
})
|
|
136
148
|
|
|
137
149
|
test("converts MCP servers", async () => {
|
|
@@ -3,6 +3,7 @@ import { promises as fs } from "fs"
|
|
|
3
3
|
import path from "path"
|
|
4
4
|
import os from "os"
|
|
5
5
|
import { writeOpenCodeBundle } from "../src/targets/opencode"
|
|
6
|
+
import { mergeJsonConfigAtKey } from "../src/sync/json-config"
|
|
6
7
|
import type { OpenCodeBundle } from "../src/types/opencode"
|
|
7
8
|
|
|
8
9
|
async function exists(filePath: string): Promise<boolean> {
|
|
@@ -254,3 +255,38 @@ describe("writeOpenCodeBundle", () => {
|
|
|
254
255
|
expect(backupContent).toBe("old content\n")
|
|
255
256
|
})
|
|
256
257
|
})
|
|
258
|
+
|
|
259
|
+
describe("mergeJsonConfigAtKey", () => {
|
|
260
|
+
test("incoming plugin entries overwrite same-named servers", async () => {
|
|
261
|
+
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "json-merge-"))
|
|
262
|
+
const configPath = path.join(tempDir, "opencode.json")
|
|
263
|
+
|
|
264
|
+
// User has an existing MCP server config
|
|
265
|
+
const existingConfig = {
|
|
266
|
+
model: "my-model",
|
|
267
|
+
mcp: {
|
|
268
|
+
"user-server": { type: "local", command: ["uvx", "user-srv"] },
|
|
269
|
+
},
|
|
270
|
+
}
|
|
271
|
+
await fs.writeFile(configPath, JSON.stringify(existingConfig, null, 2))
|
|
272
|
+
|
|
273
|
+
// Plugin syncs its servers, overwriting same-named entries
|
|
274
|
+
await mergeJsonConfigAtKey({
|
|
275
|
+
configPath,
|
|
276
|
+
key: "mcp",
|
|
277
|
+
incoming: {
|
|
278
|
+
"plugin-server": { type: "local", command: ["uvx", "plugin-srv"] },
|
|
279
|
+
"user-server": { type: "local", command: ["uvx", "plugin-override"] },
|
|
280
|
+
},
|
|
281
|
+
})
|
|
282
|
+
|
|
283
|
+
const merged = JSON.parse(await fs.readFile(configPath, "utf8"))
|
|
284
|
+
|
|
285
|
+
// User's top-level keys preserved
|
|
286
|
+
expect(merged.model).toBe("my-model")
|
|
287
|
+
// Plugin server added
|
|
288
|
+
expect(merged.mcp["plugin-server"]).toBeDefined()
|
|
289
|
+
// Plugin server overwrites same-named existing entry
|
|
290
|
+
expect(merged.mcp["user-server"].command[1]).toBe("plugin-override")
|
|
291
|
+
})
|
|
292
|
+
})
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# Grow Your Own Garden: Adaptive Agent Ecosystem
|
|
2
|
-
|
|
3
|
-
> **Issue:** https://github.com/EveryInc/compound-engineering-plugin/issues/20
|
|
4
|
-
|
|
5
|
-
## The Idea
|
|
6
|
-
|
|
7
|
-
Everyone grows their own garden, but we're all using the same process.
|
|
8
|
-
|
|
9
|
-
Start from a **seed** (minimal core: `/plan`, `/work`, `/review`, `/compound`). Each `/compound` loop can suggest adding agents based on what you're working on—like building up a test suite to prevent regressions, but for code review expertise.
|
|
10
|
-
|
|
11
|
-
## Current Problem
|
|
12
|
-
|
|
13
|
-
- Monolithic plugin: 24 agents, users use ~30%
|
|
14
|
-
- No personalization (same agents for Rails dev and Python dev)
|
|
15
|
-
- Static collection that doesn't adapt
|
|
16
|
-
|
|
17
|
-
## Proposed Solution
|
|
18
|
-
|
|
19
|
-
### The Seed (Core Plugin)
|
|
20
|
-
|
|
21
|
-
4 commands + minimal agents:
|
|
22
|
-
|
|
23
|
-
| Component | What's Included |
|
|
24
|
-
|-----------|-----------------|
|
|
25
|
-
| Commands | `/plan`, `/work`, `/review`, `/compound` |
|
|
26
|
-
| Review Agents | security, performance, simplicity, architecture, patterns |
|
|
27
|
-
| Research Agents | best-practices, framework-docs, git-history, repo-analyst |
|
|
28
|
-
| Skills | compound-docs, file-todos, git-worktree |
|
|
29
|
-
| MCP Servers | playwright, context7 |
|
|
30
|
-
|
|
31
|
-
### The Growth Loop
|
|
32
|
-
|
|
33
|
-
After each `/compound`:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
✅ Learning documented
|
|
37
|
-
|
|
38
|
-
💡 It looks like you're using Rails.
|
|
39
|
-
Would you like to add the "DHH Rails Reviewer"?
|
|
40
|
-
|
|
41
|
-
[y] Yes [n] No [x] Never ask
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Three sources of new agents:
|
|
45
|
-
1. **Predefined** - "You're using Rails, add DHH reviewer?"
|
|
46
|
-
2. **Dynamic** - "You're using actor model, create an expert?"
|
|
47
|
-
3. **Custom** - "Want to create an agent for this pattern?"
|
|
48
|
-
|
|
49
|
-
### Agent Storage
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
.claude/agents/ → Project-specific (highest priority)
|
|
53
|
-
~/.claude/agents/ → User's garden
|
|
54
|
-
plugin/agents/ → From installed plugins
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Implementation Phases
|
|
58
|
-
|
|
59
|
-
### Phase 1: Split the Plugin
|
|
60
|
-
- Create `agent-library/` with framework-specific agents (Rails, Python, TypeScript, Frontend)
|
|
61
|
-
- Keep `compound-engineering` as core with universal agents
|
|
62
|
-
- No breaking changes—existing users unaffected
|
|
63
|
-
|
|
64
|
-
### Phase 2: Agent Discovery
|
|
65
|
-
- `/review` discovers agents from all three locations
|
|
66
|
-
- Project agents override user agents override plugin agents
|
|
67
|
-
|
|
68
|
-
### Phase 3: Growth via /compound
|
|
69
|
-
- Detect tech stack (Gemfile, package.json, etc.)
|
|
70
|
-
- Suggest relevant agents after documenting learnings
|
|
71
|
-
- Install accepted agents to `~/.claude/agents/`
|
|
72
|
-
|
|
73
|
-
### Phase 4: Management
|
|
74
|
-
- `/agents list` - See your garden
|
|
75
|
-
- `/agents add <name>` - Add from library
|
|
76
|
-
- `/agents disable <name>` - Temporarily disable
|
|
77
|
-
|
|
78
|
-
## What Goes Where
|
|
79
|
-
|
|
80
|
-
**Core (seed):** 11 framework-agnostic agents
|
|
81
|
-
- security-sentinel, performance-oracle, code-simplicity-reviewer
|
|
82
|
-
- architecture-strategist, pattern-recognition-specialist
|
|
83
|
-
- 4 research agents, 2 workflow agents
|
|
84
|
-
|
|
85
|
-
**Agent Library:** 10 specialized agents
|
|
86
|
-
- Rails: kieran-rails, dhh-rails, data-integrity (3)
|
|
87
|
-
- Python: kieran-python (1)
|
|
88
|
-
- TypeScript: kieran-typescript (1)
|
|
89
|
-
- Frontend: julik-races, design-iterator, design-reviewer, figma-sync (4)
|
|
90
|
-
- Editorial: every-style-editor (1)
|
|
91
|
-
|
|
92
|
-
## Key Constraint
|
|
93
|
-
|
|
94
|
-
Claude Code doesn't support plugin dependencies. Each plugin must be independent. Users manually install what they need, or we suggest additions via `/compound`.
|
|
95
|
-
|
|
96
|
-
## Acceptance Criteria
|
|
97
|
-
|
|
98
|
-
- [ ] Core plugin works standalone with universal agents
|
|
99
|
-
- [ ] `/compound` suggests agents based on detected tech stack
|
|
100
|
-
- [ ] Users can accept/decline suggestions
|
|
101
|
-
- [ ] `/agents` command for garden management
|
|
102
|
-
- [ ] No breaking changes for existing users
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
# Landing Page LaunchKit Refresh
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Review and enhance the `/docs/index.html` landing page using LaunchKit elements and Pragmatic Technical Writing style (Hunt/Thomas, Joel Spolsky). The current implementation is strong but can be refined section-by-section.
|
|
6
|
-
|
|
7
|
-
## Current State Assessment
|
|
8
|
-
|
|
9
|
-
### What's Working Well
|
|
10
|
-
- Specific, outcome-focused hero headline ("12 expert opinions in 30 seconds")
|
|
11
|
-
- Developer-authentic copywriting (N+1 queries, CORS, SQL injection)
|
|
12
|
-
- Stats section with clear metrics (23 agents, 16 commands, 11 skills, 2 MCP servers)
|
|
13
|
-
- Philosophy section with concrete story (N+1 query bug)
|
|
14
|
-
- Three-step installation with actual commands
|
|
15
|
-
- FAQ accordion following LaunchKit patterns
|
|
16
|
-
- Categorized feature sections with code examples
|
|
17
|
-
|
|
18
|
-
### Missing Elements (From Best Practices Research)
|
|
19
|
-
1. **Social Proof Section** - No testimonials, GitHub stars, or user metrics
|
|
20
|
-
2. **Visual Demo** - No GIF/animation showing the tool in action
|
|
21
|
-
3. **Arrow icons on CTAs** - 26% conversion boost from studies
|
|
22
|
-
4. **Trust indicators** - Open source badge, license info
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Section-by-Section Review Plan
|
|
27
|
-
|
|
28
|
-
### 1. Hero Section (lines 56-78)
|
|
29
|
-
|
|
30
|
-
**Current:**
|
|
31
|
-
```html
|
|
32
|
-
<h1>Your Code Reviews Just Got 12 Expert Opinions. In 30 Seconds.</h1>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Review Checklist:**
|
|
36
|
-
- [ ] Headline follows Pragmatic Writing (concrete before abstract) ✅
|
|
37
|
-
- [ ] Eyebrow badge is current (Version 2.6.0) - verify
|
|
38
|
-
- [ ] Description paragraph under 3 sentences ✅
|
|
39
|
-
- [ ] Button group has arrow icon on primary CTA
|
|
40
|
-
- [ ] "Read the Docs" secondary CTA present ✅
|
|
41
|
-
|
|
42
|
-
**Potential Improvements:**
|
|
43
|
-
- Add `→` arrow to "Install Plugin" button
|
|
44
|
-
- Consider adding animated terminal GIF below buttons showing `/review` in action
|
|
45
|
-
|
|
46
|
-
### 2. Stats Section (lines 81-104)
|
|
47
|
-
|
|
48
|
-
**Current:** 4 stat cards (23 agents, 16 commands, 11 skills, 2 MCP servers)
|
|
49
|
-
|
|
50
|
-
**Review Checklist:**
|
|
51
|
-
- [ ] Numbers are accurate (verify against actual file counts)
|
|
52
|
-
- [ ] Icons are appropriate for each stat
|
|
53
|
-
- [ ] Hover effects working properly
|
|
54
|
-
- [ ] Mobile layout (2x2 grid) is readable
|
|
55
|
-
|
|
56
|
-
**Potential Improvements:**
|
|
57
|
-
- Add "developers using" or "reviews run" metric if available
|
|
58
|
-
- Consider adding subtle animation on scroll
|
|
59
|
-
|
|
60
|
-
### 3. Philosophy Section (lines 107-192)
|
|
61
|
-
|
|
62
|
-
**Current:** "Why Your Third Code Review Should Be Easier Than Your First" with N+1 query story
|
|
63
|
-
|
|
64
|
-
**Review Checklist:**
|
|
65
|
-
- [ ] Opens with concrete story (N+1 query) ✅
|
|
66
|
-
- [ ] Quote block is memorable and quotable
|
|
67
|
-
- [ ] Four pillars (Plan, Delegate, Assess, Codify) are clear
|
|
68
|
-
- [ ] Each pillar has: tagline, description, tool tags
|
|
69
|
-
- [ ] Descriptions use "you" voice ✅
|
|
70
|
-
|
|
71
|
-
**Potential Improvements:**
|
|
72
|
-
- Review pillar descriptions for passive voice
|
|
73
|
-
- Ensure each pillar description follows PAS (Problem, Agitate, Solve) pattern
|
|
74
|
-
- Check tool tags are accurate and current
|
|
75
|
-
|
|
76
|
-
### 4. Agents Section (lines 195-423)
|
|
77
|
-
|
|
78
|
-
**Current:** 23 agents in 5 categories (Review, Research, Design, Workflow, Docs)
|
|
79
|
-
|
|
80
|
-
**Review Checklist:**
|
|
81
|
-
- [ ] All 23 agents are listed (count actual files)
|
|
82
|
-
- [ ] Categories are logical and scannable
|
|
83
|
-
- [ ] Each card has: name, badge, description, usage code
|
|
84
|
-
- [ ] Descriptions are conversational (not passive)
|
|
85
|
-
- [ ] Critical badges (Security, Data) stand out
|
|
86
|
-
|
|
87
|
-
**Potential Improvements:**
|
|
88
|
-
- Review agent descriptions against pragmatic writing checklist
|
|
89
|
-
- Ensure descriptions answer "when would I use this?"
|
|
90
|
-
- Add concrete scenarios to generic descriptions
|
|
91
|
-
|
|
92
|
-
### 5. Commands Section (lines 426-561)
|
|
93
|
-
|
|
94
|
-
**Current:** 16 commands in 2 categories (Workflow, Utility)
|
|
95
|
-
|
|
96
|
-
**Review Checklist:**
|
|
97
|
-
- [ ] All 16 commands are listed (count actual files)
|
|
98
|
-
- [ ] Core workflow commands are highlighted
|
|
99
|
-
- [ ] Descriptions are action-oriented
|
|
100
|
-
- [ ] Command names match actual implementation
|
|
101
|
-
|
|
102
|
-
**Potential Improvements:**
|
|
103
|
-
- Review command descriptions for passive voice
|
|
104
|
-
- Lead with outcomes, not features
|
|
105
|
-
- Add "saves you X minutes" framing where appropriate
|
|
106
|
-
|
|
107
|
-
### 6. Skills Section (lines 564-703)
|
|
108
|
-
|
|
109
|
-
**Current:** 11 skills in 3 categories (Development, Content/Workflow, Image Generation)
|
|
110
|
-
|
|
111
|
-
**Review Checklist:**
|
|
112
|
-
- [ ] All 11 skills are listed (count actual directories)
|
|
113
|
-
- [ ] Featured skill (gemini-imagegen) is properly highlighted
|
|
114
|
-
- [ ] API key requirement is clear
|
|
115
|
-
- [ ] Skill invocation syntax is correct
|
|
116
|
-
|
|
117
|
-
**Potential Improvements:**
|
|
118
|
-
- Review skill descriptions against pragmatic writing
|
|
119
|
-
- Ensure each skill answers "what problem does this solve?"
|
|
120
|
-
|
|
121
|
-
### 7. MCP Servers Section (lines 706-751)
|
|
122
|
-
|
|
123
|
-
**Current:** 2 MCP servers (Playwright, Context7)
|
|
124
|
-
|
|
125
|
-
**Review Checklist:**
|
|
126
|
-
- [ ] Tool lists are accurate
|
|
127
|
-
- [ ] Descriptions explain WHY not just WHAT
|
|
128
|
-
- [ ] Framework support list is current (100+)
|
|
129
|
-
|
|
130
|
-
**Potential Improvements:**
|
|
131
|
-
- Add concrete example of each server in action
|
|
132
|
-
- Consider before/after comparison
|
|
133
|
-
|
|
134
|
-
### 8. Installation Section (lines 754-798)
|
|
135
|
-
|
|
136
|
-
**Current:** "Three Commands. Zero Configuration." with 3 steps
|
|
137
|
-
|
|
138
|
-
**Review Checklist:**
|
|
139
|
-
- [ ] Commands are accurate and work
|
|
140
|
-
- [ ] Step 3 shows actual usage examples
|
|
141
|
-
- [ ] Timeline visual (vertical line) renders correctly
|
|
142
|
-
- [ ] Copy buttons work on code blocks
|
|
143
|
-
|
|
144
|
-
**Potential Improvements:**
|
|
145
|
-
- Add copy-to-clipboard functionality if missing
|
|
146
|
-
- Consider adding "What you'll see" output example
|
|
147
|
-
|
|
148
|
-
### 9. FAQ Section (lines 801-864)
|
|
149
|
-
|
|
150
|
-
**Current:** 5 questions in accordion format
|
|
151
|
-
|
|
152
|
-
**Review Checklist:**
|
|
153
|
-
- [ ] Questions address real objections
|
|
154
|
-
- [ ] Answers are conversational (use "you")
|
|
155
|
-
- [ ] Accordion expand/collapse works
|
|
156
|
-
- [ ] No passive voice in answers
|
|
157
|
-
|
|
158
|
-
**Potential Improvements:**
|
|
159
|
-
- Review for weasel words ("best practices suggest")
|
|
160
|
-
- Ensure answers are direct and actionable
|
|
161
|
-
|
|
162
|
-
### 10. CTA Section (lines 868-886)
|
|
163
|
-
|
|
164
|
-
**Current:** "Install Once. Compound Forever." with Install + GitHub buttons
|
|
165
|
-
|
|
166
|
-
**Review Checklist:**
|
|
167
|
-
- [ ] Badge is eye-catching ("Free & Open Source")
|
|
168
|
-
- [ ] Headline restates core value proposition
|
|
169
|
-
- [ ] Primary CTA has arrow icon ✅
|
|
170
|
-
- [ ] Trust line at bottom
|
|
171
|
-
|
|
172
|
-
**Potential Improvements:**
|
|
173
|
-
- Review trust line copy
|
|
174
|
-
- Consider adding social proof element
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## NEW: Social Proof Section (To Add)
|
|
179
|
-
|
|
180
|
-
**Position:** After Stats section, before Philosophy section
|
|
181
|
-
|
|
182
|
-
**Components:**
|
|
183
|
-
- GitHub stars counter (dynamic or static)
|
|
184
|
-
- "Trusted by X developers" metric
|
|
185
|
-
- 2-3 testimonial quotes (if available)
|
|
186
|
-
- Company logos (if applicable)
|
|
187
|
-
|
|
188
|
-
**LaunchKit Pattern:**
|
|
189
|
-
```html
|
|
190
|
-
<section class="social-proof-section">
|
|
191
|
-
<div class="heading centered">
|
|
192
|
-
<p class="paragraph m secondary">Trusted by developers at</p>
|
|
193
|
-
</div>
|
|
194
|
-
<div class="logo-grid">
|
|
195
|
-
<!-- Company logos or GitHub badge -->
|
|
196
|
-
</div>
|
|
197
|
-
</section>
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## Pragmatic Writing Style Checklist (Apply to ALL Copy)
|
|
203
|
-
|
|
204
|
-
### The Five Laws
|
|
205
|
-
1. **Concrete Before Abstract** - Story/example first, then principle
|
|
206
|
-
2. **Physical Analogies** - Import metaphors readers understand
|
|
207
|
-
3. **Conversational Register** - Use "you", contractions, asides
|
|
208
|
-
4. **Numbered Frameworks** - Create referenceable structures
|
|
209
|
-
5. **Humor as Architecture** - Mental anchors for dense content
|
|
210
|
-
|
|
211
|
-
### Anti-Patterns to Find and Fix
|
|
212
|
-
- [ ] "It is recommended that..." → "Do this:"
|
|
213
|
-
- [ ] "Best practices suggest..." → "Here's what works:"
|
|
214
|
-
- [ ] Passive voice → Active voice
|
|
215
|
-
- [ ] Abstract claims → Specific examples
|
|
216
|
-
- [ ] Walls of text → Scannable lists
|
|
217
|
-
|
|
218
|
-
### Quality Checklist (Per Section)
|
|
219
|
-
- [ ] Opens with concrete story or example?
|
|
220
|
-
- [ ] Can reader skim headers and get the arc?
|
|
221
|
-
- [ ] Uses "you" at least once?
|
|
222
|
-
- [ ] Clear action reader can take?
|
|
223
|
-
- [ ] Reads aloud like speech?
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## Implementation Phases
|
|
228
|
-
|
|
229
|
-
### Phase 1: Copy Audit (No HTML Changes)
|
|
230
|
-
1. Read through entire page
|
|
231
|
-
2. Flag passive voice instances
|
|
232
|
-
3. Flag abstract claims without examples
|
|
233
|
-
4. Flag missing "you" voice
|
|
234
|
-
5. Document improvements needed
|
|
235
|
-
|
|
236
|
-
### Phase 2: Copy Rewrites
|
|
237
|
-
1. Rewrite flagged sections following pragmatic style
|
|
238
|
-
2. Ensure each section passes quality checklist
|
|
239
|
-
3. Maintain existing HTML structure
|
|
240
|
-
|
|
241
|
-
### Phase 3: Component Additions
|
|
242
|
-
1. Add arrow icons to primary CTAs
|
|
243
|
-
2. Add social proof section (if data available)
|
|
244
|
-
3. Consider visual demo element
|
|
245
|
-
|
|
246
|
-
### Phase 4: Verification
|
|
247
|
-
1. Validate all counts (agents, commands, skills)
|
|
248
|
-
2. Test all links and buttons
|
|
249
|
-
3. Verify mobile responsiveness
|
|
250
|
-
4. Check accessibility
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## Files to Modify
|
|
255
|
-
|
|
256
|
-
| File | Changes |
|
|
257
|
-
|------|---------|
|
|
258
|
-
| `docs/index.html` | Copy rewrites, potential new section |
|
|
259
|
-
| `docs/css/style.css` | Social proof styles (if adding) |
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Success Criteria
|
|
264
|
-
|
|
265
|
-
1. All copy passes Pragmatic Writing quality checklist
|
|
266
|
-
2. No passive voice in any description
|
|
267
|
-
3. Every feature section answers "why should I care?"
|
|
268
|
-
4. Stats are accurate against actual file counts
|
|
269
|
-
5. Page loads in <3 seconds
|
|
270
|
-
6. Mobile layout is fully functional
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## References
|
|
275
|
-
|
|
276
|
-
- LaunchKit Template: https://launchkit.evilmartians.io/
|
|
277
|
-
- Pragmatic Writing Skill: `~/.claude/skills/pragmatic-writing-skill/SKILL.md`
|
|
278
|
-
- Current Landing Page: `/Users/kieranklaassen/compound-engineering-plugin/docs/index.html`
|
|
279
|
-
- Style CSS: `/Users/kieranklaassen/compound-engineering-plugin/docs/css/style.css`
|
|
File without changes
|
/package/plugins/compound-engineering/{commands/ce/brainstorm.md → skills/ce-brainstorm/SKILL.md}
RENAMED
|
File without changes
|
/package/plugins/compound-engineering/{commands/ce/compound.md → skills/ce-compound/SKILL.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/compound-engineering/{commands/deepen-plan.md → skills/deepen-plan/SKILL.md}
RENAMED
|
File without changes
|
/package/plugins/compound-engineering/{commands/feature-video.md → skills/feature-video/SKILL.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/compound-engineering/{commands/reproduce-bug.md → skills/reproduce-bug/SKILL.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/compound-engineering/{commands/test-browser.md → skills/test-browser/SKILL.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/compound-engineering/{commands/workflows/plan.md → skills/workflows-plan/SKILL.md}
RENAMED
|
File without changes
|
|
File without changes
|
/package/plugins/compound-engineering/{commands/workflows/work.md → skills/workflows-work/SKILL.md}
RENAMED
|
File without changes
|