Does Skill creator (anthropics) help? Tested on writing skills tasks

Skill creator (anthropics), from anthropics/skills. Its skill authoring tasks were run with the skill loaded and without it. Each time it is the same task, run twice.

What we tested

Whether loading this skill helps a model write a skill document.

What counts as helping

The score with the skill has to beat the score without it by at least 10 percentage points, on the same 10 briefs.

How we scored it

We checked each document against the open Agent Skills specification and counted the rules it passed. The score is the share it passed, from 0 to 1.

Without to with, per model

Via API tested via API

Claude Haiku 4.5 First run, with and without the skill

0.618
1.000

Helped

Gemini 3.1 Flash Lite First run, with and without the skill

0.873
1.000

No measured effect

Gemini 3.1 Flash Lite Wider run, three ways

0.745
1.000

Helped

GPT-5 mini First run, with and without the skill

0.727
1.000

Helped

GPT-5 mini Wider run, three ways

0.664
1.000

Helped

deterministic pass rate, 0 to 1

In Claude Code tested in Claude Code

Claude Fable 5 Fable 5, wider run, three ways

1.000 without and with

Could not measure

Claude Fable 5 First run, single attempt

1.000 without and with

Could not measure

Claude Fable 5 Second run, every task twice

1.000 without and with

Could not measure

Claude Fable 5.1 Fable 5.1, single attempt

1.000
0.782

Scored worse

Claude Fable 5.1 Wider run, three ways

1.000
0.564

Scored worse

Claude Haiku 4.5 Second run, every task twice

0.709
1.000

Helped

Claude Haiku 4.5 Wider run, three ways

0.564
1.000

Helped

Claude Opus 5 First run, single attempt

1.000 without and with

Could not measure

Claude Opus 5 Wider run, three ways

1.000 without and with

Could not measure

Claude Opus 5.5 Opus 5.5 series, wider run, three ways

1.000 without and with

Could not measure

Claude Opus 5 Second run, every task twice

1.000
0.909

No measured effect

Claude Sonnet 5 Wider run, three ways

1.000 without and with

Could not measure

Claude Sonnet 5 Second run, every task twice

1.000
0.927

No measured effect

deterministic pass rate, 0 to 1

A picture of the per-model numbers, drawn from the same results. The tables are the source. Grey is the score without. Colour is the score with. The bracket shows how much the difference could move if we ran it again. Rows are ordered by the score with. A model measured at two versions keeps its versions next to each other. The two test methods are reported separately and never averaged. Where the two scores are the same, the number is printed once at the end of the pair. A bracket wider than the axis is drawn to the edge with its cap omitted; the table gives its bounds.
Show per-task detail

Every item, without and with, per model

Via API tested via API

  • Claude Haiku 4.5
  • GPT-5 mini
  • GPT-5 mini
  • Gemini 3.1 Flash Lite
  • Gemini 3.1 Flash Lite

deterministic pass rate, 0 to 1

Hover or focus an item to read its task and every model’s two values.

Task-paired: these item means are what this cell's interval is built from.

The item means behind this plot
Per-item arm means. Without is the unaided arm, with is the treated arm.
ItemClaude Haiku 4.5 GPT-5 mini GPT-5 mini Gemini 3.1 Flash Lite Gemini 3.1 Flash Lite
Task without with without with without with without with without with
sa-08 0.545 1.000 0.545 1.000 not measured not measured 0.364 1.000 0.909 1.000
sa-10 0.545 1.000 0.727 1.000 not measured not measured 0.545 1.000 0.545 1.000
sa-05 0.545 1.000 0.818 1.000 0.273 1.000 0.545 1.000 0.909 1.000
sa-09 0.545 1.000 0.273 1.000 0.727 1.000 0.909 1.000 0.909 1.000
sa-06 0.545 1.000 0.727 1.000 not measured not measured 0.545 1.000 0.909 1.000
sa-02 0.545 1.000 0.273 1.000 0.909 1.000 0.909 1.000 0.909 1.000
sa-01 0.545 1.000 0.909 1.000 not measured not measured 0.909 1.000 0.909 1.000
sa-07 0.545 1.000 0.909 1.000 0.818 1.000 0.909 1.000 0.909 1.000
sa-03 0.909 1.000 0.727 1.000 0.727 1.000 0.909 1.000 0.909 1.000
sa-04 0.909 1.000 0.727 1.000 0.909 1.000 0.909 1.000 0.909 1.000
A picture of the per-item means behind the per-model numbers. The tables are the source. Each model draws two lines over the same task set: a dashed line through its unaided scores and a solid line through its treated ones. Items are ordered by the mean unaided score across the models that measured them, lowest first. The two instruments are reported separately and never averaged. A line breaks where that model has no pair for an item; the table beneath the plot names it.

