中文
All Agent Engineering

Skill

skill-creator: Anthropic's skill for writing, editing and evaluating skills

Anthropic's skill-creator skill: draft a skill, run evals, revise it and tune its trigger description. Not tested here; follow the official text and docs.

skill-creator sits in the anthropics/skills repository and its folder is larger than most skills: besides SKILL.md it has agents, assets, eval-viewer, references and scripts. This page relays the official text and uses the Claude Code docs for the skill file format; it was not run on this site.

Verified
· Not tested by us
Applies to
  • Claude Code For Claude Code (the text explains differences across Claude Code, Claude.ai and Cowork; the description-tuning step needs the claude CLI: the Claude.ai section says it is only available in Claude Code, the Cowork section says it should work via claude -p, and the two statements differ: to be confirmed)[1][6][9]
How to invoke
No official command

Claude loads it automatically when the description matches, or you invoke it directly with /skill-name; the docs give the plugin-skill form /plugin-name:skill-name. There is no separate official command for this skill.[1][6]

Install
/plugin install example-skills@anthropic-agent-skills

The README says to register the repo first with /plugin marketplace add anthropics/skills, then install the plugin; this command installs the whole example-skills plugin, not a single skill.[4][5]

Prerequisites
  • Account Account type not stated officially; the description-tuning scripts reuse the current session's Claude Code auth with no separate ANTHROPIC_API_KEY (comment in improve_description.py)[1][10]
  • CLI Description tuning needs the claude CLI (claude -p): the Claude.ai section says only in Claude Code, the Cowork section says it also works; the two differ, so it is conditioned on having the CLI: to be confirmed[1][9][10]
  • Permissions Permission needs not stated officially; run_eval.py writes and then removes a temporary command file under .claude/commands/ in the project root, so that folder must be writable (inference)[1][9]
  • Cost No cost amount is stated officially; multiple subagent runs and claude -p calls use up quota (inferred from the workflow)[1]
  • Python (scripts run via python -m); packaging also needs yaml importable (PyYAML, used by quick_validate.py); optional browser to view eval results[1][7][8]
Checked revision
dbd4588

When to use

  • You want to write a skill from scratch or improve an existing one, with a loop of draft, run test cases, review results, revise.[1]
  • After a skill is written, you want to check whether its description triggers when it should and tune it with the official script (needs the claude CLI).[1]
  • You want the SKILL.md frontmatter and folder layout checked against the Claude Code docs.[6]
  • Also usable for a simple skill without evals: the skill says the user can skip a bunch of evaluations, so the full eval loop can be left out (a step limit, not a whole-skill non-use case).[1]

When not to use

  • You only want to use an existing skill for an everyday task, not to create, modify or evaluate a skill: the description covers creating new skills, modifying and improving existing ones, and measuring performance. The official text does not list non-use cases; this item is an inference from the description scope and the task boundary.[1]

What it does

The official description: create new skills, modify and improve existing skills, and measure skill performance; use it to create from scratch, edit or optimize a skill, run evals, benchmark with variance analysis, or optimize a description for triggering accuracy.[1]

  • Decide what the skill should do and write a draft.
  • Prepare a few test prompts and run Claude with access to the skill on them; for a new skill also run each without the skill as a baseline, and when improving an existing skill use the old version (snapshot taken before editing) as the baseline.
  • Use eval-viewer/generate_review.py to show results to the user, alongside quantitative metrics.
  • Rewrite the skill from feedback, repeat until satisfied, then expand the test set.
  • After the skill is done, optionally run the description-improvement script; if the environment has the present_files tool, package the skill into a .skill file with package_skill.

[1]

Step limits (not whole-skill non-use): the user may skip evals; the description-tuning step needs the claude CLI (claude -p) and is skipped without it; Claude.ai has no subagents, so cases run one at a time with baselines and quantitative benchmarking skipped. These only shrink the workflow; the rest of the skill stays usable.[1]

Skill file format, per the Claude Code docs

Skill format points from the Claude Code docs
ItemDocs wording (summary)
Required fileEvery skill needs a SKILL.md with two parts: YAML frontmatter between --- markers, then Markdown instructions
Frontmatter fieldsAll fields are optional; only description is recommended; name defaults to the directory name
Description lengthdescription plus when_to_use is truncated at 1,536 characters in the skill listing
LocationsPersonal ~/.claude/skills/<skill-name>/SKILL.md; project .claude/skills/<skill-name>/SKILL.md
Supporting filesThe folder may hold reference.md, examples.md, scripts/ and so on; SKILL.md gives the overview and navigation
Frontmatter startFrontmatter is read only when the opening --- is the file's first line

