Writing Effective Skills — The Full SKILL.md Reference
SKILL.md files define slash commands backed by a reusable prompt. This article covers every frontmatter field, the full set of auto-invocation controls, the /skills browser, and the design principles behind skills that actually get used.
Quick Reference
- →Skills live in .claude/skills/{skill-name}/SKILL.md (project) or ~/.claude/skills/ (personal)
- →name: the slash command — /deploy comes from name: deploy
- →description: what Claude shows and uses for auto-invocation
- →disable-model-invocation: true — only manual invocation, no auto-trigger
- →allowed-tools: space-separated tool allowlist for the skill's duration
- →context: fork — run in isolated subagent context to protect main window
- →paths: glob patterns for path-triggered activation
- →argument-hint: shows autocomplete hint like [issue-number] in the / menu
What SKILL.md Is
A SKILL.md file defines a named slash command. The YAML frontmatter configures when and how the skill runs. The markdown body is the prompt that Claude Code executes when the skill is invoked. Skills are the primary mechanism for encoding reusable workflows as first-class project artifacts.
Every SKILL.md has two parts: frontmatter (between --- delimiters) that controls the skill's behavior, and a markdown body that is the actual prompt. When you type /my-skill, Claude Code reads the SKILL.md, applies the frontmatter configuration, and executes the body as a task.