Without to with, per model

In Claude Code tested in Claude Code

Claude Haiku 4.5 Expansion cohort (three arms)

Helped

Claude Haiku 4.5 Panel v2 (repeat sampling)

Helped

Claude Fable 5 Fable 5 on the expansion design (three arms)

Could not measure

Claude Fable 5 Panel v2 (repeat sampling)

Could not measure

Claude Fable 5 Skill cohort (one pass)

Could not measure

Claude Fable 5.1 Expansion cohort (three arms)

Scored worse

Claude Fable 5.1 Fable 5.1, one pass

Scored worse

Claude Opus 5 Expansion cohort (three arms)

Could not measure

Claude Opus 5 Panel v2 (repeat sampling)

No measured effect

Claude Opus 5 Skill cohort (one pass)

Could not measure

Claude Opus 5.5 Opus 5.5 on the expansion design (three arms)

Could not measure

Claude Sonnet 5 Expansion cohort (three arms)

Could not measure

Claude Sonnet 5 Panel v2 (repeat sampling)

No measured effect

deterministic pass rate, 0 to 1

A picture of the per-model numbers, drawn from the same results. The tables are the source. Each row runs from the score without to the score with. The thin bar beneath it is the bracket, and it shows how much the difference could move if we ran it again. The two test methods are reported separately and never averaged. A bracket wider than the axis is drawn to the edge with its end cap omitted; the table gives its bounds.

The Claude Code runs committed their cells as arm means and intervals rather than as per-item values, so this panel is drawn without to with rather than item by item.

What exactly was tested, and how it was scored
Repository
anthropics/skills
Path
skills/skill-creator
Commit
3b3fad96af16a10759d930941b4520ba0c40edae
Content hash
e51ce07ea7fdd8aa453aa9c03e123faa44c6c810f7e3935097124674be29b734
Date tested
2026-08-30

The pin is the whole of this skill's identity here. It resolves at https://github.com/anthropics/skills/tree/3b3fad96af16a10759d930941b4520ba0c40edae/skills/skill-creator, and the content hash is a sha256 over exactly the text the model was given with the skill loaded. Nothing else about the skill appears on this site.

S02-skill-creator

Loading skills/skill-creator from anthropics/skills improves conformance to the open Agent Skills specification on skill authoring tasks.

Pass criterion
With-arm mean conformance to the open Agent Skills specification exceeds the without-arm by at least 0.10 on the same 10 briefs at the same model and settings. Key B, the house standard, is reported beside this figure and takes no part in it.
Scale
unit. Fraction of the applicable Agent Skills specification predicates passed, so a [0,1] fraction, which is the unit scale. The 0.2 unit threshold in status_v1 applies unchanged. A predicate for an optional field the document does not offer is not applicable and leaves the denominator, so a document is never credited for a rule it did not engage.
Task pairs planned per model
10
Notes
TWO KEYS, ONE RANKED. Key A is the open Agent Skills specification, pinned at harness/artifacts/keys/agentskills-specification. It is published by neither cohort, it is the format both skills in this class claim to teach, and it is the only key that becomes a verdict. Key B is SKILL_AUTHORING.md, the operator's own house standard: it is still computed and shown, under a disclosure naming whose standard it is, and it is excluded from the cohort ranking and from every cross-cohort statement. The earlier version of this class ranked on Key B alone, which made a lift here partly a measure of agreement with the operator's conventions. Neither key is given to either arm, and the task prompt restates no part of either.

Injected context tokens

Injected context tokens, per arm
ArmContext charactersInjected context tokens
without00
with45,10110,587

The character count is exact: it is the length of the text the with arm is given, and the content hash above is a sha256 over that same text. The token figure is an estimate at 4.26 characters per token, the ratio the phase 1 run measured over 3,120 calls, and it is labelled an estimate until a run reports its own token counts. The without arm is given the identical prompt and nothing else, so its zero is a measurement rather than a missing value.

Verdict per model

