The hub, becoming

One JSON in. One builder. One page out, with a gate that proves the page is the JSON.
Every lamp lights the same way, and a lamp with no JSON stays dark: never greener than its evidence.

SHAPE.json · the one source
engine/<page>/ · where it's made
1 · its JSONthe page's data, beside its builder, never in public/
2 · its builderreads only that JSON, writes only its page
3 · its gateserved page = a fresh render, or red. In gates/, counted by the one runner
public/ · only what was generated
Tap a lamp.
The registry · inside SHAPE.json (HR3) · what the hub plugs into
1 · score blindevery striker, the repo against the page, md5 sealed first
2 · he ruleseach gap: now · park · not this repo
3 · ship the treethe finished tree on disk first, then built to it
4 · strike afterby running it, never by the list it was built from
5 · the wakeone command, recomputes, ends on what it could not see

What is real here: the SHAPE.json roles (the hub at 5f12357, word for word), the 21 page names (the archive, hub-bulldoze-2026-10-28), today's numbers (git ls-files 79 · gates/run.mjs 4 of 4 · CI #142 success · live /version still dabf3da). What is my view: the Becoming half: every archived page back as a lamp, each from its own JSON, the registry lit, and the switchboard drawn from SHAPE.json itself. A view drawn as a view, for him to say yes or no to. · switchboard, 2026-10-28

···