A skill is a named bundle of instructions the user (or the agent) can invoke with a slash command. It's a way to capture repeated workflows as first-class features.
Any workflow you find yourself pasting the same prompt for is a candidate to become a skill. Named. Discoverable. Reusable. Versionable.
A skill is a directory with:
Goal: pull a specific Slack thread and produce a 3-bullet summary.
Manifest describes: name (summarize-thread), description (when to use), required permissions (mcp__slack__*), arguments (thread URL).
The prompt file says: "Fetch the thread via Slack MCP. Summarize in exactly 3 bullets. Include speakers and decisions made."
When the user types /summarize-thread, Claude Code loads the prompt, passes arguments, runs.
/review, review a pending pull request/security-review, security audit of pending changes/simplify, review recent code for over-engineering/init, generate a CLAUDE.md for a codebase/loop, re-run a prompt on an interval/fewer-permission-prompts, analyze session history, suggest allow-list additionsSkills can live in:
~/.claude/skills/.claude/skills/ in a repoThink of skills as the command palette of your agent. Over time, a power user of Claude Code will have 20+ skills covering their most common workflows. Their cognitive load drops, they don't remember the perfect prompt, they remember the slash-command name.