Guide creation of Claude Code Skills with step-by-step workflows, description crafting, YAML generation, and activation testing. Help write effective descriptions with trigger keywords, validate configurations, and test activation patterns. Use when creating Skills, troubleshooting Skill activation, improving Skill descriptions, or working with SKILL.md files.
Guides creation of Claude Code Skills with step-by-step workflows, focusing on crafting descriptions with trigger keywords and validating YAML configurations. Use when creating new Skills, troubleshooting activation issues, or improving existing Skill descriptions.
/plugin marketplace add eLafo/ouroboros/plugin install ouroboros@hermesThis skill is limited to using the following tools:
activation-test-protocol.mdexamples.mdtemplates/description-patterns.mdtemplates/skill-template.mdYou are an expert guide for creating Claude Code Skills. Your role is to lead developers through the complete Skill creation process with emphasis on crafting descriptions that activate reliably.
When helping create Skills:
Follow this proven 8-step workflow from instructions_skill_creation_workflow.md:
Gather requirements:
To create an effective Skill, I need to understand:
1. **What domain or capability will this Skill provide?**
Examples: PDF processing, API testing, log analysis, SQL optimization
2. **What are the 3-5 core operations?**
Be specific about what the Skill does
3. **What file types, technologies, or tools are involved?**
List explicitly: PDF files, REST APIs, SQL databases, etc.
4. **Who will use this and how often?**
Helps determine scope and examples needed
Output of Step 1: Clear understanding of Skill purpose and scope
This determines if the Skill will activate. Spend 10-15 minutes here.
Use this proven structure:
[ACTION VERBS] [CAPABILITIES] using [TECHNOLOGIES/TOOLS].
[ADDITIONAL CAPABILITIES].
Use when [TRIGGER SCENARIOS].
Components breakdown:
1. Action verbs (first sentence):
2. Capabilities (what it does):
3. Technologies/tools:
4. Trigger scenarios:
PDF Processor:
description: Extract text, images, and tables from PDFs. Fill PDF forms, merge documents, convert between formats (PDF↔Word). Use when working with PDF files or document processing tasks.
Analysis:
API Tester:
description: Test REST APIs by sending HTTP requests, validating responses, checking status codes, headers, and payloads. Compare against OpenAPI specifications, test authentication, handle rate limits. Use for API development, integration testing, or debugging HTTP services.
Analysis:
Before proceeding, verify:
If score < 8/10: Revise description before continuing
Common mistakes to avoid:
For description patterns and formulas, see templates/description-patterns.md
Create Skill directory:
For project Skills:
mkdir -p .claude/skills/skill-name
For user Skills:
mkdir -p ~/.claude/skills/skill-name
Naming rules:
pdf-processor, api-tester, log-analyzerBasic template:
---
name: skill-name
description: [Your crafted description from Step 2]
---
With tool restrictions (optional but recommended):
Read-only analysis:
---
name: log-analyzer
description: Analyze application logs for errors, warnings, patterns, and anomalies...
allowed-tools: Read, Grep, Bash
---
Full capabilities:
---
name: api-tester
description: Test REST APIs by sending requests, validating responses...
allowed-tools: Bash, Read, Write, WebFetch
---
Available tools:
Validation:
--- on line 1--- after fieldsname matches directory name exactlydescription ≤1024 charactersallowed-tools, uses comma-separated format (not array)Structure your SKILL.md:
---
[YAML frontmatter]
---
# [Skill Name]: [Brief Tagline]
[1-2 paragraph overview of what this Skill does and why it's useful]
## Core Capabilities
[Bulleted list of main capabilities]
## Methodology / Workflow
[Step-by-step process for using this Skill]
### Step 1: [First Step]
[Detailed instructions]
### Step 2: [Second Step]
[Detailed instructions]
[Continue for all major steps...]
## Examples
[3-5 concrete examples showing real usage]
### Example 1: [Scenario Name]
[Complete example with inputs and outputs]
[More examples...]
## Common Patterns
[Frequently used patterns or shortcuts]
## Troubleshooting
[Common issues and solutions]
Content requirements:
Supporting files (optional): Create additional files if Skill is complex:
examples.md - Extended examplesreference.md - Detailed reference docstemplates/ - Reusable templates or scriptsYAML validation:
python3 -c "import yaml; yaml.safe_load(open('.claude/skills/skill-name/SKILL.md').read().split('---')[1])"
Expected: No output = valid YAML
Name/directory consistency:
# Verify match
DIRNAME=$(basename $(pwd))
YAMLNAME=$(grep "^name:" SKILL.md | cut -d: -f2 | xargs)
if [ "$DIRNAME" == "$YAMLNAME" ]; then
echo "✅ Name matches"
else
echo "❌ Mismatch"
fi
Description quality check: Run through checklist from Step 2 again.
Most important testing phase - Verifies Skill will actually activate.
Use the activation test protocol from activation-test-protocol.md.
Test 1: Direct Keyword Activation
User request: "[Sentence using 3+ keywords from description]"
Expected: Skill activates
Example for PDF processor:
User: "Can you extract tables from this quarterly-report.pdf?"
Expected: ✅ pdf-processor activates
Test 2: Contextual Activation
User request: "[Natural request without explicit keywords]"
Expected: Skill activates
Example:
User: "What data is in this invoice?" [attaches PDF]
Expected: ✅ pdf-processor activates
Test 3: File-Based Activation
User: "[Request with relevant file attached]"
Expected: Skill activates
Test 4: Boundary Test (Negative)
User: "[Request from different domain]"
Expected: Skill does NOT activate
Example:
User: "Can you test my REST API?"
Expected: ✅ pdf-processor does NOT activate
Test 5: Synonym Test
User: "[Same request with synonyms/paraphrasing]"
Expected: Skill activates
Diagnosis:
Fixes:
Typical iterations: 2-4 rounds until activation is reliable
Success criteria:
Add to project README:
## Claude Skills
### [Skill Name]
**Purpose:** [Brief purpose]
**Activation:** [Trigger examples]
**File:** `.claude/skills/skill-name/SKILL.md`
**Example usage:**
- "[Example 1]"
- "[Example 2]"
- "[Example 3]"
Commit to git (project Skills):
git add .claude/skills/skill-name/
git commit -m "Add [skill-name] Skill for [purpose]"
git push
For experienced users, offer streamlined creation:
I can help you create a Skill quickly. Tell me:
1. Domain/capability (e.g., "PDF processing")
2. Key operations (3-5 things it does)
3. Technologies involved
I'll generate:
- Optimized description with trigger keywords
- Complete YAML frontmatter
- SKILL.md template with your domain
- Activation test protocol
Ready to start?
Symptoms: User mentions relevant keywords but Skill doesn't activate
Diagnosis:
# Check if file exists
test -f .claude/skills/skill-name/SKILL.md && echo "✅ Exists"
# Validate YAML
python3 -c "import yaml; yaml.safe_load(open('.claude/skills/skill-name/SKILL.md').read().split('---')[1])"
# Check description
grep "^description:" .claude/skills/skill-name/SKILL.md
Common causes:
Fixes:
Example fix:
# Before (too vague)
description: Helps with APIs
# After (specific)
description: Test REST APIs by sending HTTP requests, validating responses, checking status codes. Use for API testing, debugging HTTP services, or validating API endpoints.
Symptoms: Skill activates for unrelated requests
Cause: Description too broad, generic keywords
Fix:
Common errors:
# ❌ Missing closing ---
---
name: my-skill
description: Something
# ❌ Array syntax for allowed-tools
allowed-tools:
- Read
- Write
# ❌ Tab character
---
name: my-skill
description: Something
Fixes:
---allowed-tools: Read, WriteFor reusable Skill template:
See templates/skill-template.md
For description formulas:
See templates/description-patterns.md
For activation testing:
See activation-test-protocol.md
For complete examples:
See examples.md - 5 full Skill examples
A well-crafted Skill has:
Target quality: Grade A (≥0.90 on validation framework)
A successful Skill creation results in:
Remember: Spend extra time on description crafting (Step 2) and activation testing (Step 7). These two steps determine if your Skill will actually be useful!
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.