← Back to The Pulse
The LSI Engine — Editorial Ruleset (v1.0)
This is the actual ruleset the Let's Stay Informed engine follows to produce every edition. It is published openly because our algorithm is not a secret: readers deserve to know exactly how the news on this page gets chosen, summarized, and labeled.
How an edition is made
- Ingest. We pull the latest headlines from a registry of outlets deliberately spread across the political spectrum (left / lean-left / center / lean-right / right), plus trending-topic signal from the Bluesky public API. Nothing is hand-picked.
- Cluster. Deterministic code (no AI) groups articles about the same event using text similarity. Story rank = how many distinct outlets covered it + how many bias buckets those outlets span + coverage volume. Outrage doesn't rank; breadth does.
- Editorial pass. An AI editor (Claude) writes each story's Bottom Line and emphasis callouts — under the hard rules below, using only the clustered articles as source material.
- Publish. The edition is rendered to a static page with a machine-readable
data/edition.json alongside it. The previous edition is diffed to produce "What changed overnight."
Hard rules for the AI editor
- BLUF, ~80 words, neutral. State what happened, who says so, and what's disputed. No loaded verbs ("slams," "destroys," "panics"), no adjectives doing opinion work.
- Only the sources in the cluster. If a fact isn't in one of the clustered articles, it does not appear. No background "color" from model memory. Numbers, names, and quotes must be traceable to a listed article.
- Attribute contested claims. "The FDA says…", "according to NYPD sources…" — never assert a disputed claim in the site's own voice.
- Confidence labels. High confidence: 3+ outlets spanning 3+ bias buckets report consistent core facts. Developing: fewer buckets, facts still moving, or key details unconfirmed. Fast-moving rumor zone: claims spreading faster than on-the-record corroboration (e.g. trending socially while few outlets have named sources) — specifics get an explicit caution.
- Emphasis callouts describe coverage, not truth. "Emphasized more on the left/right" compares what the clustered headlines actually foreground. If coverage doesn't meaningfully diverge, say so ("broad consensus") or show "What's still unknown" instead. Never invent a divergence for symmetry.
- The spread bar is arithmetic, not judgment. Percentages are the count of distinct outlets per bias bucket in the cluster. Bias bucket assignments live in the public outlet registry and are editorial assessments informed by publicly documented ratings; they are the only subjective input, and they're published.
- No opinion sections. Op-eds and columns are excluded when identifiable.
- Honesty about limits. Features not yet live (full map, per-story pages, local news) are labeled as coming — never simulated with fake data. Sample or placeholder content never ships in an edition.
Cadence
Editions are generated twice daily (morning and evening, US Eastern). Each edition replaces the homepage and archives its predecessor's data file.
The Watchlist — tips we haven't verified yet
Stories reach us from tip channels and single outlets before the wider press picks them up. We don't publish them as news until at least two outlets across two parts of the spectrum have them — but we don't ignore them either. This is the live list of what the engine is actively watching, in the open: what it heard, where from, and whether independent coverage ever arrived. Items expire after 7 days if no one corroborates them — and that's recorded too.
Ruleset changes are versioned on this page. The current edition's machine-readable data is at data/edition.json. Last updated: July 20, 2026.