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.
This 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 templates
The 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 run
More instructions...
How to confirm the skill worked:
# Verification commands
Solution: 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 command
If validation fails, say: "[error explanation]" If validation passes, continue to Step 3.
Say: "Great! Now I'll [action]..."
# execution command
Ask: "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 success
If 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.md
Look 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 skills
skill-name/
└── SKILL.md # Must exist, must have frontmatter
skill-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/null
Extract 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?"
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer