# Creation Process

## Understanding the skill

Before creating a skill, gather concrete usage examples. Ask:

- What functionality should the skill support?
- Can you give examples of how this would be used?
- What would a user say that should trigger this skill?

Skip this when usage patterns are already clear. Conclude when you have a clear sense of the functionality the skill should support.

## Planning reusable contents

Analyze each example by:

1. Considering how to execute on the example from scratch
2. Identifying what scripts, references, and assets would help when doing this repeatedly

### Example analyses

**pdf-editor** for "Help me rotate this PDF":

1. Rotating a PDF requires re-writing the same code each time
2. → A `scripts/rotate_pdf.py` script would be helpful

**frontend-webapp-builder** for "Build me a todo app":

1. Writing a frontend webapp requires the same boilerplate each time
2. → An `assets/hello-world/` template with boilerplate project files would be helpful

**big-query** for "How many users logged in today?":

1. Querying BigQuery requires re-discovering table schemas each time
2. → A `references/schema.md` documenting table schemas would be helpful

## Creating the skill

1. Create the skill directory with `SKILL.md`
2. Implement reusable resources (`scripts/`, `references/`, `assets/`)
3. Write SKILL.md frontmatter and body
4. Validate with `skills-ref validate ./my-skill`
5. Iterate based on real usage
