SKILL.md Universal Standard (2026)¶
A practical guide to writing reusable, cross-agent SKILL.md files using the "Universal Standard" model.
What Is SKILL.md¶
SKILL.md is an open format for packaging AI agent workflows into reusable units.
A complete skill includes:
- a skill folder
- one SKILL.md file
- optional scripts, references, and assets
This format is designed for: - portability across coding tools - progressive disclosure (load only what is needed) - team sharing and version control
Anatomy of a SKILL.md¶
Every skill has two main parts.
- YAML frontmatter: routing metadata (
name,description, and optional advanced fields) - Markdown body: task workflow, constraints, validation, and outputs
Minimal example:
---
name: bash-command-assistant
description: >-
Review shell commands for risks and quality.
Use when reviewing PRs or code changes that include shell scripts.
---
The description should act as a trigger, not a summary. It must clearly say when the skill should load.
Progressive Disclosure Model¶
Use three levels of loading to keep context small and precise:
- Level 1 (startup): agent reads only
nameanddescription(~30-50 tokens per skill) - Level 2 (activation): full
SKILL.mdbody loads when intent matches - Level 3 (on demand): additional docs/scripts load only when referenced
Benefits: - many skills without context bloat - lower token waste - better execution focus
Review Checklist¶
Before publishing a skill, verify: - security vulnerabilities are checked - no breaking API changes are introduced silently - tests and verification steps are explicit - hardcoded secrets are blocked - performance risks are addressed
Best Practices¶
- Write
descriptionas an activation trigger - Keep
SKILL.mdconcise (prefer less than 500 lines) - Keep primary instructions compact (about 5,000 tokens max)
- Put heavy references in separate files
- Add explicit failure handling and fallback behavior
- Prefer concrete commands and checklists over generic prose
- Commit skills to git for team reuse
Skill Directory Structure¶
Recommended layout:
my-skill/
├── SKILL.md # required
├── scripts/ # optional executable helpers
│ ├── lint.sh
│ └── scan.py
├── references/ # optional docs/checklists
│ └── security-checklist.md
└── assets/ # optional templates/examples
└── report-template.md
Key Frontmatter Fields¶
Core:
- name: unique skill id (kebab-case)
- description: activation trigger and scope
Common advanced fields (tool-dependent):
- version
- license
- allowed-tools
- disable-model-invocation
- mode
- metadata / metadata.version
Use only fields that are supported by your target agent.
Path Compatibility Quick Reference¶
The same SKILL.md concept is used across tools, but directory paths differ:
| Tool | Typical Skill Path |
|---|---|
| Claude Code | .claude/skills/ |
| Cursor | .cursor/skills/ |
| GitHub Copilot | .github/skills/ |
| OpenAI Codex | .agents/skills/ |
| Gemini CLI | .gemini/skills/ |
| VS Code | .github/skills/ |
Keep your format stable and adapt only folder placement per platform.
Skills vs Configs vs MCP¶
Use each layer for its own job:
| Layer | Purpose |
|---|---|
Skill (SKILL.md) |
On-demand expertise and workflow execution |
Config (AGENTS.md / CLAUDE.md) |
Persistent project policies and context |
| MCP servers | External tools, APIs, and runtime data |
They are complementary, not interchangeable.
Create Your First Skill¶
- Create a folder:
mkdir -p .claude/skills/my-skill - Add
SKILL.mdwithnameand trigger-styledescription - Write a short workflow with validation steps
- Move long docs into
references/ - Test activation with realistic user prompts
- Version and commit the skill