Guide for creating Agent Skills with progressive disclosure and best practices. Use when creating new skills, understanding skill structure, or implementing progressive disclosure.
npx claudepluginhub vinnie357/claude-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/anti-fabrication.mdreferences/design-patterns.mdreferences/evaluation-guide.mdreferences/examples.mdtemplates/evaluation-checklist.mdtemplates/level1.mdtemplates/level2.mdtemplates/level3.mdGuide for creating modular, self-contained Agent Skills that extend Claude's capabilities with specialized knowledge.
Agent Skills are organized directories containing instructions, scripts, and resources that Claude can dynamically discover and load. They enable a single general-purpose agent to gain domain-specific expertise without requiring separate custom agents for each use case.
Skills fall into two categories (source: Anthropic PDF Guide):
Capability Uplift: Enhances Claude's core abilities (coding, analysis, reasoning). These are stable across model versions because they build on general capabilities. Example: a code review skill that adds structured review steps.
Encoded Preference: Encodes user-specific workflows, formatting, and conventions. These may need updates when models change because they depend on model behavior for fidelity. Example: a commit message skill that enforces team-specific format.
When creating a skill, identify its category — this determines testing strategy and maintenance expectations.
Skills operate on a principle of progressive disclosure across multiple levels:
Agent system prompts include only skill names and descriptions, allowing Claude to decide when each skill is relevant based on the task at hand.
When Claude determines a skill applies, it loads the full SKILL.md file into context, gaining access to the complete procedural knowledge and guidelines.
Additional bundled files (like references, forms, or documentation) load only when needed for specific scenarios, keeping token usage efficient.
This tiered approach maintains efficient context windows while supporting potentially unbounded skill complexity.
Every skill must have:
skill-name/
└── SKILL.md
More complex skills can include additional resources:
skill-name/
├── SKILL.md # Required: Core skill definition
├── scripts/ # Optional: Executable code for deterministic tasks
├── references/ # Optional: Documentation loaded on-demand
└── assets/ # Optional: Templates, images, boilerplate
Each SKILL.md file must begin with YAML frontmatter followed by Markdown content:
---
name: skill-name
description: Concise explanation of when Claude should use this skill
license: MIT
---
# Skill Name
Main instructional content goes here...
name:
Hyphen-case identifier matching directory name (lowercase alphanumeric and hyphens only, max 64 characters)
Maximum 64 characters
Must contain only lowercase letters, numbers, and hyphens
Cannot contain XML tags
Cannot contain reserved words: "anthropic", "claude"description:
Explains the skill's purpose and when Claude should utilize it
Must be non-empty
Maximum 1024 characters
Cannot contain XML tags
The description should include both what the Skill does and when Claude should use it. For complete authoring guidance, see the best practices guide.Description Constraints (from Anthropic best-practices):
[What it does]. Use when [trigger conditions].Critical: The
descriptionis the ONLY text Claude sees during skill discovery (Level 1). The body's "When to Use" section only loads AFTER activation (Level 2) and cannot trigger it. All activation triggers must be in the description.
license: License name or filename referenceallowed-tools: Pre-approved tools list (Claude Code support only)metadata: Key-value string pairs for client-specific propertiesThe content section has no restrictions and should contain:
Gather concrete use cases to clarify what the skill should support. Real-world examples reveal actual needs better than theoretical requirements.
Example:
Use Case: Help developers follow Git best practices
Examples:
- Creating conventional commit messages
- Rebasing feature branches
- Resolving merge conflicts
- Creating descriptive branch names
Analyze examples to identify needed components:
Example:
Git skill resources:
- scripts/analyze-commit.sh - Parse git diff for commit message
- references/conventional-commits.md - Detailed commit format spec
- assets/gitignore-templates/ - Common .gitignore files
Create the skill directory structure with the required SKILL.md file. Ensure the directory name matches the name property exactly.
mkdir -p my-skill/{scripts,references,assets}
touch my-skill/SKILL.md
Develop resource files and update SKILL.md with:
Use imperative/infinitive form rather than second-person instruction for clarity.
Keep core procedural information in SKILL.md and detailed reference material in separate files.
Document all sources in the plugin's sources.md. For each skill created, record:
This maintains traceability and helps others understand the skill's foundation.
Test the skill using the validation loop pattern:
For the complete evaluation methodology, see references/evaluation-guide.md.
Refine based on real-world usage and evaluation data:
For description optimization techniques, see references/evaluation-guide.md.
Build skills using an evaluation-first approach (source: Anthropic Blog Post):
For the complete methodology, see references/evaluation-guide.md. For a copyable checklist, see templates/evaluation-checklist.md.
Balance specificity against fragility in skill instructions (source: Anthropic PDF Guide):
For the full framework with examples, see references/design-patterns.md.
The context window is a shared resource (source: Anthropic PDF Guide):
references/ and load only when neededSplit unwieldy SKILL.md files into separate referenced documents:
For design patterns and detailed guidance, see references/design-patterns.md.
Compare skill effectiveness using blind evaluation (source: Anthropic Blog Post):
For detailed setup instructions, see references/evaluation-guide.md.
The skill name and description heavily influence when Claude activates it. Pay particular attention to:
git-operations, elixir-phoenix)Critical: The
descriptionis the ONLY text Claude sees during skill discovery (Level 1). The body's "When to Use" section only loads AFTER activation (Level 2) and cannot trigger it. All activation triggers must be in the description using patterns like "Use when [scenarios]".
Description optimization (source: Anthropic Blog Post):
Monitor real usage patterns and iterate based on actual behavior.
Skills may run in different environments with different capabilities (source: Anthropic PDF Guide):
| Platform | Script Execution | Network | Filesystem |
|---|---|---|---|
| Claude Code (CLI) | Full Bash access | Available | Full access |
| Claude.ai (Web) | Sandbox only | Limited | Limited |
| API | Tool-dependent | Tool-dependent | Tool-dependent |
| Mobile | None | None | Read-only |
Document which platform features each skill requires. Never assume external API availability.
Work with Claude to capture successful approaches and common mistakes into reusable skill components. Ask Claude to self-reflect on what contextual information actually matters.
Use clear, imperative language that Claude can follow:
Avoid hedging language like "You should try to" or "It might be good to" or "Consider following".
Include concrete examples wherever possible to illustrate patterns and approaches.
Install skills only from trusted sources. When evaluating unfamiliar skills:
All skills MUST adhere to strict anti-fabrication requirements to ensure factual, measurable content. Every SKILL.md must include anti-fabrication rules — either inline (template below) or by referencing core:anti-fabrication.
For skill-creation-specific anti-fabrication guidance, see references/anti-fabrication.md. For the authoritative anti-fabrication guide, see the core:anti-fabrication skill.
For annotated examples of simple and complex skills with category classifications, see references/examples.md.
For common mistakes and how to avoid them, see references/examples.md.
claude-skills/ ├── references/ │ ├── design-patterns.md # Degree of freedom, validation loops, conditional workflows │ ├── evaluation-guide.md # Eval-driven development, A/B testing, multi-model testing │ ├── anti-fabrication.md # Skill-creation-specific anti-fab guidance │ └── examples.md # Annotated skill examples and common pitfalls └── templates/ ├── evaluation-checklist.md # Copyable eval checklist ├── level1.md # Example skill metadata ├── level2.md # Example skill body ├── level3.md # Example skill folder structure └── skill.md # Example basic skill
For more information:
This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.
UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn/ui MCP for component search and examples.