Agent Skills
Folders of expertise the agent loads on demand. Commands are prompts you fire; skills are capabilities Claude reaches for itself.
An Agent Skill is a folder with a SKILL.md inside: instructions, plus any scripts, templates, or reference docs the job needs. The crucial difference from slash commands: you invoke a command, but Claude invokes a skill — whenever your request matches the skill's description.
Skills use progressive disclosure. Only the name and one-line description sit in context; the full instructions load when the skill fires. That's why a project can carry dozens of skills without bloating every session — and why the description line is the part worth sweating.
The same format works across Claude Code, claude.ai, and the API, so a skill you write for your repo travels with you.
Scaffold a skill
Project skills live in .claude/skills/<name>/SKILL.md. Personal ones live in ~/.claude/skills/ and follow you across projects.
mkdir -p .claude/skills/changelogVerifyThe folder exists at your project root.Write SKILL.md
Frontmatter carries the name and — most importantly — the description Claude matches against. The body is the playbook.
--- name: changelog description: Draft a CHANGELOG entry from recent commits. Use when the user asks for a changelog, release notes, or 'what shipped'. --- # Writing the changelog 1. Run `git log --oneline` since the last tag. 2. Group commits into Added / Changed / Fixed. 3. Write entries as user-facing outcomes, not commit messages. 4. Append to CHANGELOG.md under a new version heading — never rewrite old entries.VerifySKILL.md exists with frontmatter and numbered instructions.Trigger it naturally
Don't type a slash command — just ask in plain language and watch Claude pick the skill up.
What shipped since the last release? Draft the changelog entry.VerifyThe transcript shows the skill loading, then the playbook being followed step by step.Tune the description
If the skill didn't fire, the description didn't match how you actually ask. Rewrite it with the phrases you'd really use — that line is the routing layer.
description: Draft a CHANGELOG entry from recent commits. Use when the user asks for a changelog, release notes, version bump notes, or 'what shipped'.VerifyThe same natural-language ask now reliably triggers the skill.