Outline Skill
Turn the research dossier into the article's bones. The output is a detailed outline a writer (human or AI) can expand into prose without further research. The outline is bound by the dossier's BEAT SPEC — section count, item count, word targets, and required formats come from the SERP, not from habit.
Input
For slug {slug}, reads:
content-pipeline/1-research/{slug}.md(required — especially BEAT SPEC, "Recommended angle", consensus/gap topics)content-pipeline/2-reference/{slug}.md(recommended — brand context)content-pipeline/0-context/{slug}.md(if exists — user-provided angle; overrides everything else on conflict)brand-config.md(audience, voice)references/bluf-mece-rules.md(structural rules — must enforce)../../../templates/outline-template.md(the file structure)../../../templates/visual-types.md+../../../templates/editorial-principles-visuals.md(visual decisions)examples/— readexamples/README.md, then 1 structure example + 1 niche example closest to this content type
Process
- Read all inputs. Restate the BEAT SPEC numbers at the top of your outline file so the draft stage sees them without re-opening the dossier.
- Choose the article title. Direct, includes the primary keyword early, under 60 characters when possible.
- Write the thesis. One sentence. The article's central argument.
- Decide content type. Follow the beat spec's format. Deviating from the modal SERP format requires an explicit justification line in the outline ("SERP is listicles; we're doing X because …") — absent that, format parity is mandatory.
- Draft the H2 list — sized by the beat spec, not a fixed cap.
- Explainer/guide SERPs: typically 5–8 H2s.
- Listicle/comparison SERPs: one H2 (or H3 under a roundup H2) per item, item count ≥ beat spec's item target. A 9-app SERP gets ≥9 apps — never compress to 4 "picks" unless the user's context file explicitly asks for a short list.
- Every consensus topic from the beat spec maps to a section or a substantial subsection. List which H2 covers which consensus topic in a coverage map at the bottom of the outline.
- At least one section delivers the beat spec's information gain — mark it
[GAIN]. - Read the H2 list aloud as a sequence: does it argue the thesis? Is it MECE?
- For each H2, write:
- BLUF (one sentence; the section's opening line or close to it)
- Key points (2–4 bullets)
- Evidence (stat / quote / example / walkthrough — cite which dossier section it comes from)
- Word target — per-section targets must sum to the beat spec's total ±10%. Weight by SERP attention: comparison/criteria sections get more, boilerplate sections get less.
- Transition to next section
- Visuals — one or more typed micro-specs (
screenshot/action-shot/image/table/chart/video/external/gif/none), format:
Apply the decision sequence in**Visuals:** Visual 1: {type: image, sub: concept-illustration, prompt: <specific structured prompt>, safety: sfw} Visual 2: {type: screenshot, target: create, what: voice profile selector, annotate: arrow on speaker icon}templates/editorial-principles-visuals.md. The default for any non-trivial section (>300 words) is "this section deserves a visual; what kind?". For brand-product UI:screenshotif a single URL shows the state,action-shotif it takes clicks (routed to/capture-visuals). For quoted Reddit/tweets/news:externalwith aselector.
- Comparison table (when the beat spec requires one). Spec it as a real markdown table skeleton in the outline: columns (from the beat spec's required-columns list), one row per item, plus a
Visual: {type: table}entry on the section. The draft authors the table in GFM markdown;/format-for-publishconverts it for the site renderer. Do NOT pre-degrade tables into bullet lists at outline or draft time. - Plan the intro. Hook + thesis + preview. 150–200 words. The hook earns attention with something specific, surprising, or contrarian — never "In today's digital age".
- Plan the conclusion. Restated thesis + one next step (often a
2-reference/link). 80–150 words. - Run the visual sanity check (two-way) — for every H2 with a visual, confirm it earns its place (concrete info lost without it, supports the BLUF, MECE across sections); for every
nonesection, check whether a labeled diagram/screenshot/chart/table would make it twice as good. Density target pereditorial-principles-visuals.md(5/8/10/12 for <1.2k / 1.2–2k / 2–3k / >3k words), ≥3 distinct types. - Run the structural self-check in
references/bluf-mece-rules.md. - Run the beat-spec self-check (NEW, blocking):
- Section word targets sum to target word count ±10%
- Item count ≥ beat spec item target (if list-shaped)
- Every consensus topic appears in the coverage map
-
[GAIN]section exists and is genuinely not on page 1 - Comparison table specced iff required
If any box fails, fix the outline before saving — do not hand the debt to
/draft.
- Save to
content-pipeline/3-outlines/{slug}.mdusingtemplates/outline-template.mdstructure (beat-spec restatement at top, coverage map at bottom).
Output
content-pipeline/3-outlines/{slug}.md — typically 600–1,200 words. Detailed enough that /draft can expand without re-doing research.
Quality checklist
- Title direct, includes primary keyword, <60 chars
- One-sentence thesis
- H2 list MECE, supports thesis, sized by beat spec (no arbitrary 4–7 cap)
- Each H2: BLUF, key points, evidence source, word target, transition, typed Visuals
- Word targets sum to beat-spec total ±10%
- Coverage map: every consensus topic → a section
-
[GAIN]section present - Table skeleton present iff beat spec requires
- Visual density within range, ≥3 distinct types
- Intro = hook + thesis + preview; conclusion = restated thesis + next step
- Zero forbidden phrases (brand-config)
Common failure modes to avoid
- Compression — the SERP demands 9 items and you outline 4 "best picks". That's how we shipped a 1,100-word listicle into a 2,500-word SERP. Match or beat; never shrink.
- Section overlap — "Why X matters" and "Benefits of X" are the same section. Pick one.
- Consensus amnesia — research lists must-cover topics; outline silently drops two. The coverage map exists to make that impossible.
- Skipping the BLUF — throat-clearing openers lose skim-readers.
- Hook that says nothing — "In today's competitive landscape…" is not a hook.