Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guides creation of effective Agent Skills with proper structure and validation. Use when users want to create a new skill, update an existing skill, or need guidance on skill design patterns, SKILL.md format, or verify.py implementation. NOT when just using existing skills (use those skills directly).
.claude/skills/aiskillstore-creating-skills/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-23 | ✗→✓ | ▲ Improved | 68% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -40% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 25% | 0% |
Guides creation of Claude Code skills using documented best practices.
For a new skill:
For reviewing existing skill:
Progress:
- [ ] Gather requirements (purpose, triggers, complexity)
- [ ] Choose template (basic or advanced)
- [ ] Generate skill structure
- [ ] Customize content
- [ ] Validate against checklistAsk user with AskUserQuestion:
| Complexity | Structure | When to Use | |------------|-----------|-------------| | Basic | Single SKILL.md | Simple workflows, < 200 lines | | Advanced | SKILL.md + references | Complex domains, multiple workflows |
Use templates from templates/ directory:
Create in appropriate location:
~/.claude/skills/ - Personal skills.claude/skills/ - Project skills (git-tracked)Run through checklist before finishing:
Validation Checklist:
- [ ] Name: gerund format (verb-ing), lowercase, hyphens only
- [ ] Name: max 64 characters, no reserved words
- [ ] Description: explains WHAT and WHEN to use
- [ ] Description: third person, max 1024 characters
- [ ] SKILL.md: under 500 lines (ideally under 300)
- [ ] References: one level deep from SKILL.md
- [ ] No time-sensitive info (dates, versions)
- [ ] Consistent terminology throughout
- [ ] Examples: concrete input/output pairs
- [ ] Paths: Unix-style only (forward slashes)Format: verb-ing-noun (gerund form)
processing-pdfsanalyzing-spreadsheetsmanaging-databasesConstraints:
anthropic, claude, XML tagsThe description determines when Claude activates the skill.
Include:
Format: Third person, active voice
yaml# Good description: | Extracts text and tables from PDF files. Use when working with PDFs, forms, or document extraction. # Bad - first person description: I help you process PDF files
Keep SKILL.md lean. Move details to reference files:
skill-name/
├── SKILL.md # Overview, workflow (always loaded)
├── reference.md # Detailed guidelines (loaded when needed)
├── examples.md # Extended examples
└── templates/ # Reusable templatesKey rule: References should be one level deep. All reference files link directly from SKILL.md.
See reference.md for detailed best practices and anti-patterns.
yaml--- name: skill-name-here description: | What it does and when to use it. Include trigger words. allowed-tools: Read, Grep # Optional: restrict available tools ---
| Avoid | Do Instead | |-------|------------| | Windows paths scripts\file.py | Unix paths scripts/file.py | | Too many options | Provide sensible default | | Assuming tools installed | List required packages | | Vague descriptions | Specific with trigger words | | Deeply nested references | One level deep | | Time-sensitive info | Avoid dates/versions |
Full anti-patterns guide: reference.md
yaml--- name: formatting-markdown description: | Formats and lints Markdown files. Use when user mentions markdown formatting, MD files, or document styling. --- # Formatting Markdown ## Workflow 1. Read target file 2. Apply formatting rules 3. Report changes ## Rules - Headers: ATX style (#) - Lists: consistent markers - Code blocks: fenced with language
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | pass→pass | 37,525 | 22,773 | -39% | 1 | 1 | 0% | 2,193 | 2,210 | +1% | 0 | 0 | — |
case-23 | fail→pass | 9,297 | 10,567 | +14% | 1 | 1 | 0% | 1,128 | 1,891 | +68% | 0 | 0 | — |
case-01 | fail→fail | 35,152 | 46,384 | +32% | 1 | 1 | 0% | 3,906 | 2,600 | -33% | 0 | 0 | — |
case-02 | fail→fail | 367,721 | 153,502 | -58% | 1 | 1 | 0% | 1,625 | 1,884 | +16% | 0 | 0 | — |
case-03 | pass→pass | 50,420 | 35,245 | -30% | 1 | 1 | 0% | 1,998 | 2,800 | +40% | 0 | 0 | — |
case-04 | pass→pass | 26,553 | 39,151 | +47% | 1 | 1 | 0% | 1,813 | 2,907 | +60% | 0 | 0 | — |
case-05 | pass→pass | 21,850 | 30,078 | +38% | 1 | 1 | 0% | 3,009 | 3,563 | +18% | 0 | 0 | — |
case-06 | fail→pass | 16,934 | 15,491 | -9% | 1 | 1 | 0% | 1,914 | 2,090 | +9% | 0 | 0 | — |
case-07 | pass→pass | 16,628 | 11,992 | -28% | 1 | 1 | 0% | 1,892 | 2,216 | +17% | 0 | 0 | — |
case-08 | fail→pass | 27,360 | 11,611 | -58% | 1 | 1 | 0% | 1,767 | 1,761 | -0% | 0 | 0 | — |
case-13 | pass→pass | 12,755 | 10,358 | -19% | 1 | 1 | 0% | 1,226 | 1,669 | +36% | 0 | 0 | — |
case-09 | fail→pass | 17,795 | 7,509 | -58% | 1 | 1 | 0% | 2,189 | 1,304 | -40% | 0 | 0 | — |
case-10 | fail→fail | 12,070 | 12,807 | +6% | 1 | 1 | 0% | 1,124 | 1,836 | +63% | 0 | 0 | — |
case-11 | fail→pass | 8,804 | 10,609 | +21% | 1 | 1 | 0% | 1,510 | 1,888 | +25% | 0 | 0 | — |
case-12 | pass→pass | 28,353 | 10,700 | -62% | 1 | 1 | 0% | 1,373 | 1,927 | +40% | 0 | 0 | — |
case-15 | pass→pass | 16,513 | 5,836 | -65% | 1 | 1 | 0% | 2,338 | 2,343 | +0% | 0 | 0 | — |
case-16 | pass→pass | 16,540 | 10,672 | -35% | 1 | 1 | 0% | 1,676 | 2,156 | +29% | 0 | 0 | — |
case-17 | pass→pass | 12,682 | 11,265 | -11% | 1 | 1 | 0% | 1,930 | 2,034 | +5% | 0 | 0 | — |
case-18 | fail→pass | 11,385 | 4,000 | -65% | 1 | 1 | 0% | 1,376 | 1,759 | +28% | 0 | 0 | — |
case-19 | pass→pass | 10,297 | 10,057 | -2% | 1 | 1 | 0% | 1,634 | 1,991 | +22% | 0 | 0 | — |
case-20 | pass→pass | 21,920 | 10,156 | -54% | 1 | 1 | 0% | 1,432 | 1,708 | +19% | 0 | 0 | — |
case-21 | pass→pass | 14,804 | 7,332 | -50% | 1 | 1 | 0% | 1,853 | 2,259 | +22% | 0 | 0 | — |
case-22 | pass→pass | 10,956 | 11,945 | +9% | 1 | 1 | 0% | 1,843 | 2,151 | +17% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +26 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.