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-skillsThe 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]
- License
- Apache-2.0 [2]
- 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- Tools
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.
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
| Item | Docs wording (summary) |
|---|---|
| Required file | Every skill needs a SKILL.md with two parts: YAML frontmatter between --- markers, then Markdown instructions |
| Frontmatter fields | All fields are optional; only description is recommended; name defaults to the directory name |
| Description length | description plus when_to_use is truncated at 1,536 characters in the skill listing |
| Locations | Personal ~/.claude/skills/<skill-name>/SKILL.md; project .claude/skills/<skill-name>/SKILL.md |
| Supporting files | The folder may hold reference.md, examples.md, scripts/ and so on; SKILL.md gives the overview and navigation |
| Frontmatter start | Frontmatter is read only when the opening --- is the file's first line |
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)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
| Item | Official wording (summary) |
|---|---|
| Call | Claude uses skills when relevant, or invoke directly with /skill-name (Claude Code docs); there is no separate official command for this skill |
| Install | README: run /plugin marketplace add anthropics/skills, then install the example-skills plugin; marketplace.json lists skill-creator inside it |
| Install this skill alone | Not stated officially |
| License | LICENSE.txt in the folder is Apache License 2.0; the SKILL.md frontmatter has no license field |
| Folder contents | LICENSE.txt, SKILL.md, agents, assets, eval-viewer, references, scripts |
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skillsDependencies 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.
Sources
All links are official pages; verification dates are listed per source, and links point to the version checked.
- Anthropic · skill-creator/SKILL.md
dbd4588 - Anthropic · skill-creator/LICENSE.txt
dbd4588 - Anthropic · skills/skill-creator (directory)
dbd4588 - Anthropic · anthropics/skills README.md
dbd4588 - Anthropic · anthropics/skills marketplace.json
dbd4588 - Anthropic (Claude Code Docs) · Extend Claude with skills
- Anthropic · skill-creator/scripts/package_skill.py
dbd4588 - Anthropic · skill-creator/scripts/quick_validate.py
dbd4588 - Anthropic · skill-creator/scripts/run_eval.py
dbd4588 - Anthropic · skill-creator/scripts/improve_description.py
dbd4588