@every-env/compound-plugin 0.1.0 → 0.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 (65) hide show
  1. package/.claude/commands/triage-prs.md +193 -0
  2. package/.claude-plugin/marketplace.json +4 -4
  3. package/.github/workflows/ci.yml +25 -0
  4. package/README.md +25 -4
  5. package/docs/index.html +14 -14
  6. package/docs/pages/changelog.html +1 -1
  7. package/docs/pages/getting-started.html +1 -1
  8. package/docs/plans/2026-02-08-feat-pr-triage-and-merge-plan.md +128 -0
  9. package/package.json +1 -1
  10. package/plans/grow-your-own-garden-plugin-architecture.md +1 -1
  11. package/plugins/compound-engineering/.claude-plugin/plugin.json +3 -3
  12. package/plugins/compound-engineering/CHANGELOG.md +32 -0
  13. package/plugins/compound-engineering/CLAUDE.md +3 -4
  14. package/plugins/compound-engineering/README.md +20 -7
  15. package/plugins/compound-engineering/agents/research/best-practices-researcher.md +14 -3
  16. package/plugins/compound-engineering/agents/research/framework-docs-researcher.md +11 -3
  17. package/plugins/compound-engineering/agents/research/git-history-analyzer.md +2 -0
  18. package/plugins/compound-engineering/agents/research/learnings-researcher.md +243 -0
  19. package/plugins/compound-engineering/agents/research/repo-research-analyst.md +5 -4
  20. package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +1 -0
  21. package/plugins/compound-engineering/agents/review/pattern-recognition-specialist.md +1 -1
  22. package/plugins/compound-engineering/agents/review/schema-drift-detector.md +139 -0
  23. package/plugins/compound-engineering/commands/deepen-plan.md +5 -5
  24. package/plugins/compound-engineering/commands/report-bug.md +3 -3
  25. package/plugins/compound-engineering/commands/resolve_todo_parallel.md +2 -0
  26. package/plugins/compound-engineering/commands/slfg.md +31 -0
  27. package/plugins/compound-engineering/commands/technical_review.md +7 -0
  28. package/plugins/compound-engineering/commands/workflows/brainstorm.md +124 -0
  29. package/plugins/compound-engineering/commands/workflows/compound.md +64 -27
  30. package/plugins/compound-engineering/commands/workflows/plan.md +127 -42
  31. package/plugins/compound-engineering/commands/workflows/review.md +12 -0
  32. package/plugins/compound-engineering/commands/workflows/work.md +72 -2
  33. package/plugins/compound-engineering/skills/brainstorming/SKILL.md +190 -0
  34. package/plugins/compound-engineering/skills/compound-docs/SKILL.md +9 -9
  35. package/plugins/compound-engineering/skills/compound-docs/assets/critical-pattern-template.md +1 -1
  36. package/plugins/compound-engineering/skills/compound-docs/assets/resolution-template.md +3 -3
  37. package/plugins/compound-engineering/skills/compound-docs/references/yaml-schema.md +1 -1
  38. package/plugins/compound-engineering/skills/create-agent-skills/SKILL.md +168 -192
  39. package/plugins/compound-engineering/skills/create-agent-skills/references/official-spec.md +74 -125
  40. package/plugins/compound-engineering/skills/create-agent-skills/references/skill-structure.md +109 -329
  41. package/plugins/compound-engineering/skills/document-review/SKILL.md +87 -0
  42. package/plugins/compound-engineering/skills/git-worktree/scripts/worktree-manager.sh +2 -10
  43. package/plugins/compound-engineering/skills/orchestrating-swarms/SKILL.md +1717 -0
  44. package/plugins/compound-engineering/skills/resolve-pr-parallel/SKILL.md +89 -0
  45. package/plugins/compound-engineering/skills/resolve-pr-parallel/scripts/get-pr-comments +68 -0
  46. package/plugins/compound-engineering/skills/resolve-pr-parallel/scripts/resolve-pr-thread +23 -0
  47. package/src/commands/install.ts +3 -1
  48. package/src/commands/sync.ts +84 -0
  49. package/src/converters/claude-to-codex.ts +59 -2
  50. package/src/converters/claude-to-opencode.ts +7 -5
  51. package/src/index.ts +2 -0
  52. package/src/parsers/claude-home.ts +65 -0
  53. package/src/sync/codex.ts +92 -0
  54. package/src/sync/opencode.ts +75 -0
  55. package/src/targets/codex.ts +7 -2
  56. package/src/targets/opencode.ts +11 -2
  57. package/src/types/claude.ts +1 -1
  58. package/src/utils/files.ts +13 -0
  59. package/src/utils/symlink.ts +43 -0
  60. package/tests/cli.test.ts +7 -5
  61. package/tests/codex-converter.test.ts +83 -0
  62. package/tests/codex-writer.test.ts +32 -0
  63. package/tests/opencode-writer.test.ts +57 -0
  64. package/plugins/compound-engineering/commands/plan_review.md +0 -7
  65. package/plugins/compound-engineering/commands/resolve_pr_parallel.md +0 -49
