Guide the creation of a new SKILL.md file that meets quality standards for agent skills.
-
One skill, one job. A skill should target exactly one workflow or domain. If you need the word "and" to describe what it does, split it into two skills.
-
Prefer gerund form for names. Per Anthropic's official guidance, use verb+ing: processing-pdfs, analyzing-spreadsheets, writing-documentation. Acceptable alternatives: noun phrases (pdf-processing) or action-oriented (process-pdfs). Avoid vague names (utils, helpers, tools) and overly generic ones (documents, data). Hard constraints from the spec: lowercase + numbers + hyphens only, max 64 chars, must not contain the reserved words anthropic or claude.
-
Write a trigger-oriented description in third person. The description field determines when the agent activates the skill. Start with "Use when..." and be specific enough to avoid false triggers but broad enough to catch the right moments. Always third person — Anthropic warns that I can… or You can use this… phrasing degrades discovery. Max 1024 chars.
- Bad: "Helps with diagrams." / "I can fix your ASCII art."
- Good: "Use when creating or fixing ASCII box diagrams, tables, or monospace text art to ensure proper alignment."
-
Use this file structure:
---
name: <kebab-case-name>
description: <"Use when..." trigger description>
user-invocable: true
---
# <Short Title>
<1-2 sentence intro: what problem this solves and when to use it.>
## Rules
<Numbered, imperative rules. Each rule starts with a bolded verb phrase.>
## Verification procedure (if applicable)
<Numbered steps the agent follows to check its own work.>
## Common mistakes to watch for (if applicable)
<Bulleted list of predictable failure modes and how to avoid them.>
-
Write rules in direct imperative voice. Start each rule with a bolded action ("Use...", "Never...", "Always prefer..."). Rules must be specific enough that two agents would follow them the same way.
-
Include exact syntax for anything format-sensitive. If the skill involves CLI commands, file formats, or structured output, provide the exact command or template in a fenced code block. Do not leave format details to interpretation.
-
Explain "why" for non-obvious constraints. If a rule exists because of a bug, workaround, or past failure, state the reason so the agent can make correct judgment calls in edge cases.
-
Include a verification procedure for skills that produce output. Tell the agent how to check its own work. This catches more errors than generic "think carefully" instructions.
-
Document common failure modes. LLMs make predictable, repeated mistakes. List the top 3-5 mistakes for the skill's domain so the agent can avoid them.
-
Design for the 80% case. Over-specified skills become brittle. Establish a preference hierarchy with fallbacks (e.g., "prefer X, fall back to Y if X is unavailable") rather than trying to cover every edge case.
-
Keep skills independent. A skill must work without assuming other skills are loaded. Cross-skill dependencies create fragile setups where uninstalling one skill silently breaks another.
-
Keep it concise; split with progressive disclosure if needed. Anthropic recommends SKILL.md body under 500 lines. Aim shorter (under 4KB) when the skill fits. If content grows past that, move detail to sibling files (reference.md, examples.md, forms.md) and link from SKILL.md — Claude reads them on demand, so they cost zero context until needed. Keep references one level deep from SKILL.md; nested references can cause Claude to partial-read with head and miss content.