How to Create Custom Skills
Custom Skills enhance Claude with specialized knowledge and workflows. Learn how to create powerful, reusable Skills that extend Claude's capabilities for your specific needs.
What Makes a Great Skill?
Focused Purpose
Each Skill should solve a specific problem or handle a particular domain
Clear Instructions
Provide explicit, step-by-step guidance for Claude
Thorough Testing
Validate functionality across different scenarios and edge cases
Creating SKILL.md
Required Metadata
--- name: your-skill-name description: A clear description of what this skill does and when to use it ---
- name: Unique identifier (lowercase, hyphens for spaces)
- description: Complete description of functionality and use cases
Optional Metadata
--- name: your-skill-name description: A clear description of what this skill does and when to use it version: "1.0.0" author: "Your Name" license: "MIT" tags: ["tag1", "tag2"] requirements: ["requirement1", "requirement2"] ---
- version: Skill version number
- author: Creator name or organization
- license: License type (MIT, Apache, etc.)
- tags: Relevant tags for categorization
- requirements: Prerequisites or dependencies
Content Structure
Below the frontmatter, include:
- Title - Clear, descriptive title
- Overview - Brief explanation of what the Skill does
- Instructions - Step-by-step guidance for Claude
- Examples - Sample requests and expected outcomes
- Guidelines - Rules and best practices for usage
Skill Template
--- name: your-skill-name description: Replace with a clear description of what this skill does and when Claude should use it version: "1.0.0" author: "Your Name" license: "MIT" tags: ["category1", "category2"] requirements: ["requirement1", "requirement2"] --- # Your Skill Name ## Overview [Brief explanation of what this skill does and when to use it] ## Instructions [Step-by-step instructions for Claude to follow] ## Examples - Example usage 1: [Show a sample request and expected response] - Example usage 2: [Another example with different scenario] ## Guidelines - Guideline 1: [Important rule or constraint] - Guideline 2: [Best practice or limitation] - Guideline 3: [Safety consideration or warning] ## Resources [Optional: List of files, tools, or external resources this skill uses]
Adding Resources & Scripts
Resources
Files and data your Skill needs:
- • Configuration files
- • Templates and examples
- • Reference documents
- • Data sets or lookup tables
- • Style guides or brand assets
Scripts
Automated processes and utilities:
- • Python scripts for data processing
- • Shell scripts for automation
- • JavaScript for web interactions
- • Validation and testing scripts
- • Integration utilities
Important: All resources should be relative to the Skill folder. Use proper file paths and ensure all dependencies are included.
Packaging & Testing
Packaging Your Skill
- 1. Create a folder with your Skill name
- 2. Add SKILL.md as the main file
- 3. Include all necessary resources and scripts
- 4. Create a README.md with documentation
- 5. Add LICENSE.txt if applicable
- 6. ZIP the entire folder
Testing Your Skill
Test Scenarios
- • Test with simple requests first
- • Try complex, multi-step scenarios
- • Test edge cases and error conditions
- • Verify resource accessibility
- • Check script execution
Validation Checklist
- ✓ YAML frontmatter is valid
- ✓ All required fields are present
- ✓ Instructions are clear and actionable
- ✓ Examples are representative
- ✓ Resources are properly referenced
- ✓ ZIP file contains all necessary files
Best Practices
Design Principles
- • Keep it focused: Single purpose per Skill
- • Be explicit: Clear, unambiguous instructions
- • Think modular: Design for reusability
- • Handle errors: Provide fallback options
- • Document thoroughly: Explain usage and limitations
Security Considerations
- • Validate inputs: Check user-provided data
- • Sanitize outputs: Filter sensitive information
- • Limit access: Don't expose internal systems
- • Use HTTPS: For external connections
- • Review code: Check for vulnerabilities
Common Pitfalls to Avoid
Technical Issues
- • Invalid YAML syntax in frontmatter
- • Missing required fields (name, description)
- • Broken file paths to resources
- • Large files causing performance issues
- • Script dependencies not included
Design Problems
- • Vague or ambiguous instructions
- • Skills that are too broad in scope
- • Missing error handling guidance
- • Poorly organized content structure
- • Insufficient testing and validation
Ready to Create Your First Skill?
1. Choose a Purpose
Identify a specific task or workflow you want to automate or improve
2. Create SKILL.md
Write clear instructions and add proper metadata
3. Package & Upload
Zip your Skill and upload it to Claude