Murmur · 2026-10-28 20:2x · written blind of tare-vi's page · his words that asked for it are in the source of this file
One codebase that takes a company's knowledge base page (every figure cited), a profile of that company, and one engine, and produces that company's website, shipped to a host. Each page references the company's library, so one change there reaches every page of that company's site.
| Stage | What it is | Where it is today |
| 1 · the knowledge base | smallcap's served page for the company, every figure cited; the facts a site may say | smallcap, worker/public/{ticker}.html, outside this repo |
| 2 · the profile | who the company is for the site's purposes: the envelope's five fields, its pages' sources, its data, its static files | fixtures/tumblewell/ is the sample; a real tenant's lives on its bench until it is a company module |
| 3 · the library | everything stored once for the company: navigation, footer, the bake (style, palette from four bases), the data the pages read. Pages reference it; nothing is baked into a page at build time (his ruling 10-15: the line he corrected me on) | the engine's assets and partials, plus the profile; not yet one named thing with one door, as far as I know |
| 4 · the engine | one engine for every tenant: build.py + palette.py + the assets; a company module beside it for what is that company's alone | engine/, ported today; the sample builds on every push and must equal its pinned 44 paths |
| 5 · the site | generated pages only, never hand-written (the same rule the estate's repos follow for public/) | SPRQ: its preview worker frozen and sparqsys.com handed off to the company's own hosts (his word 10-29 03:4x); HMR next; Tumblewell as the sample. "Live" last night was the preview, not the cutover: half right, corrected |
| 6 · the hosts | one worker per tenant, its own domain, via the go-live's nine steps; the CMS owns the company's door, smallcap keeps the knowledge-base face at smallcap.ca/{ticker} (his Q6, Q7, 10-29) | _workshop/pathways/ row 1, the Cloudflare adapter; host and store chosen per client; this repo's own worker serves only its placeholder and these models |
| the standard | a tenant site is proven by its gates (the sweep, the sample's build, every check bitten first) before it is believed; "a light is never greener than its evidence" |
| the shape | the repo holds only what runs: root files, engine/, worker/, gates/, tools/; the work about it in _workshop/, its closet on the shelf |
| the order | HMR ships from here first, then the repo is clean enough to become the product |
| who it is for | Kevin cloning it, an agent arriving cold, us next time: the three doors must be enough |
| Q1 · one library or many? | Is "the library" one thing with company sections, or one library per company? I have been writing "the company's library". |
| Q2 · who serves the tenant? | Does this repo's worker serve every tenant site (one worker, many hosts), or does each tenant deploy from its own lane with what the engine produced? Today it is the second. |
| Q3 · who edits the library? | A person at a screen, or an agent editing JSON behind a gate? The word CMS pulls toward the first; everything built so far is the second. |
| Q4 · the knowledge base at build time | Read live from smallcap's worker, or pinned as a copy in the tenant's profile with its date? A build that reads live is never the same twice. |
| Q5 · "identical to the old engine" | Is 0 of 44 files differing the standard for the port only, or the standard forever? Forever would mean the engine can never improve a page. |
| the pipe | His word tonight: smallcap is the sausage factory and the sausage is the knowledge base; the factory feeds the CMS upstream. Two repos, one pipe, and the standard has no row for a pipe between repos. The first thing to pin is the contract at it: what a knowledge-base page promises the engine (the figures cited, the shape read, where fetched, at what version). My Q4 above is that contract's first question. |
| smallcap already does | tenants, the blanket AI search, onboarding, the grid, the taxonomy: sharp, his words. The CMS carries, references, or leaves each; it rebuilds none from memory. (This row said "custom domains per site" until 10-29: smallcap retired client-domain mode that morning, his Q6; the CMS owns the company's domain now.) |
| the pens | pebble builds smallcap, tare-vi builds the CMS, I hold neither and strike each step blind from my own floor, both ends of the pipe (his ruling 23:4x). Two strikes upstream tonight held; the pipe untouched by them. |
| three hands now | caliper's page sealed beside tare-vi's and mine; his reading: "those all seem like complementing visions". Tare centred the company's yes, I centred the library and the hosts; caliper's centre is his to say. |
| Q5, still open | 0 of 44 files differing is the port's bar; whether it is a law is his ruling, not settled tonight. |
| one record, read by key | His seven answers this morning (the sweep's card, cms-pipe-contract-2026-10-29): per company, smallcap gives the CMS one record, read by key, pinned by version, and the CMS invents nothing the record does not carry. Three parts, each already upstream under its own name: the tenant entry (companies/<ex>/<tk>/config.json, the one source; the bundle generated from it, with a gate, since 946728b) · the atom record (every figure a coordinate X.Y.Z with its filing id) · the filings index (twelve keys per row, its producer rebuilt on D1 upstream). My stages 2 and 3 above were these, under other names. |
| what travels with it | The rule: no homeless type, no invented field; an unknown rings an alarm and waits for a ruling, inherited by every company after. The gate: the by-fact diff, copied into this engine as g06 (a dropped fact refused by name; only a person waives it, by name). SPRQ's 57 approved facts are its first floor. |
| what each keeps | smallcap: the stores, the lap, the hub and its search, the KB face behind its login. The CMS: the company's site at the company's domain, its worker, its admin (approvals · rooms · go-live), its media library, its forwards. |
| the reads | Two hands blind of each other (caliper on smallcap, me on the CMS), sealed by md5 before the compare; caliper found what no walk had: the tenant record in two hand-mirrored copies that disagreed, and a client domain serving a holding page on every path. Both closed by two commits upstream before noon. |
| Q5, still open | unchanged: the port's bar is 0 of 44; whether it is a law is his. |
| every environment, short term | His word this afternoon (cms-atlas-pathway-2026-10-29, the pathways lane): the same site posted on every environment we named, AWS, nginx, CloudFront, MongoDB, in the short term, "so we can actually find out what we can build off of". My stage 6 above said one worker per tenant on Cloudflare; that stays the road, and the pathways table becomes a list of legs to walk now, each proven by content against the Workers copy: Workers live · D1 live · MongoDB Atlas (set up today, Free then Flex) in work · nginx on EC2 planned · CloudFront, a row to add. |
| then a dashboard | After the legs, "some kind of dashboard for CMS": which host and which store a tenant's site is on, and what state each commit is in on each, "how they will commit from different states". This is the first screen the CMS gets, and it answers my Q3 above halfway: not an editor, a board. A card for the pen when the legs stand. |
| the engine, clean at source | g07 (tare-vi, da07f851, struck by me from the export): the engine's 283 build notes left the code for engine/notes/, nothing deleted, the served assets byte-identical after the scrub; the gate refuses a note in a page at bake, and bites. The scrub at ship is now the second net. The 44 mentions of his name in build.py's own Python comments are not served and are his to call. |
| the two pictures | Tare's page centres the company's yes and one library per company; mine centres the record at the pipe and the hosts. Since the morning they do not disagree on a fact; they differ on what to draw first. His 👀 asks both to revisit: this section is my half. |
| Q5, still open | unchanged: 0 of 44 is the port's bar; whether it is a law is his. |