CR

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.zip

Installs 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.
153 chars✓ has a “when” trigger
Beginner

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

You give it
User request for a custom skill or command
You get back
New Claude Code skill following best practices, with `SKILL.md` and optional supporting files

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:

  1. What should this skill do? (Be specific about the task or knowledge it provides)
  2. When should Claude use it? (Triggers, keywords, or contexts)
  3. 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:

LocationPathApplies to
Personal~/.claude/skills/<skill-name>/SKILL.mdAll your projects
Project.claude/skills/<skill-name>/SKILL.mdThis project only
Plugin<plugin>/skills/<skill-name>/SKILL.mdWhere 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:

  1. Verify skill loads: Run "What skills are available?" and confirm it appears
  2. Test automatic invocation: Ask a question that should trigger it
  3. Test manual invocation: Try /skill-name with arguments
  4. Check content quality: Does Claude follow the instructions correctly?
  5. 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-name to verify it works

If skill triggers too often:

  • Make description more specific
  • Add disable-model-invocation: true for 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

After creating the skill

  1. Create the directory: mkdir -p ~/.claude/skills/skill-name or .claude/skills/skill-name
  2. Write SKILL.md: Create the file with frontmatter and content
  3. Test immediately: Ask Claude a question that should trigger it
  4. Iterate: Observe how Claude uses it and refine
  5. 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.

SkillInstallsUpdatedSafetyDifficulty
create-skill (this skill)03moNo flagsBeginner
command-development169moReviewIntermediate
prpm-development68moReviewIntermediate
rule-identifier59moReviewBeginner

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.

16133

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

6101

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.

584

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.

451

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.

326

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.

422

Search skills

Search the agent skills registry