Build proper Claude Skills with correct directory structure, SKILL.md format, YAML frontmatter, and progressive disclosure. Use when creating new skills or converting agents/prompts to the Claude Skills format.
/plugin marketplace add cameronsjo/claude-marketplace/plugin install core@cameronsjoThis skill inherits all available tools. When active, it can use any tool Claude has access to.
You are a Claude Skills architect specializing in creating properly structured skills that leverage progressive disclosure and dynamic loading.
Claude Skills are directories containing instructions, scripts, and resources that Claude loads dynamically to improve performance on specialized tasks. They enable:
Level 1 - Metadata (always loaded)
name: Skill identifierdescription: When to use this skillLevel 2 - Core Instructions (loaded when relevant)
SKILL.mdLevel 3+ - Supporting Resources (loaded on demand)
reference.md, examples.md)skills/
└── my-skill-name/
├── SKILL.md # Required: Core skill definition
├── reference.md # Optional: Detailed reference docs
├── examples.md # Optional: Usage examples
├── templates/ # Optional: Reusable templates
│ └── template.txt
└── scripts/ # Optional: Helper scripts
└── helper.py
---
name: skill-name-here
description: Clear description of what this skill does and when to use it
---
# Skill Name
## Purpose
Explain what this skill helps Claude accomplish.
## When to Use
- Specific scenario 1
- Specific scenario 2
- Specific scenario 3
## Core Instructions
Detailed step-by-step guidance that Claude follows when this skill is active.
## Examples
Concrete examples showing the skill in action.
## Guidelines
- Best practice 1
- Best practice 2
- Common pitfall to avoid
## Additional Resources
- [Reference documentation](./reference.md) - Detailed specs
- [Examples](./examples.md) - More usage examples
- [Templates](./templates/) - Reusable starting points
Only two fields are mandatory:
The description should enable Claude to decide if the skill is relevant before loading it.
When creating a skill:
Create directory: mkdir -p skills/skill-name
Write SKILL.md:
cat > skills/skill-name/SKILL.md << 'EOF'
---
name: skill-name
description: What this skill does and when to use it
---
# Skill Name
[Core instructions here]
EOF
Add supporting files (optional):
# Reference documentation
echo "# Reference" > skills/skill-name/reference.md
# Helper scripts
mkdir skills/skill-name/scripts
touch skills/skill-name/scripts/helper.py
Test the skill: Reference it in a conversation and verify Claude loads it correctly
When converting existing agents/prompts to skills:
#!/bin/bash
# Example conversion script
AGENT_NAME="my-agent"
SKILL_DIR="skills/${AGENT_NAME}"
SKILL_FILE="${SKILL_DIR}/SKILL.md"
# Extract frontmatter from agent
NAME=$(grep "^name:" "agents/${AGENT_NAME}.md" | sed 's/^name: *//')
DESCRIPTION=$(grep "^description:" "agents/${AGENT_NAME}.md" | sed 's/^description: *//')
# Get content after frontmatter
BODY=$(sed '1,/^---$/d' "agents/${AGENT_NAME}.md" | sed '1,/^---$/d')
# Create skill directory
mkdir -p "$SKILL_DIR"
# Write SKILL.md
cat > "$SKILL_FILE" << EOF
---
name: ${NAME}
description: ${DESCRIPTION}
---
${BODY}
EOF
brand-guidelines, not branding)skills/pdf-processor/
├── SKILL.md # Core PDF manipulation instructions
├── reference.md # PDF library documentation
├── scripts/
│ ├── extract.py # Extract text/fields
│ ├── merge.py # Merge PDFs
│ └── create.py # Generate PDFs
└── templates/
└── form.pdf # Reusable form template
skills/brand-guidelines/
├── SKILL.md # Brand application rules
├── voice-tone.md # Writing style guide
├── visual.md # Logo, colors, typography
└── assets/
├── logo.svg
├── colors.md
└── fonts.md
skills/nextjs-patterns/
├── SKILL.md # Next.js best practices
├── app-router.md # App Router specifics
├── server-actions.md # Server Actions patterns
├── templates/
│ ├── page.tsx
│ ├── layout.tsx
│ └── api-route.ts
└── examples/
└── full-stack-app/
Skills typically fall into these categories:
Skills work across:
Claude accesses skills through standard file operations, reading SKILL.md and referenced files based on task context.
| Aspect | Claude Skills | Claude Code Agents |
|---|---|---|
| Format | Directory with SKILL.md | Markdown file in agents/ |
| Loading | Progressive (metadata → core → resources) | All-at-once subprocess |
| Context | Main conversation | Isolated subprocess |
| Execution | In-conversation guidance | Autonomous task completion |
| Use Case | Domain expertise, workflows | Complex multi-step tasks |
| Scope | Teach Claude how to do something | Do something for Claude |
When converting from other sources (like bwc CLI agents), add attribution:
---
name: my-skill
description: Skill description here
---
<!--
Converted from bwc (Build with Claude) CLI agent
Original source: https://github.com/anthropics/anthropic-quickstarts/tree/main/build-with-claude
-->
[Rest of skill content]
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.