# Storm Polish

> Run STORM phase 4 — article polishing. This skill should be used when the user asks to "polish the storm article", "finalize the article", or invokes /storm:polish. Adds a summary section, removes duplicate content, and verifies citation integrity.

- Skill: `fradser/storm-polish` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fradser/storm-polish`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fradser/storm-polish/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: FradSer (https://skillmd.com/u/fradser)
- Updated: 2026-08-19
- Page: https://skillmd.com/skills/fradser/storm-polish

---


# /storm:polish

Phase 4 of the STORM pipeline. Adds a summary/intro section, removes duplicate content across sections, and verifies every inline `[n]` citation resolves to a References entry and vice versa.

## CRITICAL: Prerequisites

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

## Completion Contract

This phase is complete iff `article-polished.md` exists. If `--force` is not set and it exists, skip and exit early.

## Procedure

1. Resolve output dir.
2. Read `article.md`, `outline.md`, and `research/sources.json`.
3. **Summary section** — if `outline.md` had an "Introduction" or "Summary" placeholder, write a summary section synthesizing the article's main points (1-2 paragraphs). Do not introduce new claims or citations not already in the body.
4. **Duplicate removal** (default on; `--remove-duplicate` is explicit but the behavior is the default) — detect near-duplicate paragraphs across sections and remove the later occurrence, keeping the one in the more topically-appropriate section.
5. **Citation integrity** — build the set of `[n]` keys present in the body. Append a `## References` section listing exactly those sources, numbered to match, each as `n. title — url (accessed YYYY-MM-DD)`. Drop any `[n]` in the body that has no source (replace with `<!-- TODO: missing source -->`). Drop any source not cited (do not list uncited sources in References).
6. Write `article-polished.md`.
7. Update `run-config.json`: `phases.polish = "completed"`, final word count, source count, any integrity warnings.

## Output

Report: final word count, number of cited sources, number of duplicate paragraphs removed, any integrity warnings (missing sources / TODO sections), and the absolute path to `article-polished.md`.

