Skip to main content
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.

Why Progressive Disclosure?

AI agents have limited context windows. Loading all skill documentation at once would:
  • Consume valuable context space
  • Overwhelm the agent with irrelevant information
  • Reduce the number of skills that can be available simultaneously
  • Slow down processing and increase costs
Progressive disclosure solves this by loading information only when needed.

The Three Levels

Level 1: Metadata (Always Loaded)

What’s included:
  • Skill name
  • Skill description
  • Optional compatibility requirements
Size: ~50-200 words per skill Purpose: Enable skill discovery and triggering decisions Context impact: Minimal - agents can have awareness of dozens of skills
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.

Level 2: SKILL.md Body (Loaded on Trigger)

What’s included:
  • Instructions and workflows
  • Examples and patterns
  • Guidelines and best practices
  • References to bundled resources
Size: <500 lines ideal (can be longer if needed) Purpose: Provide core instructions for executing the skill Context impact: Moderate - loaded only when skill is triggered Example structure:
Notice how the SKILL.md references bundled resources without loading them yet.

Level 3: Bundled Resources (Loaded on Demand)

What’s included:
  • scripts/ - Executable code
  • references/ - Detailed documentation
  • assets/ - Templates, fonts, images
Size: Unlimited (scripts can execute without loading into context) Purpose: Provide detailed reference material and reusable code Context impact: Variable - loaded only when referenced Example resource organization:

Loading Flow Example

Let’s walk through how the system works for a user request:

Step 1: Skill Discovery

User request: “Help me build an MCP server for the GitHub API” Agent’s context includes:
Agent decision: “mcp-builder” matches - load it

Step 2: Load SKILL.md Body

The agent loads the full SKILL.md file into context:
The agent now has the workflow and knows references are available.

Step 3: Load Bundled Resources as Needed

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.md Only 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.py The script executes without loading into context.

Best Practices for Each Level

Level 1: Metadata Design

Include specific keywords and contexts that users might mention:
Keywords: git, commit, messages, conventional commits, commit history
Combat under-triggering by explicitly listing use cases:
Target ~50-200 words. Include:
  • What the skill does (capabilities)
  • When to use it (contexts, triggers)
  • What it enables (outcomes)
Avoid:
  • Implementation details (save for SKILL.md body)
  • Examples (save for SKILL.md body)
  • Lengthy explanations

Level 2: SKILL.md Body Design

If approaching 500 lines, consider:
  • Moving detailed documentation to reference files
  • Consolidating similar instructions
  • Using references for framework-specific details
Good pattern:
Be explicit about when to read each resource:

API Reference

For detailed endpoint documentation, see:

Level 3: Bundled Resources Design

Use consistent directory structure:
If agents repeatedly write similar code across test cases, bundle it as a script:Instead of instructing:
Provide the script:
cloud-deploy/ ├── SKILL.md # Selection logic └── references/ ├── aws.md # AWS-specific ├── gcp.md # GCP-specific
└── azure.md # Azure-specific

Real-World Example

The skill-creator skill demonstrates effective progressive disclosure:

Level 1: Metadata

Size: 56 words Purpose: Triggers on skill creation, modification, testing, or optimization requests

Level 2: SKILL.md Body

Size: ~480 lines Purpose: Complete workflow for skill creation and iteration

Level 3: Bundled Resources

Total size: ~1500 lines across all files Context usage: Only relevant portions loaded when needed

Context Efficiency Metrics

Progressive disclosure dramatically reduces context usage:
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.

Implementation Notes

The specification is implementation-agnostic, but here are common patterns:

Metadata Storage

  • Some implementations parse YAML frontmatter from SKILL.md files
  • Others maintain separate metadata indexes
  • Both approaches work with the same SKILL.md format

Resource Loading

  • References loaded via file read operations
  • Scripts executed via subprocess/shell commands
  • Assets copied or loaded as needed

Caching

  • Metadata typically cached for fast skill discovery
  • SKILL.md bodies may be cached after first load
  • Bundled resources loaded fresh each time or cached by implementation

Next Steps

SKILL.md Format

Learn how to structure SKILL.md files

Creating Skills

Build skills with effective progressive disclosure

Bundled Resources

Organize scripts, references, and assets