news / build
one month of v1

one month of v1

between 2026-03-19 and 2026-04-19 v1 went from first commit to maintenance-only — twenty-four archived plans, one changelog, and the runtime we threw away.

v1 ran for exactly a month. first commit on 2026-03-19. final banner on 2026-04-19, declaring the repo maintenance-only and pointing new installs at loswf2. one calendar month, twenty-four archived plans, one tagged release.

the first day shipped the full pipeline. intake, plan, build, review, ship, auto-close, ci gate — all in one day, across seven commits. day two added semantic code search: ast-grep manifest, qdrant index, ollama embeddings, auto-refresh on git changes. day three was the typescript port plan — 3,643 lines of bash and python mapped to a future typescript codebase. that is the cadence the first week ran at: a load-bearing primitive landed each day.

the archived plans tell the rest of the story. agent alignment on the 20th. close gaps on the 20th. github state layer on the 20th. typed planning on the 20th. four plans in one day, each addressing a different layer of the pipeline. then loop detection on the 22nd. ts-port remediation on the 22nd, hours after the original port plan. factory reliability layer on the 23rd. label utility on the 24th. planner consistency check on the 24th. four ceremony phases on the 27th — curator, dashboard tui, harvest, setup command. sweep efficiency on the 28th. factory-native project on the 29th. engineering-docs pipeline, rejection safeguards, self-healing factory all on the 30th. integration readiness on the 31st. structured resolution on 2026-04-01.

twenty-four plans. one a day on average, sometimes four in a day, with the work shipping faster than i could file the next plan. v0.3.0 dropped on 2026-04-07 with nine first-class capabilities — self-healing, duel mode, semantic indexing, github projects v2, webhook server, web dashboard, hub dashboard, setup wizard, prime command. one release. nine features. each of those features had its own archived plan and its own commit trail.

the changelog entry for v0.3.0 lists thirty-plus shipped surfaces. self-healing meant error-classifier.ts reading runtime errors and healing-router.ts deciding which phase to re-enter. duel meant running two builders concurrently and scoring the diffs. the cli command suite spanned twenty-one flags across pipeline, observability, configuration, issue management, quality, indexing, tooling, and servers. that was the v1 surface at peak. every one of those flags worked. every one of them was wrapped in a string-interpolated bash shim that called bun run against a typescript file that loaded a python helper.

the load-bearing insight, by the end of the month, was that the runtime was the wrong abstraction. not the pipeline. the pipeline shape — intake, plan, build, review, ship, rollup, harvest — survived intact into v2 and continues to ship work today. what got thrown away was the harness underneath. the bun + pi cli + custom prompt templating + string-interpolation glue stack got replaced with claude code subagents + slash commands + skills + hooks, one layer at a time, in the v2 rebuild.

what made the runtime the wrong abstraction was not that it was poorly written. it was that every layer i had built — the typed label state machine, the gh client wrapper, the prompt loader, the pi invocation shim — was about to be shipped by the host runtime as a first-class primitive. the choice was to maintain a layer that was about to become redundant, or to delete it and let the runtime carry the weight. on a one-month horizon i would have kept maintaining it. on a six-month horizon it was clearly debt.

the v1 readme banner went up on 2026-04-19. it points at loswf2 and labels v1 maintenance-only. nothing in v1 was reverted or rolled back. the code still runs. the install path still works for anyone with a pi cli license. the project is not dead, it is frozen at the shape it had on the day i stopped pushing to it.

the month of v1 was where every concept that now ships in v2 got tested under real load. agent alignment. self-healing branches. duel mode. semantic context. factory-native projects. setup wizards. webhook serving. every one of those was first proved out in v1, then re-implemented on a runtime that did not exist when v1 started. the rebuild was possible because the month of v1 had already discovered what was worth rebuilding.

the corpus that ended up in docs/plans/archived/ is the receipt for that month. twenty-four plans, ordered by date, each one a load-bearing decision that survived into the next layer.