Understand the three-level loading system that enables skills to provide extensive capabilities while minimizing context window usage.
The Agent Skills specification uses a three-level progressive disclosure loading system. This design allows skills to provide extensive capabilities and documentation while minimizing context window usage.
Size: ~50-200 words per skillPurpose: Enable skill discovery and triggering decisionsContext impact: Minimal - agents can have awareness of dozens of skills
---name: mcp-builderdescription: Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).---
This metadata is always in the agent’s context, appearing in the available_skills list. The agent uses it to decide when to load the full skill.
Size: <500 lines ideal (can be longer if needed)Purpose: Provide core instructions for executing the skillContext impact: Moderate - loaded only when skill is triggeredExample structure:
# MCP Server Development Guide## OverviewCreate MCP servers that enable LLMs to interact with external services...## Process### Phase 1: Deep Research and Planning#### 1.1 Understand Modern MCP DesignAPI Coverage vs. Workflow Tools: Balance comprehensive API endpoint coverage...#### 1.2 Study MCP Protocol DocumentationStart with the sitemap to find relevant pages...#### 1.3 Study Framework Documentation**For TypeScript (recommended):**- [⚡ TypeScript Guide](./reference/node_mcp_server.md)**For Python:**- [🐍 Python Guide](./reference/python_mcp_server.md)### Phase 2: Implementation[Core implementation instructions...]### Phase 3: Testing[Testing instructions...]
Notice how the SKILL.md references bundled resources without loading them yet.
Size: Unlimited (scripts can execute without loading into context)Purpose: Provide detailed reference material and reusable codeContext impact: Variable - loaded only when referencedExample resource organization:
The agent loads the full SKILL.md file into context:
---name: mcp-builderdescription: ...---# MCP Server Development Guide## OverviewCreate MCP servers...## Process### Phase 1: Deep Research and Planning#### 1.3 Study Framework Documentation**For TypeScript (recommended):**- [⚡ TypeScript Guide](./reference/node_mcp_server.md)...
The agent now has the workflow and knows references are available.
Agent follows Phase 1.3:“I need to study the framework documentation. The user wants to use TypeScript, so I’ll read the TypeScript guide.”Agent reads:reference/node_mcp_server.mdOnly this one reference file is loaded - the Python guide, best practices, and scripts remain unloaded.Later, during implementation:“The skill mentions a validation script. I’ll execute it to check the server.”Agent runs:python scripts/validate_server.pyThe script executes without loading into context.
Include specific keywords and contexts that users might mention:
description: Format git commit messages following conventional commits specification. Use when creating commits, formatting commit messages, or standardizing repository commit history.
Keywords: git, commit, messages, conventional commits, commit history
Be Pushy About When to Use
Combat under-triggering by explicitly listing use cases:
description: Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
## ImplementationFor language-specific details:- TypeScript: See [reference/typescript.md](./reference/typescript.md)- Python: See [reference/python.md](./reference/python.md)
Reference Resources Clearly
Be explicit about when to read each resource:
## ValidationAfter implementation, run the validation script:```bashpython scripts/validate_output.py output.json
name: skill-creatordescription: Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Size: 56 words
Purpose: Triggers on skill creation, modification, testing, or optimization requests
# Skill CreatorA skill for creating new skills and iteratively improving them.## Creating a skill### Capture Intent1. What should this skill enable Claude to do?2. When should this skill trigger?...### Write the SKILL.md...### Test Cases ...## Running and evaluating test cases...## Improving the skill...
Size: ~480 lines
Purpose: Complete workflow for skill creation and iteration
With progressive disclosure, agents can have awareness of dozens of skills while using minimal context. Only when a skill is triggered does it consume significant context.