/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-enginevia the Skill tool. article.mdMUST exist (phase 3 complete). If absent, stop and instruct the user to run/storm:writefirst.
Completion Contract
This phase is complete iff article-polished.md exists. If --force is not set and it exists, skip and exit early.
Procedure
- Resolve output dir.
- Read
article.md,outline.md, andresearch/sources.json. - Summary section — if
outline.mdhad 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. - Duplicate removal (default on;
--remove-duplicateis 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. - Citation integrity — build the set of
[n]keys present in the body. Append a## Referencessection listing exactly those sources, numbered to match, each asn. 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). - Write
article-polished.md. - 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.