Use when users say "create a skill", "make a new skill", "build a skill", "skill for X", "package this as a skill", or when refactoring/updating/auditing existing skills that extend agent...
Apply these tests to ensure the skill provides genuine value:
This skill uses progressive disclosure to minimize context usage:
Follow the 4-step workflow below for skill creation or refactoring.
Load AGENTS.md for file system conventions, naming patterns, and structural rules.
Each workflow step below notes which reference files to load. Only load what you need for the current step:
Do NOT load all references at once β load only the ones relevant to your current step.
Choose based on your task:
To create or refactor a skill, follow the "Skill Creation Workflow" in order, skipping steps only if there is a clear reason why they are not applicable.
Copy this checklist to track progress:
- [ ] Step 1: Understanding - Gather concrete examples of skill usage
- [ ] Step 2: Planning - Identify reusable scripts, references, assets
- [ ] Step 3: Initializing - Check existing skills, create directory structure
- [ ] Step 4: Editing - Write agent-focused content with procedural knowledge and update CHANGELOG
Include what rules from this skill are being applied, and why, in your summary.
Skip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.
To create an effective skill, clearly understand concrete examples of how the skill will be used. This understanding can come from either direct user examples or generated examples that are validated with user feedback.
Example: Building an image-editor skill, ask:
Ask 2-3 concrete questions first (functionality, examples, trigger phrases), then follow up based on their answers rather than front-loading all questions.
Conclude when there is a clear sense of the functionality the skill should support.
To turn concrete examples into an effective skill, analyze each example by:
Examples:
pdf-editor skill for "Rotate this PDF" β store scripts/rotate-pdf.sh to avoid rewriting code each timefrontend-app-builder for "Build a todo app" β store assets/hello-world/ boilerplate templatebig-query for "How many users logged in today?" β store references/schema.md with table schemasAnalyze each concrete example to create a list of reusable resources: scripts, references, and assets.
MANDATORY: Load references/file-system.md before creating directory structure.
For new skills: Copy the template in assets/skill-template/ as a starting point and customize it.
For existing skills being refactored: Skip directly to Step 4 β the skill already exists.
Before creating, check for existing skills that overlap:
ls -la .claude/skills 2>/dev/null || echo "No project skills found"
ls -la ~/.claude/skills 2>/dev/null || echo "No global skills found"
If relevant skills exist, mention them briefly: "I found [list] β should any of these be included or merged?"
Follow the conventions in AGENTS.md and reference files for directory structure and naming.
MANDATORY: Load references/skill.md for description field conventions and frontmatter rules.
When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of an agent to use. Focus on including information that would be beneficial and non-obvious to an agent. Consider what procedural knowledge, domain-specific details, or reusable assets would help another agent instance execute these tasks more effectively.
Calibrate freedom to task fragility:
| Task Type | Freedom Level | Guidance Format | Example |
|---|---|---|---|
| Creative/Design | High freedom | Principles, thinking patterns, anti-patterns | "Commit to a bold aesthetic" |
| Code Review | Medium freedom | Guidelines with examples, decision frameworks | "Priority: security > logic > performance" |
| File Operations | Low freedom | Exact scripts, specific steps, no variation | "Use exact command: pandoc --flag" |
The test: "If the agent makes a mistake, what's the consequence?"
If you are updating an existing skill you can use the templates in assets/skill-template/ as a reference for larger structural changes and alignment. Consistency is imperative so lean towards aggressive reformatting to achieve adherence.
When updating an existing skill, ensure that the frontmatter metadata.version value is bumped. If the scope of the change is substantial do a major change 1.0 to 2.0, otherwise minor 1.0 to 1.1.
Version Control:
CHANGELOG Maintenance:
After updating a skill, update or create CHANGELOG.md using "Keep a Changelog" format:
# Changelog
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features/capabilities with rationale
### Changed
- Modifications with why (always include rationale)
### Fixed
- Bug fixes with explanation
### Version
- Version bump note
Document what changed and why β the rationale is critical for future maintainers. Link to evaluation results when improvements stem from testing. The CHANGELOG version must match the frontmatter metadata.version.
When auditing or reviewing an existing skill (not creating from scratch), follow this structured approach:
Check each field against requirements:
name: lowercase, hyphens only, β€64 chars, matches directory namedescription: starts with "Use when", includes WHAT/WHEN/KEYWORDS, has concrete trigger phraseslicense: present (optional but recommended)metadata.version: present, meaningful, and matches CHANGELOG.md latest versionCompare against expected sections: NEVER Do, Before [Action] Ask, How to Use, Main Workflow. Note missing sections.
Check CHANGELOG.md presence and quality:
metadata.versionFor each content block, ask: "Does Claude already know this?" Mark as REDUNDANT or EXPERT-ONLY. Calculate the percentage of redundant content. If >50% redundant, recommend substantial revision.