Eight months of running a factory of one.
January to August, 2026 — from a planner built in evenings to a production line that files its own history. Each chapter links the spark that forced it.
Eight months of architecture decisions, in order: forms-first capture, wiki-as-orchestrator, manufactured consensus, weekly gate re-derivation. Each chapter links the sparks that forced it.
Eight months. What was built, in order, and what it cost in failures.
January — Flow, and the habit
2026.1It started as an evening project: Flow, an energy-first planner — schedule the day around when I actually think well, not around the clock. Modest software with a shape I would keep: three doors to one backend, a web app, a WhatsApp bot and an MCP server an AI orchestrator could read and write through OAuth, and an eval for the one feature a model touched. The plan lived in the database and the agents were disposable, before the line had a name. The important thing wasn’t the app; it was the working arrangement. I was building with an AI collaborator for the first time, and I brought the only discipline I trusted: write down the ask before starting, write down what broke after. Two habits from eighteen years of running programs.
By late January the second habit had a name and a number. Spark 004 — a verbal ask is a bet both sides lose — was written the night a feature came back beautifully built and entirely wrong.
February — the wiki that wasn’t a wiki
2026.2The second build was supposed to be a filing cabinet: a personal wiki, sixty-odd tools, a knowledge graph to hold everything Flow was teaching me. Then the reversal that reorganized everything: the agents kept losing context, but the wiki never did. So stop treating the wiki as the notebook and the agents as the workers — treat the wiki as the orchestrator and the agents as ephemeral labor over shared state. Agents lose their context every run; the wiki does not. So the wiki holds the plan and the agents are disposable. Two of its parts outlived it: a pipeline that read issues off the connected repositories, triaged them with a model and promoted them into work packages, and a spaced-repetition feed that turned every decision and pattern into cards to review. The first became capture and shape on the line; the second became the learning feed in Perse.
February also paid for the two sparks I quote most. A fallback path reported success for six silent days (017), and two stores of the same truth drifted until one was a lie (018). Both went on the ledger. Both are doctrine now.
March–April — Perse, the line itself
2026.3–4Perse is what happens when the way of working becomes software. Six stations: capture, shape, build, verify, ship, persist. Work enters as a form, leaves as a record, and passes a gate at every station — gates that check state, not confidence, because February taught me what confidence is worth. Shape runs three model calls independently and keeps only the plan they agree on. I call that manufactured consensus.
In April the loop filed its own history. I read the morning report the way I used to read audit evidence — and it held.
May–June — the fleet, and the hard lesson
2026.5–6With the line running, the apps came fast: CasaCommand (the household on the same rails) and Pythia (multi-model deliberation for markets). Each one a form at capture, each one shipped through the same six stations. I did not plan a portfolio. These are the asks that got through the line.
June ended the honeymoon. Sparks 049 and 050 landed the same night: autonomy decouples while the substrate quietly re-couples, and — the expensive one — the verify gate degrades at exactly the rate the system diverges from what the gate assumes. My strongest control was rotting at a measurable rate. Gate criteria are now re-derived from live state weekly. That one spark justified the whole ledger.
July–August — Factoria
2026.7–8Naming it came last. A venture-studio structure, one canon across every app, a ledger of paid-for doctrine, a loop that runs around the clock — that’s a factory, so call it one. This site renders from the same tables the loop writes to. Including, eventually, this journal.
Eight months in: one operator, five apps, four articles of doctrine, and fifty-two nights since the last failure worth writing down. Zero sparks is a healthy day. It’s been a healthy summer.
September — Pull request one thousand
2026-09-29Pull request one thousand. It was not the biggest change of the year. It removed nine lines that sent visitors from one address to another, because the address it sent them to was blocked at the place I was sitting. The factory that merged it had merged thirty-three others while I slept the night before. PR 1 was me learning what a form was. PR 1000 was a system I built fixing the thing that locked me out of it, before I finished my coffee. That is the whole record in one number: I did not write a thousand pull requests. I built the line that did. Every change must pass its tests and an automated review; changes to deployment, to what the loop may do, or to its written rules wait for the operator to read them before they merge, and everything else merges once its checks pass and is read afterwards, with a revert path.