Learn about Agent Skills - how AI agents use skills, create new skills, and understand skill discovery in real-time. Use when user asks about skills, wants to create a skill, or wants to understand how Claude uses skills.
65
47%
Does it follow best practices?
Impact
100%
1.44xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/agent-skills/SKILL.mdThis skill teaches you about Agent Skills - the open format for extending AI agent capabilities - and helps you create your own.
Ask: "What would you like to explore?"
Skills are instructions that give AI agents specialized capabilities.
Think of skills like recipe cards for an AI:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ DISCOVERY │────▶│ ACTIVATION │────▶│ EXECUTION │
│ │ │ │ │ │
│ I see skill │ │ I load full │ │ I follow the │
│ names & brief │ │ SKILL.md into │ │ instructions │
│ descriptions │ │ context │ │ step by step │
└─────────────────┘ └─────────────────┘ └─────────────────┘Progressive disclosure means I stay fast but can access unlimited specialized knowledge:
| Without Skills | With Skills |
|---|---|
| Limited to training data | Extended with new capabilities |
| Same context every task | Specialized context per task |
| Can't learn your workflows | Custom skills for your needs |
Every skill lives in a folder with a SKILL.md file:
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: detailed docs
└── templates/ # Optional: file templatesThe SKILL.md has two parts:
1. Frontmatter (YAML) - The "metadata":
---
name: my-skill-name
description: When to use this skill and what it does.
---2. Body (Markdown) - The instructions:
# My Skill
## How to do X
1. First step...
2. Second step...
## Examples
...Ask: "Want to see this in action? Say 'show me how you discovered this skill' and I'll explain the process I went through."
Say: "Let me explain how I'm using skills right now, as I work."
When you asked about skills, here's what happened:
ls -1 .claude/skills/As I help you, I'll narrate my process:
Ask: "Want me to explain my actions as I help you with something? Just say 'narrate mode on' and I'll explain each step."
Say: "Let's create a skill together. I'll guide you through each step."
Ask: "What task or workflow should this skill help with?"
Good examples:
Rules for skill names:
Ask: "What should we call this skill? (e.g., deploy-production, security-review, nextjs-setup)"
The description is critical - it determines when I'll use the skill.
Good description formula:
[What it does]. [When to use it]. [Keywords that should trigger it].Example:
description: Deploy the application to production with safety checks. Use when deploying, pushing to prod, or releasing. Handles pre-deploy validation, deployment, and post-deploy verification.Ask: "Describe what your skill does and when I should use it."
Once I have the name and description, I'll create the skill:
mkdir -p .claude/skills/[SKILL-NAME]Then write the SKILL.md with your instructions.
Ask: "Walk me through the steps. What should I do first? Then what?"
I'll format your answers into structured instructions.
After creation:
/clear)---
name: skill-name
description: What this skill does. When to use it. Relevant keywords.
---
# Skill Name
Brief description of what this skill helps accomplish.
## When to Use
- Trigger phrase 1
- Trigger phrase 2
## Steps
### Step 1: [Action Name]
Explanation of what to do.
```bash
# Commands to runMore instructions...
How to confirm the skill worked:
# Verification commandsSolution: Do Y
Solution: Check A, B, C
### Interactive Skill Template (with user prompts)
```yaml
---
name: interactive-skill
description: Guides users through a multi-step process interactively.
---
# Interactive Skill
## Overview
Say: "I'll guide you through [process]. Let's start with..."
## Step 1: Gather Information
Ask: "What is [required info]?"
Wait for response before proceeding.
## Step 2: Validate
Run validation:
```bash
# validation commandIf validation fails, say: "[error explanation]" If validation passes, continue to Step 3.
Say: "Great! Now I'll [action]..."
# execution commandAsk: "Did [expected outcome] happen?"
If yes: Proceed to wrap-up. If no: Troubleshoot...
Say: "[Summary of what was accomplished]"
### Workflow Automation Template
```yaml
---
name: workflow-name
description: Automates [workflow]. Use when [triggers].
---
# Workflow: [Name]
## Prerequisites
- [ ] Requirement 1
- [ ] Requirement 2
## Workflow Steps
### 1. Pre-flight Checks
```bash
# Check prerequisites# Primary commands# Verify successIf something goes wrong:
# Rollback commands---
## Explore Existing Skills
To see what skills are available in this project:
```bash
ls -la .claude/skills/To read a specific skill:
cat .claude/skills/[skill-name]/SKILL.mdLook at these skills for inspiration:
| Skill | What it demonstrates |
|---|---|
onboard | Orchestrating multiple skills |
setup-gcalcli | Interactive OAuth walkthrough |
tmux-tutorial | Teaching through practice |
setup-claude-project | Multi-part setup guide |
Ask: "Want me to show you a specific skill and explain how it's structured?"
~/.claude/skills/ # Global skills (all projects)
./.claude/skills/ # Project-local skillsskill-name/
└── SKILL.md # Must exist, must have frontmatterskill-name/
├── SKILL.md
├── scripts/ # Executable code
│ └── run.sh
├── references/ # Additional docs
│ └── REFERENCE.md
└── templates/ # File templates
└── template.md| Field | Required | Purpose |
|---|---|---|
name | Yes | Identifier (lowercase, hyphens) |
description | Yes | When to activate skill |
license | No | License for the skill |
compatibility | No | Environment requirements |
metadata | No | Custom key-value pairs |
For those building agent tools, here's how skill integration works:
find ~/.claude/skills ./.claude/skills -name "SKILL.md" 2>/dev/nullExtract name and description from YAML.
Store skills as: { name, description, path }
When user sends a message, check descriptions for relevance.
Read entire SKILL.md into context when activated.
Agent follows Markdown instructions.
Ask: "Now that you understand skills, what would you like to do?"
2b9a3e1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.