Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when scaffolding an Agent Skill (SKILL.md) package for Codex CLI, GitHub Copilot, or Amp: follow the exact agentskills.io install paths, folder names, and frontmatter constraints.
.claude/skills/agent-skills-package-spec/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 11 |
| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.5-flashbest | +92% | — | 0% | 24 | 86d ago |
| gemini-3.6-flash | +41% | +90% | 0% | 22 | 54d ago |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-22 | ✗→✓ | ▲ Improved | — | — |
Enforces the agentskills.io packaging spec: the install path, the uppercase SKILL.md main file, the three exact subdirectory names, and the frontmatter field rules. Apply whenever you create, scaffold, port, or validate an Agent Skill package for Codex CLI, GitHub Copilot, or Amp.
.agents/skills/{skill-name}/SKILL.md.agents/skills/{skill-name}/SKILL.md (same root as Codex).github/skills/{skill-name}/SKILL.mdCodex and Amp share .agents/skills/; only Copilot uses .github/skills/.
SKILL.md, uppercase, at the directory rootThe file is always spelled SKILL.md — uppercase SKILL, capital .md stem. Never skill.md, Skill.md, README.md, or index.md. It sits directly at the root of the skill directory, never nested inside a subdirectory.
nameThe folder that contains SKILL.md is named exactly the same string as the name: field. If name: pdf-tables, the folder is pdf-tables/.
scripts/ — executable code. NOT src/, bin/, or lib/.references/ — additional docs. NOT docs/, reference/, or doc/.assets/ — static resources (images, fixtures, CSVs). NOT static/,resources/, data/, or media/.
These are the only sanctioned subdirectories. Pick by file kind: runnable code → scripts/, prose/docs → references/, everything static/binary → assets/.
YAML between --- fences. ONLY these two are required:
namedescriptionNothing else is required — not version, not license, not category.
name validation--).description validationonly the "what" (or only the "when") is incomplete.
Add only when relevant: license, compatibility (runtime/binary deps), allowed-tools (which tools the skill may run). Plus metadata: — a nested map for things like category: and version:. category and version live UNDER metadata:, never as top-level keys.
Markdown after the frontmatter, no format restriction. Keep the whole SKILL.md under 500 lines; move overflow content into the references/ subdirectory.
skills/sql-lint/SKILL.md or .agents/skills/sql-lint/SKILL.md..github/skills/sql-lint/SKILL.md (Copilot uses .github/).pdf-tables/skill.md or pdf-tables/README.md.pdf-tables/SKILL.md (uppercase, at the root).MySkill/ with name: my-skill.my-skill/ with name: my-skill (identical strings).src/extract.py, docs/api.md, static/logo.png.scripts/extract.py, references/api.md, assets/logo.png.name, description, version, author allpresented as required.
name and description are required; the rest are optional.name: PDF_Form_Filler.name: pdf-form-filler (lowercase, hyphens for word breaks).description: Helps with PDFs.for document analysis, data extraction, and form parsing.
category: docs and version: 1.0.0.yaml metadata: category: docs version: 1.0.0
SKILL.md with full API tables inline.SKILL.md under 500 lines, with the tables moved toreferences/api.md.
.agents/skills/ — there is no separateAmp root. Only Copilot diverges to .github/skills/.
contents (the SKILL.md and subdirs) are byte-for-byte identical. Codex/Amp → Copilot: move .agents/skills/x to .github/skills/x.
valid: -resizer and resizer- are both rejected.
linter is valid.name length is the directory's too — a 64-char name means a 64-charfolder; keep it short in practice.
metadata.category is NOT the same as the skill's discovery category in ahost registry; here it is just a nested frontmatter convenience field.
allowed-tools is a hint about runnable tools, not an enforced sandbox —declare it when the skill shells out, but it does not gate execution.
skill.md / README.md. DO name it SKILL.md.src/ or bin/ for code. DO use scripts/.docs/ for docs. DO use references/.static/ or resources/. DO use assets/.category/version at the top level. DO nest them undermetadata:.
version/license as required. DO require only name +description.
name. DO keep it lowercase with singlehyphens.
name. DO keep them identical.skill.md lowercase or README.md as the main file.src/, lib/, docs/, static/ instead of the three exactnames.
.agents/skills/ for GitHub Copilot (it needs .github/skills/).version/author/license as required frontmatter.category: and version: at the top level instead of undermetadata:.
Title_Case or snake_case name instead of kebab-case.name field..agents/skills/ (Codex/Amp) or .github/skills/ (Copilot).SKILL.md, uppercase, at the root.name field.scripts/, references/, assets/.name + description only.name: lowercase, 1–64, single hyphens, no leading/trailing hyphen.description: 1–1024, what + when.category/version nested under metadata:.SKILL.md under 500 lines; overflow to references/.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | 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 +41 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/27/2026 | +92% |
Other measured skills in the registry, with their headline benchmark lift.