Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when writing a Claude Agent Skill SKILL.md file: frontmatter is exactly name + description (no other keys), and description must carry an explicit 'Use when' trigger clause.
.claude/skills/agent-skill-format/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 46 |
| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.5-flashbest | +100% | — | 0% | 24 | 86d ago |
| gemini-3.6-flash | +73% | +59% | 0% | 22 | 54d ago |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-21 | ✗→✓ | ▲ Improved | — | — |
| case-22 | ✗→✓ | ▲ Improved | — | — |
Enforces the Anthropic Claude Agent Skill SKILL.md spec: the frontmatter holds exactly two keys (name, then description), the description carries a literal Use when trigger, and the body opens with an H1. Apply whenever you author or edit a SKILL.md file.
SKILL.md — uppercase SKILL,uppercase .md extension lowercase — inside a directory named for the skill. The skill directory sits directly under the skills root (~/.claude/skills/<skill>/ or <project>/.claude/skills/<skill>/). No nested subdirectories or namespaces in the skill path.
containing only --- at the very top of the file (byte 0 — nothing before it, not a title, not a blank line, not a comment), the keys, then a closing line containing only ---.
name first, thendescription. Nothing else.
name and description; every other key isignored, so omit it. Forbidden: version, author, tags, license, category, date, created, updated, maintainer, difficulty, model, allowed-tools. If you feel the urge to add one of these, the information belongs in the body, not the frontmatter.
name field. A short human-readable string, 64 characters or fewer. Use a realdescriptive name (Title Case reads well), never a placeholder like skill-1, untitled, my-skill, or TODO.
description field. 1024 characters or fewer, and it MUST state two things inorder: (a) WHAT the skill does, then (b) WHEN to use it. Express the "when" as an explicit clause beginning with the literal words Use when, naming concrete trigger situations. Front-load the keywords a matcher would search for.
:,a leading [, {, *, &, #, @, or a quote — wrap the whole value in double quotes. A description with a Use when ...: or any word: word pattern must be quoted or YAML mis-parses it.
---, the body's first line is asingle level-1 Markdown heading (# ) naming the skill. No prose, blank lines aside, before that heading; no ## or ### as the first heading.
Rule 3+4 — exactly two keys, no extras. A request to author a changelog skill.
BEFORE (base default — adds metadata keys):
---
name: changelog-generator
description: Generates a changelog from git history.
version: 1.0.0
author: jane
tags: [git, docs]
license: MIT
---
AFTER (conforming — two keys only):
---
name: changelog-generator
description: "Generate a Keep a Changelog file from git commit history. Use when preparing a release or summarizing changes since the last tag."
---Rule 6 — description must embed Use when. A request to author a CSV-to-Markdown skill.
BEFORE (base default — what only, no trigger):
description: A tool that converts CSV files into Markdown tables.
AFTER (conforming — what, then literal `Use when`):
description: "Convert CSV files into GitHub-flavored Markdown tables. Use when pasting tabular data into docs, rendering query output, or building a README comparison table."Rule 2 — frontmatter at byte 0. A request that the base prefaces with a title.
BEFORE (base default — H1 before frontmatter):
# Dockerfile Linter
---
name: dockerfile-linter
description: "..."
---
AFTER (conforming — frontmatter first, H1 in the body):
---
name: dockerfile-linter
description: "Lint and optimize Dockerfiles. Use when reviewing image builds or shrinking layers."
---
# Dockerfile LinterRule 5 — real name, not a placeholder.
BEFORE: name: skill-1
AFTER: name: regex-builderRule 7 — quote values with a colon.
BEFORE (unquoted colon — YAML parse error):
description: Build cron expressions: minute hour day month weekday.
AFTER (quoted):
description: "Build and explain cron expressions (minute, hour, day, month, weekday). Use when scheduling a job or decoding an existing crontab line."Rule 8 — body opens with a single H1.
BEFORE (base default — prose paragraph first):
---
name: pr-describer
description: "..."
---
This skill drafts pull request descriptions from a diff.
## Usage
AFTER (conforming — H1 first):
---
name: pr-describer
description: "..."
---
# PR Describer
This skill drafts pull request descriptions from a diff.## Metadatasection or prose), never in the frontmatter. The two-key rule has no exceptions.
JSON:API). Quote the wholevalue: description: "Build JSON:API endpoints. Use when ...".
Use when must be the literal phrase. When you ..., Use this when ..., orUseful when ... do not satisfy the trigger contract — the matcher keys on the exact string Use when. Lower-cased use when mid-sentence is acceptable, but lead the trigger clause with Use when.
lives in description, which has 1024 chars.
a single quoted line is simplest and avoids block-scalar pitfalls.
category/tags key the surrounding catalog requires. That is the registry'spackaging metadata, separate from the SKILL.md you author for Claude — inside the authored SKILL.md frontmatter, still only name and description.
name and description. Don't addversion, author, tags, license, category, or date.
Use when. Don't ship a descriptionthat only says what the skill does.
--- at byte 0. Don't put a title, comment, or blankline before the frontmatter.
# heading. Don't start with prose or a ##.word: word unquoted.name a real descriptive value. Don't ship skill-1 / my-skill.version/author/tags/license because that lookslike a "complete" manifest — all ignored, all forbidden.
description that states only WHAT, with no Use when trigger.name (skill-1, untitled).description before name.SKILL.md, in a directory named for the skill.---; nothing precedes it.name then description — nothing else.name ≤ 64 chars, descriptive, not a placeholder.description ≤ 1024 chars, states WHAT then a literal Use when trigger.# heading naming the skill.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.5-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +73 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.5-flash | verified | 6/26/2026 | +100% |
Other measured skills in the registry, with their headline benchmark lift.