# Quick Reference: Skills Best Practices
Fast checklist for skill development. See [best-practices.md](./best-practices.md) for detailed explanations.
## Skill Creation Checklist
### Structure
```
skill-name/
├── SKILL.md # < 500 lines, core workflow
├── references/ # Deep dives (loaded on demand)
│ ├── patterns.md
│ ├── examples.md
│ └── advanced.md
└── scripts/ # Helper utilities
```
### SKILL.md Template
```markdown
---
name: kebab-case-name
description: What it does AND when to use it. Trigger terms: keywords, phrases.
version: 1.0.0
---
# Skill Name
Clear criteria for when this applies
1. Step one
2. Step two
3. Step three
- ALWAYS: Do this
- NEVER: Don't do that
- PREFER: Recommended approach
- [Pattern details](references/patterns.md)
- [Examples](references/examples.md)
```
## Description Checklist
- [ ] Third-person voice ("Creates reports" not "I create reports")
- [ ] Includes WHAT skill does
- [ ] Includes WHEN to use it
- [ ] Lists trigger terms users might say
- [ ] Under 100 tokens
- [ ] Specific, not generic
✅ **Good**: "Implements test-driven development using Red-Green-Refactor cycles. Use when implementing features with tests first, refactoring with test coverage, or reproducing bugs. Keywords: TDD, test-first, red-green-refactor."
❌ **Bad**: "Helps with testing"
## Common Mistakes to Avoid
| Mistake | Fix |
|---------|-----|
| Verbose SKILL.md (1000+ lines) | Keep under 500, move details to references/ |
| "NEVER do X" without alternatives | "ALWAYS do Y; NEVER do X" |
| Deeply nested references (3+ levels) | Keep 1 level deep with table of contents |
| No version control | Track in git with semantic versioning |
| No examples | Add 1-2 examples in references/examples.md |
| Unclear scope (skill does too much) | One skill, one job |
| Testing only with Sonnet | Test with Haiku, Sonnet, AND Opus |
| Static text without action | Make it executable/testable |
## Testing Checklist
### Before Publishing
- [ ] Test with Haiku (needs more explicit instructions?)
- [ ] Test with Sonnet (balanced clarity?)
- [ ] Test with Opus (handles complexity?)
- [ ] Use skill for real work (dogfooding)
- [ ] Check description triggers discovery correctly
- [ ] Verify workflow completes successfully
- [ ] Review security (no malicious code)
- [ ] Under 500 lines in SKILL.md
- [ ] References properly linked
### Ongoing Validation
- [ ] Track skill load frequency
- [ ] Monitor completion rate
- [ ] Log user satisfaction
- [ ] Note when Claude asks for clarification (skill unclear?)
- [ ] Build regression tests for critical paths
## Composition Patterns
### Reference Other Skills
```markdown
Load the **outfitter:debugging** skill using the Skill tool to investigate.
```
### Skill Chaining
```markdown
1. Load **pathfinding** skill for planning
2. Load **tdd** skill for implementation
3. Load **code-review** skill for validation
```
### Skills + MCP
- **MCP**: Data access (APIs, databases, tools)
- **Skill**: Workflows (what to do with that data)
## Progressive Disclosure
```
Discovery (50 tokens) → YAML frontmatter
↓
Activation (2-5K tokens) → SKILL.md core
↓
Execution (dynamic) → references/ loaded on demand
```
**Key**: Don't load everything upfront. Let Claude request detail.
## Degrees of Freedom
| Level | Format | When to Use |
|-------|--------|-------------|
| **High** | Text instructions | Creative tasks, multiple valid approaches |
| **Medium** | Pseudocode | Standard patterns with variation allowed |
| **Low** | Scripts | Security-critical, exact sequence required |
**Examples:**
| Task | Freedom |
|------|---------|
| Error message formatting | High |
| API integration | Medium |
| Authentication flows | Low |
| Database migrations | Low |
| Code formatting | High |
## Security Quick Check
- [ ] Review all scripts in scripts/ directory
- [ ] No credential harvesting (API keys, tokens)
- [ ] No unexpected file system writes
- [ ] No suspicious network requests
- [ ] No obfuscated code
- [ ] Verify external dependencies
- [ ] Test in isolated environment first
## Description Optimization Formula
```
[What it does] + [When to use] + [Trigger keywords]
```
**Example**:
"Debugs issues using systematic root cause analysis. Use when encountering errors, unexpected behavior, or test failures. Keywords: debug, troubleshoot, error, failure, bug."
## Versioning Rules
- **MAJOR** (1.0.0 → 2.0.0): Breaking changes (workflow changed, different inputs)
- **MINOR** (1.0.0 → 1.1.0): New features (additional optional steps)
- **PATCH** (1.0.0 → 1.0.1): Bug fixes (typos, clarifications)
## One-Liners to Remember
1. **Assume intelligence** - Claude doesn't need basic concepts explained
2. **Be directive, not comprehensive** - Focus on what makes THIS approach different
3. **One skill, one job** - Don't make Swiss Army knife skills
4. **Test like code** - Build evals, use version control, review changes
5. **Progressive disclosure** - Start small, load detail on demand
6. **Security matters** - Skills execute code; review carefully
7. **Positive constraints** - Tell what TO do, not just what NOT to do
8. **Examples clarify** - Non-obvious patterns need concrete examples
9. **Version semantically** - Breaking changes = major version bump
10. **Dogfood relentlessly** - Use your own skills for real work
## Advanced Patterns Quick List
- **Degrees of freedom**: Match instruction specificity to task type
- **Solve don't punt**: Scripts should handle errors, not fail to Claude
- **Variant organization**: Multi-framework skills with selection in SKILL.md
- **Hook-based validation**: PreToolUse for quality gates
- **Master-Clone architecture**: Preserve context via subagents
- **Eval-driven development**: Tests before extensive docs
- **Organization-wide libraries**: Central skill registry
- **Skills as living docs**: Replace static wikis
- **Conditional chaining**: Orchestrate complex workflows
- **ToC in references**: Navigate to specific sections (>100 lines)
- **Skill contribution flow**: Treat like open source PRs
See [patterns.md](./patterns.md) for detailed examples.
## When to Create a Skill vs Other Tools
| Need | Use |
|------|-----|
| Multi-step workflow with judgment | **Skill** |
| Simple shortcut/expansion | Slash command |
| Data access / API integration | MCP server |
| Specialized autonomous work | Subagent |
| Event-triggered automation | Hook |
## Getting Help
- **Official docs**:
- **Community**: ComposioHQ/awesome-claude-skills (GitHub)
- **Research**: skillmatic-ai/awesome-agent-skills (GitHub)
- **Examples**: Load existing well-crafted skills for patterns
Last updated: 2026-01-10