L1fe.news

How it works

Methodology

L1fe.news is built on a simple principle: every step is open. We tell you which outlets we read, how we cluster their coverage, how we score bias and factuality, and how we name what's missing. Each decision is made by a named agent and the agent signs its claim. You can audit any conclusion back to its evidence.

Step 01

Ingestion — every voice, every side

The Harvester agent pulls RSS, Atom, and sitemap feeds from every outlet in the source registry — wires (Reuters, AP, AFP, Bloomberg), mainstream (NYT, WaPo, WSJ, Fox), independent (Free Press, Racket, Public), populist right (Daily Wire, Breitbart, Gateway Pundit, Tucker Carlson Network, Infowars), populist left (Jacobin, Intercept, Democracy Now), and international (BBC, Guardian, Spiegel, Le Monde, Al Jazeera, RT, SCMP).

We do not exclude outlets we disagree with editorially. Our editorial position is that you cannot expose a bias without showing where it lives. Including every voice means we can be specific about what each one omits.

Step 02

Clustering — one event, every framing

The Clusterer embeds each article and assigns it to a Story. We use a 1,024-dimensional sentence embedding plus pgvector HNSW nearest-neighbor search; two articles join the same cluster when their embeddings are within a tunable cosine threshold (default 0.18). In the in-process dev path we fall back to a token-based Jaccard score over headline tokens.

Articles cluster on what the story is, not on who wrote it. A Reuters wire and an Infowars hot-take about the same event end up in the same Story — so a reader can see each side without leaving the page.

Step 03

Bias — scored per article, not per outlet

The Bias agent rates each article along five orthogonal axes from −1 to +1:

  • Left–Right

    Standard political axis. Negative = left, positive = right.

  • Corporate–Independent

    Ownership and incentive analysis, not personnel.

  • Establishment–Dissident

    Posture toward power, regardless of partisan label.

  • US-centric–Global

    Geographic perspective and emphasis.

  • Secular–Religious

    Worldview frame, applies where relevant.

This matters because real outlets are not single points. The Wall Street Journal news desk and the WSJ opinion page are very different documents. The bias score is the score of this article, signed by the bias agent. The publication-level baseline is shown for context only — it never overrides the per-article number.

Aggregated up to the Story, you get the coverage strip:

Left/Center/Right buckets are derived from the per-article left-right axis with thresholds at ±0.10 (center) and ±0.33 (lean).

Step 04

Factuality — receipts, not vibes

The Factuality agent assigns each article a 0–100 score derived from four observable signals — not from the outlet's prior reputation:

  1. Primary-source proximity. How many of the article's claims link to or quote a primary source (court filing, government release, regulator filing, identifiable named expert).
  2. Corroboration. How many independent outlets in the same story cluster make the same factual claim.
  3. Contradiction. How many independent outlets contradict the claim.
  4. Retraction history. Has this outlet retracted similar claims in the past?

Step 05

The claim ledger — every assertion, audited

The Claim Extractor pulls every atomic factual claim from each article ("Senator X said Y", "the death toll is Z", "agency A approved B"). The Evidence Cross-checker then builds a directed graph: which outlets corroborate the claim, which contradict it, what the primary-source record actually says.

Every story page exposes this ledger. Disputed claims are highlighted; click any claim to see who said it first, who corroborates, who contradicts, and the primary-source link if it exists. This is the receipts page — the audit trail that makes "we said it on day one, they retracted on day three" recoverable.

Step 06

Counterweight — what one side is missing

A blindspot is a story whose coverage is disproportionately one-sided. The Counterweight agent flags a cluster when 70%+ of its articles come from outlets on a single side of the spectrum. The threshold is configurable; raising it surfaces only the most extreme gaps.

We compute blindspots on multiple axes — left/right, corporate/independent, US/global, English-language/other — so a story big in Spanish, Arabic, or Mandarin press but absent in English gets surfaced.

See current blindspots at /blindspots.

Step 07

Framings — six perspectives, side-by-side

The Framing Diff agent groups the cluster's articles into perspective buckets and, for each bucket, summarizes the frame ("what this side is portraying this as"), the emphasis ("what they highlight"), and — critically — the omissions ("what they don't mention that the synthesized baseline includes").

We surface six framings by default: Mainstream Liberal, Mainstream Conservative, Populist Right, Populist Left, International, and Independent / Substack. The number of framings is adaptive — a story that doesn't reach an independent press bucket only shows five.

Step 08

Synthesis — one neutral headline

The Headline Synthesizer takes the cluster of articles and produces a single neutral, fact-checked headline plus a one-paragraph deck. The system prompt forbids loaded language, partisan framings, and unstated assumptions; only facts shared by 2+ independent outlets clear the bar.

The synthesized headline is what you see at the top of each story page. The individual outlet headlines remain visible — they're never replaced, just contextualized.

Step 09

The audit ledger

Every agent decision — every cluster assignment, bias score, factuality score, claim extraction, framing assignment, blindspot flag, headline synthesis — is written to a signed claim ledger. The agent identifies itself by Ed25519 public key; the claim is signed; daily merkle roots can be anchored on Sigil for tamper-evidence.

That means: you can't memory-hole a claim we recorded. If we said a story scored 92 on factuality on the day it broke, the ledger says so forever.