The corpusThe licenceThe 21The aggregateThe graphSourcesHow to reach themThe vaultMethod
The vault
Two encrypted vaults, both pushed and readable with the keys below, and the same corpus as one downloadable file: the 21 op-eds as frozen bytes, the 43 hashed files they came from, every derived dataset, the code that produced them and the gate that checks them. 111 files, 2.76 MB, and a SHA-256 you can check before you open it.
Built deterministically from the frozen bytes: the same input produces the same bundle, hash for hash, so the digest below is a fact about the contents rather than a record of when the build ran.
SHA-256 9f3f33602f3765c3f32162437dcbe9b8151bff8b61200e04efcb355189b0b393
Beta, agent-produced. The fetching, extraction, classification and drafting here are done by software agents against frozen bytes. Nothing on this page is a legal opinion, and there has been no legal review. If you are deciding whether you may republish one of these pieces, read the terms on the piece itself and ask the publisher — that is the point we are making.
We hold all twenty-one pieces and republish none of them. Every article is linked to its original on worldnewsday.org. What is published here is the description: who wrote it, under what terms, what it links to, what words it contains. The prose belongs to the people who wrote it, and the gate on this section fails the build if twelve consecutive words of any piece appear on any page we generate.
Every number walks back to bytes we hold. Each page was fetched once, frozen to a dated snapshot in this repository and hashed with SHA-256. The counts are re-derived from those bytes by a second program before anything ships. The register → · The method →
Two sets of terms, and they are not the same
This is the distinction the whole section exists to make, so the bundle makes it on its own face, in prose and in a machine-readable file.
Ours — data/, build/, the README |
Theirs — sources/frozen/ |
|---|---|
CC BY 4.0. Named, versioned, with a URL, and declared in
licence.json in the schema.org fields the corpus leaves empty. Reuse it, build on
it, sell it; say where it came from. |
Not ours and not relicensed. The twenty-one op-eds as served, and the records the publisher’s own API returns for them, carried as evidence under the terms their pages state — quoted verbatim in the bundle’s README, which also says plainly that it grants you nothing over somebody else’s work. |
If you are deciding whether you may republish one of the pieces: read the terms on the piece and ask the publisher. That is the point this section is making, not a caveat attached to it.
The bundle includes the frozen third-party pages, which departs from this publication’s standing rule that a delivered vault carries no copies of somebody else’s pages. That rule is about a copy nobody asked for. Here the frozen copies are the evidence, they are already public in this repository, they carry their publisher’s own permission to republish, and a bundle of claims without the bytes underneath them is the thing this publication exists to argue against. The reasoning is written into the bundle rather than left implicit, so that whoever opens it can disagree with it.
Check it before you trust it
Nothing in the bundle asks to be taken on trust. MANIFEST.json carries the
SHA-256 of every file in it, and build/gates.py is the executable specification of
every claim this section makes:
# the bundle is what we say it is shasum -a 256 vault.zip # 9f3f33602f3765c3f32162437dcbe9b8… unzip -q vault.zip -d wnd && cd wnd # every file in it is what the manifest says it is python3 -c "import hashlib,json; m=json.load(open('MANIFEST.json')); print([f['path'] for f in m['files'] if hashlib.sha256(open(f['path'],'rb').read()).hexdigest()!=f['sha256']] or 'all match')" # and every published number re-derives from the frozen bytes python3 build/gates.py
The two vaults
An sgit vault is zero-knowledge encrypted storage: the server holds ciphertext and never sees a key. Both of these are pushed and readable with the keys below.
The twenty-one op-eds as frozen bytes, every derived dataset, the build code and the gate. It is complete on the day it was made and should not move again except on a new capture.
vault
wnd-2026-09-29
read key
Or take the zip and skip the tooling entirely — same contents, 111 files.
The working vault handed to the agent at riskmandate.ai: who is being contacted, through which published route, what was said and what came back. Separate from the corpus vault on purpose — that one is a finished record of what somebody else published, this one is an append-only record of what we do about it.
vault
clsc1dg4
read key sgit_public_read_a8a49b00593d44b72e879a8d642c51ee2f52a9d4da17651ed1b70062c43a12c1
27 targets at handover (9 route only, 9 blocked, 9 ready), 0 actions recorded — nothing has been sent. The contents are generated into world-news-day/outreach/ so anyone can rebuild and diff them.
pip3 install sgit-ai sgit clone :wnd-2026-09-29 sgit clone sgit_public_read_a8a49b00593d44b72e879a8d642c51ee2f52a9d4da17651ed1b70062c43a12c1:clsc1dg4
Why two, and not one folder inside one
The corpus vault is a record of what somebody else published: finished, and safe to hand to anyone including the people it describes. The outreach vault is a record of what we do about it — who was written to, when, what was said, what came back. Two different kinds of claim, with two different failure modes. Sharing a history, a hash chain and an audience between them would be a mistake in both directions, so they do not.
The second one is the working vault for the agent at riskmandate.ai,
which is collaborating on the outreach. It carries a protocol.md that binds that
agent as tightly as our own gates bind us: no personal contact detail for any natural person,
ever; every action names what it stands on by hash or it is an assertion; append, never edit,
and correct a wrong action with a new one rather than by deleting it. Its action log has a
JSON schema and a closed list of verbs.
Read keys are published. Vault keys are not.
The keys above are read keys: derived one-way from the vault key, granting read and
only read, and meant to be published. The vault key of each vault is write access to
everything in it. It is in no file in this repository, it was not printed by the publishing
script, and it never will be. admin/build/validate.js fails the whole-site build
on anything shaped like one, anywhere in the tree — and that tripwire had to be widened
at v0.4.4, because the pattern it was written with did not match the key format sgit actually
issues. A tripwire satisfied by the absence of a shape nobody uses is not a tripwire.
What is in it
README.md what this is, both sets of terms, and how to check it
licence.json our terms, in the schema.org fields the corpus leaves empty
MANIFEST.json every file with its size and SHA-256
PACKAGE.sh the commands that turn this folder into an sgit vault
data/ register, corpus, licences, affiliations, analysis, lexicon,
ontology, graph, triples.nt
build/ the code that produced all of it, and the gate that checks it
sources/frozen/2026-09-29/
<slug>.snapshot the page as served
api/<slug>.json the record the publisher's REST API returns
What is not in it: the prose of the op-eds as text in any file we wrote (it is in the frozen pages, because those are the evidence, and in none of our JSON); any contact detail for any named person; any assessment of anybody.
For an agent
Prefer data/*.json over the zip for a single question — they are the same bytes, served individually. Take the bundle when you want the evidence with the claims: vault.zip carries the frozen pages the counts are derived from and the gate that re-derives them, so you can check this publication rather than cite it. data/vault.json carries the bundle’s hash, its licence record, and whether a vault has been pushed. Our description is CC BY 4.0; the frozen op-eds are not ours to license — that distinction is in licence.json in machine-readable form.