← All lessons Lesson 0022 · Software factory 1 of 4

Software factory

The lights go out last

“Software factory” is the 2026 name for a team where agents write the code and nobody reads it. The phrase is easy to say and easy to fake. One question separates the real ones from the reckless ones, and it is the only thing to learn tonight: when the human stopped reading the diff, what started doing that job?

What this is. The definition, the ladder that leads to it, and a test you can apply to any team, including yours. StrongDM, who put the term on the map: “non-interactive development where specs + scenarios drive agents that write code, run harnesses, and converge without human review.” StrongDM · Software Factory

What this is not. How to build the validation (0023), how to make a repo agents can work in (0024), or the ramp for one developer and for a team (0025). Not a product you buy either. Vendors now sell things under this name; the pattern came first and needs none of them. Not the 2000s “software factories” of code generators and product lines, which shares only the word.

  1. 1 · SeedA spec. The human writes it.
  2. 2 · ValidateA check the builder cannot game.
  3. 3 · Feed backFailures return. Loop until it holds.

StrongDM’s own summary: “Seed → Validation harness → Feedback loop. Tokens are the fuel.” Principles

Six rows, level 0 spicy autocomplete at the bottom to level 5 dark software factory at the top. Columns show your job and who reads the diff. Levels 0 to 3: you, every line. Level 4: you, sometimes. Level 5: no human. A bracket marks the gap between levels 3 and 4.

Dan Shapiro’s ladder, modelled on the levels of driving automation. Read the right-hand column. The climb is a human check being removed, one rung at a time.

Where the name came from

In January 2026 Dan Shapiro published five levels of AI-assisted coding, from “spicy autocomplete” to the “dark factory”, named after factories that run with the lights off because robots do not need to see. He puts most developers around level 2 and calls level 5 “a black box that turns specs into software,” run by teams of fewer than five. The Five Levels · Simon Willison’s notes

A week later StrongDM’s three-person AI team described working that way since July 2025, under two rules: “Code must not be written by humans” and “Code must not be reviewed by humans.” Willison on StrongDM

You already own every part. The loop is 0012, where the maker is not the checker. The check is 0014 and 0019. The wall around it is 0020. A factory is those three running with no one watching.

A human lane on top with two boxes: writes the seed, curates the scenarios. Below, a dotted loop with no human inside: builder agent sends builds to a validation harness; failures are fed back. A solid wall between them marks that the builder cannot read the scenarios.

Architecture first. The human did not leave. They moved from the middle of the loop to its two ends.

The question that sorts the real from the fake

Removing review is the easy half. Anyone can stop reading diffs. Simon Willison, who visited the StrongDM team, names the hard half: “how can you prove that software you are producing works if both the implementation and the tests are being written for you by coding agents?” Agent-written tests only help “if they don’t cheat and assert true.” Willison

Anthropic found the same thing from the other side: asked to grade their own work, agents respond by “confidently praising the work — even when, to a human observer, the quality is obviously mediocre.” Harness design for long-running apps

So the test for any rung is one sentence: name the thing that replaced your eyes, and say why the builder cannot fool it. If you cannot, the lights are off and nothing is watching.

One feature, two rungs · prorate refunds on annual plans

# Same billing assistant as 0014–0020: HTTP + DB + Stripe.

LEVEL 3 · you read the diff
  you     prompt: "add proration to the refund policy"
  agent   edits policy.ts and refunds.test.ts, opens a PR
  you     read 240 lines, ask for two changes     # your eyes are the check
  you     merge

LEVEL 5 · factory
  SEED      you    specs/refund-proration.md      # intent + acceptance criteria
  VALIDATE  you    scenarios/annual-midyear.md    # kept where the builder cannot read
            twin   a fake Stripe: refunds.create returns re_ ids, records amounts
  LOOP      agent  builds
            check  runs every scenario against the twin        6 of 9
            agent  receives the three failures, rebuilds       8 of 9
            agent  again                                       9 of 9, and stays 9
  SHIP      nobody opened policy.ts

  you read: the scenario board, one trace (0018), the twin's refund ledger

FAKE LEVEL 5
  agent   writes policy.ts AND refunds.test.ts, tests green, auto-merge
  check   none that the builder did not write itself

What this shows. At level 5 you still did real work: one spec and one scenario, both before any code existed. What you gave up was line-by-line review, and you could only give it up because the scenario file and the Stripe twin now do the looking. Notice what you read at the end: the refund ledger, the outcome in the world, which is 0014 again. The third block looks like level 5 from the outside and has no check at all.

Skill: name what replaced the eyes

Six teams. For each, decide what stands between the agent and production. Answer before you look for the reason.

Who is watching?

Three field reports, and the bill

StrongDM

Three people, from July 2025. Security software. Scenarios as a holdout, a “Digital Twin Universe” of cloned services. Their own yardstick: about $1,000 of tokens per engineer per day. source

OpenAI

Three engineers growing to seven, five months, about a million lines and 1,500 pull requests, zero typed by hand. “Humans steer. Agents execute.” A new repository, started empty. source

Anthropic

Sixteen agents, about 2,000 sessions, just under $20,000, a 100,000-line C compiler. The lesson its author drew: “it’s important that the task verifier is nearly perfect.” source

Each report is written by the team that did the work, about a project started from nothing. Read them as evidence that it can be done, and then read the costs they and others state:

What to do with this on Monday

Solo developer

Find your rung honestly. Then pick one kind of change you review today and ask what check would let you stop. Build that check before you stop reading.

Team lead

When someone says “we should be a software factory,” ask the lesson’s question in the design review. Level 5 is not the goal for every codebase. Level 4 with strong checks beats level 5 with none.

Next

0023: build the check. Scenarios the builder cannot see, a twin of one outside service, and a score instead of a green tick.

Parked for the next three lessons: holdout scenarios and twins (0023); the repository as the system of record, a short AGENTS.md as a map, and rules promoted into linters (0024); the ramp, the budget and where to keep a human (0025). StrongDM’s named techniques (Attractor, gene transfusion, semports, pyramid summaries) are parked until one of them is the next thing you need.

Check

1. A software factory replaces human review with
2. StrongDM stores scenarios outside the codebase so
3. At level three, the human mostly
4. Tests written by the builder and merged unread give you
5. OpenAI’s team said its results

Primary source. How StrongDM’s AI team build serious software without even looking at the code, by Simon Willison. Fifteen minutes. It is the best single piece because he saw the system, quotes the team’s own words, and then says what worries him. Second, for the engineering detail: Harness engineering, by Ryan Lopopolo at OpenAI.

Card: software factory. Loop: loop engineering. Check: eval suites. Wall: agent security. In code: lesson 0021.