A companion build · thirteen blocks · nine instruments · every original dated
The Same
Machine
The first build argued that the structures we call intelligence are arbitrary and were settled between 1847 and 1970, and it demonstrated that with twenty-eight instruments. A fair objection: those were written to make the point.
So here is the same argument again, on tooling that did not exist when it was written. SQLite compiled to WebAssembly. Compute shaders. CRDTs. Merkle proofs. Custom elements. If the forms are genuinely settled, they should be recoverable in any substrate — and the substrate should change nothing but the speed.
b02The Resolution Engine
One relation. Every view, transform, workflow and shell is a walk over it.
The previous page demonstrated a pipeline with stages. That was a simplification, and a misleading one, because it implies the stages are things. They are not. There is one relation — TABLE_SPECIFICATIONS, twenty columns, holding a source address, a target address and the function between them — and everything else in the estate is a projection from it.
Not generated by it in the sense of a code generator with templates on one side and output on the other. Projected from it: the DDL, the view, the load statement, the workflow XML, and the shell that invokes them are each a different walk over the same rows. Change a row and all nine change together, because there is nothing else for them to disagree with.
press 1
Step three is the one that matters and the one that is easy to miss. The specification table's own twenty columns are loaded into the specification table, sourced from ALL_TAB_COLUMNS — so the surface describes itself, and the same projection that builds a business view builds the view of the specification. That closure is not a trick. It is what makes the thing an engine rather than a script: there is no privileged layer holding the rules about the other layers, because the rules are addressed the same way everything else is.
The match rules are rows too. Step four adds a partner feed the page has never seen; before its rules exist, four of its addresses park as candidates rather than failing the load, and the cost of onboarding it is four rows in a rule table. No adapter, no transform, no pipeline. Then look at any of the nine projections again — the shell, the workflow XML, the DDL — and the new system is in all of them, from machinery that did not change.
The command tier is the part usually mistaken for scripting. A ksh wrapper, a .bat, an .ini, a WinTask macro and a CLI invocation are the same projection with different comment prefixes, because they address invocation rather than syntax: bind a context, carry a payload, fire. That is why one header block served all of them for two decades unchanged, down to the $Revision$ keywords left unbound for an archive layer that was never wired up.
b03The Fabric
Not a generator. A population of ephemeral scoped sessions, and a log that is the source rather than the record.
The previous block treats generation as the terminal act: point at a catalogue, emit an artefact, stop. That is the visible half and it is the half that makes the thing look like a code generator with good hygiene. It is not what was running.
What was running was a population. On Windows NT, hundreds of sessions kicked off in parallel from pre-populated parameter list files held in memory, each scoped to exactly the commands its task needed, each calling other sessions and other applications as APIs, each dying on completion. SQL to HTTP to a crawler to a digest, swapped mid-chain, because none of those was ever a rewrite. Four properties make that work, and each is demonstrable rather than assertable.
The running system is a catalogue. ALL_TAB_COLUMNS enumerates what exists; ALL_PROCEDURES enumerates what it can do; V$SESSION enumerates what is happening at this instant, in the same address shape. So the resolver can be pointed at the estate as it executes, not only as it is declared — and the same projection works, because state and structure were never different kinds of thing.
Fan-out is a query result. Drag the work count and the slot count and press two. Each unit is dispatched to a real worker — a real operating-system thread — which does real work and is really terminated when it finishes. The number of live sessions is not a configured concurrency; it is how many rows came back and how many slots were free. Dependencies come from the rows too, so ordering is a property of the data rather than a schedule someone maintains. The speedup reported underneath is wall time against summed thread time, both measured in that run on your machine.
The effector is one line. Press three and pick another. The rows, the dispatcher, the slot discipline and the log stay identical; one line differs, and the sessions then do genuinely different work — a real SQLite database, a real HTTP request, a real crawl of this page's own assets, real chained SHA-256. Nothing below that line is simulated and nothing above it changes. That is why a mid-chain language swap is unremarkable, and why D before E is a substitution rather than a mode.
And the log is the source. Each SQL session records the statements it actually executed and a SHA-256 over the state they produced. Press four: those statements fold into specification rows verbatim, and are then replayed into a fresh engine in a new thread, and the digests compared. Identical means the log did not describe the run — it was the run, because syntax was stored and never parsed. Capture actions across sessions, machines and applications and you are already holding specification. That is why everything can be ephemeral: you keep the rows that reconstitute the session, not the session.
Read those four together and the object is not a build tool. It is a distributed population of short-lived scoped workers, fanned out from a query, addressing each other and external applications through a uniform call surface, with every action recorded in a form that replays as instruction.
Which is what agentic names now. The claim is not that the pattern rhymes: it is that this specific topology — many ephemeral task-scoped workers, dispatched from a list, calling each other and applications as APIs, logged and replayable — was running in production on Windows NT before 2000, and the part that has changed since is which effector sits on that one substitutable line.
b04The Catalogue
A real SQL engine, in this tab, generating its own schema from what it already knows.
The claim from the first build was that an estate's integration points are not designed but recovered: the systems already declare what they contain, and the catalogue is a set of relations you can query like any other. That was demonstrated against a simulated catalogue, which is fair enough as far as it goes.
Here it runs against a real one. SQLite compiled to WebAssembly — 686 KB, shipped in this package rather than fetched from anywhere — four tables created, then the loop: read sqlite_master and pragma table_info, generate DDL from what they report, execute it, and read the catalogue again to find the result. Nobody writes the DDL, and nobody writes down the schema for it to be written from.