Skip to content
Back to skills

Write

ASecurity

Run STORM phase 3 — per-section article writing. This skill should be used when the user asks to "write the article sections", "draft the storm article", or invokes /storm:write. Writes each outline section in parallel with inline citations grounded in the research sources.

  • 593 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 11, 2026
ai-agentsbash

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add FradSer/dotclaude --skill write --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Write?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Write
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fradser-write/badge)](https://www.skillsdirectory.com/skills/fradser-write)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: storm-write
description: Run STORM phase 3 — per-section article writing. This skill should be used when the user asks to "write the article sections", "draft the storm article", or invokes /storm:write. Writes each outline section in parallel with inline citations grounded in the research sources.
user-invocable: true
argument-hint: "<topic> [--retrieve-top-k N] [--output-dir PATH | --save] [--force]"
allowed-tools: ["Read", "Write", "Edit", "Glob", "Grep", "Bash(mktemp:*)", "Bash(mkdir:*)", "Bash(date:*)", "Task", "Skill"]
---

# /storm:write

Phase 3 of the STORM pipeline. Writes each outline section in parallel (one Task subagent per section), each grounded in top-k relevant sources from the research information table, with inline `[n]` citations.

## CRITICAL: Prerequisites

- Load `storm-engine` via the Skill tool.
- `outline.md` MUST exist (phase 2 complete). If absent, stop and instruct the user to run `/storm:outline` first.

## Completion Contract

This phase is complete iff `article.md` exists and every outline section (except Introduction/Conclusion/Summary placeholders) has body text. If `--force` is not set and it exists, skip and exit early.

## Procedure

1. Resolve output dir.
2. Read `outline.md` and `research/sources.json`. Index sources for retrieval (simple: rank by keyword/heading overlap with the section title).
3. **Identify sections** to write — skip any whose heading is exactly "Introduction", "Conclusion", or "Summary" (these are filled in `polish`).
4. **Parallel writing** — for each section, launch ONE Task subagent (single message, parallel). Each subagent:
   - Receives: topic, section heading, top-k relevant sources (default `--retrieve-top-k` 3), the full outline for context.
   - Writes the section body with inline `[n]` citations mapping to `sources.json` ids.
   - If no relevant sources, writes uncited and marks `<!-- TODO: no source -->`.
   - Returns the section markdown.
5. **Assemble** — concatenate sections in outline order under their headings into `article.md`. Preserve the heading hierarchy from `outline.md`.
6. Verify every non-placeholder section has body. Update `run-config.json`: `phases.write = "completed"`, section count, any TODO-flagged sections.

## Citation Rules

- Only cite `[n]` where `n` is an existing `id` in `sources.json`. Never mint a new id here.
- Place `[n]` immediately after the claim it supports. Multi-source claims use `[1][2]`.
- Do not cite in placeholder sections.

## Output

Report: number of sections written, number of citations used, list of sections flagged as TODO (no source), and the path to `article.md`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.