Create Skill
Create agent skills that are portable, easy to trigger, and cheap
to load. A skill is a folder containing a SKILL.md file with YAML
frontmatter and markdown instructions.
Workflow
Intake (mandatory gate) — Understand what the skill
should do. Ask at least 3 targeted questions before
drafting anything. Collect:
- A short name (lowercase, hyphenated)
- What the skill enables the agent to do
- When it should activate (trigger conditions)
- What success looks like
Summarize your understanding and get explicit confirmation
before proceeding. Do not write SKILL.md until the user
confirms.
Investigate the repo — Before asking questions, search the
repo for:
- Existing skills, conventions, and workflow docs
- Scripts, templates, schemas relevant to the target workflow
- Tool or dependency requirements
- Whether the conversation already contains a workflow to
capture
Clarify — Ask only questions that materially affect the
skill. Push until these are clear:
- Required workflow steps and their order
- Required inputs and expected outputs
- Dependencies on tools, scripts, or services
- Whether the skill needs
references/, scripts/, or
assets/
Design the package — Structure:
skill-name/
├── SKILL.md # Metadata + core workflow
├── references/ # Detailed docs, loaded on demand
├── scripts/ # Executable code
└── assets/ # Templates, resources
- Keep SKILL.md under 500 lines
- Move bulky detail into
references/
- Put deterministic execution in
scripts/
- Don't duplicate guidance across files
Write SKILL.md — Structure:
---
name: skill-name
description: >
What the skill does and produces. Use when the user wants
to <scenario>, mentions <keyword>, or asks about <topic>.
---
Frontmatter rules:
- Required:
name and description in frontmatter.
Other fields depend on your project's conventions.
- Version in frontmatter is always
"1.0.0" for new
skills. Never use 0.x.y — first release is 1.0.0.
- CHANGELOG.md starts with
## [Unreleased] containing
the initial entries. Do not assign a version heading
until the skill is actually released (git tagged).
Writing rules:
Description optimizes activation, not teaching. State
the job and when to use it in words a user would actually
say. Include both actions and situations. Keep workflow
details out of the description.
Bad: Follows a 7-step process to generate SKILL.md files with YAML frontmatter.
Good: Creates agent skills. Use when the user wants to build a SKILL.md, turn a workflow into a reusable skill, or is frustrated by inconsistent agent behavior.
Body is procedural and imperative. Tell the agent
exactly how to proceed. Don't restate trigger criteria
from the description — a "When to use" section in the
body duplicates the description.
Use imperative form. "Do not", "Use", "Run" — not
"prefer" or "consider".
Be concise. Terse reminders, not tutorials.
Include a complete example. One full, copy-paste-ready
artifact beats scattered snippets.
Include a Boundaries section (mandatory). List what
the skill DOES and Does NOT do.
Include a Common Failures section. List 2–3
domain-specific mistakes an agent would make without
this guidance.
See example-skill.md for a
complete finished skill demonstrating these principles.
Validate — Test the skill with representative prompts:
- 2–3 realistic positive prompts (things users would say)
- At least 1 negative prompt (adjacent but shouldn't trigger)
Write a brief validation report noting:
- Which prompts triggered correctly
- Which failed and why (trigger wording, workflow ambiguity,
or missing resources)
- What was fixed based on the failures
Skip validation only for trivial skills where the trigger
surface is obvious.
Portability check — For distributable skills, verify:
- No hardcoded project-specific paths (use discovery)
- No project-specific terminology (internal jargon)
- No references to specific rules/tools only in your repo
- Instructions work in any repo with any directory layout
Acknowledge sources — If the skill draws on external
practices, create references/ACKNOWLEDGMENTS.md listing
each source with a link, license, what was adapted, and the
version it was adopted in.
Confirm — Show the user the created skill and ask if
adjustments are needed.
Boundaries
- DOES create skill directories, SKILL.md, references/, scripts/
- DOES validate with representative prompts
- Does NOT modify existing skills
- Does NOT create rules or profiles (separate workflows)
Example Scenario
User: "Turn my database migration steps into a skill."
→ Investigate repo (Flyway config) → ask about rollback scope
→ create migrate-database/SKILL.md → validate with prompts.
Common Failures
- Description leaks workflow — the agent reads the summary
and skips the body, following a shortcut instead of the full
procedure.
- Body too abstract to act on — "investigate the problem"
isn't actionable. "Run
git log --oneline -20 to check
recent patterns" is.
- Weak enforcement in instructions — If evals show the
agent ignoring a step, add it to a Common Failures section
with NEVER/MUST language. Explicit failure modes with strong
directives are more effective than polite workflow steps.
Quality Checklist
Before finalizing, use the
skill design checklist,
skill validation, and
token optimization.
1---2name: create-skill3description: Creates new agent skills following the Agent Skills specification. Investigates the repo for conventions, designs the skill around progressive disclosure, writes SKILL.md with effective trigger descriptions, and validates with representative prompts. Use when the user wants to create a skill, build a SKILL.md, turn a workflow into a reusable skill, teach the agent a new task, scaffold a new agent capability, has a repeated workflow they want to codify, is frustrated by inconsistent agent behavior, or wants to package expertise for a team.4---56# Create Skill78Create agent skills that are portable, easy to trigger, and cheap9to load. A skill is a folder containing a SKILL.md file with YAML10frontmatter and markdown instructions.1112## Workflow13141. **Intake (mandatory gate)** — Understand what the skill15 should do. Ask at least 3 targeted questions before16 drafting anything. Collect:17 - A short name (lowercase, hyphenated)18 - What the skill enables the agent to do19 - When it should activate (trigger conditions)20 - What success looks like2122 Summarize your understanding and get explicit confirmation23 before proceeding. Do not write SKILL.md until the user24 confirms.25262. **Investigate the repo** — Before asking questions, search the27 repo for:28 - Existing skills, conventions, and workflow docs29 - Scripts, templates, schemas relevant to the target workflow30 - Tool or dependency requirements31 - Whether the conversation already contains a workflow to32 capture33343. **Clarify** — Ask only questions that materially affect the35 skill. Push until these are clear:36 - Required workflow steps and their order37 - Required inputs and expected outputs38 - Dependencies on tools, scripts, or services39 - Whether the skill needs `references/`, `scripts/`, or40 `assets/`41424. **Design the package** — Structure:4344 ```text45 skill-name/46 ├── SKILL.md # Metadata + core workflow47 ├── references/ # Detailed docs, loaded on demand48 ├── scripts/ # Executable code49 └── assets/ # Templates, resources50 ```5152 - Keep SKILL.md under 500 lines53 - Move bulky detail into `references/`54 - Put deterministic execution in `scripts/`55 - Don't duplicate guidance across files56575. **Write SKILL.md** — Structure:5859 ```markdown60 ---61 name: skill-name62 description: >63 What the skill does and produces. Use when the user wants64 to <scenario>, mentions <keyword>, or asks about <topic>.65 ---66 ```6768 Frontmatter rules:69 - Required: `name` and `description` in frontmatter.70 Other fields depend on your project's conventions.71 - Version in frontmatter is always `"1.0.0"` for new72 skills. Never use `0.x.y` — first release is 1.0.0.73 - CHANGELOG.md starts with `## [Unreleased]` containing74 the initial entries. Do not assign a version heading75 until the skill is actually released (git tagged).7677 Writing rules:78 - **Description optimizes activation, not teaching.** State79 the job and when to use it in words a user would actually80 say. Include both *actions* and *situations*. Keep workflow81 details out of the description.8283 Bad: `Follows a 7-step process to generate SKILL.md files84 with YAML frontmatter.`8586 Good: `Creates agent skills. Use when the user wants to87 build a SKILL.md, turn a workflow into a reusable skill,88 or is frustrated by inconsistent agent behavior.`89 - **Body is procedural and imperative.** Tell the agent90 exactly how to proceed. Don't restate trigger criteria91 from the description — a "When to use" section in the92 body duplicates the description.93 - **Use imperative form.** "Do not", "Use", "Run" — not94 "prefer" or "consider".95 - **Be concise.** Terse reminders, not tutorials.96 - **Include a complete example.** One full, copy-paste-ready97 artifact beats scattered snippets.98 - **Include a Boundaries section (mandatory).** List what99 the skill DOES and Does NOT do.100 - **Include a Common Failures section.** List 2–3101 domain-specific mistakes an agent would make without102 this guidance.103104 See [example-skill.md](references/example-skill.md) for a105 complete finished skill demonstrating these principles.1061076. **Validate** — Test the skill with representative prompts:108 - 2–3 realistic positive prompts (things users would say)109 - At least 1 negative prompt (adjacent but shouldn't trigger)110111 Write a brief validation report noting:112 - Which prompts triggered correctly113 - Which failed and why (trigger wording, workflow ambiguity,114 or missing resources)115 - What was fixed based on the failures116117 Skip validation only for trivial skills where the trigger118 surface is obvious.119120 **Portability check** — For distributable skills, verify:121 - No hardcoded project-specific paths (use discovery)122 - No project-specific terminology (internal jargon)123 - No references to specific rules/tools only in your repo124 - Instructions work in any repo with any directory layout1251267. **Acknowledge sources** — If the skill draws on external127 practices, create `references/ACKNOWLEDGMENTS.md` listing128 each source with a link, license, what was adapted, and the129 version it was adopted in.1301318. **Confirm** — Show the user the created skill and ask if132 adjustments are needed.133134## Boundaries135136- DOES create skill directories, SKILL.md, references/, scripts/137- DOES validate with representative prompts138- Does NOT modify existing skills139- Does NOT create rules or profiles (separate workflows)140141## Example Scenario142143User: "Turn my database migration steps into a skill."144→ Investigate repo (Flyway config) → ask about rollback scope145→ create `migrate-database/SKILL.md` → validate with prompts.146147## Common Failures148149- **Description leaks workflow** — the agent reads the summary150 and skips the body, following a shortcut instead of the full151 procedure.152- **Body too abstract to act on** — "investigate the problem"153 isn't actionable. "Run `git log --oneline -20` to check154 recent patterns" is.155- **Weak enforcement in instructions** — If evals show the156 agent ignoring a step, add it to a Common Failures section157 with NEVER/MUST language. Explicit failure modes with strong158 directives are more effective than polite workflow steps.159160## Quality Checklist161162Before finalizing, use the163[skill design checklist](references/skill-design-checklist.md),164[skill validation](references/skill-validation.md), and165[token optimization](references/token-optimization.md).