Skill Creator
Create well-structured agent skills that comply with the Agent Skills Specification v1.0.
When to Use This Skill
Use skill-creator when you need to:
- •Create a new skill from scratch
- •Scaffold the directory structure for a skill
- •Generate valid SKILL.md with proper YAML frontmatter
- •Ensure spec compliance from the start
- •Validate an existing skill's structure
Skill Creation Process
Phase 1: Planning
Gather Requirements
- •Ask for the skill's purpose and scope
- •Determine if scripts, templates, or assets are needed
- •Identify dependencies (Python packages, npm modules)
- •Clarify when the skill should be used
Key Questions
- •What specific task does this skill address?
- •What are the inputs and expected outputs?
- •Does it need executable code (scripts)?
- •Does it need templates or reference materials?
- •What tools will it use?
Phase 2: Naming and Structure
Generate Skill Name
- •Use hyphen-case format (lowercase, hyphens only)
- •Maximum 64 characters
- •Descriptive and specific
- •Examples:
code-complexity-analyzer,api-doc-generator
Invalid Names
- •❌
Code_Analyzer(underscores) - •❌
codeAnalyzer(camelCase) - •❌
CODE-ANALYZER(uppercase) - •✓
code-analyzer(correct)
Determine Directory Structure
Minimal (instructions only):
text
skill-name/ └── SKILL.md
With scripts:
text
skill-name/
├── SKILL.md
└── scripts/
└── helper.py
Full structure:
text
skill-name/
├── SKILL.md
├── scripts/
│ └── helper.py
├── templates/
│ └── template.md
├── assets/
│ └── output/
└── references/
└── docs.md
Phase 3: Generate SKILL.md
Create YAML Frontmatter
Required fields:
yaml
--- name: skill-name description: Clear explanation of what the skill does and when Claude should use it ---
With optional fields:
yaml
--- name: skill-name description: Clear explanation of what the skill does and when Claude should use it license: MIT allowed-tools: - Read - Write - Bash metadata: author: username version: "1.0.0" ---
Description Guidelines
- •~200 characters (max 1024)
- •Explain WHAT the skill does
- •Explain WHEN to use it
- •Be specific and actionable
- •Example: "Analyze code complexity using cyclomatic complexity metrics. Use when assessing code maintainability or identifying refactoring candidates."
Write Skill Instructions
Use imperative language:
markdown
# Skill Name Brief introduction to what this skill does. ## When to Use This Skill List specific scenarios... ## Process ### Step 1: Action Instructions in imperative form... ### Step 2: Action More instructions... ## Examples ### Example 1: Concrete Scenario Input: ... Expected Output: ...
Best Practices
- •Keep under 5,000 words
- •Use concrete examples
- •Reference bundled resources by relative path (e.g., templates/my-template.md)
- •Focus on procedural knowledge
- •Avoid redundancy
Phase 4: Create Supporting Files
Scripts
- •Place in
scripts/directory - •Include usage instructions in SKILL.md
- •Remind users to run
script --helpfirst - •Treat scripts as black boxes
Example reference in SKILL.md:
markdown
Run the validation script: \`\`\`bash python scripts/validate.py --help python scripts/validate.py --input data.json \`\`\`
Templates
- •Place in
templates/directory - •Reference from SKILL.md
- •Provide clear descriptions of when to use each template
Assets
- •Use for output files or resources
- •Create subdirectories for organization
Phase 5: Validation
Run Validation Checks
- •
Name validation
- •Directory name matches YAML
namefield exactly - •Hyphen-case format
- •≤64 characters
- •Only lowercase Unicode alphanumeric and hyphens
- •Directory name matches YAML
- •
YAML validation
- •Valid YAML syntax
- •Required fields present:
name,description - •Field constraints met
- •
File reference validation
- •All referenced files exist
- •Paths are correct relative to skill root
- •
Content validation
- •Description explains what AND when
- •Instructions are imperative
- •Examples are concrete
- •Word count reasonable (<5,000)
Use Validation Script
bash
python scripts/validate_skill.py /path/to/skill-name
Phase 6: Documentation
In SKILL.md, Include
- •Clear title and introduction
- •"When to Use This Skill" section
- •Step-by-step process
- •At least 2 concrete examples
- •Dependencies clearly stated
- •References to bundled resources
Avoid
- •Redundant explanations
- •Vague instructions
- •Implementation details (focus on what to do, not how)
- •Hardcoded credentials or secrets
Templates
Use these templates as starting points:
Basic Skill Template
bash
cat templates/basic-skill.md
Skill with Scripts Template
bash
cat templates/skill-with-scripts.md
Validation Script
Validate a skill's structure:
bash
python scripts/validate_skill.py /path/to/skill-directory
The script checks:
- •YAML frontmatter validity
- •Name format and matching
- •Required fields present
- •File references exist
- •Common anti-patterns
Examples
Example 1: Simple Instruction-Only Skill
Input: "Create a skill for applying brand guidelines"
Steps:
- •Name:
brand-guidelines - •Structure: Minimal (SKILL.md only)
- •SKILL.md:
yaml
--- name: brand-guidelines description: Apply brand visual identity guidelines including colors, typography, and spacing. Use when creating branded materials or reviewing designs. license: MIT --- # Brand Guidelines Apply consistent brand visual identity. ## Colors - Primary: #1A1A1A - Secondary: #4A90E2 ## Typography - Headings: Inter, 24px, 600 weight - Body: Inter, 16px, 400 weight ## Spacing - Base unit: 8px - Margins: 16px, 24px, 32px
Example 2: Skill with Scripts
Input: "Create a skill for testing web applications with Playwright"
Steps:
- •Name:
webapp-testing - •Structure: With scripts
- •Create helper script in scripts/ directory
- •SKILL.md references the script with usage examples showing --help flag and actual invocation
Common Pitfalls
- •Name mismatch: Directory name must match YAML
namefield exactly - •Vague description: Must explain both WHAT and WHEN
- •Missing examples: Always include concrete examples
- •Too broad: One skill, one focused task
- •Broken references: Validate all file paths
- •Hardcoded secrets: Never include credentials
Validation Checklist
Before finalizing a skill:
- • Directory name is hyphen-case, ≤64 chars
- • Directory name matches YAML
namefield - • YAML frontmatter is valid
- • Description explains WHAT and WHEN (~200 chars)
- • Instructions are imperative
- • At least 2 concrete examples provided
- • All file references exist
- • No hardcoded credentials
- • SKILL.md under 5,000 words
- • Dependencies clearly stated
Resources
- •Agent Skills Specification: https://github.com/anthropics/skills/blob/main/agent_skills_spec.md
- •Validation script:
scripts/validate_skill.py - •Templates:
templates/directory