Effect per model
ModelReadingResultWithout -> withEffect95 percent intervalTask pairsSame answer on a repeatModel version returned
Claude Haiku 4.5Deterministic, scored against a committed answer keyhelped0.6182 -> 1.0000+0.3818[0.2868, 0.4768]10 pairs, 20 of 20 recordsone pass, not measuredclaude-haiku-4-5-20251001
Gemini 3.1 Flash LiteDeterministic, scored against a committed answer keyunclear. The model scored 87% without it.0.8727 -> 1.0000+0.1273[0.0560, 0.1985]10 pairs, 20 of 20 recordsone pass, not measuredgemini-3.1-flash-lite
GPT-5 miniDeterministic, scored against a committed answer keyhelped (6 of 10 pairs, all 4 lost on the with arm: sa-01, sa-06, sa-08, sa-10)0.7273 -> 1.0000+0.2727[0.0830, 0.4624]6 pairs, 16 of 20 recordsone pass, not measuredgpt-5-mini-2025-08-07
Gemini 3.1 Flash LiteDeterministic, scored against a committed answer keyhelped0.7455 -> 1.0000+0.2545[0.1196, 0.3895]10 pairs, 30 of 30 recordsone pass, not measuredgemini-3.1-flash-lite
GPT-5 miniDeterministic, scored against a committed answer keyhelped (10 of 10 pairs)0.6636 -> 1.0000+0.3364[0.1932, 0.4795]10 pairs, 30 of 82 recordsone pass, not measuredgpt-5-mini-2025-08-07, gpt-5-mini
  • Claude Haiku 4.5. We put each task to this model once, so there is no repeat to compare it against.
  • Gemini 3.1 Flash Lite. We put each task to this model once, so there is no repeat to compare it against.
  • GPT-5 mini. We put each task to this model once, so there is no repeat to compare it against.
  • Gemini 3.1 Flash Lite. We put each task to this model once, so there is no repeat to compare it against.
  • GPT-5 mini. We put each task to this model once, so there is no repeat to compare it against.
  • helped: the treatment arm outscored the control arm by more than the threshold, and the interval excludes zero.
  • unclear: no separation the design can resolve. Not evidence of no effect.

Cost

Cost per task
ModelArmTasks attemptedMean input tokensMean output tokensCost per taskCost ratioGrading cost per task pair
Claude Haiku 4.5 served claude-haiku-4-5-20251001without10681,233$0.00623
Claude Haiku 4.5 served claude-haiku-4-5-20251001with1012,0201,836$0.021203.40x
GPT-5 mini served gpt-5-mini-2025-08-07without10611,497$0.00301
GPT-5 mini served gpt-5-mini-2025-08-07with1016,0402,947$0.009903.29x
Gemini 3.1 Flash Litewithout1059580$0.00088
Gemini 3.1 Flash Litewith1011,827506$0.003724.20x

Defined in the metrics canon. Cost per task divides every dollar spent on an arm by the tasks attempted on it, including tasks whose call returned nothing, because a call that returned nothing was still billed.

In Claude Code

These cells are tested in Claude Code, on a subscription path with no API key. They are a second instrument: no figure here is averaged with one tested via API above. How the two were compared.

  • Claude Fable 5 · could not be measured, and both runs agree
  • Claude Opus 5 · unclear under repeat sampling; could not be measured in the single-pass run
  • Claude Haiku 4.5 · helped under repeat sampling
  • Claude Sonnet 5 · unclear under repeat sampling
  • Claude Fable 5.1 · made results worse in the version re-test
  • Claude Opus 5.5 · could not be measured in the Opus 5.5 three-arm run

Skill cohort (one pass)

one pass over each committed item. Matrix hash 2707a06a. No pre-registration: this run predates the practice on this arm. Run report.

One row per model. Every figure is read from this run’s committed cells, except the repeat column, which is counted from the answers themselves because a cell commits no per-item values.
ModelNo skillWith skillDeltaIntervalPairsResultInjected tokensSame answer on a repeat
Claude Fable 51.00001.0000+0.0000.000 to 0.00010not measured15,961one pass, not measured
Claude Opus 51.00001.0000+0.0000.000 to 0.00010not measured15,961one pass, not measured
  • Claude Fable 5. We put each task to this model once, so there is no repeat to compare it against.
  • Claude Opus 5. We put each task to this model once, so there is no repeat to compare it against.
