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.

The Agent Behaviour Policy becomes a page, and Lisbon gets a landing page

Three new pages, and the plumbing they needed. The site had been arguing the Agent Behaviour Policy's contents for months without the artefact having a name; it has one now, with a published model behind it.

The page list has one home. It used to be inlined in all 24 pages with nothing keeping them in step — a test could see them disagree but nothing could fix it, and adding a page meant editing every page. site/pages.json is now the source and the inlined copy is injected from it. A page can be marked unlisted (no menu entry) or private (also no twin, no sitemap, no llms.txt, noindex, robots-disallowed).

Two defects fixed on the way, both older than this release.

Two new tools, neither of them a build step. scripts/site/new-page.mjs scaffolds a page with the chrome lifted from a page already in site/, so a new page cannot ship an older copy of the header, the drawer or the shared modules. scripts/site/render-brand-exports.mjs renders the brand exports at the sizes an exhibitor portal and a LinkedIn page actually ask for.

Tests: 19, from 17. Internal links now also check that a #fragment resolves to an id in the page it points at, which caught a wrong anchor before it shipped; private pages are asserted noindex, twin-less and robots-disallowed; and pages.json has to account for every page in site/ and vice versa.