This document describes the structure and format of agent-skills skill files. Use this as a guide when contributing new skills or understanding existing ones.
## File Location
Every skill lives in its own directory under `skills/`:
```
skills/
skill-name/
SKILL.md # Required: The skill definition
supporting-file.md # Optional: Reference material loaded on demand
```
## SKILL.md Format
### Frontmatter (Required)
```yaml
---
name: skill-name-with-hyphens
description: Guides agents through [task/workflow]. Use when [specific trigger conditions].
-`description`: Start with what the skill does in third person, then include one or more clear "Use when" trigger conditions. Include both _what_ and _when_. Maximum 1024 characters.
**Why this matters:** Agents discover skills by reading descriptions. The description is injected into the system prompt, so it must tell the agent both what the skill provides and when to activate it. Do not summarize the workflow — if the description contains process steps, the agent may follow the summary instead of reading the full skill.
Helps agents and humans decide if this skill applies to the current task. Include both positive triggers ("Use when X") and negative exclusions ("NOT for Y").
The most distinctive feature of well-crafted skills. These are excuses agents use to skip important steps, paired with rebuttals. They prevent the agent from rationalizing its way out of following the process.
Think of every time an agent has said "I'll add tests later" or "This is simple enough to skip the spec" — those go here with a factual counter-argument.
The exit criteria. A checklist the agent uses to confirm the skill's process is complete. Every checkbox should be verifiable with evidence (test output, build result, screenshot, etc.).