Thinking tokens, recorded per arm. Reported, never scored: no interval or result on this page consults them.
ModelArmRecords that reasonedMean thinking tokensMost on one record
Claude Fable 5with skill20 of 2068231
Claude Fable 5no skill20 of 2064127

Panel v2 (repeat sampling)

two passes over each committed item, under repeat sampling. Matrix hash 94bab960. Pre-registration · Run report.

One row per model. Every figure is read from this run’s committed cells, except the repeat column, which is counted from the answers themselves because a cell commits no per-item values.
ModelNo skillWith skillDeltaIntervalPairsResultInjected tokensSame answer on a repeat
Claude Fable 51.00001.0000+0.0000.000 to 0.0001not measured16,9331 of 1 repeated task, no sampling control here
Claude Haiku 4.50.70911.0000+0.2910.227 to 0.35510helped248,37613 of 20 repeated tasks, 36.4 percentage points apart where not, no sampling control here
Claude Opus 51.00000.9091-0.091-0.269 to 0.0874unclear133,3388 of 9 repeated tasks, 72.7 percentage points apart where not, no sampling control here
Claude Sonnet 51.00000.9273-0.073-0.168 to 0.02210unclear344,78418 of 20 repeated tasks, 72.7 percentage points apart where not, no sampling control here
  • Claude Fable 5. It gave the same answer on 1 of 1 repeated tasks. Another 1 tasks got one answer each and are not in that count. Those answers were with no sampling control, which this way of testing does not offer.
  • Claude Haiku 4.5. It gave the same answer on 13 of 20 repeated tasks. Where it did not, the two readings stood 36.4 percentage points apart on average. Those answers were with no sampling control, which this way of testing does not offer.
  • Claude Opus 5. It gave the same answer on 8 of 9 repeated tasks. Where it did not, the two readings stood 72.7 percentage points apart on average. Those answers were with no sampling control, which this way of testing does not offer.
  • Claude Sonnet 5. It gave the same answer on 18 of 20 repeated tasks. Where it did not, the two readings stood 72.7 percentage points apart on average. Those answers were with no sampling control, which this way of testing does not offer.
Thinking tokens, recorded per arm. Reported, never scored: no interval or result on this page consults them.
ModelArmRecords that reasonedMean thinking tokensMost on one record
Claude Fable 5with skill20 of 2068231
Claude Fable 5no skill20 of 2064127

Fable 5.1, one pass

one pass over each committed item. Matrix hash db373661. Pre-registration · Run report.

One row per model. Every figure is read from this run’s committed cells, except the repeat column, which is counted from the answers themselves because a cell commits no per-item values.
ModelNo skillWith skillDeltaIntervalPairsResultInjected tokensSame answer on a repeat
Claude Fable 5.11.00000.7818-0.218-0.436 to -0.00020worsenot measuredone pass, not measured
  • Claude Fable 5.1. We put each task to this model once, so there is no repeat to compare it against.

Expansion cohort (three arms)

one pass over each committed item. Matrix hash 0078cfa8. Pre-registration · Run report.

One row per model. Every figure is read from this run’s committed cells, except the repeat column, which is counted from the answers themselves because a cell commits no per-item values.
ModelNo skillWith skillDeltaIntervalPairsResultInjected tokensSame answer on a repeat
Claude Fable 5.11.00000.5636-0.436-0.669 to -0.20410worsenot measured: this run records the dose per arm, in the doses listone pass, not measured
Claude Haiku 4.50.56361.0000+0.4360.353 to 0.52010helpednot measured: this run records the dose per arm, in the doses listone pass, not measured
Claude Opus 51.00001.0000+0.0000.000 to 0.00010not measurednot measured: this run records the dose per arm, in the doses listone pass, not measured
Claude Sonnet 51.00001.0000+0.0000.000 to 0.00010not measurednot measured: this run records the dose per arm, in the doses listone pass, not measured
  • Claude Fable 5.1. We put each task to this model once, so there is no repeat to compare it against.
  • Claude Haiku 4.5. We put each task to this model once, so there is no repeat to compare it against.
  • Claude Opus 5. We put each task to this model once, so there is no repeat to compare it against.
  • Claude Sonnet 5. We put each task to this model once, so there is no repeat to compare it against.

Fable 5 on the expansion design (three arms)

one pass over each committed item. Matrix hash aeaab752. Pre-registration · Run report.

