Quickstart: your first skill in 10 minutes
This page walks you from zero to a working SKILL.md that activates in Claude Code on your machine. It is the shortest path to “the agent picked up my skill”; it deliberately does not cover anti-patterns, testing discipline, or cross-platform packaging. Those are the rest of the repo. The walkthrough mirrors the canonical 6-line minimal template from the agent-skills spec (Layer 1) and the personal-scope install path from Anthropic’s Claude Code docs (https://code.claude.com/docs/en/skills).Prerequisites
claudeCLI installed and working (runclaude --version).- A text editor.
- The directory
~/.claude/skills/exists; if it does not, create it:mkdir -p ~/.claude/skills.
Step 1: pick a name
Thename field is the most constrained part of a skill. Rules from the agent-skills spec:
- Lowercase ASCII letters, digits, and hyphens only.
- Maximum 64 characters.
- No leading or trailing hyphens; no consecutive hyphens.
- Must match the parent directory name.
- The strings
anthropicandclaudeare reserved (Claude Code constraint).
hello-skill.
Step 2: create the skill directory
hello-skill) becomes your name field. If they do not match, the skill will not load.
Step 3: write the SKILL.md
Create~/.claude/skills/hello-skill/SKILL.md with this content:
Step 4: verify activation
Open a freshclaude session in any directory:
What just happened
Whenclaude started, it scanned ~/.claude/skills/ and read the frontmatter of every SKILL.md it found. The name and description were loaded into the agent’s context (~100 tokens for both, per the agent-skills spec’s progressive disclosure model). The body was not loaded yet.
When you typed “ping skill,” the agent matched your prompt against the loaded descriptions. The hello-skill description starts with “Use when…” and lists “ping skill” as a trigger phrase, so the agent decided to activate it. Activation loads the full SKILL.md body into the conversation as a single message; that body told the agent what to reply with, and it complied.
Why the description matters
The description is the only part of your skill the agent reads on every turn. If the description does not name the trigger conditions, the skill will never activate. The Layer 2 convention is “Use when…” followed by an enumeration of triggers (perobra/superpowers writing-skills); the Layer 1 spec just says “describes what the skill does and when to use it.” Both shapes work; both are covered in docs/05-authoring/triggers.md.
What the description must NOT do: summarize the body’s workflow. A description that reads “Replies with a one-line confirmation that the skill activated” instead of “Use when the user asks to test that a custom skill is working” causes the agent to follow the description instead of reading the body. This is the single most common Layer 2 failure mode; see docs/10-anti-patterns.md for the full pattern.
Troubleshooting
The skill did not activate.- Check that
~/.claude/skills/hello-skill/SKILL.mdexists. The path is case sensitive. - Check that the
namefield in the frontmatter matches the directory name exactly:hello-skill. - Check the frontmatter format. The first line of the file MUST be exactly
---. If a leading whitespace character precedes the---, the parser will not recognize the frontmatter and the skill will be silently dropped. - Check that you started a fresh
claudesession AFTER creating the file. Claude Code scans skills at session start; existing sessions will not pick up new top-level skill directories. - Check
claude /skills(the slash command). If your skill appears in the list, the file was loaded; activation is then a description-matching question. If it does not appear, the file was not loaded.
- Check that the body is unambiguous. If the body says “reply with one of the following,” the agent will pick. If it says “reply with exactly: …,” the agent will copy.
- Check your description for workflow leakage. If the description repeats what the body says, the agent may follow the description and skip the body.
What to read next
docs/02-mental-model.md: when is a skill the right primitive? When should you use CLAUDE.md, hooks, or a slash command instead? The decision matrix.docs/03-three-questions.md: the three-question framework. The hero mental model for designing any skill.docs/04-token-economics.md: why the 500-line cap exists, and what auto-compaction does to your skill across a long session.examples/minimal-skill/SKILL.md: a working minimal skill you can copy as a starting point for your own work.
Sources
LANDSCAPEsection 1.1 (the canonical 6-line minimal template).LANDSCAPEsection 1.3 (Anthropic Claude Code docs, https://code.claude.com/docs/en/skills).REVIEWERG12 (Quickstart blocker for v0 audience).