Use when authoring, creating, refining, or troubleshooting agent skills — covers SKILL.md structure, frontmatter syntax, description optimization, and activation testing. Also when building a new skill from scratch, when a skill won't trigger, loads incorrectly, or the agent ignores it entirely. Use when a skill misbehaved in the current session and needs adjustment based on learnings.
72
87%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Failed to scan
The risk profile of this skill
Use this as the working playbook for skill creation and maintenance. Start by choosing the job below. Load only the files needed for that job.
Done means the skill loads for the right requests, gives clear instructions without bloating context, and records source evidence when domain accuracy matters.
Agents see name and description before they see the body. The body loads only after the description matches the task. References, scripts, and assets load only when needed. Write for that loading order.
| Job | Read first | Then use when needed |
|---|---|---|
| Create a small skill from scratch | workflows/create.md | templates/simple.md, templates/router.md, references/patterns.md |
| Build or update a skill from docs, project history, examples, failures, or multiple sources | workflows/synthesize.md | README.md, references/examples.md |
| Review or audit an existing skill | references/rules.md | references/examples.md, spec/specification.md |
| Check whether a skill activates and behaves correctly | workflows/test.md | workflows/debug.md when activation fails |
| Diagnose a skill that will not trigger or is ignored | workflows/debug.md | spec/specification.md, references/rules.md |
| Improve a skill from a concrete session failure | workflows/refine.md | references/rules.md, workflows/test.md |
| Verify format constraints | spec/specification.md | Tooling |
For a localized edit, do not ritualize it:
Use the workflow files for new skills, source synthesis, debugging, testing, or any change that touches the skill's shape.
| Rule | Why It Matters |
|---|---|
| Description has trigger keywords | Without them, the skill never activates |
| Description names capabilities and activation conditions, not steps | Agents may follow description shortcuts instead of loading the body |
| Description uses third person | It is injected as metadata, not spoken by the agent |
| Name matches directory | Required for skill loading |
| Critical instructions appear early | Long content may be skipped or deemphasized |
SKILL.md stays lean | Runtime context is limited |
References are directly linked from SKILL.md | Hidden chains are easy to miss |
| Source-backed guidance beats vibes | Real docs, history, fixes, and failures improve accuracy |
| Precision before addition | More files and prose often reduce reliability |
| Test activation before deployment | A skill that works but never triggers has zero value |
| Use agent-agnostic language by default | Skills should port across LLM agents unless intentionally provider-specific |
For the full impact-ranked rule list, read references/rules.md when reviewing, auditing, or tightening a skill.
skill-name/
├── SKILL.md # Required entry point
├── README.md # Optional maintainer context for synthesized or complex skills
├── references/ # Optional focused docs loaded on demand
├── scripts/ # Optional executable helpers
└── assets/ # Optional templates, schemas, images, static filesUse this placement model:
| Content | Put it in |
|---|---|
| Frontmatter and core instructions | SKILL.md |
| Detailed optional guidance the agent may need | references/*.md |
| Deterministic repeatable operations | scripts/* |
| Templates, schemas, static examples | assets/* |
| Source inventory, trust level, decisions, gaps, changelog | README.md |
Provenance belongs in README.md unless the agent needs it to perform the task.
The description decides whether the skill ever loads. Write it for discovery.
Use this formula:
description: Use when [triggering conditions] — [specific capabilities]. Handles [file types, contexts, symptoms, synonyms].Good:
description: Use when working with PDF files — extracts text, fills forms, merges documents. Handles .pdf files, scanned PDFs, and form fields.Bad:
description: Processes PDFs by first extracting text, then analyzing structure, then outputting results.Include:
Exclude:
Write for an agent that can already reason. Do not teach basics. Provide the facts, constraints, examples, and checks that change behavior.
Use this shape by default:
Prefer tables, checklists, templates, and input/output examples over explanatory prose.
| Layer | What | When Loaded | Target |
|---|---|---|---|
| 1 | name + description | Always | Trigger-rich, concise |
| 2 | SKILL.md body | When skill triggers | Path choice + core rules |
| 3 | references/, scripts/, assets/ | On demand | Focused leaves with direct reasons |
Split content when:
SKILL.md is becoming an encyclopediaDo not split content just to look organized.
Script paths are relative to this skill directory.
Scaffold a skill:
python scripts/init.py my-skill
python scripts/init.py my-skill --router # for skills that route between sub-workflowsValidate a skill:
./scripts/validate.sh path/to/skillOr use the official validator:
pip install skills-ref
skills-ref validate path/to/skillValidation checks structure. It does not prove description quality, source coverage, or behavioral reliability.
Vendored authoring approaches live under sources/ for deeper study. For this skill's source inventory, synthesis decisions, and gaps, read README.md.
When modifying or reviewing a skill, report:
40067f1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.