[6]

Example: skill folder layout from the docs
my-skill/
├── SKILL.md (required - overview and navigation)
├── reference.md (detailed API docs - loaded when needed)
├── examples.md (usage examples - loaded when needed)
└── scripts/
    └── helper.py (utility script - executed, not loaded)

[6]

The skill-creator SKILL.md says "YAML frontmatter (name, description required)", its quick_validate.py returns "Missing 'name' in frontmatter" when name is absent, and it advises keeping SKILL.md under 500 lines with bulk material in scripts/, references/ and assets/. The Claude Code docs say "All fields are optional" and name defaults to the directory name. These are two sources each making its own statement: the former is skill-creator's writing and validation rule, the latter the Claude Code documentation; how the two relate is not explained officially: to be confirmed.[1][8][6]

How to call and install it

Call, install and license
ItemOfficial wording (summary)
CallClaude uses skills when relevant, or invoke directly with /skill-name (Claude Code docs); there is no separate official command for this skill
InstallREADME: run /plugin marketplace add anthropics/skills, then install the example-skills plugin; marketplace.json lists skill-creator inside it
Install this skill aloneNot stated officially
LicenseLICENSE.txt in the folder is Apache License 2.0; the SKILL.md frontmatter has no license field
Folder contentsLICENSE.txt, SKILL.md, agents, assets, eval-viewer, references, scripts

[1][6][4][5][2][3]

Example: install route from the README (example-skills plugin)
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills

[4][5]

Dependencies and gaps

  • Python: aggregation, description tuning and packaging run as python -m scripts.<name>. SKILL.md says the packaging script "works anywhere with Python and a filesystem"; checking the pinned scripts adds: package_skill.py first calls quick_validate.py, which does import yaml (the third-party PyYAML package, not in the Python standard library), so packaging also needs yaml to be importable; the official text does not say how to install PyYAML.
  • claude CLI: description tuning (run_loop) needs claude -p. The Claude.ai section says it is "only available in Claude Code"; the Cowork section says it "should work in Cowork just fine" via a claude -p subprocess. The two statements differ, so it is conditioned on having the claude CLI: to be confirmed. run_eval.py and improve_description.py both call claude -p, and a comment in improve_description.py says it uses the session's Claude Code auth with no separate ANTHROPIC_API_KEY.
  • Temporary file: run_eval.py writes a temporary command file into .claude/commands/ under the project root (found by walking up to a .claude directory) and removes it in a finally block; the account running description tuning needs write access to that folder (inference).
  • Browser: the eval viewer opens in a browser by default; without a display, use --static to write a standalone HTML file.
  • Subagents and baselines: each test case spawns one run with the skill and one baseline. For a new skill the baseline is no skill; when improving an existing skill it is the old version snapshotted before editing. Claude.ai has no subagents; the skill gives a sequential fallback and skips baselines.
  • Account, permission, cost: account type and permission needs are not stated officially (description tuning reuses the session auth, see above); no cost amount is given officially. Several subagent runs and claude -p calls use up quota, which is an inference from the described workflow.

[1][7][8][9][10]

Sources

All links are official pages; verification dates are listed per source, and links point to the version checked.

  1. Anthropic · skill-creator/SKILL.md
    dbd4588
  2. Anthropic · skill-creator/LICENSE.txt
    dbd4588
  3. Anthropic · skills/skill-creator (directory)
    dbd4588
  4. Anthropic · anthropics/skills README.md
    dbd4588
  5. Anthropic · anthropics/skills marketplace.json
    dbd4588
  6. Anthropic (Claude Code Docs) · Extend Claude with skills
  7. Anthropic · skill-creator/scripts/package_skill.py
    dbd4588
  8. Anthropic · skill-creator/scripts/quick_validate.py
    dbd4588
  9. Anthropic · skill-creator/scripts/run_eval.py
    dbd4588
  10. Anthropic · skill-creator/scripts/improve_description.py
    dbd4588

Found an error? Tell us →