Universal guide for creating production-ready Claude Code skills for any project. Includes 6-step workflow (understand, plan, initialize, edit, package, iterate), progressive disclosure design, YAML frontmatter templates, validation scripts, reference organization patterns, and 10 community-proven innovations. Use when creating new Claude Code skills, converting documentation to skills, improving existing skills, or learning skill development best practices for any domain.
63
77%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/skill-builder-generic/SKILL.mdSkills are structured knowledge packages that extend Claude Code's capabilities for specific domains. They follow a standardized format:
Without Skills: Every task requires full context in conversation, repeated explanations, and no knowledge persistence across sessions.
With Skills: Domain knowledge is packaged once, invoked by name, loaded progressively, and reused across all projects.
Create skills when:
Don't create skills when:
Progressive Disclosure: Keep SKILL.md lean, bundle details in references/
Imperative/Infinitive Voice: Write action-oriented instructions
Trigger Keywords: Include discoverable terms in description
Objective: Clearly define what the skill should accomplish
Questions to Answer:
Output: Clear problem statement and scope definition
Example:
Problem: Developers waste time figuring out Railway deployment for each project
Scope: Document Railway deployment workflow for Node.js + React apps
Users: Development team
Domain: Deployment, Railway, Docker, environment configuration
Patterns: Workflow-based (sequential steps)References: See references/converting-docs-to-skills.md for converting existing documentation
Objective: Choose organizational pattern and plan file structure
Choose Organizational Pattern (see 4 Organizational Patterns):
Workflow-based: Sequential processes with clear steps
Task-based: Independent operations without order dependency
Reference/Guidelines: Standards, patterns, design systems
Capabilities-based: Integrated feature suites with multiple entry points
Plan File Structure:
skill-name/
├── SKILL.md (always)
├── references/ (if detailed guides needed)
│ ├── detailed-guide-1.md
│ └── detailed-guide-2.md
├── scripts/ (if automation needed)
│ └── helper-script.py
└── templates/ (if reusable patterns)
└── template-file.mdProgressive Disclosure Planning:
Output: Organizational pattern chosen, file structure planned
References: See references/reference-organization-strategies.md for detailed planning
Objective: Create directory structure and scaffold files
Manual Approach:
# Create skill directory
mkdir -p .claude/skills/skill-name
# Create SKILL.md with frontmatter
cat > .claude/skills/skill-name/SKILL.md <<'EOF'
---
name: skill-name
description: [What it does]. Use when [triggers].
---
# Skill Name
## Overview
[Purpose in 1-2 sentences]
## Quick Start
[Basic usage]
EOF
# Create subdirectories if needed
mkdir -p .claude/skills/skill-name/references
mkdir -p .claude/skills/skill-name/scriptsAutomated Approach (using scripts):
# Initialize with template
python scripts/init-skill.py skill-name --template workflow
# Initialize interactively
python scripts/init-skill.py skill-name --interactiveYAML Frontmatter Template:
---
name: skill-name-in-hyphen-case
description: [What skill does in 1-2 sentences]. [Key features]. Use when [trigger scenarios with keywords].
---Description Formula: What + Features + Triggers
Output: Directory structure created, SKILL.md scaffolded
References: See references/yaml-frontmatter-complete-guide.md for YAML details
Objective: Write comprehensive skill documentation
SKILL.md Structure (Workflow-based example):
---
name: deployment-guide
description: Railway deployment workflow for Node.js + React apps...
---
# Deployment Guide
## Overview
Complete Railway deployment workflow for full-stack applications.
## Prerequisites
- Railway account
- GitHub repository
- Node.js project
## Workflow
### Step 1: Prepare Application
[Instructions]
### Step 2: Configure Railway
[Instructions]
### Step 3: Deploy
[Instructions]
### Step 4: Verify
[Instructions]
## Troubleshooting
Common issues and solutions. See [references/troubleshooting-guide.md](references/troubleshooting-guide.md) for comprehensive guide.
## References
- [Environment Configuration](references/environment-config.md)
- [Deployment Checklist](references/deployment-checklist.md)Writing Guidelines:
Use Imperative Voice:
Be Specific:
npm run build to create production bundle"Include Examples:
Reference, Don't Duplicate:
Output: SKILL.md written, references created if needed
References: See references/writing-style-imperative-guide.md for writing standards
Objective: Validate skill meets quality standards
Validation Checklist:
YAML Frontmatter (12 checks):
File Structure (10 checks):
Content Quality (10 checks):
Automated Validation:
# Validate skill structure
python scripts/validate-skill.py skill-name/
# Analyze description for trigger effectiveness
python scripts/analyze-description.py skill-name/
# Package skill for distribution
bash scripts/package-skill.sh skill-name/Output: Skill validated, ready for use or distribution
References: See references/validation-checklist-complete.md for comprehensive validation
Objective: Continuously improve skill based on usage
Improvement Cycle:
Use skill in real scenarios
Gather feedback
Identify improvements
Update skill
Track evolution
Common Improvements:
Output: Skill continuously improving over time
Create a minimal but complete skill in 5 minutes:
# Use hyphen-case, descriptive
my-skill-name # Good
my_skill_name # Bad (underscores)
MySkillName # Bad (capitals)mkdir -p .claude/skills/my-skill-name
cd .claude/skills/my-skill-name---
name: my-skill-name
description: Brief description of what skill does. Use when working on specific task or domain.
---
# My Skill Name
## Overview
One paragraph explaining purpose and value.
## Quick Start
### Basic Usage
1. First step
2. Second step
3. Third step
### Example
\`\`\`bash
# Example command or code
echo "Hello from skill"
\`\`\`
## When to Use
- Scenario 1
- Scenario 2
- Scenario 3
## References
- Link to external documentation if needed# Test by invoking skill in Claude Code conversation
# "Use the my-skill-name skill to help with [task]"Add more content over time as you use the skill.
Result: Functional minimal skill in 5 minutes!
Use When: Sequential processes with clear steps
Structure:
## Workflow
### Step 1: [Action]
Instructions for step 1
### Step 2: [Action]
Instructions for step 2
### Step 3: [Action]
Instructions for step 3Examples:
Characteristics:
Best Practices:
Use When: Independent operations without order dependency
Structure:
## Tasks
### Task A: [Action]
Complete instructions for task A
### Task B: [Action]
Complete instructions for task B
### Task C: [Action]
Complete instructions for task CExamples:
Characteristics:
Best Practices:
Use When: Standards, patterns, design systems, best practices
Structure:
## Guidelines
### Guideline 1: [Concept]
Explanation and examples
### Guideline 2: [Concept]
Explanation and examples
## Reference
### Component A
Details and usage
### Component B
Details and usageExamples:
Characteristics:
Best Practices:
Use When: Integrated feature suites with multiple entry points
Structure:
## Capabilities
### Capability A: [Feature]
How to use feature A
- Sub-feature 1
- Sub-feature 2
### Capability B: [Feature]
How to use feature B
- Sub-feature 1
- Sub-feature 2
## Integration
How capabilities work togetherExamples:
Characteristics:
Best Practices:
Decision Tree:
Is there a required sequence? → Yes: Workflow-based → No: Go to 2
Are operations independent? → Yes: Task-based → No: Go to 3
Is it primarily reference material? → Yes: Reference/Guidelines → No: Capabilities-based
Pattern Mixing: You can combine patterns
Example: Deployment skill might be:
Level 1: SKILL.md (Always Loaded)
Level 2: references/ (On-Demand Loading)
Level 3: scripts/ (Execution Loading)
Put in SKILL.md:
Put in references/:
Put in scripts/:
Problem: Large skills consume context window Solution: Progressive disclosure
Before Optimization (Everything in SKILL.md):
SKILL.md: 15,000 words
Context used: ~30,000 tokens
Claude has: ~70,000 tokens remaining for workAfter Optimization (Progressive disclosure):
SKILL.md: 3,000 words
references/: 12,000 words (loaded when needed)
Context used: ~6,000 tokens (initial)
Claude has: ~94,000 tokens remaining for workResult: 5x context efficiency!
Good Reference Link:
For comprehensive YAML guide, see [references/yaml-frontmatter-complete-guide.md](references/yaml-frontmatter-complete-guide.md)What makes it good:
Bad Reference Link:
See the guide [here](references/guide.md)What's wrong:
Patterns discovered from analyzing 40+ community skills:
Innovation: Explicit planning phase before execution Structure:
1. Analyze requirements
2. Create plan
3. Validate plan with user
4. Execute plan
5. Validate resultsBenefit: Fewer errors, user confidence, better outcomes
Innovation: Built-in improvement cycles Structure:
Execute → Measure → Analyze → Improve → RepeatBenefit: Continuous improvement, self-correcting
Innovation: Multi-skill composition for complex tasks Structure:
Skill A (research) → Skill B (plan) → Skill C (execute) → Skill D (validate)Benefit: Compound capabilities, modular design
Innovation: Automated checks for SKILL.md size Implementation: Script validates <5,000 words, warns if exceeded Benefit: Maintains context efficiency
Innovation: Standardized output formats Structure: templates/ directory with reusable formats Benefit: Consistency, faster creation
Innovation: Load different references based on context Example: Development vs Production guides Benefit: Context-appropriate information
Innovation: Skill-specific helper libraries Example: FHIR validation library for medical skills Benefit: Reusable code, consistent validation
Innovation: Skills organized by category in repository Structure: .claude/skills/[category]/[skill-name]/ Benefit: Easier navigation, logical grouping
Innovation: Scripts generate documentation from code Example: API documentation from endpoint definitions Benefit: Always up-to-date, reduced maintenance
Innovation: Validation in multiple stages Phases:
YAML Frontmatter:
File Organization:
Writing Style:
Organizational Patterns:
See References:
This skill includes 4 automation scripts:
Purpose: Initialize new skill with template Usage:
python scripts/init-skill.py skill-name [--template PATTERN] [--interactive]Features:
Purpose: Multi-phase skill validation Usage:
python scripts/validate-skill.py skill-name/Validation Phases:
Purpose: Analyze description for trigger effectiveness Usage:
python scripts/analyze-description.py skill-name/Analysis:
Purpose: Package skill for distribution Usage:
bash scripts/package-skill.sh skill-name/Process:
See: references/script-integration-patterns.md for script development guide
Causes:
Fixes:
Causes:
Fixes:
Causes:
Fixes:
Causes:
Fixes:
python scripts/validate-skill.py skill-name/Causes:
Fixes:
To Learn More:
To Create Your First Skill:
To Use Templates:
To Validate Quality:
python scripts/validate-skill.py skill-name/python scripts/analyze-description.py skill-name/Version: 1.0 Research: 11 sources, 40+ community skills analyzed Last Updated: October 25, 2025 Skill Type: Reference/Guidelines (meta-skill for creating skills)
93ed392
Also appears in
since Sep 12, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.