@@ -1,21 +1,35 @@
1
1
  ---
2
- name: creating-agent-skills
3
- description: Expert guidance for creating, writing, and refining Claude Code Skills. Use when working with SKILL.md files, authoring new skills, improving existing skills, or understanding skill structure and best practices.
2
+ name: create-agent-skills
3
+ description: Expert guidance for creating Claude Code skills and slash commands. Use when working with SKILL.md files, authoring new skills, improving existing skills, creating slash commands, or understanding skill structure and best practices.
4
4
  ---
5
5
 
6
- # Creating Agent Skills
6
+ # Creating Skills & Commands
7
7
 
8
- This skill teaches how to create effective Claude Code Skills following Anthropic's official specification.
8
+ This skill teaches how to create effective Claude Code skills following the official specification from [code.claude.com/docs/en/skills](https://code.claude.com/docs/en/skills).
9
9
 
10
- ## Core Principles
10
+ ## Commands and Skills Are Now The Same Thing
11
11
 
12
- ### 1. Skills Are Prompts
12
+ Custom slash commands have been merged into skills. A file at `.claude/commands/review.md` and a skill at `.claude/skills/review/SKILL.md` both create `/review` and work the same way. Existing `.claude/commands/` files keep working. Skills add optional features: a directory for supporting files, frontmatter to control invocation, and automatic context loading.
13
13
 
14
- All prompting best practices apply. Be clear, be direct. Assume Claude is smart - only add context Claude doesn't have.
14
+ **If a skill and a command share the same name, the skill takes precedence.**
15
15
 
16
- ### 2. Standard Markdown Format
16
+ ## When To Create What
17
17
 
18
- Use YAML frontmatter + markdown body. **No XML tags** - use standard markdown headings.
18
+ **Use a command file** (`commands/name.md`) when:
19
+ - Simple, single-file workflow
20
+ - No supporting files needed
21
+ - Task-oriented action (deploy, commit, triage)
22
+
23
+ **Use a skill directory** (`skills/name/SKILL.md`) when:
24
+ - Need supporting reference files, scripts, or templates
25
+ - Background knowledge Claude should auto-load
26
+ - Complex enough to benefit from progressive disclosure
27
+
28
+ Both use identical YAML frontmatter and markdown content format.
29
+
30
+ ## Standard Markdown Format
31
+
32
+ Use YAML frontmatter + markdown body with **standard markdown headings**. Keep it clean and direct.
19
33
 
20
34
  ```markdown
21
35
  ---
@@ -35,265 +49,227 @@ Step-by-step procedures...
35
49
  Concrete usage examples...
36
50
  ```
37
51
 
38
- ### 3. Progressive Disclosure
52
+ ## Frontmatter Reference
39
53
 
40
- Keep SKILL.md under 500 lines. Split detailed content into reference files. Load only what's needed.
54
+ All fields are optional. Only `description` is recommended.
41
55
 
42
- ```
43
- my-skill/
44
- ├── SKILL.md # Entry point (required)
45
- ├── reference.md # Detailed docs (loaded when needed)
46
- ├── examples.md # Usage examples
47
- └── scripts/ # Utility scripts (executed, not loaded)
48
- ```
56
+ | Field | Required | Description |
57
+ |-------|----------|-------------|
58
+ | `name` | No | Display name. Lowercase letters, numbers, hyphens (max 64 chars). Defaults to directory name. |
59
+ | `description` | Recommended | What it does AND when to use it. Claude uses this for auto-discovery. Max 1024 chars. |
60
+ | `argument-hint` | No | Hint shown during autocomplete. Example: `[issue-number]` |
61
+ | `disable-model-invocation` | No | Set `true` to prevent Claude auto-loading. Use for manual workflows like `/deploy`, `/commit`. Default: `false`. |
62
+ | `user-invocable` | No | Set `false` to hide from `/` menu. Use for background knowledge. Default: `true`. |
63
+ | `allowed-tools` | No | Tools Claude can use without permission prompts. Example: `Read, Bash(git *)` |
64
+ | `model` | No | Model to use. Options: `haiku`, `sonnet`, `opus`. |
65
+ | `context` | No | Set `fork` to run in isolated subagent context. |
66
+ | `agent` | No | Subagent type when `context: fork`. Options: `Explore`, `Plan`, `general-purpose`, or custom agent name. |
49
67
 
50
- ### 4. Effective Descriptions
68
+ ### Invocation Control
51
69
 
52
- The description field enables skill discovery. Include both what the skill does AND when to use it. Write in third person.
70
+ | Frontmatter | User can invoke | Claude can invoke | When loaded |
71
+ |-------------|----------------|-------------------|-------------|
72
+ | (default) | Yes | Yes | Description always in context, full content loads when invoked |
73
+ | `disable-model-invocation: true` | Yes | No | Description not in context, loads only when user invokes |
74
+ | `user-invocable: false` | No | Yes | Description always in context, loads when relevant |
75
+
76
+ **Use `disable-model-invocation: true`** for workflows with side effects: `/deploy`, `/commit`, `/triage-prs`, `/send-slack-message`. You don't want Claude deciding to deploy because your code looks ready.
77
+
78
+ **Use `user-invocable: false`** for background knowledge that isn't a meaningful user action: coding conventions, domain context, legacy system docs.
79
+
80
+ ## Dynamic Features
81
+
82
+ ### Arguments
83
+
84
+ Use `$ARGUMENTS` placeholder for user input. If not present in content, arguments are appended automatically.
53
85
 
54
- **Good:**
55
86
  ```yaml
56
- description: Extracts text and tables from PDF files, fills forms, merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
87
+ ---
88
+ name: fix-issue
89
+ description: Fix a GitHub issue
90
+ disable-model-invocation: true
91
+ ---
92
+
93
+ Fix GitHub issue $ARGUMENTS following our coding standards.
57
94
  ```
58
95
 
59
- **Bad:**
96
+ Access individual args: `$ARGUMENTS[0]` or shorthand `$0`, `$1`, `$2`.
97
+
98
+ ### Dynamic Context Injection
99
+
100
+ The `` !`command` `` syntax runs shell commands before content is sent to Claude:
101
+
60
102
  ```yaml
61
- description: Helps with documents
62
- ```
103
+ ---
104
+ name: pr-summary
105
+ description: Summarize changes in a pull request
106
+ context: fork
107
+ agent: Explore
108
+ ---
63
109
 
64
- ## Skill Structure
110
+ ## Context
111
+ - PR diff: !`gh pr diff`
112
+ - Changed files: !`gh pr diff --name-only`
65
113
 
66
- ### Required Frontmatter
114
+ Summarize this pull request...
115
+ ```
67
116
 
68
- | Field | Required | Max Length | Description |
69
- |-------|----------|------------|-------------|
70
- | `name` | Yes | 64 chars | Lowercase letters, numbers, hyphens only |
71
- | `description` | Yes | 1024 chars | What it does AND when to use it |
72
- | `allowed-tools` | No | - | Tools Claude can use without asking |
73
- | `model` | No | - | Specific model to use |
117
+ ### Running in a Subagent
74
118
 
75
- ### Naming Conventions
119
+ Add `context: fork` to run in isolation. The skill content becomes the subagent's prompt. It won't have conversation history.
76
120
 
77
- Use **gerund form** (verb + -ing) for skill names:
121
+ ```yaml
122
+ ---
123
+ name: deep-research
124
+ description: Research a topic thoroughly
125
+ context: fork
126
+ agent: Explore
127
+ ---
78
128
 
79
- - `processing-pdfs`
80
- - `analyzing-spreadsheets`
81
- - `generating-commit-messages`
82
- - `reviewing-code`
129
+ Research $ARGUMENTS thoroughly:
130
+ 1. Find relevant files
131
+ 2. Analyze the code
132
+ 3. Summarize findings
133
+ ```
83
134
 
84
- Avoid: `helper`, `utils`, `tools`, `anthropic-*`, `claude-*`
135
+ ## Progressive Disclosure
85
136
 
86
- ### Body Structure
137
+ Keep SKILL.md under 500 lines. Split detailed content into reference files:
87
138
 
88
- Use standard markdown headings:
139
+ ```
140
+ my-skill/
141
+ ├── SKILL.md # Entry point (required, overview + navigation)
142
+ ├── reference.md # Detailed docs (loaded when needed)
143
+ ├── examples.md # Usage examples (loaded when needed)
144
+ └── scripts/
145
+ └── helper.py # Utility script (executed, not loaded)
146
+ ```
89
147
 
90
- ```markdown
91
- # Skill Name
148
+ Link from SKILL.md: `For API details, see [reference.md](reference.md).`
92
149
 
93
- ## Quick Start
94
- Fastest path to value...
150
+ Keep references **one level deep** from SKILL.md. Avoid nested chains.
95
151
 
96
- ## Instructions
97
- Core guidance Claude follows...
152
+ ## Effective Descriptions
98
153
 
99
- ## Examples
100
- Input/output pairs showing expected behavior...
154
+ The description enables skill discovery. Include both **what** it does and **when** to use it.
101
155
 
102
- ## Advanced Features
103
- Additional capabilities (link to reference files)...
156
+ **Good:**
157
+ ```yaml
158
+ description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
159
+ ```
104
160
 
105
- ## Guidelines
106
- Rules and constraints...
161
+ **Bad:**
162
+ ```yaml
163
+ description: Helps with documents
107
164
  ```
108
165
 
109
166
  ## What Would You Like To Do?
110
167
 
111
168
  1. **Create new skill** - Build from scratch
112
- 2. **Audit existing skill** - Check against best practices
113
- 3. **Add component** - Add workflow/reference/example
114
- 4. **Get guidance** - Understand skill design
169
+ 2. **Create new command** - Build a slash command
170
+ 3. **Audit existing skill** - Check against best practices
171
+ 4. **Add component** - Add workflow/reference/example
172
+ 5. **Get guidance** - Understand skill design
115
173
 
116
- ## Creating a New Skill
174
+ ## Creating a New Skill or Command
117
175
 
118
176
  ### Step 1: Choose Type
119
177
 
120
- **Simple skill (single file):**
121
- - Under 500 lines
122
- - Self-contained guidance
123
- - No complex workflows
178
+ Ask: Is this a manual workflow (deploy, commit, triage) or background knowledge (conventions, patterns)?
124
179
 
125
- **Progressive disclosure skill (multiple files):**
126
- - SKILL.md as overview
127
- - Reference files for detailed docs
128
- - Scripts for utilities
180
+ - **Manual workflow** command with `disable-model-invocation: true`
181
+ - **Background knowledge** → skill without `disable-model-invocation`
182
+ - **Complex with supporting files** skill directory
129
183
 
130
- ### Step 2: Create SKILL.md
184
+ ### Step 2: Create the File
131
185
 
186
+ **Command:**
132
187
  ```markdown
133
188
  ---
134
- name: your-skill-name
135
- description: [What it does]. Use when [trigger conditions].
189
+ name: my-command
190
+ description: What this command does
191
+ argument-hint: [expected arguments]
192
+ disable-model-invocation: true
193
+ allowed-tools: Bash(gh *), Read
136
194
  ---
137
195
 
138
- # Your Skill Name
196
+ # Command Title
139
197
 
140
- ## Quick Start
198
+ ## Workflow
141
199
 
142
- [Immediate actionable example]
200
+ ### Step 1: Gather Context
201
+ ...
143
202
 
144
- ```[language]
145
- [Code example]
146
- ```
203
+ ### Step 2: Execute
204
+ ...
147
205
 
148
- ## Instructions
206
+ ## Success Criteria
207
+ - [ ] Expected outcome 1
208
+ - [ ] Expected outcome 2
209
+ ```
149
210
 
150
- [Core guidance]
211
+ **Skill:**
212
+ ```markdown
213
+ ---
214
+ name: my-skill
215
+ description: What it does. Use when [trigger conditions].
216
+ ---
151
217
 
152
- ## Examples
218
+ # Skill Title
153
219
 
154
- **Example 1:**
155
- Input: [description]
156
- Output:
157
- ```
158
- [result]
159
- ```
220
+ ## Quick Start
221
+ [Immediate actionable example]
160
222
 
161
- ## Guidelines
223
+ ## Instructions
224
+ [Core guidance]
162
225
 
163
- - [Constraint 1]
164
- - [Constraint 2]
226
+ ## Examples
227
+ [Concrete input/output pairs]
165
228
  ```
166
229
 
167
230
  ### Step 3: Add Reference Files (If Needed)
168
231
 
169
232
  Link from SKILL.md to detailed content:
170
-
171
- ```markdown
172
- For API reference, see [REFERENCE.md](REFERENCE.md).
173
- For form filling guide, see [FORMS.md](FORMS.md).
174
- ```
175
-
176
- Keep references **one level deep** from SKILL.md.
177
-
178
- ### Step 4: Add Scripts (If Needed)
179
-
180
- Scripts execute without loading into context:
181
-
182
233
  ```markdown
183
- ## Utility Scripts
184
-
185
- Extract fields:
186
- ```bash
187
- python scripts/analyze.py input.pdf > fields.json
188
- ```
234
+ For API reference, see [reference.md](reference.md).
235
+ For form filling guide, see [forms.md](forms.md).
189
236
  ```
190
237
 
191
- ### Step 5: Test With Real Usage
238
+ ### Step 4: Test With Real Usage
192
239
 
193
240
  1. Test with actual tasks, not test scenarios
194
- 2. Observe where Claude struggles
195
- 3. Refine based on real behavior
196
- 4. Test with Haiku, Sonnet, and Opus
197
-
198
- ## Auditing Existing Skills
241
+ 2. Invoke directly with `/skill-name` to verify
242
+ 3. Check auto-triggering by asking something that matches the description
243
+ 4. Refine based on real behavior
199
244
 
200
- Check against this rubric:
245
+ ## Audit Checklist
201
246
 
202
247
  - [ ] Valid YAML frontmatter (name + description)
203
- - [ ] Description includes trigger keywords
248
+ - [ ] Description includes trigger keywords and is specific
204
249
  - [ ] Uses standard markdown headings (not XML tags)
205
250
  - [ ] SKILL.md under 500 lines
206
- - [ ] References one level deep
251
+ - [ ] `disable-model-invocation: true` if it has side effects
252
+ - [ ] `allowed-tools` set if specific tools needed
253
+ - [ ] References one level deep, properly linked
207
254
  - [ ] Examples are concrete, not abstract
208
- - [ ] Consistent terminology
209
- - [ ] No time-sensitive information
210
- - [ ] Scripts handle errors explicitly
211
-
212
- ## Common Patterns
213
-
214
- ### Template Pattern
215
-
216
- Provide output templates for consistent results:
217
-
218
- ```markdown
219
- ## Report Template
220
-
221
- ```markdown
222
- # [Analysis Title]
223
-
224
- ## Executive Summary
225
- [One paragraph overview]
226
-
227
- ## Key Findings
228
- - Finding 1
229
- - Finding 2
230
-
231
- ## Recommendations
232
- 1. [Action item]
233
- 2. [Action item]
234
- ```
235
- ```
236
-
237
- ### Workflow Pattern
238
-
239
- For complex multi-step tasks:
240
-
241
- ```markdown
242
- ## Migration Workflow
243
-
244
- Copy this checklist:
245
-
246
- ```
247
- - [ ] Step 1: Backup database
248
- - [ ] Step 2: Run migration script
249
- - [ ] Step 3: Validate output
250
- - [ ] Step 4: Update configuration
251
- ```
252
-
253
- **Step 1: Backup database**
254
- Run: `./scripts/backup.sh`
255
- ...
256
- ```
257
-
258
- ### Conditional Pattern
259
-
260
- Guide through decision points:
261
-
262
- ```markdown
263
- ## Choose Your Approach
264
-
265
- **Creating new content?** Follow "Creation workflow" below.
266
- **Editing existing?** Follow "Editing workflow" below.
267
- ```
255
+ - [ ] Tested with real usage
268
256
 
269
257
  ## Anti-Patterns to Avoid
270
258
 
271
- - **XML tags in body** - Use markdown headings instead
259
+ - **XML tags in body** - Use standard markdown headings
272
260
  - **Vague descriptions** - Be specific with trigger keywords
273
261
  - **Deep nesting** - Keep references one level from SKILL.md
262
+ - **Missing invocation control** - Side-effect workflows need `disable-model-invocation: true`
274
263
  - **Too many options** - Provide a default with escape hatch
275
- - **Windows paths** - Always use forward slashes
276
- - **Punting to Claude** - Scripts should handle errors
277
- - **Time-sensitive info** - Use "old patterns" section instead
264
+ - **Punting to Claude** - Scripts should handle errors explicitly
278
265
 
279
266
  ## Reference Files
280
267
 
281
268
  For detailed guidance, see:
282
-
283
- - [official-spec.md](references/official-spec.md) - Anthropic's official skill specification
269
+ - [official-spec.md](references/official-spec.md) - Official skill specification
284
270
  - [best-practices.md](references/best-practices.md) - Skill authoring best practices
285
271
 
286
- ## Success Criteria
272
+ ## Sources
287
273
 
288
- A well-structured skill:
289
- - Has valid YAML frontmatter with descriptive name and description
290
- - Uses standard markdown headings (not XML tags)
291
- - Keeps SKILL.md under 500 lines
292
- - Links to reference files for detailed content
293
- - Includes concrete examples with input/output pairs
294
- - Has been tested with real usage
295
-
296
- Sources:
297
- - [Agent Skills - Claude Code Docs](https://code.claude.com/docs/en/skills)
298
- - [Skill authoring best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
274
+ - [Extend Claude with skills - Official Docs](https://code.claude.com/docs/en/skills)
299
275
  - [GitHub - anthropics/skills](https://github.com/anthropics/skills)