Skill Optimizer
Purpose
Optimize existing Claude Code skills to minimize token consumption by leveraging the three-level content loading architecture and progressive disclosure patterns.
When to Use
Use this skill when:
- •Analyzing existing skills for optimization opportunities
- •Skills are too large (approaching or exceeding 500 lines)
- •Need to reduce context consumption
- •Restructuring skills for progressive disclosure
- •Converting monolithic skills to multi-file architecture
- •Optimizing YAML frontmatter for better discovery
- •Improving skill performance and load times
- •Auditing skills for token efficiency
- •Creating new skills with optimization in mind
Content Loading Architecture
Three-Level Loading System
Level 1: Metadata (Always Loaded - ~100 tokens/skill)
- •YAML frontmatter in SKILL.md
- •Loaded at startup into system prompt
- •Enables skill discovery without context overhead
- •Optimization Target: Description field (max 1024 chars)
Level 2: Instructions (Loaded When Triggered - <5,000 tokens)
- •Main SKILL.md content
- •Loads dynamically when skill is relevant
- •Contains workflows, best practices, guidance
- •Optimization Target: Keep under 500 lines
Level 3: Resources (Loaded As Needed - Variable)
- •Additional markdown files (REFERENCE.md, EXAMPLES.md, etc.)
- •Code scripts in scripts/ directory
- •Templates, schemas, documentation
- •Optimization Target: No penalty until accessed
Key Principle
"Files don't consume context until accessed" - Bundle comprehensive documentation in reference files without context penalty.
Quick Optimization Workflow
1. Analyze Current State
Check skill size:
wc -l .claude/skills/skill-name/SKILL.md
Identify optimization opportunities:
- • SKILL.md > 500 lines?
- • Detailed API docs in main file?
- • Extensive examples in main file?
- • Long reference tables or schemas?
- • Code snippets that could be scripts?
- • Multiple distinct topics/sections?
2. Apply 500-Line Rule
If SKILL.md > 500 lines:
✅ Keep in main file:
- •Purpose and when to use
- •Quick start / common workflows
- •Critical best practices
- •Brief examples (5-10 lines)
- •Cross-references to detailed files
❌ Move to reference files:
- •Comprehensive API documentation
- •Extensive code examples (>20 lines)
- •Detailed troubleshooting guides
- •Pattern libraries
- •Schema definitions
- •Long reference tables
3. Structure Reference Files
Create organized reference hierarchy:
skill-name/
├── SKILL.md # <500 lines, workflows & quick ref
├── REFERENCE.md # Comprehensive documentation
├── EXAMPLES.md # Detailed code examples
├── PATTERNS.md # Pattern library
├── TROUBLESHOOTING.md # Debug guide
└── scripts/ # Executable utilities
└── helper.sh
Add table of contents to files >100 lines
4. Optimize YAML Frontmatter
Description optimization (max 1024 chars):
✅ Include:
- •All trigger keywords and phrases
- •Use cases and scenarios
- •File types and technologies
- •Common action verbs
- •Related concepts
❌ Avoid:
- •Generic descriptions
- •Missing key terms
- •Overly verbose explanations
Example:
--- name: database-development description: Database development guidance for PostgreSQL including schema design, migrations, RLS policies, indexing strategies, privacy-preserving patterns, query optimization, and Prisma ORM. Use when working with tables, columns, indexes, migrations, RLS, Row-Level Security, database schema, SQL queries, Prisma schema, database optimization, privacy architecture, or PostgreSQL best practices. ---
5. Implement Progressive Disclosure
Pattern:
## Topic Overview Brief explanation (2-3 sentences). **Key Points:** - Important consideration 1 - Important consideration 2 **For detailed information**: [REFERENCE.md](REFERENCE.md#topic-details) **Quick Example:** \`\`\`typescript // Minimal working example (5-10 lines) \`\`\` **For more examples**: [EXAMPLES.md](EXAMPLES.md#topic-examples)
Optimization Patterns Summary
Pattern 1: Extract API Documentation
Strategy: Move detailed API docs to REFERENCE.md
Before: 80+ lines of API documentation in SKILL.md After: 10-line summary with link to complete docs Savings: ~70 lines (~1,400 tokens)
For complete pattern details: REFERENCE.md
Pattern 2: Extract Pattern Libraries
Strategy: Move code patterns to PATTERNS.md
Before: 200+ lines of pattern code in SKILL.md After: 18-line summary with quick example Savings: ~182 lines (~3,640 tokens)
For complete pattern details: REFERENCE.md
Pattern 3: Extract Troubleshooting
Strategy: Move debug guides to TROUBLESHOOTING.md
Before: 300+ lines of troubleshooting in SKILL.md After: 18-line summary with quick diagnostics Savings: ~282 lines (~5,640 tokens)
For complete pattern details: REFERENCE.md
Pattern 4: Convert Code to Scripts
Strategy: Move executable code to scripts/ directory
Before: 55+ lines of bash script in SKILL.md After: 7-line reference to executable script Savings: ~48 lines (~960 tokens) + script code never enters context
For complete pattern details: REFERENCE.md
Common Anti-Patterns
Avoid these common mistakes when creating or optimizing skills:
❌ Anti-Pattern 1: Monolithic Skills
- •Single SKILL.md with 1000+ lines
- •Solution: Split into main + reference files
❌ Anti-Pattern 2: Incomplete References
- •Reference files exist but not linked
- •Solution: Link all reference files from SKILL.md
❌ Anti-Pattern 3: Nested References
- •References pointing to other references (>1 level)
- •Solution: Keep hierarchy flat (max 1 level)
❌ Anti-Pattern 4: Sparse Frontmatter
- •Minimal YAML description missing keywords
- •Solution: Rich description with all triggers
❌ Anti-Pattern 5: Code as Documentation
- •100+ line scripts embedded in markdown
- •Solution: Move to scripts/ directory
For detailed anti-patterns and solutions: REFERENCE.md
Migration Workflow
Quick Migration Steps
Phase 1: Discovery
# Check skill size wc -l .claude/skills/skill-name/SKILL.md # Identify sections to extract grep "^##" .claude/skills/skill-name/SKILL.md
Phase 2: Planning
- •Design file hierarchy (SKILL.md + reference files)
- •Plan content distribution
- •Identify scripts to extract
Phase 3: Implementation
# Create reference files touch REFERENCE.md EXAMPLES.md mkdir -p scripts # Extract content systematically # 1. Copy section to reference file # 2. Replace in SKILL.md with summary + link # 3. Verify link works # 4. Remove detailed content from SKILL.md
Phase 4: Optimization
- •Trim remaining content
- •Optimize frontmatter with trigger keywords
- •Add navigation aids (table of contents)
Phase 5: Validation
# Verify under 500 lines wc -l .claude/skills/skill-name/SKILL.md # Test links work grep -o '\[.*\](.*\.md#.*)' SKILL.md
For complete migration workflow: REFERENCE.md
Advanced Techniques
Quick reference to advanced optimization strategies:
Technique 1: Conditional Content Loading
- •Structure content so advanced sections load only when needed
- •Benefits: Most users don't load advanced content
Technique 2: Layered Examples
- •Progressive complexity: minimal → production → enterprise
- •Benefits: Beginners see simple examples, advanced users access complex ones
Technique 3: Executable Documentation
- •Scripts that both execute and document
- •Benefits: Zero token cost, self-documenting output
Technique 4: Tabular Compression
- •Use tables to compress structured data
- •Benefits: 60%+ space reduction for configurations/options
Technique 5: Smart Chunking
- •Group related small sections instead of individual extraction
- •Benefits: Better narrative flow, fewer cross-references
For detailed advanced techniques: REFERENCE.md
Optimization Checklist
When optimizing a skill, verify:
Content Structure
- • SKILL.md is under 500 lines
- • Main file contains quick reference only
- • Detailed docs moved to reference files
- • Reference files have table of contents (if >100 lines)
- • Cross-references use relative links
- • No deeply nested references (max 1 level)
YAML Frontmatter
- • Description includes all trigger keywords
- • Description is under 1024 characters
- • Description covers use cases and scenarios
- • Description mentions file types/technologies
- • Name follows kebab-case convention
Progressive Disclosure
- • Overview → Details pattern used
- • Quick examples in main file (5-10 lines)
- • Extensive examples in EXAMPLES.md
- • Brief summaries with references to details
- • Common workflows highlighted in main file
File Organization
- • Reference files named clearly
- • Scripts in scripts/ directory
- • Scripts are executable (chmod +x)
- • No redundant content across files
- • Each file has single, clear purpose
Token Efficiency
- • Eliminated verbose explanations
- • Removed duplicate information
- • Used bullet points vs paragraphs
- • Moved large code blocks to reference files
- • Converted reusable code to scripts
Measurement & Validation
Token Estimation
Quick estimate:
lines=$(wc -l < SKILL.md) tokens=$((lines * 20)) # Conservative: 20 tokens/line echo "Estimated tokens: ~$tokens"
Target: Keep SKILL.md under 10,000 tokens (~500 lines)
Before/After Comparison
# Calculate savings BEFORE=850 # lines before optimization AFTER=420 # lines after optimization SAVINGS=$((BEFORE - AFTER)) TOKEN_SAVINGS=$((SAVINGS * 20)) echo "Reduced by $SAVINGS lines" echo "Estimated token savings: ~$TOKEN_SAVINGS tokens"
Quality Checks
- • All original information preserved
- • Links work correctly
- • Main file comprehensive for common cases
- • Reference files well-organized
- • Navigation intuitive
For detailed measurement methods: REFERENCE.md
Best Practices Summary
✅ DO:
- •Keep SKILL.md minimum but use other reference files to keep the full and detailed knowledge base
- •Use progressive disclosure (overview → details)
- •Include all trigger keywords in description
- •Create clear cross-references to detailed docs
- •Add table of contents to reference files >100 lines
- •Convert reusable code to scripts
- •Test optimization with real usage
❌ DON'T:
- •Exceed 500 lines in SKILL.md
- •Nest references more than 1 level deep
- •Include API docs in main file
- •Embed long code examples in main file
- •Create reference files without linking them
- •Use sparse YAML descriptions
- •Optimize without preserving critical info
Quick Reference
File size limits:
- •SKILL.md: <500 lines (strict)
- •Reference files: No limit (loaded on-demand)
- •YAML description: 1024 chars max
Optimization priority:
- •Apply 500-line rule to SKILL.md
- •Extract API docs to REFERENCE.md
- •Move examples to EXAMPLES.md or PATTERNS.md
- •Convert scripts to scripts/ directory
- •Enrich YAML frontmatter description
Common extractions:
- •API documentation → REFERENCE.md
- •Code examples → EXAMPLES.md
- •Troubleshooting → TROUBLESHOOTING.md
- •Pattern library → PATTERNS.md
- •Scripts → scripts/ directory
Typical token savings:
- •API extraction: ~1,400 tokens
- •Pattern library: ~3,640 tokens
- •Troubleshooting: ~5,640 tokens
- •Scripts: ~960 tokens + no code in context
For comprehensive optimization patterns and detailed workflows: REFERENCE.md
Real-World Example
Before optimization:
skill-example/ └── SKILL.md (850 lines, ~17,000 tokens)
After optimization:
skill-example/
├── SKILL.md (420 lines, ~8,400 tokens)
├── REFERENCE.md (350 lines, loaded on-demand)
├── EXAMPLES.md (180 lines, loaded on-demand)
└── scripts/
├── validate.sh (code never enters context)
└── setup.sh (code never enters context)
Result: 50% token reduction on initial load, comprehensive docs still available on-demand
Next Steps:
- •Audit existing skills:
wc -l .claude/skills/*/SKILL.md - •Identify candidates for optimization (>500 lines)
- •Apply optimization workflow
- •Measure token savings
- •Validate with real usage
For detailed guidance: See REFERENCE.md for complete optimization patterns, anti-patterns, migration workflows, and advanced techniques.