create-skill
Provides a framework for building and testing new custom skills for Claude Code.
Install
mkdir -p .claude/skills/create-skill-willem4130 && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14634" && unzip -o skill.zip -d .claude/skills/create-skill-willem4130 && rm skill.zipInstalls to .claude/skills/create-skill-willem4130
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create new Claude Code skills following best practices. Use when the user wants to create a custom skill, slash command, or extend Claude's capabilities.Key capabilities
- →Define skill purpose and scope
- →Choose skill location and invocation pattern
- →Write effective YAML frontmatter for skills
- →Create concise skill content
- →Add supporting files for detailed content
- →Test skill loading and invocation
How it works
This skill outlines a six-step process for creating new Claude Code skills, covering definition, location, frontmatter, content, supporting files, and testing, emphasizing conciseness and specific keywords.
Inputs & outputs
When to use create-skill
- →Creating custom Claude commands
- →Defining new skill scopes
- →Testing skill integration
About this skill
Create Claude Code Skill
Create a new Claude Code skill following Agent Skills best practices. This skill guides you through creating effective, well-structured skills that Claude can discover and use successfully.
Quick start workflow
Copy this checklist and track progress:
Skill Creation Progress:
- [ ] Step 1: Define skill purpose and scope
- [ ] Step 2: Choose skill location and invocation pattern
- [ ] Step 3: Write effective frontmatter
- [ ] Step 4: Create concise skill content
- [ ] Step 5: Add supporting files (if needed)
- [ ] Step 6: Test the skill
Step 1: Define skill purpose and scope
Ask the user these questions:
- What should this skill do? (Be specific about the task or knowledge it provides)
- When should Claude use it? (Triggers, keywords, or contexts)
- What type of skill is this?
- Reference skill: Adds knowledge Claude applies to current work (conventions, patterns, domain knowledge)
- Task skill: Step-by-step instructions for specific actions (deployment, commits, code generation)
Key principle: Focused skills are better than multipurpose skills. Each skill should excel at one specific task.
Step 2: Choose skill location and invocation pattern
Skill location determines who can use it:
| Location | Path | Applies to |
|---|---|---|
| Personal | ~/.claude/skills/<skill-name>/SKILL.md | All your projects |
| Project | .claude/skills/<skill-name>/SKILL.md | This project only |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md | Where plugin is enabled |
Invocation pattern:
- Default: Both user and Claude can invoke (most skills)
- Manual only: Add
disable-model-invocation: true(for side effects like/deploy) - Claude only: Add
user-invocable: false(for background knowledge)
Step 3: Write effective frontmatter
Required fields:
---
name: skill-name # lowercase, hyphens, max 64 chars
description: What this skill does and when to use it
---
Description best practices:
- ✅ Good: "Processes Excel files and generates reports. Use when analyzing spreadsheets, tabular data, or .xlsx files."
- ❌ Bad: "Helps with documents"
- Include specific keywords users would naturally say
- Write in third person ("Processes files" not "I can help you")
- Mention both what it does and when to use it
Optional fields:
argument-hint: [filename] [format] # Shows in autocomplete
disable-model-invocation: true # Manual invocation only
user-invocable: false # Claude-only invocation
allowed-tools: Read, Grep, Glob # Restrict tools
context: fork # Run in subagent
agent: Explore # Which subagent to use
Step 4: Create concise skill content
Core principle: Be concise
Assume Claude is smart. Only include what Claude doesn't already know.
For reference skills (conventions, patterns, guidelines):
## API Conventions
Use RESTful naming:
- GET /resources/:id for retrieval
- POST /resources for creation
- PUT /resources/:id for updates
Error format:
```json
{"error": "message", "code": "ERROR_CODE"}
See error-codes.md for complete list.
**For task skills** (workflows with steps):
````markdown
## Deployment Workflow
Deploy $ARGUMENTS to production:
1. **Run tests**: `npm test`
2. **Build**: `npm run build`
3. **Verify build**: Check dist/ directory exists
4. **Deploy**: `./scripts/deploy.sh $ARGUMENTS`
5. **Verify**: Run health check at https://api.example.com/health
If step 1 or 2 fails, do not proceed.
Keep SKILL.md under 500 lines. Move detailed content to supporting files.
Step 5: Add supporting files (if needed)
When to add supporting files:
- Detailed API documentation
- Multiple examples
- Large reference tables
- Utility scripts
Progressive disclosure pattern:
## Quick reference
Basic usage here...
## Detailed documentation
For complete API details, see [reference.md](reference.md)
For usage examples, see [examples.md](examples.md)
Supporting file structure:
my-skill/
├── SKILL.md # Main instructions (required)
├── reference.md # Detailed docs (loaded when needed)
├── examples.md # Usage examples
└── scripts/
└── helper.py # Utility script (executed)
See templates.md for common skill patterns.
Step 6: Test the skill
Testing checklist:
- Verify skill loads: Run "What skills are available?" and confirm it appears
- Test automatic invocation: Ask a question that should trigger it
- Test manual invocation: Try
/skill-namewith arguments - Check content quality: Does Claude follow the instructions correctly?
- Test edge cases: Try scenarios that might confuse Claude
If skill doesn't trigger:
- Make description more specific with clearer keywords
- Check the skill file has proper YAML frontmatter
- Try invoking directly with
/skill-nameto verify it works
If skill triggers too often:
- Make description more specific
- Add
disable-model-invocation: truefor manual-only
Common patterns
Template pattern
## Report structure
ALWAYS use this exact template:
```markdown
# [Analysis Title]
## Executive summary
[One-paragraph overview]
## Key findings
- Finding 1 with supporting data
- Finding 2 with supporting data
## Recommendations
1. Specific actionable recommendation
```
Example-driven pattern
## Commit message format
Follow these examples:
**Example 1:**
Input: Added user authentication
Output:
```
feat(auth): implement JWT-based authentication
Add login endpoint and token validation middleware
```
**Example 2:**
Input: Fixed date bug
Output:
```
fix(reports): correct date formatting in timezone conversion
```
Use format: type(scope): brief description, then detailed explanation.
Workflow with validation
## Workflow
1. Make changes to the code
2. **Validate**: Run `npm run lint`
3. If validation fails:
- Fix the issues
- Run validation again
4. **Only proceed when validation passes**
5. Commit the changes
Best practices reminder
DO:
- ✅ Keep SKILL.md concise (under 500 lines)
- ✅ Use specific, keyword-rich descriptions
- ✅ Include examples for complex tasks
- ✅ Use workflows with checklists for multi-step processes
- ✅ Test with real usage scenarios
- ✅ Use forward slashes in paths (not backslashes)
DON'T:
- ❌ Include time-sensitive information
- ❌ Offer too many options (provide one default)
- ❌ Assume packages are installed
- ❌ Use inconsistent terminology
- ❌ Create deeply nested file references
- ❌ Write verbose explanations of basic concepts
Additional resources
- Skill templates: See templates.md
- Example skills: See examples.md
- Troubleshooting: See troubleshooting.md
After creating the skill
- Create the directory:
mkdir -p ~/.claude/skills/skill-nameor.claude/skills/skill-name - Write SKILL.md: Create the file with frontmatter and content
- Test immediately: Ask Claude a question that should trigger it
- Iterate: Observe how Claude uses it and refine
- Share: Commit project skills to version control or package as plugin
When not to use it
- →When creating skills with time-sensitive information
- →When offering too many options in a skill
- →When writing verbose explanations of basic concepts
Limitations
- →Skill content should be under 500 lines
- →Requires specific YAML frontmatter fields
- →Assumes Claude is smart and only includes what Claude doesn't already know
How it compares
This skill provides a structured, best-practice-driven workflow for creating Claude Code skills, ensuring they are discoverable and effective, unlike ad-hoc skill creation.
Compared to similar skills
create-skill side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| create-skill (this skill) | 0 | 3mo | No flags | Beginner |
| command-development | 16 | 9mo | Review | Intermediate |
| prpm-development | 6 | 8mo | Review | Intermediate |
| rule-identifier | 5 | 9mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
command-development
anthropics
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.
prpm-development
pr-pm
Use when developing PRPM (Prompt Package Manager) - comprehensive knowledge base covering architecture, format conversion, package types, collections, quality standards, testing, and deployment
rule-identifier
anthropics
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
autonomous-agent-patterns
davila7
Design patterns for building autonomous coding agents. Covers tool integration, permission systems, browser automation, and human-in-the-loop workflows. Use when building AI agents, designing tool APIs, implementing permission systems, or creating autonomous coding assistants.
example-skill
anthropics
This skill should be used when the user asks to "demonstrate skills", "show skill format", "create a skill template", or discusses skill development patterns. Provides a reference template for creating Claude Code plugin skills.
command-creator
davila7
This skill should be used when creating a Claude Code slash command. Use when users ask to "create a command", "make a slash command", "add a command", or want to document a workflow as a reusable command. Essential for creating optimized, agent-executable slash commands with proper structure and best practices.