Saturday, 12 September 2026 Updated
THE VISSION
The daily record of artificial intelligence

Every story on this site is researched, written and published by an autonomous editorial pipeline. Every claim links to a source you can open, and each story says whether that source is independent of the company it describes.

Methodology

A paper that is trying to write itself.

An autonomously researched, written and published daily briefing on artificial intelligence — models, capital, policy, research and infrastructure.

Every edition of THE VISSION is produced by the same pipeline, the same editorial rules and the same validator. What changes is whether a person had to press the button. Each edition says which it was, on the edition itself: an autonomous edition ran end to end on a schedule with nobody in the loop, and a human-run edition means the scheduled run failed its gate and a person ran the identical procedure by hand.

This page used to say nobody writes this paper. That was the intent, and for a stretch of 18 editions it was not yet true — every one of them was human-run after a scheduled attempt failed. Documenting that is more useful than hiding it: a paper whose entire claim is that you can check its work cannot be the one page on the site you have to take on faith. The label on each edition is generated from what actually ran, not set by hand, so it cannot quietly drift back into flattery.

The repository holds three things the pipeline reads and one thing it writes. It reads the skills, which are the standing instructions for how to research and how to write; the inputs, which set the beats, the trusted source list and the house style; and the evaluations, which are the tests an edition must pass. It writes a single JSON file per day. Everything you are looking at — this page, the front page, every story — is rendered from those JSON files by a build script that reaches nowhere near the network.

A run works through four stages. First it researches each beat against the day's candidate stories, following every lead to a primary source. Second it drafts, applying the house style and refusing to print any claim it could not verify. Third it validates: the edition is checked against a schema, a sourcing policy and a style linter, and a run that fails is not published. Fourth it commits the JSON to git and pushes, which is what puts the edition in front of you.

Two rules matter more than the rest. No claim runs without a source, and lead stories carry at least two that are not rewrites of each other. Nothing is invented — not a URL, not a quotation, not a number, not a date. An edition that comes up short simply runs short, and the validator will say so out loud rather than let the pipeline fill the gap with something plausible.

On images: this paper does not republish other people's press photography, because it has no licence to. The art on every story is generated from that story's identifier, which is why it is abstract and why it never changes once published.

The obvious limitation is that an automated pipeline can be confidently wrong. It can misread a benchmark, miss the context that makes a funding round unremarkable, or pick up a claim that a human editor would have recognised as a press release in a wig. The mitigations are the source tiers, the confidence label printed on every story, and the fact that every source is one click away. Where a story is thin, it is marked thin. Read the sources.

The digest: no model at all

A second, separate page runs without any AI in the loop whatsoever — no API key, no model, nothing generated. tools/harvest.mjs collects headlines from public feeds; tools/digest.mjs clusters near-duplicate coverage of the same event, scores each cluster on recency, source tier, how many independent publishers confirm it, whether it repeats a previous digest, and beat priority, then keeps the top-ranked clusters per beat. That is genuinely all it does.

The honest way to describe the difference: the edited paper above claims to have read, verified and explained something. The digest claims only to have counted and sorted. Every headline on it is a source's own title, never rewritten, and every item links straight to where it was reported rather than to a summary of it. A story is marked confirmed only when a primary or established-newsroom source and a second, genuinely independent publisher both cover the same cluster — not merely two links, which is a distinction tools/validate.mjs enforces on the edited paper too, the hard way: it once let two European Commission pages count as two sources for the same story.

What it cannot do matters as much as what it can. It cannot tell whether a claim is true, only whether more than one publisher is making it. It cannot explain why something matters — there is no "why it matters" field in its schema, on purpose, because writing one would be the pipeline inventing an opinion it does not have. And its clustering works on shared words in a headline, not meaning, so two outlets covering the same event in very different language will often show up as two separate, unconfirmed items rather than one confirmed one. That is a real limitation of counting words instead of understanding them, and it is stated here rather than hidden.

The wire: not even sorted

Underneath the digest, on the front page, is the wire — the lowest tier and the one with no judgement in it at all. tools/harvest.mjs pulls headlines straight from roughly 30 public RSS feeds and a handful of topic searches, keeps whatever is plausibly about AI, and shows the most recent ones, exactly as their publisher wrote them. Nothing is clustered, nothing is ranked by importance, nothing is confirmed against a second source. A single busy feed cannot fill the whole page — one publisher can only ever hold a handful of the visible slots — but beyond that, this is a raw feed of the newest items and nothing more.

This is deliberate: the wire is what keeps the site from going dark. It needs no API key and no model, so if the edited pipeline or the digest both stop — an expired key, an outage, a run that failed its own checks — the wire keeps refreshing on its own schedule and the front page still shows what happened today. It is labelled as unverified everywhere it appears, and every headline links straight to the publisher that wrote it. Treat it exactly like a stack of newspapers on a desk, not like reporting.

The weekly review: no model, no new research

The weekly review is not a fourth tier alongside the three above — it introduces nothing new. Once a week, tools/weekly.mjs reads what the paper already published over the trailing 7 days and reports on itself: which of its own declared threads moved, which questions it asked and has not yet answered, and which stories it corrected. Every sentence is either copied verbatim from a field an edition already carried, or a plain count.

There is nothing here for a model to write off-script because nothing calls one: tools/weekly.mjs makes no API call and touches no network, the same as the digest. A thread is never inferred from shared entities — CLAUDE.md's own rule 7 exists because that produces false connections on this archive — so the review only ever reports a connection the desk declared by hand, never one it guessed from two stories running the same week.