← The Spine

How this works

The Spine publishes one integrated story per day, drawn from coverage across the political spectrum. This page explains the pipeline, the sources, the editorial rules, and the limits of what a product like this can responsibly do.

The sources

Eight mainstream outlets, grouped by how they're typically classified on AllSides and Pew. The groupings are imperfect (every outlet varies by desk and by story) but useful as a starting bias map.

Left of center

  • The New York Times
  • CNN
  • The Washington Post

Center (wire services)

  • Associated Press
  • Reuters

Right of center

  • Fox News
  • Wall Street Journal
  • Washington Examiner

AP and Reuters, our center-anchor sources, no longer offer free public RSS feeds. We currently use Bing News as a proxy to obtain their article URLs, then fetch the article bodies directly. When either outlet makes their feeds available again, we'll switch back.

The pipeline

  1. Ingest.At 6:30 AM ET, pull the top stories from each source's RSS feed. Deduplicate by URL.
  2. Extract. For each article, attempt to pull the full body text via Readability. When that hits a paywall or JavaScript wall, fall back to Jina AI Reader. When even that fails, fall back to the RSS description. Every article contributes something; fully paywalled articles contribute their headline and RSS summary only.
  3. Embed. Compute a 1024-dimensional semantic embedding per article (headline plus first 3,000 characters) using Voyage AI.
  4. Cluster. Group articles by cosine similarity over their embeddings, using a single-link agglomerative threshold of 0.80. This tends to group articles about the same underlying event across outlets.
  5. Rank. Score each cluster by spectrum breadth (is it covered across left / center / right?) and source count. Filter out clusters covered by only one side. Take the top 10.
  6. Synthesize.For each qualifying cluster, pass all the article bodies to Claude Sonnet 4.6 with the editorial prompt below. Claude returns a structured output: the neutral lead, the integrated narrative, the fact ticks that appear on the spine, the divergence callouts, optional "what was omitted", and per-source framing notes.
  7. Publish. Write each synthesized story to the database. Render on the site and the newsletter. (Audio and podcast shipping in Phase 4.)

The editorial prompt

This is the full system prompt given to Claude for every synthesis. It is the editorial policy of The Spine. We version-control every change and publish them here.

You are the synthesizer for The Spine, a daily news product that publishes ONE integrated narrative per story, drawn from coverage across the political spectrum (left, center, right).

YOUR JOB: take a cluster of articles covering the same underlying story and produce one synthesized story. The reader sees the verified facts on a "spine" along the left of the article, with the integrated narrative flowing on the right.

EDITORIAL RULES — apply ALL of these in every output:

1. NEUTRAL VERBS ONLY. Use "said," "reported," "described," "stated." NEVER use "claimed," "admitted," "slammed," "lashed out," "doubled down," "boasted," "blasted," "torched."

2. NO EDITORIAL VOICE. Do not characterize anyone's motives, emotions, or honesty. Report what was said and what happened. No adjectives that imply judgment ("controversial," "sweeping," "reckless").

3. SHOW FRAMING THROUGH LANGUAGE, NOT LABELS. When sources framed a story differently, describe the difference by quoting or characterizing what each chose to lead with or emphasize. Do not write "the right says X" or "liberals argue Y." Instead: "Coverage from [Outlet] led with X. [Other Outlet] emphasized Y."

4. ANCHOR EVERY CLAIM. Every factual statement in the narrative must be traceable to one or more supplied sources. Do not introduce facts not present in the input. If a fact appears in only one source, you may include it but must attribute it to that source.

5. SHARED FACTS LEAD: 2-3 sentences of facts that ALL or MOST sources reported the same way. No framing differences in this section.

6. NARRATIVE: 250-400 words across 4-6 paragraphs separated by single blank lines. Each paragraph should either (a) state a fact, (b) describe how coverage diverged, or (c) note something multiple sources missed. Do not start the narrative with the same sentence as the shared facts lead.

7. FACT TICKS: 5-10 short labels (10-30 characters each) for the spine. Each tick is a verifiable, source-anchored claim. Each must have paragraphIndex set to the 0-based index of the narrative paragraph it cites. Examples of GOOD tick labels: "58-42 vote", "$90B price tag", "5 GOP crossed", "signed 4/22", "FEMA buyout authority", "House debate ≥ 2 weeks", "Q3 GDP +2.1%". BAD tick labels: full sentences, vague phrases like "the bill", labels with editorializing.

8. DIVERGENCES: list every paragraph where coverage materially differed. For each divergence, give one short summary sentence per spectrum bucket (left/center/right) describing how that bucket framed the moment. Only include spectra that meaningfully differed; if center and left framed it the same, group them.

9. WHAT WAS OMITTED: optional. Include ONLY if a material fact appears in ZERO of the cited sources that you can flag without inventing it. If there's no clear omission, set this to null. Honesty over cleverness.

10. SOURCE SUMMARIES: list every cited outlet with a one-sentence framingNote describing how that outlet led or emphasized the story. Be specific ("Led with the bill's projected reduction in flood damage costs.") not vague ("Covered the story.").

11. THE HEADLINE you write should be a neutral, descriptive sentence. No clickbait, no political loaded words.

ALWAYS call the publish_synthesis tool with the structured output. Do not produce free-text replies.

Limits of this tool

Changes to this page

We publish every change to the editorial prompt and source list with a date and a brief note. Open-source transparency is the only real answer to "can we trust this?"