Skip to main content
Skills are a powerful way to teach Claude specialized capabilities. Instead of repeatedly explaining the same workflow or pasting the same instructions, you can package knowledge into a reusable skill that Claude loads automatically when needed.

How skills work

Skills use a progressive disclosure system that balances context efficiency with access to detailed information:
1

Skills are always available

Claude sees the name and description of all installed skills in its context. This metadata (~100 words per skill) helps Claude decide when to load a skill.Example from the PDF skill:
2

Main instructions load on trigger

When a skill is relevant, Claude loads the SKILL.md body containing core instructions. This is typically under 500 lines and provides the main workflow guidance.The PDF skill’s main instructions cover:
  • Quick reference for common tasks
  • Python library usage (pypdf, pdfplumber, reportlab)
  • Command-line tools (qpdf, pdftotext)
  • Code examples for merging, splitting, extracting tables
3

Resources load as needed

For deeper detail, skills can bundle reference files that Claude reads only when needed:
  • references/ - Documentation loaded selectively (e.g., advanced API details)
  • scripts/ - Executable code that runs without loading into context
  • assets/ - Files used in output (templates, icons, fonts)
The MCP builder skill uses this pattern:
Claude reads these only when implementing specific functionality.

Anatomy of a skill

Every skill follows this structure:

Required: SKILL.md

The only required file is SKILL.md with YAML frontmatter:
Frontmatter fields:
  • name - Unique identifier (lowercase, hyphens for spaces)
  • description - Complete description of what the skill does and when to use it (this is the primary triggering mechanism)
  • license - Optional license information
  • compatibility - Optional list of required tools or dependencies

Optional: Bundled resources

Skills can include additional files: Scripts (scripts/) - Executable code for deterministic tasks:
Skills reference scripts in their instructions, and Claude can run them directly without loading them into context. References (references/) - Detailed documentation:
Claude reads these files only when working on tasks that need the specific information. Assets (assets/) - Files used in output:
  • Templates (document templates, HTML scaffolds)
  • Visual elements (logos, icons, fonts)
  • Configuration files

Progressive disclosure in action

Here’s how the skill creator skill uses progressive disclosure: Level 1 - Metadata (always in context):
Level 2 - Main instructions (~480 lines):
  • High-level workflow for creating skills
  • Interview questions to capture intent
  • How to write SKILL.md
  • Testing and iteration process
  • When to read reference files
Level 3 - References (loaded as needed):
  • references/schemas.md - JSON structures for evaluation files
  • agents/grader.md - How to evaluate test outputs
  • agents/comparator.md - Blind A/B comparison process
  • agents/analyzer.md - Benchmark analysis guidelines

Why progressive disclosure matters

This three-level system provides key benefits: Efficient context usage - Only load what’s needed for the current task:
  • Creating a simple skill? Just the main instructions
  • Running complex evaluations? Load the grader and analyzer references
  • Optimizing skill descriptions? Load the description optimizer docs
Unlimited specialized knowledge - Scripts and large reference files don’t count against context limits when not loaded. Clear organization - The structure makes it obvious where to find information:
  • Quick patterns? Check the main SKILL.md
  • Detailed edge cases? Look in references/
  • Reusable automation? Run scripts/
Faster execution - Scripts run without being read, saving both time and context.

Skill triggering

Claude decides whether to use a skill based on the description field. Make descriptions specific:
Claude tends to “undertrigger” skills - to not use them when they’d be useful. Make descriptions slightly “pushy” by listing multiple contexts where the skill applies.

Real-world example: MCP builder

The MCP builder skill shows progressive disclosure at scale: Main SKILL.md (~237 lines):
  • Four-phase workflow (research, implementation, review, evaluation)
  • When to load each reference file
  • High-level best practices
  • Links to detailed guides
References loaded selectively:
  1. mcp_best_practices.md - Universal MCP guidelines (loaded during Phase 1)
  2. node_mcp_server.md - TypeScript patterns (loaded only if using TypeScript)
  3. python_mcp_server.md - Python patterns (loaded only if using Python)
  4. evaluation.md - Testing guidelines (loaded only during Phase 4)
This structure means:
  • A Python developer never loads the TypeScript guide
  • Implementation phase doesn’t load evaluation docs
  • Context stays focused on the current phase

Key principles

Keep SKILL.md under 500 lines - If approaching this limit, move detailed content to reference files with clear pointers about when to read them.
When organizing large skills:
  1. Main instructions should be workflows, not encyclopedias - Guide Claude through the process and tell it where to find details
  2. Reference files should be self-contained - Each reference should cover one topic completely so Claude can read just that file
  3. Scripts should be reusable - Write scripts that multiple skills could use, not one-off implementations
  4. Group by variant, not by type - For skills supporting multiple frameworks:
    Claude reads only the relevant cloud provider’s file.

Example: Building a brand guidelines skill

Here’s a simple but complete skill:
This skill:
  • Has clear triggering in the description
  • Provides actionable guidelines in ~30 lines
  • Needs no bundled resources (colors and fonts are the only data)
  • Can be used immediately

Next steps

Install skills

Set up skills in Claude Code, Claude.ai, or the API

Create your first skill

Use the template to build a custom skill