How to Create a Skill for Claude
A skill is a .md markdown file that teaches Claude how to handle a specific task or workflow. Once uploaded and approved, it appears in the SkillGalaxy library for everyone to download and use in their Claude Projects.
What is a Claude Skill?
When you add a skill file to a Claude Project, Claude reads it and permanently knows how to do that task — every conversation in that project automatically benefits from the skill. You don't need to re-explain your preferences or process every time.
Skills work across Claude.ai Projects, Claude Code, and the Claude API. A skill you write once works everywhere.
Skill File Format
Every skill is a single .md (Markdown) file with two parts:
- YAML Frontmatter — metadata between
---delimiters at the very top - Skill Body — the actual instructions in Markdown below the frontmatter
---
name: your-skill-name
description: What it does. Use when [specific trigger phrase].
tags: tag1, tag2, tag3
difficulty: intermediate
time_to_master: 3-6 months
---
# Your Skill Name
Your instructions go here in plain Markdown...
## When to Use
Describe exactly when Claude should apply this skill.
## Instructions
1. Step one
2. Step two
3. Step three
--- on the very first line. No blank lines, no spaces before it. If the frontmatter is missing or malformed, the submission will be rejected.Frontmatter Fields
| Field | Required? | Rules | Example |
|---|---|---|---|
| name | Required | kebab-case only, no spaces, no capitals, no special chars | prompt-engineer |
| description | Required | Under 300 chars. Must include WHAT it does AND WHEN to use it. No < > characters. |
Optimizes LLM prompts. Use when building AI features or debugging model outputs. |
| tags | Optional | Comma-separated, max 10 tags, lowercase | ai, prompting, llm |
| difficulty | Optional | Must be one of: beginner intermediate advanced expert |
intermediate |
| time_to_master | Optional | Free text estimate | 2-4 weeks |
The name field — Critical Rules
- Must be kebab-case: lowercase letters and hyphens only
- No spaces:
prompt engineer❌ →prompt-engineer✅ - No underscores:
prompt_engineer❌ - No capitals:
PromptEngineer❌ - Cannot start with
claudeoranthropic(reserved) - Must match the folder name if distributing as a folder
The description field — Most Important
This is how Claude decides whether to load your skill. It must answer two questions:
- What does it do? — the core capability
- When should it activate? — specific trigger phrases users would say
description: Optimizes prompts for LLMs using
chain-of-thought and few-shot techniques. Use
when building AI features, debugging model
outputs, or asking "how do I prompt Claude?"
description: Helps with AI stuff and makes
prompts better for language models.
Writing the Skill Body
After the closing ---, write your instructions in plain Markdown. There's no strict template — use whatever structure makes the skill clearest. But these sections work well:
| Section | Purpose | Required? |
|---|---|---|
| # Title | Skill name as a heading | Optional |
| ## When to Use | Specific trigger conditions | Recommended |
| ## Instructions | Step-by-step numbered steps | Recommended |
| ## Rules | Hard constraints Claude must follow | Optional |
| ## Examples | Sample inputs and outputs | Optional |
| ## Tone & Style | How Claude should communicate | Optional |
| ## Always Output | Non-negotiable output requirements | Optional |
Writing effective instructions
## Instructions
1. Always write a failing test FIRST
before any production code
2. Run the test — confirm it fails (RED)
3. Write minimal code to pass — no
elegance yet (GREEN)
4. Refactor while tests stay green
## Instructions
- Write good code
- Make sure tests pass
- Follow best practices
- Be clean and readable
Available Categories
Choose the category that best matches your skill. Use the exact value shown in the Code column in your submission form.
Validation Rules
Your skill is automatically checked when submitted. It will be rejected if any of these fail:
- File must start with
---on line 1 (YAML frontmatter) - Frontmatter must contain a
name:field - Frontmatter must contain a
description:field namemust be kebab-case (lowercase + hyphens only)- Description must be 30–500 characters
- Total file content must be at least 100 characters
- No
<script>tags or JavaScript event handlers allowed - No
javascript:URLs - File size must be under 100KB
- File must be
.mdor.txt
Good vs Bad Examples
Skill names
name: code-reviewer
name: rag-engineering
name: daily-planning
name: ab-test-design
name: Code Reviewer (spaces)
name: RAG_Engineering (underscore + caps)
name: claude-helper (reserved prefix)
name: My Cool Skill !!! (spaces + symbols)
Description quality
description: Conducts systematic code reviews
across 6 layers: logic, patterns, performance,
dead code, edge cases, and security. Use when
reviewing PRs, preparing code for commit, or
assessing legacy code quality.
description: A helpful skill that reviews
code and makes it better and more readable
and follows best practices for developers.
Instructions quality
## Instructions
1. **Logic check**: Can this be simplified?
Does it violate single responsibility?
2. **Performance**: N+1 queries? Blocking ops?
3. **Dead code**: Unused imports, unreachable
branches, commented-out legacy code?
Always fix issues — don't just flag them.
Output a severity-rated summary: Critical /
Warning / Suggestion.
## Instructions
- Review the code carefully
- Look for problems
- Make suggestions
- Be thorough and helpful
Complete Working Example
This is a real, production-quality skill you can use as a template. Download it below and test it in a Claude Project.
---
name: daily-planner
description: Structures daily work around 3 Most Important Tasks with
time blocks, energy matching, and clear done criteria. Use when
starting your workday, planning tasks, or saying "help me plan today".
tags: productivity, planning, tasks, daily-routine, focus, time-management
difficulty: beginner
time_to_master: 1-2 weeks
---
# Daily Planner
## When to Use
Activate this skill when the user:
- Says "help me plan my day" or "what should I work on today?"
- Asks to prioritise or organise their tasks
- Starts the conversation with what they need to do today
- Seems overwhelmed or unfocused about work
## Instructions
When helping someone plan their day, always follow this process:
1. **Review Context**: Ask what's on their plate today (or read from conversation)
2. **Identify 3 MITs**: Help them select maximum 3 Most Important Tasks
- MITs = tasks that would make today a success if completed
- Never more than 3 — protect focus
3. **Time Block**: Assign realistic time estimates to each MIT
- Include 20% buffer for interruptions and overruns
4. **Energy Match**: Place hard cognitive work in morning, admin/meetings afternoon
5. **Define Done**: For each MIT, write a specific, testable completion criterion
## Output Format
Always produce this exact structure:
```
## Daily Plan — [Day, Date]
### 🎯 Top 3 Priorities
1. [Task] — [Time block] — Done when: [specific criterion]
2. [Task] — [Time block] — Done when: [specific criterion]
3. [Task] — [Time block] — Done when: [specific criterion]
### ⚡ Quick Wins (under 15 min each)
- [small task 1]
- [small task 2]
### 📋 Notes
[Blockers, context, dependencies]
```
## Rules
- Never put more than 3 items in Top 3 Priorities
- "Done when" criteria must be specific and testable — not "finish report"
but "complete sections 1-3 of Q4 report, ready for manager review"
- If the user lists 10 things, help them ruthlessly cut to 3
- Energy matching is non-negotiable — creative/hard work always morning
## Analogy
Daily planning is like packing for a trip — you can't take everything,
so you pack what you actually need for today, not what might be nice to have.
How to Submit
There are two ways to submit a skill:
Option A — Fill in the Form
- Sign in to SkillGalaxy (create a free account if needed)
- Click "+ Submit Skill" in the top right or sidebar
- Fill in: Name, Category, Description, Trigger Phrase, Difficulty
- Optionally add: Atomic Skills, Tools, Tags, and Scores
- Click Submit Skill — the form auto-generates a valid
.mdfile from your inputs
Option B — Upload a .md File (Recommended)
- Write your skill file locally (use the example above as a template)
- Sign in to SkillGalaxy
- Click "+ Submit Skill" → switch to the "Upload .md File" tab
- Drop your
.mdfile — it auto-fills the form fields from your frontmatter - Fill in any missing fields → click Submit Skill
Review & Approval Process
Every submitted skill goes through a quick review before going live:
| Status | Meaning | What happens next |
|---|---|---|
| pending | Submitted, awaiting review | Visible only to you; admin reviews within 24hrs |
| approved | Passes review | Goes live instantly — visible to everyone on all devices |
| rejected | Doesn't meet standards | You'll see the rejection reason; you can edit and resubmit |
What reviewers check for
- Clear, specific description with real trigger phrases
- Actionable, numbered instructions (not vague guidance)
- Correct frontmatter format and valid
namefield - Skill is genuinely useful and not a duplicate of an existing skill
- No harmful content, spam, or promotional material
- At least 150 words of actual instruction content
Pre-Submission Checklist
Run through this before submitting. Every item should be ✅.
- File starts with
---on line 1 (no blank lines before it) name:is kebab-case — no spaces, no caps, no underscoresdescription:says WHAT it does AND WHEN to use it- Description includes at least 2 specific trigger phrases
- Instructions are numbered and specific, not vague bullet points
- Skill body is at least 150 words
- No
<script>tags or raw HTML - No API keys, passwords, or personal data in the file
- Content is original (not copy-pasted from another skill)
- Tested the skill in a real Claude Project before submitting