sgit newsroom v0.1.29 · snapshot 2026-09-24

Reading room · riskmandate.ai

Reading room / riskmandate.ai · raw text · live ↗

From riskmandate.ai, the page as fetched on 2026-09-24 · open the live page ↗Everything on this sheet is the source site's own text; the newsroom's chrome is outside it.

Lab 04: seven things to build, and one word we have not earned

A build specification for the first thing anybody will ever use — a page that asks what you run, computes what you granted, and hands you the gap — plus a repair to a defect that had put a line of JavaScript at the foot of nine pages.

Editions can now say what separates them from the edition before. Two PDFs dated a day apart otherwise read as two states of an argument, and sometimes one of them is only a repair — as three of today's are. lab-editions.json takes an optional note per edition and the edition list on each page renders it.

A line of script was rendering onto nine pages. The page scaffolder lifts the shared JS modules from a page already in site/, and the last of those modules ran to the end of the donor document — so it carried the donor's own </script></body></html> in with it. Every scaffolded page therefore closed twice, and the text between the two closes is not ignored: the parser reparents it into <body>, which put })(); at the foot of abp↗, the Lab↗ and its three entries, Lisbon↗, the booth guide, and both work↗ pages. It was in the published PDFs too. Fixed at the source, trimmed from all nine, and a test now asserts that every page closes exactly once with nothing after it.

And editions no longer turn over for chrome changes. The renderer's content hash covered the shared JS modules, so a sync-modules run would have minted a new edition on every Lab entry the same afternoon — implying four arguments had moved when none had. The hash now covers the markup between <body and </html> with the script block and the injected regions removed.