Skill: write-a-skill
When to Use This Skill
Use this skill when:
- User wants to create a new reusable skill
- User says "write a skill", "build a skill", or "create a skill"
Process
Gather requirements - ask user about:
- What task/domain does the skill cover?
- What specific use cases should it handle?
- Does it need executable scripts or just instructions?
- Any reference materials to include?
Draft the skill - create:
SKILL.mdwith concise instructions (under 100 lines)- Additional reference files if content is large or has distinct domains
- Utility scripts if deterministic operations are needed
Review with user - present draft and ask:
- Does this cover your use cases?
- Anything missing or unclear?
- Should any section be more/less detailed?
Skill Structure
skill-name/
├── SKILL.md # Main instructions (required)
├── TEMPLATE.md # Reusable templates (if needed)
├── REFERENCE.md # Detailed docs (if needed)
└── scripts/ # Utility scripts (if needed)
└── helper.js
See TEMPLATE.md for the standard SKILL.md template, description rules, and review checklist.
When to Add Scripts
Add utility scripts when:
- Operation is deterministic (validation, formatting)
- Same code would be generated repeatedly
- Errors need explicit handling
Scripts save tokens and improve reliability vs generated code.
When to Split Files
Split into separate files when:
SKILL.mdexceeds 100 lines- Content has distinct domains (e.g., finance vs. sales schemas)
- Advanced features are rarely needed