Docs
HomeClaude Code PRO
Blog

Getting Started

  • Documentation
  • Claude Code Setup
  • Claude Code Configuration
  • Claude Code Security

Claude Code PRO

  • guideCheatsheet
  • skill/apex
  • skill/brainstorm
  • skill/debug
  • skill/clean-code
  • skill/review-code
  • skill/ci-fixer
  • skill/claude-memory
  • skill/create-prompt
  • skill/create-slash-commands
  • skill/prompt-creator
  • skill/create-skills-workflow
  • skill/skill-creator
  • skill/hook-creator
  • skill/subagent-creator
  • scriptStatusline
  • scriptCommand Validator
  • scriptAuto-Rename Session
  • scriptClaude Code AI
  • agentSnipper
  • agentCode Reviewer
  • agentExplore Codebase
  • agentExplore Docs
  • agentAction
  • agentWeb Search
  • cmd/oneshot
  • cmd/refactor
  • cmd/ultrathink
  • cmd/commit
  • cmd/create-pr
  • cmd/fix-pr-comments
  • cmd/merge
  • cmd/fix-errors
  • cmd/utils/fix-grammar
  • cmd/copywriting

/skill-creator

Comprehensive guide for creating effective Claude Code skills with SKILL.md files.

The /skill-creator skill teaches you how to create effective Skills that Claude can discover and use successfully.

What are Agent Skills?

Agent Skills are modular, filesystem-based capabilities that provide domain-specific expertise through progressive disclosure. They are organized prompts that get loaded on-demand.

Quick Start Workflow

  1. Identify the reusable pattern: What context would be useful for similar future tasks?
  2. Create directory and SKILL.md:
    • Directory name: Follow verb-noun convention: create-*, manage-*, setup-*
    • YAML frontmatter with name and description
  3. Write concise instructions: Assume Claude is smart. Only add context Claude doesn't have.
  4. Test with real usage: Iterate based on observations.

Example Skill

YAML
---
name: process-pdfs
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files.
---

<objective>
Extract text and tables from PDF files using Python libraries.
</objective>

<quick_start>
Extract text with pdfplumber:

import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
    text = pdf.pages[0].extract_text()
</quick_start>

<advanced_features>
**Form filling**: See [forms.md](forms.md)
</advanced_features>

Required XML Tags

All skills must have:

TagPurpose
<objective>What the skill does and why it matters
<quick_start>Immediate, actionable guidance
<success_criteria>How to know it worked

Conditional Tags

Add based on skill complexity:

TagWhen to Use
<context>Background information
<workflow>Step-by-step procedures
<advanced_features>Deep-dive topics
<validation>How to verify outputs
<examples>Multi-shot learning
<anti_patterns>Common mistakes to avoid
<security_checklist>Security patterns

Skill Directory Structure

skills/{skill-name}/
├── SKILL.md              # Main entry point
├── references/           # Additional documentation
│   └── api-reference.md
└── templates/            # Optional templates
    └── example.md

Best Practices

  1. Keep SKILL.md focused - Link to references for details
  2. Use progressive disclosure - Basic info first, advanced later
  3. Include examples - Show expected input/output
  4. Define success criteria - Clear completion indicators

Slash Command Wrapper

After creating a skill, create a lightweight slash command wrapper to make it invocable via /skill-name:

Location: ~/.claude/commands/{skill-name}.md

Template:

YAML
---
description: {Brief description of what the skill does}
argument-hint: [{argument description}]
allowed-tools: Skill({skill-name})
---

<objective>
Delegate {task} to the {skill-name} skill for: #$ARGUMENTS
</objective>

<process>
1. Use Skill tool to invoke {skill-name} skill
2. Pass user's request: #$ARGUMENTS
3. Let skill handle workflow
</process>

<success_criteria>
- Skill successfully invoked
- Arguments passed correctly to skill
</success_criteria>

The slash command's only job is routing—all expertise lives in the skill.

/create-skills-workflow/hook-creator