Claude Skills: Stop Repeating Instructions Forever
Skills are Claude Code's missing link between prompts and MCP. Load instructions on-demand, save context, give Claude domain expertise.
Agentic Orchestration Kit for Claude Code.
Problem: You type the same instructions into Claude Code every session. "Follow our brand guidelines." "Use our deployment process." "Check security patterns first." Context wasted. Time lost. Instructions forgotten.
Quick Win: Create your first skill right now:
That is a complete skill. Drop it in your project, and Claude automatically loads it when you ask for code review.
What Are Skills?
Skills are folders containing instructions that Claude discovers and loads dynamically. Think of them as specialized training manuals Claude references only when needed.
Unlike prompts (which disappear after each conversation) or MCP servers (which connect to external tools), skills teach Claude how to do things. They encode procedural knowledge: workflows, guidelines, checklists, and domain expertise.
Simon Willison noted this efficiency: "Each skill only takes up a few dozen extra tokens, with the full details only loaded in should the user request a task that the skill can help solve."
How Progressive Disclosure Works
Skills use a two-stage loading system that saves your context window:
Stage 1 — Metadata only (~100 tokens per skill). Claude sees skill names and descriptions. Just enough to know what is available without burning context on instructions Claude may never need.
Stage 2 — Full instructions (when needed). Only when Claude determines a skill matches your task does it load full instructions, typically under 5,000 tokens. Reference files inside the skill folder load on demand from there.
This architecture means you can have dozens of skills available without overwhelming Claude's working memory.
How Claude Decides to Activate a Skill
Activation is description-driven, not name-driven. Here's the actual decision flow:
- Per-prompt scan. On every user message, Claude reads the metadata (name + description) for every skill registered in the project and your global config.
- Description matching. Claude semantically matches the user's prompt against each skill's
descriptionfield. The name alone almost never triggers activation; the description does. - Disambiguation. When two skills could plausibly apply, Claude either asks you to confirm, or picks the one with the more specific description. This is why vague descriptions like "helps with documents" rarely fire — they get beaten by anything more specific.
- Load and execute. Once a skill matches, Claude loads the full SKILL.md content, treats it as authoritative for the duration of that task, and follows the procedure as written.
Practical implication: Your description field is doing the work of an intent classifier. Write it for that job. Mention the trigger phrases users actually type. Mention the file types or task types the skill applies to. Skip marketing language.
A description like "Reviews staged or modified code for security flaws. Triggers on phrases like 'review my changes' or 'security check'" will activate reliably. A description like "Helps you with code" will not.
Skills vs CLAUDE.md: When to Use Each
The fastest way to lose hours is mixing these up. Use this split:
| Need | Use This |
|---|---|
| Always-loaded project context (stack, conventions, paths) | CLAUDE.md |
| Procedural knowledge that fires on specific tasks | Skill |
| One-off rule for this conversation | Prompt |
| External data or API access | MCP |
CLAUDE.md is read at session start and stays in context for every prompt. Anything you want Claude to remember all the time — your tech stack, file structure, naming conventions, "always run lint before commit" — belongs there.
Skills are loaded on demand based on what you ask. Anything that's a multi-step procedure tied to a specific task — code review checklist, deployment runbook, incident response steps — belongs in a skill.
The rule of thumb: if Claude needs the information whether or not you mention the topic, it's CLAUDE.md. If Claude only needs it when you raise a specific request, it's a skill.
When the same content lives in both places, CLAUDE.md takes precedence (it's loaded first). Avoid the duplication.
Three Real-World Skill Examples
Example 1 — Brand voice consistency
Example 2 — Database query patterns
Example 3 — Deployment runbook
These three together cover three different shapes: content review, technical review, and procedural runbook. The pattern repeats across hundreds of use cases.
Pre-Built Skills from Anthropic
Anthropic maintains official skills you can use immediately:
- pdf: Extract text and tables from PDF documents
- docx: Create and edit Word documents with tracked changes
- xlsx: Manipulate Excel spreadsheets
- pptx: Generate PowerPoint presentations
- brand-guidelines: Apply consistent styling
Find them at github.com/anthropics/skills or create your own following their patterns. Claude Code also ships bundled commands like /simplify and /batch that handle code review and codebase-wide migrations without any setup.
Common Mistakes (and How to Fix Them)
1. Vague descriptions. "This skill helps with documents" never beats a more specific competitor. Fix: name the trigger phrases and the artifact types in the description itself.
2. Overloaded SKILL.md files. When the file passes ~5,000 tokens, you've stopped writing a skill and started writing a manual. Fix: split detail into references/ files and link to them from SKILL.md. Claude reads them on demand.
3. Missing allowed-tools. If your skill needs to write files or run shell commands, declare it. Without allowed-tools, Claude may have access disabled per project policy and silently skip the steps. Fix: add allowed-tools: "Read,Write,Bash" (or whichever subset) to the frontmatter.
4. Overlap with another skill. Two skills with overlapping descriptions cause Claude to ping-pong between them or pick the wrong one. Fix: either merge, or sharpen each description so the boundaries are obvious.
5. Conflict with CLAUDE.md. If your skill says "use TypeScript" and CLAUDE.md says "use JavaScript", the skill loses. Fix: align skills to the conventions already in CLAUDE.md, or update CLAUDE.md if the skill represents the new standard.
6. No "what this skill does NOT do" boundary. Skills without negative space tend to over-fire. Fix: add a short "Out of scope" section so Claude doesn't activate the skill on adjacent but distinct requests.
Real Failure Modes
These are the patterns that show up over and over once you have more than a handful of skills.
The Silent No-Op. Skill loads, runs, returns nothing useful. Almost always a missing allowed-tools declaration or a SKILL.md that describes what to do without saying which file or directory to do it on. Fix: every step in your procedure should reference a concrete artifact or tool.
The Wrong Trigger. A skill named database-migration keeps firing on SELECT-only queries because the description mentions "database". Fix: tighten the description with the actual trigger conditions ("triggers on schema changes, migration scripts, or CREATE TABLE requests").
The Drift. Skill worked great for three months, then quietly broke when the underlying tool changed. Fix: include a version or date in the SKILL.md header noting what tool versions you tested against, and add a quarterly review to your repo hygiene.
Your Next Steps
- Create one skill for your most repeated instruction
- Test triggering with natural requests (not just explicit commands)
- Iterate based on how it performs in real sessions
- Explore context management to maximize your skill efficiency
- Learn how skills fit into context engineering for production AI
- Review CLAUDE.md mastery for the always-on context layer that pairs with skills
Skills transform Claude from a general assistant into a specialized expert without burning context tokens on repeated explanations. Your expertise becomes portable, reusable, and always available. If you want to start with a working foundation rather than building from scratch, ClaudeFast's Code Kit ships 20+ production skills across 21 categories — from React patterns to database operations — with a SkillActivationHook that auto-recommends relevant skills on every prompt.
Skills are one of five techniques that top agentic engineers use daily. See all five in our Claude Code best practices guide.
Last updated on
