Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run the full STORM pipeline end-to-end. This skill should be used when the user asks to "generate a storm article", "write a wikipedia-style article about X", "research and write a long-form piece on X", or invokes /storm:generate. Orchestrates research -> outline -> write -> polish, skipping already-completed phases.
.claude/skills/fradser-storm-generate/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-18 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-19 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-20 | ✗→✓ | ▲ Improved | -29% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 20% | 0% |
End-to-end STORM article generation. Runs all four phases in sequence, skipping any phase whose artifact already exists (unless --force).
Load the storm-engine skill via the Skill tool before doing anything else. It defines the artifact layout, stage-gating contract, citation hygiene, and retrieval fallback that this orchestration depends on. Do not improvise these.
<topic> (required) — the subject of the article.--max-perspective N (default 3) — number of personas to discover.--max-turns N (default 3) — max Q&A turns per persona.--output-dir PATH — explicit output location. Mutually exclusive with --save.--save — persist to docs/storm/<slug>/ instead of a temp dir.--docs DIR — ground on local documents in addition to (or, with --docs-only, instead of) the web.--force — re-run all phases even if artifacts exist.--retriever mcp|web|local — override retrieval source (default: mcp with fallback).AskUserQuestion to request one.<slug> and resolve <output_dir> per the engine contract. Create the directory.run-config.json with a snapshot of all parameters. Stamp started_at using date -u +%Y-%m-%dT%H:%M:%SZ (the only place a timestamp is generated).research, outline, write, polish:a. Check the phase's completion artifact (per engine contract). b. If complete and not --force: mark phases.<name>: "skipped" in run-config.json, log "Skipping <name> (artifact present)". c. Otherwise: invoke the corresponding /storm:<phase> skill via the Skill tool, passing the resolved output dir and run parameters. After it returns, verify its artifact and mark phases.<name>: "completed" (or "failed" with the error).
article-polished.md and print a summary: topic, word count, number of sources cited, number of sections, and the absolute path to the final article.research and write phases use Task subagents internally (see their own SKILL.md files). This orchestration skill runs phases strictly sequentially — never parallelize across phases, because each phase depends on the previous phase's artifacts.
If a phase fails, stop and report. Do not proceed to the next phase. Update run-config.json with the failure reason. A re-invocation (without --force) will resume from the failed phase since completed prior phases will be skipped.
The final message to the user must include:
article-polished.md.--force resumes from the first incomplete phase.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 5,548 | 15,080 | +172% | 1 | 1 | 0% | 305 | 1,139 | +273% | 0 | 0 | — |
case-02 | fail→fail | 53,491 | 5,000 | -91% | 1 | 1 | 0% | 8,259 | 1,056 | -87% | 0 | 0 | — |
case-03 | fail→fail | 54,289 | 3,738 | -93% | 1 | 1 | 0% | 8,265 | 1,066 | -87% | 0 | 0 | — |
case-04 | pass→fail | 13,318 | 5,052 | -62% | 1 | 1 | 0% | 2,272 | 1,050 | -54% | 0 | 0 | — |
case-05 | pass→pass | 12,990 | 12,390 | -5% | 1 | 1 | 0% | 2,057 | 3,171 | +54% | 0 | 0 | — |
case-06 | pass→pass | 18,560 | 26,195 | +41% | 1 | 1 | 0% | 3,180 | 4,529 | +42% | 0 | 0 | — |
case-07 | fail→fail | 30,973 | 4,190 | -86% | 1 | 1 | 0% | 4,935 | 939 | -81% | 0 | 0 | — |
case-08 | fail→fail | 29,972 | 5,802 | -81% | 1 | 1 | 0% | 3,791 | 1,078 | -72% | 0 | 0 | — |
case-09 | fail→fail | 15,898 | 5,452 | -66% | 1 | 1 | 0% | 847 | 950 | +12% | 0 | 0 | — |
case-10 | pass→fail | 9,551 | 4,633 | -51% | 1 | 1 | 0% | 1,844 | 1,053 | -43% | 0 | 0 | — |
case-11 | fail→fail | 17,037 | 3,175 | -81% | 1 | 1 | 0% | 2,278 | 890 | -61% | 0 | 0 | — |
case-12 | fail→fail | 18,520 | 6,087 | -67% | 1 | 1 | 0% | 2,533 | 1,044 | -59% | 0 | 0 | — |
case-13 | fail→pass | 11,162 | 5,554 | -50% | 1 | 1 | 0% | 1,229 | 1,589 | +29% | 0 | 0 | — |
case-14 | fail→fail | 6,695 | 4,783 | -29% | 1 | 1 | 0% | 1,114 | 973 | -13% | 0 | 0 | — |
case-15 | pass→fail | 45,606 | 3,793 | -92% | 1 | 1 | 0% | 8,229 | 950 | -88% | 0 | 0 | — |
case-16 | fail→fail | 35,124 | 4,436 | -87% | 1 | 1 | 0% | 6,443 | 905 | -86% | 0 | 0 | — |
case-17 | pass→fail | 15,897 | 5,576 | -65% | 1 | 1 | 0% | 2,461 | 940 | -62% | 0 | 0 | — |
case-18 | fail→pass | 8,850 | 3,059 | -65% | 1 | 1 | 0% | 1,526 | 1,267 | -17% | 0 | 0 | — |
case-19 | fail→pass | 8,765 | 2,986 | -66% | 1 | 1 | 0% | 1,651 | 1,365 | -17% | 0 | 0 | — |
case-20 | fail→pass | 9,465 | 2,450 | -74% | 1 | 1 | 0% | 1,647 | 1,163 | -29% | 0 | 0 | — |
case-21 | fail→pass | 18,393 | 3,471 | -81% | 1 | 1 | 0% | 1,167 | 1,405 | +20% | 0 | 0 | — |
case-22 | pass→fail | 17,721 | 4,521 | -74% | 1 | 1 | 0% | 2,754 | 1,127 | -59% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-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, and 6 counted toward the lift figure. The other 16 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 6 comparable cases. 8 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.