Home / Articles / v0.4.2

The fact diff was named as a blocker on four consecutive days, and it reads the published page

Every projection renders the same fact set with an empty diff. That rule had no mechanism behind it for a month. The mechanism parses the label, the leaflet, the prohibitions and the figure back out of the page that shipped, because a diff that trusts the generator checks nothing.

v0.4.2, 20 September 2026. v0.4.2's own release record.

A rule with no mechanism behind it

Every projection renders the same fact set, and the diff must be empty. That rule has been in force across this estate since August. It is the thing that makes a document rendered for a decision maker and a document rendered for an engineer two views of one set of facts rather than two documents that happen to be about the same agent.

It was named as the blocker on four consecutive days in September, because the diff did not exist. A promise that cannot be checked is a promise that may be described and may not be printed, and the store's multi format offer sat behind exactly that line.

What the diff is over

The specification was precise and it is worth restating, because it is the thing that makes the check cheap. The facts are the leaf assertions. The classes are how a reader groups them, and they differ by altitude, which is correct rather than a defect.

The fact diff, and why it reads the published pagea diff that trusted the generator would be a diff over nothingthe granta deployment shapethe mandatewhat was authorisedthe fact setleaf assertionscomputed, never authoredthe labelnine fieldsthe leafletevery rowthe prohibitionsone per excess rowthe figurethree countsprojectsthe published pageand its markdown twinthe gateparses it backcompares, assertion by assertionOne row that differsfails the build.The facts are the leaf assertions.This shape grants this capabilityat this barrier, with this undoclass and this evidence tier; themandate takes this stance on all23 primitives; therefore this excess.The classes are not.How a reader groups them differsby altitude, and that is correctrather than a defect.
The rule has been in force since August and was named as the blocker on four consecutive days in September, because the diff did not exist. It exists now, and it reads the artefact rather than the thing that made it.

So a fact set is written for every stored delta: what the shape grants, at what barrier, with what undo class and what evidence tier; the stance the mandate takes on all twenty three primitives; and the excess, unbounded excess, aligned set and shortfall that follow. It pins the same inputs the delta pins, and no field in it is writable by a person.

Why it reads the published page

This is the decision that makes the check worth having. The gate does not compare the generator's intermediate values. It opens each example's published markdown twin, parses the label, the leaflet, the prohibitions and the figure back out of the rendered text, and compares each leaf assertion with the fact set, in both directions.

A diff that trusted the generator would be a diff over nothing. The label and the leaflet are produced from one call, so they could only disagree with the fact set if that call disagreed with itself. Parsing the artefact is what makes them two renderings that are checked to carry the same facts rather than asserted to.
$ node admin/build/validate.js
validate: 4 error(s)
  x examples/claude-code-cli-confirmations-disabled/index.md: the label says
    Excess is "11", the fact set says "12"
  x examples/claude-code-cli-confirmations-disabled/index.md: the leaflet says
    authenticate-as.credential.signing is at barrier "boundary", the fact set
    says "none"
  x examples/chatgpt-web-no-connectors/index.md: the leaflet says the mandate's
    stance on read.file.project is "wanted", the fact set says "refused"

That is the check being tested rather than trusted: a label number, a leaflet barrier and a fact set stance were each corrupted on purpose, and the gate named all three before the release was committed.

The same row, across nine universes

The other half of the release is smaller and it closes a loop opened two versions earlier. Every example page already ended with one capability followed through the model as a sentence, which is the fifth graph rule as an acceptance test. That path stays inside one vocabulary.

An example page ending with the same capability walked across nine universes as one sentence
Every example now ends with its lead row crossed through nine worlds, built from that page's own profile, mandate and delta. The note underneath names the fact set every number on the page is a leaf assertion in.abp.sgit.ai at v0.4.2, captured 20 September 2026 from a checkout of the v0.4.2 tag. Unretouched.

The two sentences are doing different work. The first says the edges inside the model read correctly. The second says the edges between the model and eight other worlds do, including two this site does not own.

The fact sets · An example · v0.4.2's own release record