skill-creator · git:20260424.d50cf5a · 2026-04-24 · sha256 3a842ee18c01c48b
skill-creator git:20260424.d50cf5aA
Immutable. This exact content never changes and is served at /api/v1/blob/3a842ee18c01c48b.
---
name: skill-creator
description: Create modular skill documents (SKILL.md files) for Claude Code. Use this skill whenever a task requires generating reusable knowledge documents, capturing domain expertise, or building skills that encode workflows, APIs, or specialized techniques. Invoke this whenever you need to write a SKILL.md from scratch, even if the user doesn't explicitly ask for a "skill".
---
# Skill Creator
A guide for creating well-structured, reusable Claude Code skills.
## Communicating with the user
Pay attention to context cues to gauge familiarity. Keep explanations accessible — don't assume deep technical knowledge unless the user demonstrates it.
---
## Creating a skill
### Capture Intent
Understand what the skill should enable. Extract from the current task context:
1. What should this skill enable Claude to do?
2. When should this skill trigger? (what user phrases / contexts)
3. What's the expected output format or artifact?
### Interview and Research
Proactively think about edge cases, input/output formats, success criteria, and dependencies before writing. If useful libraries or APIs are involved, check what's available in the environment first.
### Write the SKILL.md
Based on the task requirements, fill in these components:
- **name**: Skill identifier (must match the folder name)
- **description**: When to trigger, what it does. This is the primary triggering mechanism — include both what the skill does AND specific contexts for when to use it. To combat undertriggering, make the description a little "pushy": instead of "How to do X", write "How to do X. Use this skill whenever the user mentions X, Y, or Z, even if they don't explicitly ask for it."
- **the rest of the skill body**
### Skill Writing Guide
#### Anatomy of a Skill
```
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter (name, description required)
│ └── Markdown instructions
└── Bundled Resources (optional)
├── scripts/ - Executable code for deterministic/repetitive tasks
├── references/ - Docs loaded into context as needed
└── assets/ - Files used in output (templates, icons, fonts)
```
#### Progressive Disclosure
Skills use a three-level loading system:
1. **Metadata** (name + description) — Always in context (~100 words)
2. **SKILL.md body** — In context whenever skill triggers (<500 lines ideal)
3. **Bundled resources** — Loaded on demand (unlimited size)
**Key patterns:**
- Keep SKILL.md under 500 lines; if approaching the limit, split into a SKILL.md overview + references/ files with clear pointers
- Reference bundled files clearly from SKILL.md with guidance on when to read them
- For large reference files (>300 lines), include a table of contents
**Domain organization** — when a skill supports multiple variants, organize by variant:
```
cloud-deploy/
├── SKILL.md (workflow + selection logic)
└── references/
├── aws.md
├── gcp.md
└── azure.md
```
#### Writing Patterns
Use the imperative form. Explain the **why** behind instructions — models understand reasoning, not just rules. Avoid heavy-handed ALL-CAPS MUSTs; explain why something matters instead.
**Defining output formats:**
```markdown
## Report structure
Use this exact template:
# [Title]
## Executive summary
## Key findings
## Recommendations
```
**Examples pattern:**
```markdown
## Commit message format
Input: Added user authentication with JWT tokens
Output: feat(auth): implement JWT-based authentication
```
#### Principle of Lack of Surprise
Skills must not contain malware, exploit code, or content that could compromise system security. A skill's contents should not surprise the user given its description.
### Writing Style
Write a draft, then review with fresh eyes. Generalize from specific examples — don't overfit to one case. Keep skills lean: remove instructions that aren't pulling their weight. Read as if you're the model using this skill for the first time.
### Validation
After writing a skill, run the quick validator to check structure:
```bash
python environment/skills/<skill-name>/scripts/quick_validate.py environment/skills/<skill-name>/
```
---
## Output path for this task
Save each skill as `SKILL.md` inside a named subdirectory under `environment/skills/` (relative path from your working directory). Do **not** write to `/root/.claude/skills/` or any other location.
```
environment/skills/<skill-name>/SKILL.md
```
Each `SKILL.md` must begin with the YAML frontmatter block (name + description).
After creating the skills, solve the task using them as reference.