Skill Creator Guide
Create effective skills that extend Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Skill Structure
skill-name/
├── SKILL.md # Core instructions (required)
├── scripts/ # Executable code (optional)
│ └── main.py
├── references/ # Extended documentation (optional)
│ └── details.md
└── assets/ # Templates, images, etc. (optional)
└── template.txt
SKILL.md Template
--- name: skill-name description: > Clear, concise description of what this skill does. Include trigger phrases that should activate this skill. Mention specific use cases: (1) first use case, (2) second use case. Triggers: "keyword1", "keyword2", "phrase that triggers". --- # Skill Name Brief overview of the skill's purpose and capabilities. ## Quick Start ### Basic Usage ```bash # Example command or workflow skill-command --option value
Workflow
- •Step One - Description of first step
- •Step Two - Description of second step
- •Step Three - Description of third step
Reference
| Item | Description |
|---|---|
| Key concept | Explanation |
Examples
Example 1: Common Use Case
Detailed example showing skill in action
Notes
- •Important consideration
- •Another important note
References
See references/details.md for extended documentation.
## Best Practices ### YAML Frontmatter ```yaml --- name: lowercase-hyphenated description: > CRITICAL: The description is how Claude decides when to use your skill. 1. Start with WHAT the skill does 2. List specific USE CASES with numbers: (1) case one, (2) case two 3. Include TRIGGER PHRASES: "exact phrases", "keywords" 4. Keep under 500 characters for the description ---
Good vs Bad Descriptions
Good:
description: > Generate professional code reviews following industry standards. Use when: (1) reviewing pull requests, (2) analyzing code quality, (3) finding bugs and security issues. Triggers: "review code", "check my PR", "code review", "find bugs".
Bad:
description: A skill for doing code stuff.
Skill Body Guidelines
- •Keep it under 500 lines - Split into references/ if longer
- •Use clear headings - Quick Start, Workflow, Reference, Examples
- •Include examples - Show real usage patterns
- •Be specific - Concrete steps, not vague instructions
- •Link references - Point to references/ for deep dives
Scripts
#!/usr/bin/env python3
"""
Script description.
Usage:
python script.py <arg1> [--option value]
"""
import sys
import argparse
from pathlib import Path
def main():
parser = argparse.ArgumentParser(description="Script description")
parser.add_argument("input", help="Input file or value")
parser.add_argument("--option", default="default", help="Optional parameter")
args = parser.parse_args()
# Main logic here
print(f"Processing: {args.input}")
if __name__ == "__main__":
main()
Script Best Practices:
- •Use only Python stdlib when possible
- •Document any pip dependencies
- •Include --help support
- •Make scripts executable (chmod +x)
- •Use argparse for CLI interface
References Directory
Use references/ for:
- •Detailed API documentation
- •Extended examples
- •Configuration options
- •Troubleshooting guides
Keep main SKILL.md focused on quick start and common workflows.
Skill Types
Knowledge Skills
Provide domain expertise and best practices.
- •Code style guides
- •Industry standards
- •Reference documentation
Workflow Skills
Guide through multi-step processes.
- •Document generation
- •Analysis pipelines
- •Review checklists
Tool Skills
Integrate with external tools and APIs.
- •Scripts for automation
- •API integrations
- •File processing
Template Skills
Provide templates and boilerplate.
- •Project scaffolding
- •Document templates
- •Code generators
Testing Your Skill
- •
Upload to Claude.ai
bashcd skills/my-skill zip -r ../../my-skill.skill .
Upload the .skill file in Settings → Capabilities → Skills
- •
Test triggers - Try phrases from your description
- •
Test edge cases - What happens with unusual inputs?
- •
Iterate - Refine based on testing
Common Mistakes
- •Vague descriptions - Be specific about triggers
- •Too long - Split into references if > 500 lines
- •No examples - Always include usage examples
- •Missing triggers - Add common phrases users might say
- •Complex scripts - Keep dependencies minimal
Skill Naming
- •Use lowercase
- •Hyphen-separated words
- •Descriptive but concise
- •Examples:
code-review,git-commit,api-docs