Creating Skills
This skill teaches you how to create new Agent Skills following the Agent Skills open standard.
What Is a Skill?
A skill is a folder containing a SKILL.md file that gives agents specialized capabilities. Skills can include:
- •Instructions — How to perform a specific task
- •Scripts — Executable code agents can run
- •References — Additional documentation loaded on demand
- •Assets — Templates, schemas, or other resources
Directory Structure
At minimum, a skill is a directory with a SKILL.md file:
skill-name/ └── SKILL.md # Required
For more complex skills:
skill-name/ ├── SKILL.md # Required: instructions + metadata ├── scripts/ # Optional: executable code ├── references/ # Optional: documentation └── assets/ # Optional: templates, resources
SKILL.md Format
Every SKILL.md must have YAML frontmatter followed by Markdown content.
Required Frontmatter
--- name: skill-name description: What this skill does and when to use it. ---
Frontmatter Fields
| Field | Required | Description |
|---|---|---|
name | Yes | 1-64 chars, lowercase letters, numbers, hyphens only. Must match folder name. |
description | Yes | 1-1024 chars. Describes what the skill does AND when to use it. |
license | No | License name or reference to bundled license file. |
compatibility | No | Environment requirements (runtime, tools, network access). |
metadata | No | Arbitrary key-value pairs for additional properties. |
Name Rules
The name field:
- •Must be lowercase alphanumeric with hyphens (
a-z,0-9,-) - •Must NOT start or end with
- - •Must NOT contain consecutive hyphens (
--) - •Must match the parent directory name
Valid: git, code-review, pdf-processing
Invalid: Git, -git, git-, code--review
Description Best Practices
The description should include:
- •What the skill does
- •When to use it (trigger keywords)
Good:
description: Git hygiene for multi-agent collaborative work. Use when performing version control operations, syncing with remote, committing changes, or ensuring work is properly shared with the team.
Poor:
description: Helps with git.
Body Content
The Markdown body after frontmatter contains the skill instructions. There are no format restrictions—write whatever helps agents perform the task effectively.
Recommended Sections
- •Core Principle — The single most important concept
- •When to Use — Specific triggers or scenarios
- •Step-by-Step Instructions — How to perform the task
- •Examples — Inputs, outputs, edge cases
- •Quick Reference — Commands or checklists
Progressive Disclosure
Skills should be structured for efficient context use:
| Layer | Size | When Loaded |
|---|---|---|
| Metadata | ~100 tokens | At agent startup |
| Instructions | <5000 tokens | When skill is activated |
| References | As needed | Only when required |
Keep your main SKILL.md under 500 lines. Move detailed reference material to separate files in references/.
File References
When referencing other files in your skill, use relative paths from the skill root:
See [the reference guide](references/REFERENCE.md) for details. Run the extraction script: scripts/extract.py
Keep file references one level deep from SKILL.md.
Creating a New Skill
Step 0: Check the Skills Catalog
Before creating a new skill, check if one already exists in the Skills Catalog:
# Option 1: Check the GitHub repository # Visit: https://github.com/All-The-Vibes/skills-catalog # Browse .claude/skills/ directories # Option 2: Use WebFetch or WebSearch to check # Search for skills related to your need
What to check:
- •
Browse by category:
- •
core/— Fundamental skills (git, bd, subagent, etc.) - •
engineering/— Software development (refactoring, tdd, etc.) - •
devops/— Infrastructure and deployment (ci-cd, etc.) - •
documentation/— Writing and docs (technical-writing, etc.) - •
research/— Investigation and analysis (technical-research, etc.)
- •
- •
Search for keywords:
- •Use the skill catalog's README or search the repository
- •Look for skills with similar names or descriptions
- •
Evaluate existing skills:
- •If a skill exists that does what you need → Use it!
- •If a skill is close but needs enhancement → Consider extending it
- •If no skill exists → Proceed to create a new one
Benefits of checking first:
- •✅ Avoid duplicating work
- •✅ Discover related skills you didn't know existed
- •✅ Learn from existing skill patterns
- •✅ Maintain consistency across the catalog
If you find a similar skill but need modifications:
Consider contributing to the catalog instead of creating a project-specific version:
- •Fork the skills-catalog repository
- •Enhance the existing skill
- •Submit a pull request
- •Everyone benefits from the improvement!
Step 1: Create the Directory
mkdir -p skills/my-skill-name
Step 2: Create SKILL.md
cat > skills/my-skill-name/SKILL.md << 'EOF' --- name: my-skill-name description: Describe what this skill does and when to use it. --- # My Skill Name ## Core Principle [The single most important concept] ## When to Use Use this skill when: - [Trigger condition 1] - [Trigger condition 2] ## Instructions [Step-by-step instructions] ## Quick Reference [Commands or checklists] EOF
Step 3: Update AGENTS.md
Add the skill to the Required Skills table in AGENTS.md:
| [skills/my-skill-name](skills/my-skill-name) | Brief description | `first command` |
Step 4: Commit
git add skills/my-skill-name git commit -m "feat: add my-skill-name skill" git push
Skill Quality Checklist
Before committing a new skill:
- • Checked skills catalog — Verified no similar skill exists
- •
nameis lowercase with hyphens only - •
namematches the folder name - •
descriptionexplains WHAT and WHEN - • Body has clear, actionable instructions
- • Examples are included for complex tasks
- • SKILL.md is under 500 lines
- • Referenced in AGENTS.md if all agents need it
- • Consider contributing — If skill is reusable, submit to skills-catalog repo