Take a page apart. Put it back. Prove it is the same bytes.
—
unpack(page) → shell + parts pack(dir) → page check(page) → self-contained? // The shell keeps every byte that is // not a block. Blocks come back in // document order, at the same offsets.
It reassembles from the shell rather than re-serialising a parse tree. That is why the bytes survive.
$ npx @mrkt_frwd/leaf unpack engines/job.html --output-dir ./outunpacked job.html → ./outsha256 7d3437b28d34… 4 part(s) parts/00-script-importmap.json 104 B parts/01-style.css 7970 B parts/02-script.js 2128 B parts/03-script-module.js 3671 B $ npx @mrkt_frwd/leaf pack ./out --out rebuilt.htmlpacked → rebuilt.htmlsha256 7d3437b28d34… 22891 Bidentical to the source it was unpacked from
A sha256 is a fingerprint of a file's exact contents — change one character and it changes completely. The same fingerprint before and after is the proof that taking the page apart and putting it back changed nothing at all.
A round trip that is nearly right is the worst outcome available — a page that still loads, quietly missing a newline inside a shader. So Leaf reports the digest, not a success message.
Three pieces from the library — hand-authored, self-contained, nothing chosen to make this easy. Each was unpacked into parts, packed back, and compared byte for byte.
TERRA carries a WebGL scene and six blocks including a module; NACRE is nearly twice the bytes in two. Same result, which is the only interesting outcome — a round trip that worked on the small one and not the large one would be a round trip nobody could rely on.
$ npx @mrkt_frwd/leaf check engines/job.html job.html 4 block(s) 22891 B ok self-contained — nothing is fetched from another origin
That is the whole instruction.