@every-env/compound-plugin 0.1.1 → 0.3.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.
- package/.claude/commands/triage-prs.md +193 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/.github/workflows/ci.yml +25 -0
- package/README.md +22 -1
- package/docs/plans/2026-02-08-feat-pr-triage-and-merge-plan.md +128 -0
- package/docs/plans/2026-02-08-refactor-reduce-plugin-context-token-usage-plan.md +212 -0
- package/package.json +1 -1
- package/plans/grow-your-own-garden-plugin-architecture.md +1 -1
- package/plugins/compound-engineering/.claude-plugin/plugin.json +2 -2
- package/plugins/compound-engineering/CHANGELOG.md +58 -0
- package/plugins/compound-engineering/CLAUDE.md +3 -4
- package/plugins/compound-engineering/README.md +19 -7
- package/plugins/compound-engineering/agents/design/design-implementation-reviewer.md +16 -1
- package/plugins/compound-engineering/agents/design/design-iterator.md +28 -1
- package/plugins/compound-engineering/agents/design/figma-design-sync.md +19 -1
- package/plugins/compound-engineering/agents/docs/ankane-readme-writer.md +16 -1
- package/plugins/compound-engineering/agents/research/best-practices-researcher.md +16 -1
- package/plugins/compound-engineering/agents/research/framework-docs-researcher.md +16 -1
- package/plugins/compound-engineering/agents/research/git-history-analyzer.md +18 -1
- package/plugins/compound-engineering/agents/research/learnings-researcher.md +24 -3
- package/plugins/compound-engineering/agents/research/repo-research-analyst.md +22 -1
- package/plugins/compound-engineering/agents/review/agent-native-reviewer.md +16 -1
- package/plugins/compound-engineering/agents/review/architecture-strategist.md +16 -1
- package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +17 -1
- package/plugins/compound-engineering/agents/review/data-integrity-guardian.md +16 -1
- package/plugins/compound-engineering/agents/review/data-migration-expert.md +16 -1
- package/plugins/compound-engineering/agents/review/deployment-verification-agent.md +16 -1
- package/plugins/compound-engineering/agents/review/dhh-rails-reviewer.md +22 -1
- package/plugins/compound-engineering/agents/review/julik-frontend-races-reviewer.md +20 -21
- package/plugins/compound-engineering/agents/review/kieran-python-reviewer.md +30 -1
- package/plugins/compound-engineering/agents/review/kieran-rails-reviewer.md +30 -1
- package/plugins/compound-engineering/agents/review/kieran-typescript-reviewer.md +30 -1
- package/plugins/compound-engineering/agents/review/pattern-recognition-specialist.md +16 -1
- package/plugins/compound-engineering/agents/review/performance-oracle.md +28 -1
- package/plugins/compound-engineering/agents/review/schema-drift-detector.md +154 -0
- package/plugins/compound-engineering/agents/review/security-sentinel.md +22 -1
- package/plugins/compound-engineering/agents/workflow/bug-reproduction-validator.md +16 -1
- package/plugins/compound-engineering/agents/workflow/every-style-editor.md +1 -1
- package/plugins/compound-engineering/agents/workflow/pr-comment-resolver.md +16 -1
- package/plugins/compound-engineering/agents/workflow/spec-flow-analyzer.md +22 -1
- package/plugins/compound-engineering/commands/agent-native-audit.md +1 -0
- package/plugins/compound-engineering/commands/changelog.md +1 -0
- package/plugins/compound-engineering/commands/create-agent-skill.md +1 -0
- package/plugins/compound-engineering/commands/deepen-plan.md +2 -2
- package/plugins/compound-engineering/commands/deploy-docs.md +1 -0
- package/plugins/compound-engineering/commands/generate_command.md +1 -0
- package/plugins/compound-engineering/commands/heal-skill.md +1 -0
- package/plugins/compound-engineering/commands/lfg.md +1 -0
- package/plugins/compound-engineering/commands/release-docs.md +1 -0
- package/plugins/compound-engineering/commands/report-bug.md +1 -0
- package/plugins/compound-engineering/commands/reproduce-bug.md +1 -0
- package/plugins/compound-engineering/commands/resolve_parallel.md +1 -0
- package/plugins/compound-engineering/commands/resolve_todo_parallel.md +2 -0
- package/plugins/compound-engineering/commands/slfg.md +32 -0
- package/plugins/compound-engineering/commands/technical_review.md +8 -0
- package/plugins/compound-engineering/commands/{xcode-test.md → test-xcode.md} +2 -1
- package/plugins/compound-engineering/commands/triage.md +1 -0
- package/plugins/compound-engineering/commands/workflows/brainstorm.md +11 -2
- package/plugins/compound-engineering/commands/workflows/compound.md +64 -27
- package/plugins/compound-engineering/commands/workflows/plan.md +9 -9
- package/plugins/compound-engineering/commands/workflows/review.md +12 -0
- package/plugins/compound-engineering/commands/workflows/work.md +71 -1
- package/plugins/compound-engineering/skills/compound-docs/SKILL.md +9 -8
- package/plugins/compound-engineering/skills/compound-docs/assets/critical-pattern-template.md +1 -1
- package/plugins/compound-engineering/skills/compound-docs/assets/resolution-template.md +3 -3
- package/plugins/compound-engineering/skills/compound-docs/references/yaml-schema.md +1 -1
- package/plugins/compound-engineering/skills/create-agent-skills/SKILL.md +168 -192
- package/plugins/compound-engineering/skills/create-agent-skills/references/official-spec.md +74 -125
- package/plugins/compound-engineering/skills/create-agent-skills/references/skill-structure.md +109 -329
- package/plugins/compound-engineering/skills/document-review/SKILL.md +87 -0
- package/plugins/compound-engineering/skills/file-todos/SKILL.md +1 -0
- package/plugins/compound-engineering/skills/git-worktree/scripts/worktree-manager.sh +2 -10
- package/plugins/compound-engineering/skills/orchestrating-swarms/SKILL.md +1718 -0
- package/plugins/compound-engineering/skills/resolve-pr-parallel/SKILL.md +89 -0
- package/plugins/compound-engineering/skills/resolve-pr-parallel/scripts/get-pr-comments +68 -0
- package/plugins/compound-engineering/skills/resolve-pr-parallel/scripts/resolve-pr-thread +23 -0
- package/plugins/compound-engineering/skills/skill-creator/SKILL.md +1 -0
- package/src/commands/sync.ts +84 -0
- package/src/converters/claude-to-codex.ts +61 -3
- package/src/converters/claude-to-opencode.ts +8 -5
- package/src/index.ts +2 -0
- package/src/parsers/claude-home.ts +65 -0
- package/src/parsers/claude.ts +4 -0
- package/src/sync/codex.ts +92 -0
- package/src/sync/opencode.ts +75 -0
- package/src/targets/codex.ts +7 -2
- package/src/targets/opencode.ts +6 -1
- package/src/types/claude.ts +3 -1
- package/src/utils/files.ts +13 -0
- package/src/utils/symlink.ts +43 -0
- package/tests/claude-parser.test.ts +24 -2
- package/tests/codex-converter.test.ts +121 -0
- package/tests/codex-writer.test.ts +32 -0
- package/tests/converter.test.ts +15 -0
- package/tests/fixtures/sample-plugin/commands/disabled-command.md +7 -0
- package/tests/fixtures/sample-plugin/skills/disabled-skill/SKILL.md +7 -0
- package/tests/opencode-writer.test.ts +32 -0
- package/plugins/compound-engineering/commands/plan_review.md +0 -7
- package/plugins/compound-engineering/commands/resolve_pr_parallel.md +0 -49
package/plugins/compound-engineering/skills/create-agent-skills/references/skill-structure.md
CHANGED
|
@@ -1,372 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
Skills have three structural components: YAML frontmatter (metadata), pure XML body structure (content organization), and progressive disclosure (file organization). This reference defines requirements and best practices for each component.
|
|
3
|
-
</overview>
|
|
4
|
-
|
|
5
|
-
<xml_structure_requirements>
|
|
6
|
-
<critical_rule>
|
|
7
|
-
**Remove ALL markdown headings (#, ##, ###) from skill body content.** Replace with semantic XML tags. Keep markdown formatting WITHIN content (bold, italic, lists, code blocks, links).
|
|
8
|
-
</critical_rule>
|
|
9
|
-
|
|
10
|
-
<required_tags>
|
|
11
|
-
Every skill MUST have these three tags:
|
|
12
|
-
|
|
13
|
-
- **`<objective>`** - What the skill does and why it matters (1-3 paragraphs)
|
|
14
|
-
- **`<quick_start>`** - Immediate, actionable guidance (minimal working example)
|
|
15
|
-
- **`<success_criteria>`** or **`<when_successful>`** - How to know it worked
|
|
16
|
-
</required_tags>
|
|
17
|
-
|
|
18
|
-
<conditional_tags>
|
|
19
|
-
Add based on skill complexity and domain requirements:
|
|
20
|
-
|
|
21
|
-
- **`<context>`** - Background/situational information
|
|
22
|
-
- **`<workflow>` or `<process>`** - Step-by-step procedures
|
|
23
|
-
- **`<advanced_features>`** - Deep-dive topics (progressive disclosure)
|
|
24
|
-
- **`<validation>`** - How to verify outputs
|
|
25
|
-
- **`<examples>`** - Multi-shot learning
|
|
26
|
-
- **`<anti_patterns>`** - Common mistakes to avoid
|
|
27
|
-
- **`<security_checklist>`** - Non-negotiable security patterns
|
|
28
|
-
- **`<testing>`** - Testing workflows
|
|
29
|
-
- **`<common_patterns>`** - Code examples and recipes
|
|
30
|
-
- **`<reference_guides>` or `<detailed_references>`** - Links to reference files
|
|
31
|
-
|
|
32
|
-
See [use-xml-tags.md](use-xml-tags.md) for detailed guidance on each tag.
|
|
33
|
-
</conditional_tags>
|
|
34
|
-
|
|
35
|
-
<tag_selection_intelligence>
|
|
36
|
-
**Simple skills** (single domain, straightforward):
|
|
37
|
-
- Required tags only
|
|
38
|
-
- Example: Text extraction, file format conversion
|
|
39
|
-
|
|
40
|
-
**Medium skills** (multiple patterns, some complexity):
|
|
41
|
-
- Required tags + workflow/examples as needed
|
|
42
|
-
- Example: Document processing with steps, API integration
|
|
43
|
-
|
|
44
|
-
**Complex skills** (multiple domains, security, APIs):
|
|
45
|
-
- Required tags + conditional tags as appropriate
|
|
46
|
-
- Example: Payment processing, authentication systems, multi-step workflows
|
|
47
|
-
</tag_selection_intelligence>
|
|
48
|
-
|
|
49
|
-
<xml_nesting>
|
|
50
|
-
Properly nest XML tags for hierarchical content:
|
|
51
|
-
|
|
52
|
-
```xml
|
|
53
|
-
<examples>
|
|
54
|
-
<example number="1">
|
|
55
|
-
<input>User input</input>
|
|
56
|
-
<output>Expected output</output>
|
|
57
|
-
</example>
|
|
58
|
-
</examples>
|
|
59
|
-
```
|
|
1
|
+
# Skill Structure Reference
|
|
60
2
|
|
|
61
|
-
|
|
62
|
-
```xml
|
|
63
|
-
<objective>
|
|
64
|
-
Content here
|
|
65
|
-
</objective>
|
|
66
|
-
```
|
|
67
|
-
</xml_nesting>
|
|
3
|
+
Skills have three structural components: YAML frontmatter (metadata), standard markdown body (content), and progressive disclosure (file organization).
|
|
68
4
|
|
|
69
|
-
|
|
70
|
-
Use descriptive, semantic names:
|
|
71
|
-
- `<workflow>` not `<steps>`
|
|
72
|
-
- `<success_criteria>` not `<done>`
|
|
73
|
-
- `<anti_patterns>` not `<dont_do>`
|
|
5
|
+
## Body Format
|
|
74
6
|
|
|
75
|
-
|
|
76
|
-
</tag_naming_conventions>
|
|
77
|
-
</xml_structure_requirements>
|
|
7
|
+
Use **standard markdown headings** for structure. Keep markdown formatting within content (bold, italic, lists, code blocks, links).
|
|
78
8
|
|
|
79
|
-
|
|
80
|
-
<required_fields>
|
|
81
|
-
```yaml
|
|
9
|
+
```markdown
|
|
82
10
|
---
|
|
83
|
-
name: skill
|
|
84
|
-
description: What it does and when to use it
|
|
11
|
+
name: my-skill
|
|
12
|
+
description: What it does and when to use it
|
|
85
13
|
---
|
|
86
|
-
```
|
|
87
|
-
</required_fields>
|
|
88
|
-
|
|
89
|
-
<name_field>
|
|
90
|
-
**Validation rules**:
|
|
91
|
-
- Maximum 64 characters
|
|
92
|
-
- Lowercase letters, numbers, hyphens only
|
|
93
|
-
- No XML tags
|
|
94
|
-
- No reserved words: "anthropic", "claude"
|
|
95
|
-
- Must match directory name exactly
|
|
96
|
-
|
|
97
|
-
**Examples**:
|
|
98
|
-
- ✅ `process-pdfs`
|
|
99
|
-
- ✅ `manage-facebook-ads`
|
|
100
|
-
- ✅ `setup-stripe-payments`
|
|
101
|
-
- ❌ `PDF_Processor` (uppercase)
|
|
102
|
-
- ❌ `helper` (vague)
|
|
103
|
-
- ❌ `claude-helper` (reserved word)
|
|
104
|
-
</name_field>
|
|
105
|
-
|
|
106
|
-
<description_field>
|
|
107
|
-
**Validation rules**:
|
|
108
|
-
- Non-empty, maximum 1024 characters
|
|
109
|
-
- No XML tags
|
|
110
|
-
- Third person (never first or second person)
|
|
111
|
-
- Include what it does AND when to use it
|
|
112
|
-
|
|
113
|
-
**Critical rule**: Always write in third person.
|
|
114
|
-
- ✅ "Processes Excel files and generates reports"
|
|
115
|
-
- ❌ "I can help you process Excel files"
|
|
116
|
-
- ❌ "You can use this to process Excel files"
|
|
117
14
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
**Effective examples**:
|
|
121
|
-
```yaml
|
|
122
|
-
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.
|
|
123
|
-
```
|
|
15
|
+
# Skill Name
|
|
124
16
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
```
|
|
17
|
+
## Quick Start
|
|
18
|
+
Immediate actionable guidance...
|
|
128
19
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
```
|
|
20
|
+
## Instructions
|
|
21
|
+
Step-by-step procedures...
|
|
132
22
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
description: Helps with documents
|
|
136
|
-
```
|
|
23
|
+
## Examples
|
|
24
|
+
Concrete usage examples...
|
|
137
25
|
|
|
138
|
-
|
|
139
|
-
|
|
26
|
+
## Guidelines
|
|
27
|
+
Rules and constraints...
|
|
140
28
|
```
|
|
141
|
-
</description_field>
|
|
142
|
-
</yaml_requirements>
|
|
143
29
|
|
|
144
|
-
|
|
145
|
-
Use **verb-noun convention** for skill names:
|
|
30
|
+
## Recommended Sections
|
|
146
31
|
|
|
147
|
-
|
|
148
|
-
Building/authoring tools
|
|
32
|
+
Every skill should have:
|
|
149
33
|
|
|
150
|
-
|
|
151
|
-
|
|
34
|
+
- **Quick Start** - Immediate, actionable guidance (minimal working example)
|
|
35
|
+
- **Instructions** - Core step-by-step guidance
|
|
36
|
+
- **Success Criteria** - How to know it worked
|
|
152
37
|
|
|
153
|
-
|
|
154
|
-
Managing external services or resources
|
|
38
|
+
Add based on complexity:
|
|
155
39
|
|
|
156
|
-
|
|
157
|
-
|
|
40
|
+
- **Context** - Background/situational information
|
|
41
|
+
- **Workflow** - Multi-step procedures
|
|
42
|
+
- **Examples** - Concrete input/output pairs
|
|
43
|
+
- **Advanced Features** - Deep-dive topics (link to reference files)
|
|
44
|
+
- **Anti-Patterns** - Common mistakes to avoid
|
|
45
|
+
- **Guidelines** - Rules and constraints
|
|
158
46
|
|
|
159
|
-
|
|
160
|
-
Configuration/integration tasks
|
|
161
|
-
|
|
162
|
-
Examples: `setup-stripe-payments`, `setup-meta-tracking`
|
|
163
|
-
</pattern>
|
|
164
|
-
|
|
165
|
-
<pattern name="generate">
|
|
166
|
-
Generation tasks
|
|
167
|
-
|
|
168
|
-
Examples: `generate-ai-images`
|
|
169
|
-
</pattern>
|
|
170
|
-
|
|
171
|
-
<avoid_patterns>
|
|
172
|
-
- Vague: `helper`, `utils`, `tools`
|
|
173
|
-
- Generic: `documents`, `data`, `files`
|
|
174
|
-
- Reserved words: `anthropic-helper`, `claude-tools`
|
|
175
|
-
- Inconsistent: Directory `facebook-ads` but name `facebook-ads-manager`
|
|
176
|
-
</avoid_patterns>
|
|
177
|
-
</naming_conventions>
|
|
178
|
-
|
|
179
|
-
<progressive_disclosure>
|
|
180
|
-
<principle>
|
|
181
|
-
SKILL.md serves as an overview that points to detailed materials as needed. This keeps context window usage efficient.
|
|
182
|
-
</principle>
|
|
183
|
-
|
|
184
|
-
<practical_guidance>
|
|
185
|
-
- Keep SKILL.md body under 500 lines
|
|
186
|
-
- Split content into separate files when approaching this limit
|
|
187
|
-
- Keep references one level deep from SKILL.md
|
|
188
|
-
- Add table of contents to reference files over 100 lines
|
|
189
|
-
</practical_guidance>
|
|
47
|
+
## YAML Frontmatter
|
|
190
48
|
|
|
191
|
-
|
|
192
|
-
Quick start in SKILL.md, details in reference files:
|
|
49
|
+
### Required/Recommended Fields
|
|
193
50
|
|
|
194
|
-
```
|
|
51
|
+
```yaml
|
|
195
52
|
---
|
|
196
|
-
name:
|
|
197
|
-
description:
|
|
53
|
+
name: skill-name-here
|
|
54
|
+
description: What it does and when to use it (specific triggers included)
|
|
198
55
|
---
|
|
199
|
-
|
|
200
|
-
<objective>
|
|
201
|
-
Extract text and tables from PDF files, fill forms, and merge documents using Python libraries.
|
|
202
|
-
</objective>
|
|
203
|
-
|
|
204
|
-
<quick_start>
|
|
205
|
-
Extract text with pdfplumber:
|
|
206
|
-
|
|
207
|
-
```python
|
|
208
|
-
import pdfplumber
|
|
209
|
-
with pdfplumber.open("file.pdf") as pdf:
|
|
210
|
-
text = pdf.pages[0].extract_text()
|
|
211
|
-
```
|
|
212
|
-
</quick_start>
|
|
213
|
-
|
|
214
|
-
<advanced_features>
|
|
215
|
-
**Form filling**: See [forms.md](forms.md)
|
|
216
|
-
**API reference**: See [reference.md](reference.md)
|
|
217
|
-
</advanced_features>
|
|
218
56
|
```
|
|
219
57
|
|
|
220
|
-
|
|
221
|
-
</pattern>
|
|
58
|
+
### Name Field
|
|
222
59
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
├── SKILL.md (overview and navigation)
|
|
229
|
-
└── reference/
|
|
230
|
-
├── finance.md (revenue, billing metrics)
|
|
231
|
-
├── sales.md (opportunities, pipeline)
|
|
232
|
-
├── product.md (API usage, features)
|
|
233
|
-
└── marketing.md (campaigns, attribution)
|
|
234
|
-
```
|
|
60
|
+
**Validation rules:**
|
|
61
|
+
- Maximum 64 characters
|
|
62
|
+
- Lowercase letters, numbers, hyphens only
|
|
63
|
+
- Must match directory name
|
|
64
|
+
- No reserved words: "anthropic", "claude"
|
|
235
65
|
|
|
236
|
-
|
|
237
|
-
|
|
66
|
+
**Examples:**
|
|
67
|
+
- `triage-prs`
|
|
68
|
+
- `deploy-production`
|
|
69
|
+
- `review-code`
|
|
70
|
+
- `setup-stripe-payments`
|
|
238
71
|
|
|
239
|
-
|
|
240
|
-
Show basic content in SKILL.md, link to advanced in reference files:
|
|
72
|
+
**Avoid:** `helper`, `utils`, `tools`, generic names
|
|
241
73
|
|
|
242
|
-
|
|
243
|
-
<objective>
|
|
244
|
-
Process DOCX files with creation and editing capabilities.
|
|
245
|
-
</objective>
|
|
74
|
+
### Description Field
|
|
246
75
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
76
|
+
**Validation rules:**
|
|
77
|
+
- Maximum 1024 characters
|
|
78
|
+
- Include what it does AND when to use it
|
|
79
|
+
- Third person voice
|
|
251
80
|
|
|
252
|
-
|
|
253
|
-
|
|
81
|
+
**Good:**
|
|
82
|
+
```yaml
|
|
83
|
+
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.
|
|
84
|
+
```
|
|
254
85
|
|
|
255
|
-
**
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
</quick_start>
|
|
86
|
+
**Bad:**
|
|
87
|
+
```yaml
|
|
88
|
+
description: Helps with documents
|
|
259
89
|
```
|
|
260
90
|
|
|
261
|
-
|
|
262
|
-
</pattern>
|
|
91
|
+
### Optional Fields
|
|
263
92
|
|
|
264
|
-
|
|
265
|
-
|
|
93
|
+
| Field | Description |
|
|
94
|
+
|-------|-------------|
|
|
95
|
+
| `argument-hint` | Usage hints. Example: `[issue-number]` |
|
|
96
|
+
| `disable-model-invocation` | `true` to prevent auto-loading. Use for side-effect workflows. |
|
|
97
|
+
| `user-invocable` | `false` to hide from `/` menu. Use for background knowledge. |
|
|
98
|
+
| `allowed-tools` | Tools without permission prompts. Example: `Read, Bash(git *)` |
|
|
99
|
+
| `model` | `haiku`, `sonnet`, or `opus` |
|
|
100
|
+
| `context` | `fork` for isolated subagent execution |
|
|
101
|
+
| `agent` | Subagent type: `Explore`, `Plan`, `general-purpose`, or custom |
|
|
266
102
|
|
|
267
|
-
|
|
103
|
+
## Naming Conventions
|
|
268
104
|
|
|
269
|
-
|
|
270
|
-
</critical_rules>
|
|
271
|
-
</progressive_disclosure>
|
|
105
|
+
Use descriptive names that indicate purpose:
|
|
272
106
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
107
|
+
| Pattern | Examples |
|
|
108
|
+
|---------|----------|
|
|
109
|
+
| Action-oriented | `triage-prs`, `deploy-production`, `review-code` |
|
|
110
|
+
| Domain-specific | `setup-stripe-payments`, `manage-facebook-ads` |
|
|
111
|
+
| Descriptive | `git-worktree`, `frontend-design`, `dhh-rails-style` |
|
|
276
112
|
|
|
277
|
-
|
|
278
|
-
- Name files descriptively: `form_validation_rules.md` (not `doc2.md`)
|
|
279
|
-
- Organize by domain: `reference/finance.md`, `reference/sales.md`
|
|
280
|
-
</filesystem_navigation>
|
|
113
|
+
## Progressive Disclosure
|
|
281
114
|
|
|
282
|
-
|
|
283
|
-
Typical skill structure:
|
|
115
|
+
Keep SKILL.md under 500 lines. Split into reference files:
|
|
284
116
|
|
|
285
117
|
```
|
|
286
|
-
skill
|
|
287
|
-
├── SKILL.md
|
|
288
|
-
├──
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
└── scripts/ (optional, for utility scripts)
|
|
293
|
-
├── validate.py
|
|
294
|
-
└── process.py
|
|
295
|
-
```
|
|
296
|
-
</directory_structure>
|
|
297
|
-
</file_organization>
|
|
298
|
-
|
|
299
|
-
<anti_patterns>
|
|
300
|
-
<pitfall name="markdown_headings_in_body">
|
|
301
|
-
❌ Do NOT use markdown headings in skill body:
|
|
302
|
-
|
|
303
|
-
```markdown
|
|
304
|
-
# PDF Processing
|
|
305
|
-
|
|
306
|
-
## Quick start
|
|
307
|
-
Extract text...
|
|
308
|
-
|
|
309
|
-
## Advanced features
|
|
310
|
-
Form filling...
|
|
118
|
+
my-skill/
|
|
119
|
+
├── SKILL.md # Entry point (required, overview + navigation)
|
|
120
|
+
├── reference.md # Detailed docs (loaded when needed)
|
|
121
|
+
├── examples.md # Usage examples (loaded when needed)
|
|
122
|
+
└── scripts/
|
|
123
|
+
└── helper.py # Utility script (executed, not loaded)
|
|
311
124
|
```
|
|
312
125
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
<pitfall name="wrong_naming_convention">
|
|
341
|
-
- ❌ Directory: `facebook-ads`, Name: `facebook-ads-manager`
|
|
342
|
-
- ✅ Directory: `manage-facebook-ads`, Name: `manage-facebook-ads`
|
|
343
|
-
- ❌ Directory: `stripe-integration`, Name: `stripe`
|
|
344
|
-
- ✅ Directory: `setup-stripe-payments`, Name: `setup-stripe-payments`
|
|
345
|
-
</pitfall>
|
|
346
|
-
|
|
347
|
-
<pitfall name="deeply_nested_references">
|
|
348
|
-
Keep references one level deep from SKILL.md. Claude may only partially read nested files (SKILL.md → advanced.md → details.md).
|
|
349
|
-
</pitfall>
|
|
350
|
-
|
|
351
|
-
<pitfall name="windows_paths">
|
|
352
|
-
Always use forward slashes: `scripts/helper.py` (not `scripts\helper.py`)
|
|
353
|
-
</pitfall>
|
|
354
|
-
|
|
355
|
-
<pitfall name="missing_required_tags">
|
|
356
|
-
Every skill must have: `<objective>`, `<quick_start>`, and `<success_criteria>` (or `<when_successful>`).
|
|
357
|
-
</pitfall>
|
|
358
|
-
</anti_patterns>
|
|
359
|
-
|
|
360
|
-
<validation_checklist>
|
|
361
|
-
Before finalizing a skill, verify:
|
|
362
|
-
|
|
363
|
-
- ✅ YAML frontmatter valid (name matches directory, description in third person)
|
|
364
|
-
- ✅ No markdown headings in body (pure XML structure)
|
|
365
|
-
- ✅ Required tags present: objective, quick_start, success_criteria
|
|
366
|
-
- ✅ Conditional tags appropriate for complexity level
|
|
367
|
-
- ✅ All XML tags properly closed
|
|
368
|
-
- ✅ Progressive disclosure applied (SKILL.md < 500 lines)
|
|
369
|
-
- ✅ Reference files use pure XML structure
|
|
370
|
-
- ✅ File paths use forward slashes
|
|
371
|
-
- ✅ Descriptive file names
|
|
372
|
-
</validation_checklist>
|
|
126
|
+
**Rules:**
|
|
127
|
+
- Keep references one level deep from SKILL.md
|
|
128
|
+
- Add table of contents to reference files over 100 lines
|
|
129
|
+
- Use forward slashes in paths: `scripts/helper.py`
|
|
130
|
+
- Name files descriptively: `form_validation_rules.md` not `doc2.md`
|
|
131
|
+
|
|
132
|
+
## Validation Checklist
|
|
133
|
+
|
|
134
|
+
Before finalizing:
|
|
135
|
+
|
|
136
|
+
- [ ] YAML frontmatter valid (name matches directory, description specific)
|
|
137
|
+
- [ ] Uses standard markdown headings (not XML tags)
|
|
138
|
+
- [ ] Has Quick Start, Instructions, and Success Criteria sections
|
|
139
|
+
- [ ] `disable-model-invocation: true` if skill has side effects
|
|
140
|
+
- [ ] SKILL.md under 500 lines
|
|
141
|
+
- [ ] Reference files linked properly from SKILL.md
|
|
142
|
+
- [ ] File paths use forward slashes
|
|
143
|
+
- [ ] Tested with real usage
|
|
144
|
+
|
|
145
|
+
## Anti-Patterns
|
|
146
|
+
|
|
147
|
+
- **XML tags in body** - Use standard markdown headings
|
|
148
|
+
- **Vague descriptions** - Be specific with trigger keywords
|
|
149
|
+
- **Deep nesting** - Keep references one level from SKILL.md
|
|
150
|
+
- **Missing invocation control** - Side-effect workflows need `disable-model-invocation: true`
|
|
151
|
+
- **Inconsistent naming** - Directory name must match `name` field
|
|
152
|
+
- **Windows paths** - Always use forward slashes
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: document-review
|
|
3
|
+
description: This skill should be used to refine brainstorm or plan documents before proceeding to the next workflow step. It applies when a brainstorm or plan document exists and the user wants to improve it.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Document Review
|
|
7
|
+
|
|
8
|
+
Improve brainstorm or plan documents through structured review.
|
|
9
|
+
|
|
10
|
+
## Step 1: Get the Document
|
|
11
|
+
|
|
12
|
+
**If a document path is provided:** Read it, then proceed to Step 2.
|
|
13
|
+
|
|
14
|
+
**If no document is specified:** Ask which document to review, or look for the most recent brainstorm/plan in `docs/brainstorms/` or `docs/plans/`.
|
|
15
|
+
|
|
16
|
+
## Step 2: Assess
|
|
17
|
+
|
|
18
|
+
Read through the document and ask:
|
|
19
|
+
|
|
20
|
+
- What is unclear?
|
|
21
|
+
- What is unnecessary?
|
|
22
|
+
- What decision is being avoided?
|
|
23
|
+
- What assumptions are unstated?
|
|
24
|
+
- Where could scope accidentally expand?
|
|
25
|
+
|
|
26
|
+
These questions surface issues. Don't fix yet—just note what you find.
|
|
27
|
+
|
|
28
|
+
## Step 3: Evaluate
|
|
29
|
+
|
|
30
|
+
Score the document against these criteria:
|
|
31
|
+
|
|
32
|
+
| Criterion | What to Check |
|
|
33
|
+
|-----------|---------------|
|
|
34
|
+
| **Clarity** | Problem statement is clear, no vague language ("probably," "consider," "try to") |
|
|
35
|
+
| **Completeness** | Required sections present, constraints stated, open questions flagged |
|
|
36
|
+
| **Specificity** | Concrete enough for next step (brainstorm → can plan, plan → can implement) |
|
|
37
|
+
| **YAGNI** | No hypothetical features, simplest approach chosen |
|
|
38
|
+
|
|
39
|
+
If invoked within a workflow (after `/workflows:brainstorm` or `/workflows:plan`), also check:
|
|
40
|
+
- **User intent fidelity** — Document reflects what was discussed, assumptions validated
|
|
41
|
+
|
|
42
|
+
## Step 4: Identify the Critical Improvement
|
|
43
|
+
|
|
44
|
+
Among everything found in Steps 2-3, does one issue stand out? If something would significantly improve the document's quality, this is the "must address" item. Highlight it prominently.
|
|
45
|
+
|
|
46
|
+
## Step 5: Make Changes
|
|
47
|
+
|
|
48
|
+
Present your findings, then:
|
|
49
|
+
|
|
50
|
+
1. **Auto-fix** minor issues (vague language, formatting) without asking
|
|
51
|
+
2. **Ask approval** before substantive changes (restructuring, removing sections, changing meaning)
|
|
52
|
+
3. **Update** the document inline—no separate files, no metadata sections
|
|
53
|
+
|
|
54
|
+
### Simplification Guidance
|
|
55
|
+
|
|
56
|
+
Simplification is purposeful removal of unnecessary complexity, not shortening for its own sake.
|
|
57
|
+
|
|
58
|
+
**Simplify when:**
|
|
59
|
+
- Content serves hypothetical future needs, not current ones
|
|
60
|
+
- Sections repeat information already covered elsewhere
|
|
61
|
+
- Detail exceeds what's needed to take the next step
|
|
62
|
+
- Abstractions or structure add overhead without clarity
|
|
63
|
+
|
|
64
|
+
**Don't simplify:**
|
|
65
|
+
- Constraints or edge cases that affect implementation
|
|
66
|
+
- Rationale that explains why alternatives were rejected
|
|
67
|
+
- Open questions that need resolution
|
|
68
|
+
|
|
69
|
+
## Step 6: Offer Next Action
|
|
70
|
+
|
|
71
|
+
After changes are complete, ask:
|
|
72
|
+
|
|
73
|
+
1. **Refine again** - Another review pass
|
|
74
|
+
2. **Review complete** - Document is ready
|
|
75
|
+
|
|
76
|
+
### Iteration Guidance
|
|
77
|
+
|
|
78
|
+
After 2 refinement passes, recommend completion—diminishing returns are likely. But if the user wants to continue, allow it.
|
|
79
|
+
|
|
80
|
+
Return control to the caller (workflow or user) after selection.
|
|
81
|
+
|
|
82
|
+
## What NOT to Do
|
|
83
|
+
|
|
84
|
+
- Do not rewrite the entire document
|
|
85
|
+
- Do not add new sections or requirements the user didn't discuss
|
|
86
|
+
- Do not over-engineer or add complexity
|
|
87
|
+
- Do not create separate review files or add metadata sections
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: file-todos
|
|
3
3
|
description: This skill should be used when managing the file-based todo tracking system in the todos/ directory. It provides workflows for creating todos, managing status and dependencies, conducting triage, and integrating with slash commands and code review processes.
|
|
4
|
+
disable-model-invocation: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# File-Based Todo Tracking Skill
|
|
@@ -91,14 +91,6 @@ create_worktree() {
|
|
|
91
91
|
echo -e "${BLUE}Creating worktree: $branch_name${NC}"
|
|
92
92
|
echo " From: $from_branch"
|
|
93
93
|
echo " Path: $worktree_path"
|
|
94
|
-
echo ""
|
|
95
|
-
echo "Proceed? (y/n)"
|
|
96
|
-
read -r response
|
|
97
|
-
|
|
98
|
-
if [[ "$response" != "y" ]]; then
|
|
99
|
-
echo -e "${YELLOW}Cancelled${NC}"
|
|
100
|
-
return
|
|
101
|
-
fi
|
|
102
94
|
|
|
103
95
|
# Update main branch
|
|
104
96
|
echo -e "${BLUE}Updating $from_branch...${NC}"
|
|
@@ -134,7 +126,7 @@ list_worktrees() {
|
|
|
134
126
|
|
|
135
127
|
local count=0
|
|
136
128
|
for worktree_path in "$WORKTREE_DIR"/*; do
|
|
137
|
-
if [[ -d "$worktree_path" && -
|
|
129
|
+
if [[ -d "$worktree_path" && -e "$worktree_path/.git" ]]; then
|
|
138
130
|
count=$((count + 1))
|
|
139
131
|
local worktree_name=$(basename "$worktree_path")
|
|
140
132
|
local branch=$(git -C "$worktree_path" rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
|
|
@@ -231,7 +223,7 @@ cleanup_worktrees() {
|
|
|
231
223
|
local to_remove=()
|
|
232
224
|
|
|
233
225
|
for worktree_path in "$WORKTREE_DIR"/*; do
|
|
234
|
-
if [[ -d "$worktree_path" && -
|
|
226
|
+
if [[ -d "$worktree_path" && -e "$worktree_path/.git" ]]; then
|
|
235
227
|
local worktree_name=$(basename "$worktree_path")
|
|
236
228
|
|
|
237
229
|
# Skip if current worktree
|