One row per model. Every figure is read from this run’s committed cells, except the repeat column, which is counted from the answers themselves because a cell commits no per-item values.
ModelNo skillWith skillDeltaIntervalPairsResultInjected tokensSame answer on a repeat
Claude Fable 51.00001.0000+0.0000.000 to 0.00010not measurednot measured: this run records the dose per arm, in the doses listone pass, not measured
  • Claude Fable 5. We put each task to this model once, so there is no repeat to compare it against.
Thinking tokens, recorded per arm. Reported, never scored: no interval or result on this page consults them.
ModelArmRecords that reasonedMean thinking tokensMost on one record
Claude Fable 5with skill40 of 405189
Claude Fable 5no skill35 of 403475

Opus 5.5 on the expansion design (three arms)

one pass over each committed item. Matrix hash cfcb0adc. Pre-registration · Run report.

One row per model. Every figure is read from this run’s committed cells, except the repeat column, which is counted from the answers themselves because a cell commits no per-item values.
ModelNo skillWith skillDeltaIntervalPairsResultInjected tokensSame answer on a repeat
Claude Opus 5.51.00001.0000+0.0000.000 to 0.00010not measurednot measured: this run records the dose per arm, in the doses listone pass, not measured
  • Claude Opus 5.5. We put each task to this model once, so there is no repeat to compare it against.
Thinking tokens, recorded per arm. Reported, never scored: no interval or result on this page consults them.
ModelArmRecords that reasonedMean thinking tokensMost on one record
Claude Opus 5.5with skill23 of 40112699
Claude Opus 5.5no skill22 of 401241,114

Key A: the open Agent Skills specification

This class is ranked on conformance to the open specification and on nothing else. The specification is published by neither cohort, it is given to neither arm, and it is pinned like any other artifact: agentskills/agentskills docs at 69ef37e9424c0a7ea9dd2293b559e43ec8176379, content hash b9079c0c10b7930e8c6a20ff2bc10cda2a3343c55185120e3f1116a1a529b220.

Key A predicates, each with the passage it comes from
PredicateWhat it requires, in our wordsWhere the specification says itScored when
frontmatter-presentThe document opens with a YAML frontmatter block, and Markdown follows it.SKILL.md format, opening sentencealways
frontmatter-name-presentA name field is present.SKILL.md format, frontmatter table, name rowalways
frontmatter-description-presentA description field is present.SKILL.md format, frontmatter table, description rowalways
name-within-length-limitThe name is between one and sixty four characters.name field, first bulletalways
name-characters-legalThe name uses only lowercase letters, digits and hyphens.name field, second bulletalways
name-no-edge-hyphenThe name neither opens nor closes on a hyphen.name field, third bulletalways
name-no-consecutive-hyphensThe name carries no run of two hyphens.name field, fourth bulletalways
description-within-length-limitThe description is between one and one thousand and twenty four characters.description field, first bulletalways
body-presentInstructions follow the frontmatter rather than an empty document.Body content, opening sentencealways
within-line-limitThe document stays under the stated line ceiling for a main SKILL.md.Progressive disclosure, closing linealways
file-references-one-level-deepEvery relative path the document points at sits at most one directory down.File references, closing linealways
compatibility-within-length-limitIf compatibility is given, it stays inside its stated ceiling.compatibility field, first bulletthe field is offered
metadata-is-string-mapIf metadata is given, it maps string keys to string values.metadata field, first bulletthe field is offered
allowed-tools-is-one-stringIf allowed-tools is given, it is a single space separated string.allowed-tools field, first bulletthe field is offered

A predicate for an optional field a document does not offer is not applicable and leaves the denominator, so a document is never credited for a rule it did not engage.

Key B: the operator's house standard, not ranked

Key B: the operator's house standard, not ranked
ClaimModelWithoutWithTask pairs
S02-skill-creatorClaude Haiku 4.50.25830.183310
S02-skill-creatorGPT-5 mini0.19440.19446
S02-skill-creatorGemini 3.1 Flash Lite0.25000.250010

No interval and no result appears above, and none can: these are two arm means and the frozen rule is never called on them.

Every figure above is computed at build time from harness/results/runs-skills.jsonl and harness/results/ledger-skills.jsonl, both committed, by the frozen status_v1 rule and the metrics_v1 cost definitions. How a claim gets tested.

720 run records behind this page. Every verdict is computed at build time by the same frozen status_v1 rule that decides every other verdict on this site, and nothing here is written by hand.