cc-dev-template 0.1.5 → 0.1.7
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/bin/install.js +23 -16
- package/package.json +1 -1
- package/src/skills/create-agent-skills/SKILL.md +51 -0
- package/src/skills/create-agent-skills/references/audit.md +429 -0
- package/src/skills/create-agent-skills/references/create.md +129 -0
- package/src/skills/create-agent-skills/references/modify.md +104 -0
- package/src/skills/create-agent-skills/references/principles.md +614 -0
- package/src/skills/create-agent-skills/scripts/find-skills.js +206 -0
- package/src/skills/create-agent-skills/scripts/validate-skill.js +386 -0
- package/src/skills/orchestration/SKILL.md +1 -1
- package/src/skills/orchestration/scripts/plan-status.js +1 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Modify an Existing Skill
|
|
2
|
+
|
|
3
|
+
Fix issues, add capabilities, or refine behavior of an existing skill.
|
|
4
|
+
|
|
5
|
+
## What To Do
|
|
6
|
+
|
|
7
|
+
<steps>
|
|
8
|
+
|
|
9
|
+
<step name="Find the Skill">
|
|
10
|
+
Determine which skill to modify.
|
|
11
|
+
|
|
12
|
+
If coming from audit, the path is known. Otherwise, ask the user or discover:
|
|
13
|
+
```bash
|
|
14
|
+
node ~/.claude/skills/create-agent-skills/scripts/find-skills.js
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Confirm the skill exists before proceeding.
|
|
18
|
+
</step>
|
|
19
|
+
|
|
20
|
+
<step name="Read and Understand">
|
|
21
|
+
Read the entire skill - SKILL.md and all files in references/, scripts/, assets/.
|
|
22
|
+
|
|
23
|
+
Summarize for the user:
|
|
24
|
+
- Current structure
|
|
25
|
+
- Word count
|
|
26
|
+
- Any obvious issues (documentation-style writing, inline content that should be in references)
|
|
27
|
+
</step>
|
|
28
|
+
|
|
29
|
+
<step name="Understand What to Change">
|
|
30
|
+
Ask what the user wants to change:
|
|
31
|
+
- Fix issues from an audit?
|
|
32
|
+
- Improve activation (better description/triggers)?
|
|
33
|
+
- Add new capability?
|
|
34
|
+
- Refactor structure?
|
|
35
|
+
- Fix incorrect behavior?
|
|
36
|
+
|
|
37
|
+
Get specific about what's wrong and what "fixed" looks like.
|
|
38
|
+
</step>
|
|
39
|
+
|
|
40
|
+
<step name="Plan Changes">
|
|
41
|
+
Before editing, state what will change:
|
|
42
|
+
- Which files
|
|
43
|
+
- What specifically changes
|
|
44
|
+
- Any new files needed
|
|
45
|
+
|
|
46
|
+
Confirm with user before proceeding.
|
|
47
|
+
</step>
|
|
48
|
+
|
|
49
|
+
<step name="Apply Changes">
|
|
50
|
+
Make the modifications. Key rules:
|
|
51
|
+
|
|
52
|
+
**Keep it as instructions, not documentation.**
|
|
53
|
+
If rewriting, ensure Claude would know what to DO after reading.
|
|
54
|
+
|
|
55
|
+
**Maintain progressive disclosure.**
|
|
56
|
+
If adding content, consider whether it belongs in references/ instead of SKILL.md.
|
|
57
|
+
|
|
58
|
+
**Follow writing conventions.**
|
|
59
|
+
Imperative form, positive framing, no second person.
|
|
60
|
+
|
|
61
|
+
Read `references/principles.md` for full guidelines.
|
|
62
|
+
</step>
|
|
63
|
+
|
|
64
|
+
<step name="Validate">
|
|
65
|
+
Run validation:
|
|
66
|
+
```bash
|
|
67
|
+
node ~/.claude/skills/create-agent-skills/scripts/validate-skill.js [skill-path]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Also manually verify:
|
|
71
|
+
- Is this instructions, not documentation?
|
|
72
|
+
- Would Claude know what to DO?
|
|
73
|
+
- Is heavy content in references/?
|
|
74
|
+
|
|
75
|
+
Fix any issues before finishing.
|
|
76
|
+
</step>
|
|
77
|
+
|
|
78
|
+
<step name="Test">
|
|
79
|
+
If the change affects behavior:
|
|
80
|
+
1. Reinstall if needed
|
|
81
|
+
2. Restart Claude Code
|
|
82
|
+
3. Test that the skill works as expected
|
|
83
|
+
</step>
|
|
84
|
+
|
|
85
|
+
</steps>
|
|
86
|
+
|
|
87
|
+
## Common Modifications
|
|
88
|
+
|
|
89
|
+
**Fix documentation-style writing:**
|
|
90
|
+
Rewrite sections that describe the skill ("This skill does X") as instructions ("Do X").
|
|
91
|
+
|
|
92
|
+
**Improve activation:**
|
|
93
|
+
Collect trigger phrases from user, add to description in third person with quotes.
|
|
94
|
+
|
|
95
|
+
**Move content to references:**
|
|
96
|
+
Identify inline content (schemas, detailed explanations) that should be loaded on-demand. Create reference file, add pointer in SKILL.md.
|
|
97
|
+
|
|
98
|
+
**Fix second person:**
|
|
99
|
+
"You should parse" → "Parse"
|
|
100
|
+
"You can use" → "Use"
|
|
101
|
+
|
|
102
|
+
**Fix negative framing:**
|
|
103
|
+
"Don't skip validation" → "Always validate"
|
|
104
|
+
"Never assume" → "Verify explicitly"
|
|
@@ -0,0 +1,614 @@
|
|
|
1
|
+
# Skill Development Principles
|
|
2
|
+
|
|
3
|
+
This document contains the deep knowledge required to create, audit, and modify Claude Code skills correctly. Read this before any skill work.
|
|
4
|
+
|
|
5
|
+
## The Fundamental Truth
|
|
6
|
+
|
|
7
|
+
**A skill is just a prompt with progressive disclosure.**
|
|
8
|
+
|
|
9
|
+
| Misconception | Reality |
|
|
10
|
+
|---------------|---------|
|
|
11
|
+
| Skills are a special runtime | Skills are markdown files |
|
|
12
|
+
| Skills have special syntax | Skills use natural language |
|
|
13
|
+
| Skills execute code | Skills prompt Claude to do things |
|
|
14
|
+
| Skills have state | Skills tell Claude to read/write files for state |
|
|
15
|
+
| SKILL.md is documentation | SKILL.md IS the prompt Claude reads |
|
|
16
|
+
|
|
17
|
+
When a skill "activates," Claude simply reads the SKILL.md file. The file contains natural language instructions telling Claude what to do.
|
|
18
|
+
|
|
19
|
+
## The Most Common Mistake: Documentation vs Instructions
|
|
20
|
+
|
|
21
|
+
**This is the #1 reason skills fail.** People write SKILL.md as if it's a README explaining what the skill does. But SKILL.md IS the prompt—it must tell Claude what to DO.
|
|
22
|
+
|
|
23
|
+
### Documentation (WRONG)
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
## Purpose
|
|
27
|
+
|
|
28
|
+
This skill orchestrates the complete migration of Oracle Forms to React/Go.
|
|
29
|
+
|
|
30
|
+
**Who this is for**: Developers migrating Oracle Forms.
|
|
31
|
+
|
|
32
|
+
**Success looks like**: Running /implement-form progresses through all phases.
|
|
33
|
+
|
|
34
|
+
## How It Works
|
|
35
|
+
|
|
36
|
+
The skill has 12 phases. Phase 1 does scaffolding, Phase 2 does discovery...
|
|
37
|
+
|
|
38
|
+
## YAML Schema
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
form:
|
|
42
|
+
name: FORMNAME
|
|
43
|
+
prefix: xx
|
|
44
|
+
status: in_progress
|
|
45
|
+
# ... 50 more lines of schema
|
|
46
|
+
```
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Why this fails:** Claude reads this and thinks "interesting information, but what should I DO right now?" There are no actionable instructions.
|
|
50
|
+
|
|
51
|
+
### Instructions (CORRECT)
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## What To Do Now
|
|
55
|
+
|
|
56
|
+
<step name="Get Form Name">
|
|
57
|
+
Ask which form to implement. Store the form name.
|
|
58
|
+
</step>
|
|
59
|
+
|
|
60
|
+
<step name="Check Workflow State">
|
|
61
|
+
Look for `.claude/workflows/{formname}/workflow.yaml`
|
|
62
|
+
|
|
63
|
+
If exists: Read it, determine current phase.
|
|
64
|
+
If not: Create new workflow, start at phase 1.
|
|
65
|
+
</step>
|
|
66
|
+
|
|
67
|
+
<step name="Route to Phase">
|
|
68
|
+
Based on `currentPhase`, read the appropriate file:
|
|
69
|
+
|
|
70
|
+
| Phase | File |
|
|
71
|
+
|-------|------|
|
|
72
|
+
| phase1 | `references/phase1.md` |
|
|
73
|
+
| phase2 | `references/phase2.md` |
|
|
74
|
+
</step>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Why this works:** Claude knows exactly what to do. Each step is an action. Heavy content (schemas, phase details) lives in references/.
|
|
78
|
+
|
|
79
|
+
### Red Flags in SKILL.md
|
|
80
|
+
|
|
81
|
+
| Red Flag | Problem |
|
|
82
|
+
|----------|---------|
|
|
83
|
+
| "Who this is for:" | Meta-description. Claude doesn't need audience info. |
|
|
84
|
+
| "Success looks like:" | Describes outcomes, doesn't instruct. |
|
|
85
|
+
| "This skill orchestrates..." | Describes what skill IS, not what to DO. |
|
|
86
|
+
| "The purpose is..." | Documentation language. |
|
|
87
|
+
| Large inline schemas | Reference material, not instructions. |
|
|
88
|
+
| Phase explanations | Should route to phase files, not explain inline. |
|
|
89
|
+
|
|
90
|
+
### The Test
|
|
91
|
+
|
|
92
|
+
After writing SKILL.md, ask: **"If Claude reads this right now, does it know what action to take?"**
|
|
93
|
+
|
|
94
|
+
If the answer is "it would understand what the skill is about" but not "it would know what to do," rewrite it.
|
|
95
|
+
|
|
96
|
+
## Why Progressive Disclosure Matters
|
|
97
|
+
|
|
98
|
+
### The Problem Without Skills
|
|
99
|
+
|
|
100
|
+
To handle a complex workflow, all instructions must be in one giant prompt:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Here's how to plan a feature:
|
|
104
|
+
1. First gather requirements... [500 lines]
|
|
105
|
+
2. Then explore the codebase... [500 lines]
|
|
106
|
+
3. Then check ADRs... [500 lines]
|
|
107
|
+
4. Then draft the plan... [500 lines]
|
|
108
|
+
5. Then validate... [500 lines]
|
|
109
|
+
6. Then finalize... [500 lines]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Problems:**
|
|
113
|
+
- Massive context consumption upfront (3,000+ lines)
|
|
114
|
+
- Claude may get confused by irrelevant instructions
|
|
115
|
+
- Hard to maintain and update
|
|
116
|
+
- Scales poorly—can't add new capabilities without bloating context
|
|
117
|
+
|
|
118
|
+
### The Solution: Three-Level Loading
|
|
119
|
+
|
|
120
|
+
Skills use progressive disclosure to load information just-in-time:
|
|
121
|
+
|
|
122
|
+
| Level | What Loads | When | Size Target |
|
|
123
|
+
|-------|------------|------|-------------|
|
|
124
|
+
| **1. Metadata** | `name` + `description` | Always (at startup) | ~100 words |
|
|
125
|
+
| **2. SKILL.md body** | Full instructions | When skill triggers | 1,500-2,000 words |
|
|
126
|
+
| **3. Bundled resources** | references/, scripts/, assets/ | Only when Claude needs them | Unlimited |
|
|
127
|
+
|
|
128
|
+
**Benefits:**
|
|
129
|
+
- Small initial context footprint
|
|
130
|
+
- Claude only sees relevant instructions for current phase
|
|
131
|
+
- Easy to add/modify individual phases
|
|
132
|
+
- Scales infinitely—heavy content lives in references/
|
|
133
|
+
|
|
134
|
+
### Progressive Disclosure in Practice
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
SKILL.md (small router):
|
|
138
|
+
"Ask what user wants.
|
|
139
|
+
If planning → read references/planning.md"
|
|
140
|
+
|
|
141
|
+
references/planning.md:
|
|
142
|
+
"Gather requirements.
|
|
143
|
+
When done → read references/drafting.md"
|
|
144
|
+
|
|
145
|
+
references/drafting.md:
|
|
146
|
+
"Create the plan artifact.
|
|
147
|
+
When done → read references/validation.md"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If the user stops after planning, drafting and validation instructions are never loaded.
|
|
151
|
+
|
|
152
|
+
## Frontmatter Requirements
|
|
153
|
+
|
|
154
|
+
### Required Fields
|
|
155
|
+
|
|
156
|
+
```yaml
|
|
157
|
+
---
|
|
158
|
+
name: skill-name
|
|
159
|
+
description: What this skill does and when to use it
|
|
160
|
+
---
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**name:**
|
|
164
|
+
- Hyphen-case format (lowercase + hyphens only)
|
|
165
|
+
- Must match the directory name
|
|
166
|
+
- Max 64 characters
|
|
167
|
+
|
|
168
|
+
**description:**
|
|
169
|
+
- Max 1024 characters
|
|
170
|
+
- CRITICAL for discovery—this determines when Claude triggers the skill
|
|
171
|
+
- Must explain WHAT and WHEN
|
|
172
|
+
|
|
173
|
+
### Description Quality
|
|
174
|
+
|
|
175
|
+
The description is the most important part of a skill. Claude uses it to decide whether to activate.
|
|
176
|
+
|
|
177
|
+
**Third-person format with trigger phrases:**
|
|
178
|
+
|
|
179
|
+
```yaml
|
|
180
|
+
# GOOD - specific triggers, third person
|
|
181
|
+
description: This skill should be used when the user asks to "create a hook", "add a PreToolUse hook", "validate tool use", or mentions hook events (PreToolUse, PostToolUse, Stop).
|
|
182
|
+
|
|
183
|
+
# GOOD - clear scenarios
|
|
184
|
+
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.
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Common mistakes:**
|
|
188
|
+
|
|
189
|
+
```yaml
|
|
190
|
+
# BAD - wrong person
|
|
191
|
+
description: Use this skill when working with hooks.
|
|
192
|
+
|
|
193
|
+
# BAD - vague, no triggers
|
|
194
|
+
description: Provides hook guidance.
|
|
195
|
+
|
|
196
|
+
# BAD - no "when to use"
|
|
197
|
+
description: A skill for managing PDFs.
|
|
198
|
+
|
|
199
|
+
# BAD - too much detail (makes Claude think it can wing it)
|
|
200
|
+
description: This skill parses PDF files using PyPDF2, extracts text with OCR fallback, handles encrypted files with password prompts, and outputs to markdown format with table preservation...
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Key insight from community testing:** If the description explains too much about WHAT the skill does, Claude believes it already knows enough and won't activate the skill. Keep descriptions focused on WHEN to use, not HOW it works internally.
|
|
204
|
+
|
|
205
|
+
### Optional Fields
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
---
|
|
209
|
+
name: skill-name
|
|
210
|
+
description: ...
|
|
211
|
+
license: Apache-2.0
|
|
212
|
+
allowed-tools: Read, Grep, Glob, Write
|
|
213
|
+
metadata:
|
|
214
|
+
version: 1.0.0
|
|
215
|
+
author: team-name
|
|
216
|
+
---
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
- `allowed-tools`: Restricts which tools Claude can use (security/safety)
|
|
220
|
+
- `license`: For distributed skills
|
|
221
|
+
- `metadata`: Custom key-value pairs
|
|
222
|
+
|
|
223
|
+
## Writing Style Requirements
|
|
224
|
+
|
|
225
|
+
### Imperative/Infinitive Form (Mandatory)
|
|
226
|
+
|
|
227
|
+
Write instructions as directives, not suggestions or descriptions.
|
|
228
|
+
|
|
229
|
+
**Correct (imperative):**
|
|
230
|
+
```markdown
|
|
231
|
+
Parse the configuration file.
|
|
232
|
+
Extract the relevant fields.
|
|
233
|
+
Validate input before processing.
|
|
234
|
+
Run the test suite to verify changes.
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Incorrect (second person):**
|
|
238
|
+
```markdown
|
|
239
|
+
You should parse the configuration file.
|
|
240
|
+
You can extract the relevant fields.
|
|
241
|
+
You need to validate input before processing.
|
|
242
|
+
You might want to run the test suite.
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Incorrect (passive/descriptive):**
|
|
246
|
+
```markdown
|
|
247
|
+
The configuration file should be parsed.
|
|
248
|
+
Fields are extracted from the response.
|
|
249
|
+
Input validation is performed.
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Objective Instructional Tone
|
|
253
|
+
|
|
254
|
+
Focus on WHAT to do, not WHO should do it:
|
|
255
|
+
|
|
256
|
+
**Correct:**
|
|
257
|
+
```markdown
|
|
258
|
+
To accomplish X, do Y.
|
|
259
|
+
For validation, check the following criteria.
|
|
260
|
+
When errors occur, retry with exponential backoff.
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Incorrect:**
|
|
264
|
+
```markdown
|
|
265
|
+
You can accomplish X by doing Y.
|
|
266
|
+
Claude should check the following criteria.
|
|
267
|
+
If you encounter errors, you might retry.
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Positive Framing
|
|
271
|
+
|
|
272
|
+
Tell Claude what TO do, not what NOT to do:
|
|
273
|
+
|
|
274
|
+
| Negative (avoid) | Positive (correct) |
|
|
275
|
+
|------------------|-------------------|
|
|
276
|
+
| Don't hallucinate facts | Only use information from provided documents |
|
|
277
|
+
| Don't be too formal | Write in a conversational, friendly tone |
|
|
278
|
+
| Avoid long paragraphs | Keep paragraphs to 3-4 sentences |
|
|
279
|
+
| Don't skip error handling | Include comprehensive error handling |
|
|
280
|
+
| Never make assumptions | Base responses on provided data |
|
|
281
|
+
|
|
282
|
+
## Skill Structure
|
|
283
|
+
|
|
284
|
+
### Minimal Skill
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
skill-name/
|
|
288
|
+
└── SKILL.md
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Good for: Simple knowledge, no complex workflows
|
|
292
|
+
|
|
293
|
+
### Standard Skill (Recommended)
|
|
294
|
+
|
|
295
|
+
```
|
|
296
|
+
skill-name/
|
|
297
|
+
├── SKILL.md
|
|
298
|
+
├── references/
|
|
299
|
+
│ └── detailed-guide.md
|
|
300
|
+
└── scripts/
|
|
301
|
+
└── helper.py
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Good for: Most skills with detailed documentation or utilities
|
|
305
|
+
|
|
306
|
+
### Complete Skill
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
skill-name/
|
|
310
|
+
├── SKILL.md # Lean router
|
|
311
|
+
├── references/ # Docs loaded as needed
|
|
312
|
+
│ ├── workflow-1.md
|
|
313
|
+
│ ├── workflow-2.md
|
|
314
|
+
│ └── patterns.md
|
|
315
|
+
├── scripts/ # Executable utilities
|
|
316
|
+
│ ├── validate.py
|
|
317
|
+
│ └── generate.sh
|
|
318
|
+
└── assets/ # Files for output (templates, etc.)
|
|
319
|
+
└── template.yaml
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Good for: Complex multi-workflow skills
|
|
323
|
+
|
|
324
|
+
### When to Use Each Directory
|
|
325
|
+
|
|
326
|
+
**references/** - Documentation that Claude should read into context:
|
|
327
|
+
- Detailed workflow instructions
|
|
328
|
+
- Domain knowledge and patterns
|
|
329
|
+
- API documentation
|
|
330
|
+
- Schemas and specifications
|
|
331
|
+
|
|
332
|
+
**scripts/** - Executable code for deterministic operations:
|
|
333
|
+
- Validation utilities
|
|
334
|
+
- Code generation
|
|
335
|
+
- Data transformation
|
|
336
|
+
- File operations that need reliability
|
|
337
|
+
|
|
338
|
+
**Benefits of scripts:** Execute without loading into context (token-efficient), deterministic reliability, can be tested independently
|
|
339
|
+
|
|
340
|
+
**assets/** - Files used in output but never read:
|
|
341
|
+
- Templates Claude copies/modifies
|
|
342
|
+
- Boilerplate code
|
|
343
|
+
- Images, icons, fonts
|
|
344
|
+
- Sample documents
|
|
345
|
+
|
|
346
|
+
## Size Guidelines
|
|
347
|
+
|
|
348
|
+
### SKILL.md Body
|
|
349
|
+
- **Target**: 1,500-2,000 words
|
|
350
|
+
- **Maximum**: 5,000 words (strongly discouraged)
|
|
351
|
+
- **Anthropic guidance**: Under 500 lines
|
|
352
|
+
|
|
353
|
+
If SKILL.md exceeds these limits, move content to references/.
|
|
354
|
+
|
|
355
|
+
### Why Size Matters
|
|
356
|
+
|
|
357
|
+
> "The context window is a public good—your skill shares it with everything else. Once loaded, every token competes with conversation history."
|
|
358
|
+
> — Anthropic Engineering
|
|
359
|
+
|
|
360
|
+
Challenge every piece of content: Does it justify its token cost? If Claude already knows it (general programming knowledge, common patterns), remove it.
|
|
361
|
+
|
|
362
|
+
## Activation Patterns
|
|
363
|
+
|
|
364
|
+
### How Skills Activate
|
|
365
|
+
|
|
366
|
+
**1. Autonomous (Description Match)**
|
|
367
|
+
Claude reads skill descriptions and decides when to activate based on user request matching.
|
|
368
|
+
|
|
369
|
+
- Less reliable (~50-84% success rate in community testing)
|
|
370
|
+
- Works better with specific trigger phrases
|
|
371
|
+
- Can fail if description is too detailed (Claude thinks it knows enough)
|
|
372
|
+
|
|
373
|
+
**2. Explicit (Slash Command)**
|
|
374
|
+
A slash command forces skill activation:
|
|
375
|
+
|
|
376
|
+
```markdown
|
|
377
|
+
# /create-skill command
|
|
378
|
+
Activate the create-agent-skills skill to guide the user through skill creation.
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
- Most reliable method
|
|
382
|
+
- Use for critical workflows
|
|
383
|
+
- Don't rely solely on autonomous activation
|
|
384
|
+
|
|
385
|
+
**3. Hybrid (Recommended)**
|
|
386
|
+
Slash command for explicit invocation + good description for autonomous discovery.
|
|
387
|
+
|
|
388
|
+
### Improving Activation Reliability
|
|
389
|
+
|
|
390
|
+
1. **Specific trigger phrases** in description
|
|
391
|
+
2. **Reference in CLAUDE.md** for project skills
|
|
392
|
+
3. **Keep description focused on WHEN**, not detailed HOW
|
|
393
|
+
|
|
394
|
+
## Common Mistakes
|
|
395
|
+
|
|
396
|
+
### Mistake 1: Treating SKILL.md as Documentation
|
|
397
|
+
|
|
398
|
+
**Problem:** Writing about the skill instead of instructions for Claude
|
|
399
|
+
|
|
400
|
+
```markdown
|
|
401
|
+
# BAD - describes the skill
|
|
402
|
+
This skill helps users create PDF documents. It uses PyPDF2
|
|
403
|
+
for parsing and supports various output formats...
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
```markdown
|
|
407
|
+
# GOOD - instructs Claude
|
|
408
|
+
Parse the input PDF using the bundled script.
|
|
409
|
+
Extract text content, preserving table structure.
|
|
410
|
+
Output as markdown with proper heading hierarchy.
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Mistake 2: Everything in One File
|
|
414
|
+
|
|
415
|
+
**Problem:** Putting all content in SKILL.md
|
|
416
|
+
|
|
417
|
+
```
|
|
418
|
+
skill-name/
|
|
419
|
+
└── SKILL.md (8,000 words)
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**Solution:** Use progressive disclosure
|
|
423
|
+
|
|
424
|
+
```
|
|
425
|
+
skill-name/
|
|
426
|
+
├── SKILL.md (1,800 words - router)
|
|
427
|
+
└── references/
|
|
428
|
+
├── workflow-a.md (2,500 words)
|
|
429
|
+
└── workflow-b.md (3,700 words)
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### Mistake 3: Vague Descriptions
|
|
433
|
+
|
|
434
|
+
**Problem:** No trigger phrases, unclear when to use
|
|
435
|
+
|
|
436
|
+
```yaml
|
|
437
|
+
description: Helps with code review.
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**Solution:** Specific scenarios and phrases
|
|
441
|
+
|
|
442
|
+
```yaml
|
|
443
|
+
description: This skill should be used when the user asks to "review this PR", "check my code", "find bugs", or mentions code quality, security review, or performance analysis.
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Mistake 4: Second Person Writing
|
|
447
|
+
|
|
448
|
+
**Problem:** Using "you" throughout
|
|
449
|
+
|
|
450
|
+
```markdown
|
|
451
|
+
You should first read the config file.
|
|
452
|
+
Then you can parse the fields.
|
|
453
|
+
You might want to validate the output.
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
**Solution:** Imperative form
|
|
457
|
+
|
|
458
|
+
```markdown
|
|
459
|
+
First read the config file.
|
|
460
|
+
Parse the fields using the schema.
|
|
461
|
+
Validate output against expected format.
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
### Mistake 5: Missing Resource References
|
|
465
|
+
|
|
466
|
+
**Problem:** References exist but SKILL.md doesn't mention them
|
|
467
|
+
|
|
468
|
+
```markdown
|
|
469
|
+
# SKILL.md
|
|
470
|
+
[Content with no mention of references/]
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Solution:** Explicit pointers to resources
|
|
474
|
+
|
|
475
|
+
```markdown
|
|
476
|
+
## Additional Resources
|
|
477
|
+
|
|
478
|
+
For detailed patterns, read `references/patterns.md`.
|
|
479
|
+
For validation, run `scripts/validate.py`.
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
## Prompting Principles for Skill Content
|
|
483
|
+
|
|
484
|
+
Skills ARE prompts. The quality of a skill depends on applying good prompting principles when writing its content. These principles come from ADR-002 (Structured Prompting Practices) and the `prompting` skill.
|
|
485
|
+
|
|
486
|
+
### Core Principle: Explain WHY, Not Just WHAT
|
|
487
|
+
|
|
488
|
+
Provide purpose and context rather than exhaustive implementation details. Trust Claude's intelligence.
|
|
489
|
+
|
|
490
|
+
**Mental Model**: Treat Claude like a brilliant senior colleague, not a junior who needs hand-holding.
|
|
491
|
+
|
|
492
|
+
**Provide:**
|
|
493
|
+
- The goal or purpose of the task
|
|
494
|
+
- Why this matters (business context, use case)
|
|
495
|
+
- Constraints that exist (technical, business, regulatory)
|
|
496
|
+
- What success looks like
|
|
497
|
+
|
|
498
|
+
**Avoid providing:**
|
|
499
|
+
- Every possible edge case (Claude handles these intelligently)
|
|
500
|
+
- Step-by-step implementation unless genuinely needed
|
|
501
|
+
- Obvious best practices for the domain
|
|
502
|
+
|
|
503
|
+
### Use Positive Framing
|
|
504
|
+
|
|
505
|
+
Tell Claude what TO do, not what NOT to do. Negatives require extra processing and can prime unwanted behavior.
|
|
506
|
+
|
|
507
|
+
| Negative Framing | Positive Framing |
|
|
508
|
+
|------------------|------------------|
|
|
509
|
+
| "Don't hallucinate facts" | "Only use information from the provided documents" |
|
|
510
|
+
| "Don't be too verbose" | "Keep responses concise and focused" |
|
|
511
|
+
| "Avoid making assumptions" | "Base responses on the provided data" |
|
|
512
|
+
| "Never skip validation" | "Always validate input before processing" |
|
|
513
|
+
|
|
514
|
+
### Be Clear and Direct
|
|
515
|
+
|
|
516
|
+
Claude 4.x models are more literal than previous versions. State exactly what is needed without hedging.
|
|
517
|
+
|
|
518
|
+
| Vague | Clear |
|
|
519
|
+
|-------|-------|
|
|
520
|
+
| "Maybe consider validating..." | "Validate input before processing" |
|
|
521
|
+
| "It might be helpful to..." | "Include error handling for edge cases" |
|
|
522
|
+
| "You could potentially..." | "Generate tests for all public functions" |
|
|
523
|
+
|
|
524
|
+
### Provide Context
|
|
525
|
+
|
|
526
|
+
Every skill instruction benefits from context. Answer:
|
|
527
|
+
1. **Why does this matter?** (Purpose, goal)
|
|
528
|
+
2. **Who is this for?** (Audience, user type)
|
|
529
|
+
3. **What does success look like?** (Outcomes, criteria)
|
|
530
|
+
4. **What constraints exist?** (Technical limits, requirements)
|
|
531
|
+
|
|
532
|
+
### The Complete Prompt Checklist
|
|
533
|
+
|
|
534
|
+
When writing skill content, verify each section answers:
|
|
535
|
+
|
|
536
|
+
- [ ] **WHAT** is Claude being asked to do?
|
|
537
|
+
- [ ] **WHY** does this matter? (Purpose, goal)
|
|
538
|
+
- [ ] **WHO** is this for? (Audience, user type)
|
|
539
|
+
- [ ] **SUCCESS** looks like what? (Outcomes, criteria)
|
|
540
|
+
- [ ] Frame everything **POSITIVELY** (what TO do)
|
|
541
|
+
|
|
542
|
+
### Quick Diagnostics
|
|
543
|
+
|
|
544
|
+
If a skill produces problematic results:
|
|
545
|
+
|
|
546
|
+
| Problem | Likely Cause | Fix |
|
|
547
|
+
|---------|--------------|-----|
|
|
548
|
+
| Too minimal/basic | Not explicit about expectations | Add "Create a fully-featured..." or specify depth |
|
|
549
|
+
| Off-topic | Missing context about purpose | Explain WHY and what it's for |
|
|
550
|
+
| Inconsistent | Vague instructions | Be more direct and specific |
|
|
551
|
+
| Overly cautious | Negative framing | Reframe positively |
|
|
552
|
+
| Missing key details | Didn't explain success criteria | Define concrete outcomes |
|
|
553
|
+
|
|
554
|
+
### Common Antipatterns
|
|
555
|
+
|
|
556
|
+
**The Micromanager**: Providing step-by-step implementation instead of goals.
|
|
557
|
+
- Fix: Explain the goal, let Claude handle implementation.
|
|
558
|
+
|
|
559
|
+
**The Negative Nancy**: String of "don't do X" instructions.
|
|
560
|
+
- Fix: Reframe every negative as a positive instruction.
|
|
561
|
+
|
|
562
|
+
**The Context-Free Zone**: Bare instruction with no purpose or audience.
|
|
563
|
+
- Fix: Explain who uses it, why it exists, what success looks like.
|
|
564
|
+
|
|
565
|
+
**The Vague Suggestion**: Hedged language like "maybe consider..."
|
|
566
|
+
- Fix: Be direct and explicit about what is needed.
|
|
567
|
+
|
|
568
|
+
### Reference
|
|
569
|
+
|
|
570
|
+
For comprehensive prompting guidance, consult:
|
|
571
|
+
- **ADR-002**: Structured Prompting Practices for Agents and Commands
|
|
572
|
+
- **Prompting skill**: `~/.claude/skills/prompting/SKILL.md`
|
|
573
|
+
|
|
574
|
+
These principles are mandatory for all skill content. Apply them when writing SKILL.md files and reference documents.
|
|
575
|
+
|
|
576
|
+
## Validation Checklist
|
|
577
|
+
|
|
578
|
+
Before finalizing any skill, verify:
|
|
579
|
+
|
|
580
|
+
### Structure
|
|
581
|
+
- [ ] SKILL.md exists with valid YAML frontmatter
|
|
582
|
+
- [ ] `name` field matches directory name (hyphen-case)
|
|
583
|
+
- [ ] `description` field present and under 1024 characters
|
|
584
|
+
- [ ] All referenced files actually exist
|
|
585
|
+
|
|
586
|
+
### Description Quality
|
|
587
|
+
- [ ] Uses third person ("This skill should be used when...")
|
|
588
|
+
- [ ] Includes specific trigger phrases
|
|
589
|
+
- [ ] Lists concrete scenarios
|
|
590
|
+
- [ ] Not overly detailed about implementation
|
|
591
|
+
|
|
592
|
+
### Content Quality
|
|
593
|
+
- [ ] Body uses imperative/infinitive form throughout
|
|
594
|
+
- [ ] No second person ("you should", "you can")
|
|
595
|
+
- [ ] Body under 2,000 words (or content moved to references/)
|
|
596
|
+
- [ ] Positive framing (what TO do, not what NOT to do)
|
|
597
|
+
|
|
598
|
+
### Prompting Quality
|
|
599
|
+
- [ ] Explains WHY, not just WHAT (purpose and context provided)
|
|
600
|
+
- [ ] Clear and direct language (no hedging or vague suggestions)
|
|
601
|
+
- [ ] Success criteria defined (what does good output look like?)
|
|
602
|
+
- [ ] Avoids micromanagement (goals over step-by-step instructions)
|
|
603
|
+
- [ ] No antipatterns (Micromanager, Negative Nancy, Context-Free Zone, Vague Suggestion)
|
|
604
|
+
|
|
605
|
+
### Progressive Disclosure
|
|
606
|
+
- [ ] SKILL.md acts as router to heavier content
|
|
607
|
+
- [ ] Detailed docs in references/
|
|
608
|
+
- [ ] Deterministic operations in scripts/
|
|
609
|
+
- [ ] References clearly pointed to from SKILL.md
|
|
610
|
+
|
|
611
|
+
### Testing
|
|
612
|
+
- [ ] Skill triggers on expected user queries
|
|
613
|
+
- [ ] Content is helpful for intended tasks
|
|
614
|
+
- [ ] No duplicated information across files
|