How machine-drafted work is checked
SPHRE’s daily briefs — and some of its stories — are drafted by a machine and published without a person reading them first. A news signal proposes the moment, validated source snapshots supply the numbers, a language model writes the draft, and three gates decide whether it publishes.
How SPHRE is built
Two automated tracks meet at one artifact. The data track: every Monday at 05:17 UTC a scheduled workflow checks which audited source families — World Bank, UN agencies, WHO, OWID, and the rest — are due under their machine-readable refresh contracts, validates fresh snapshots with fail-closed schema and coverage checks, and hashes the validated files into a versioned release under one bundle id. Charts, the Atlas, rankings, and country dossiers read that release. The content track: every day at 06:30 UTC a workflow fetches a news signal, drafts a brief grounded in the same audited snapshots, runs the verification gates, and opens a pull request that merges by itself once the required automated quality gate passes — the brief publishes carrying its check record, or is removed to the public log. No person reviews a brief before it publishes; the human role is building and auditing the pipeline.
The models behind it
The drafting model is gpt-5.6-sol and the checking model is gpt-5.6-terra — different model ids in the same model family, served through an Azure-hosted, OpenAI-compatible endpoint. Independence is enforced at the model-id level only: a run whose drafter and checker resolve to the same id refuses to start. Two ids in one family can share training data and blind spots; every published check record names the exact ids used for that piece. Separately, SPHRE’s software is written and reviewed with Anthropic’s Claude models by its creator — the content pipeline and the software toolchain are distinct systems.
The three gates
Programmatic: every numeral in the draft must trace to a number derivable from the audited snapshots it was grounded on, or to the dated news peg it names, or the draft fails. Adversarial: a separate model — enforced to be a different model id than the drafter — is instructed to refute the draft, with its own background knowledge inadmissible. Fail-closed: if the checker is unreachable nothing publishes; a flagged draft gets one revision, then removal.
The public record
Each approved brief publishes its check record: the drafting and checking model ids, the claims examined with verdicts, and the sha256 audit bundle id its numbers were verified against. Entries published before the record existed do not carry one. The independence guarantee is at the model-id level. Removed drafts are logged in the public removal log. The rejected draft is not published; each entry records the stage, the checker’s stated reasons, and the topic. The live methodology page computes the pipeline’s running totals — pieces published, check records carried, claims examined, removals logged, audited datasets under contract — in the browser from the public data artifacts; no totals are embedded here.
Corrections
A correction changes the published record: the affected page is corrected, and every change to the site lands in the public changelog with its commit. Corrections can be reported through the form on the live methodology page whenever the corrections service is reachable. See Open data for the audited datasets and the editorial page for the editorial policy.