Creates new Claude Code skills following best practices. Guides through skill structure,naming, descriptions, and progressive disclosure. Use when user wants to create a skill,build a skill, make a new capability, or asks about skill best practices.
Coding
85 Stars
2 Forks
Updated Jan 19, 2026, 04:39 AM
Why Use This
This skill provides specialized capabilities for aiskillstore's codebase.
Use Cases
Developing new features in the aiskillstore repository
Refactoring existing code to follow aiskillstore standards
Understanding and working with aiskillstore's codebase structure
---
name: creating-skills
description: |
Creates new Claude Code skills following best practices. Guides through skill structure,
naming, descriptions, and progressive disclosure. Use when user wants to create a skill,
build a skill, make a new capability, or asks about skill best practices.
---
# Creating Skills
Guides creation of Claude Code skills using documented best practices.
## Quick Start
For a new skill:
1. Ask user for skill purpose and target users
2. Generate using appropriate template
3. Validate against checklist
For reviewing existing skill:
1. Read SKILL.md and supporting files
2. Check against anti-patterns in [reference.md](reference.md)
3. Report issues with fixes
## Workflow: Create New Skill
```
Progress:
- [ ] Gather requirements (purpose, triggers, complexity)
- [ ] Choose template (basic or advanced)
- [ ] Generate skill structure
- [ ] Customize content
- [ ] Validate against checklist
```
### Step 1: Gather Requirements
Ask user with AskUserQuestion:
- What should this skill do? (purpose)
- When should it activate? (trigger words)
- Simple or complex? (affects structure)
### Step 2: Choose Structure
| Complexity | Structure | When to Use |
|------------|-----------|-------------|
| Basic | Single SKILL.md | Simple workflows, < 200 lines |
| Advanced | SKILL.md + references | Complex domains, multiple workflows |
### Step 3: Generate Skill
Use templates from `templates/` directory:
- [templates/basic.md](templates/basic.md) - Single file skill
- [templates/advanced.md](templates/advanced.md) - Multi-file with references
Create in appropriate location:
- `~/.claude/skills/` - Personal skills
- `.claude/skills/` - Project skills (git-tracked)
### Step 4: Validate
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)
```
## Naming Rules
**Format**: `verb-ing-noun` (gerund form)
- `processing-pdfs`
- `analyzing-spreadsheets`
- `managing-databases`
**Constraints**:
- Max 64 characters
- Lowercase letters, numbers, hyphens only
- No: `anthropic`, `claude`, XML tags
## Description Best Practices
The description determines when Claude activates the skill.
**Include**:
- What the skill does
- When to use it
- Trigger words users might say
**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
```
## Progressive Disclosure
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 templates
```
**Key rule**: References should be one level deep. All reference files link directly from SKILL.md.
See [reference.md](reference.md) for detailed best practices and anti-patterns.
## Frontmatter Schema
```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
---
```
## Anti-Patterns (Quick Reference)
| 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](reference.md)
## Example: Basic Skill
```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
```