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.
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.
/plugin marketplace add BrendanShields/spec-flow/plugin install spec@spec-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
reference.mdscripts/validate.shtemplates/advanced.mdtemplates/basic.mdGuides 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 checklist
Ask 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
# 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 templates
Key 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.
---
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
---
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
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.