Counted, not estimated

There is an assumption about software built with AI: that someone writes a prompt and the game appears. This page is the record of what actually happened — read from the commit history and the session logs by a script that runs every time this site is rebuilt.

01The record

Virtual Breakout was built between 2026-04-29 and 2026-09-14: four months on the calendar, 39 days of actual work.

Measured from the session logs · 2026-09-14

1,875prompts written by a person
81,092words in those prompts
68,769machine replies
35,472tool calls
318 hof measured session time
1,614commits

Seventy thousand words is a short novel, typed one instruction at a time. Each of those instructions drew an average of 37 replies and 19 tool calls before the next one was written. The session hours are the sum of the gaps shorter than ten minutes between consecutive events — time when somebody was demonstrably at the keyboard, not time the machine spent alone.

The logs do not reach back to the very first days of the project, so every figure here is a floor, never a total. Where a number could be flattered by counting something twice — a tool's output appears in the log looking much like a message from a person — it was excluded.

02Where the work actually went

This is the part that surprises people, and it is the whole argument of the page. Every shell command in the record was classified by what it ran. All 24,844 of them:

Capture & play sessions 4,962
Automated verification 6,087
Builds 2,113
Asset generation 1,640
Version control 461
Sends to the console 118
Reading, measuring, other 9,463

For every command that built the game, 5 checked it.

Checking took 11,049 commands against 2,113 that compiled it. That ratio produced 77,790 screenshots across 1,201 capture campaigns, audited by 75 purpose-built verification tools — programs that compare a frame against declared zones, refuse a series in which every image is identical, and fail a build whose sprite budget has crept past what the hardware allows.

This is the capability that changed. Not typing speed. One person can run a capture campaign; one person cannot run 1,201 of them and hold 77,790 frames to a written standard. The screenshots are the part that does not scale by hand.

03Seven roles that refuse each other's work

The machine does not work as one assistant. It works as seven, each defined by a written brief — 4,010 lines of instructions accumulated over the project — and each one refuses the others' jobs.

Architect1,801 linesWrites a numbered plan: budgets, geometry, state machine, depth layout.Edits no source file. Ever.
Coder848 linesImplements that plan one step at a time, building between each.With no plan, sends the work back to the architect.
Tester320 linesMeasures, then looks at magnified sprites and captures, and returns PASS / FAIL / NOT OBSERVED.Fixes nothing. Judge and defendant do not mix.
Loop819 linesRuns the four others in sequence, unsupervised, for N passes.Stops and hands back rather than decide what the game should be.
Build69 linesThe one canonical way to compile, plus the known failures and their fixes.
Flash105 linesSends the ROM to the cartridge over USB.Refuses without a passing verdict newer than the ROM.
Designer48 linesMerged into the tester: the role that looks at the game should be the one that judges it.

The separation is not bureaucracy. An agent that plans its own work, writes it, and then grades it is grading its own homework — and it passes, every time. Splitting the roles is what makes a no possible.

04The loop

A « loop » is one turn of that machine, run without supervision until it has something to show:

Plan → implement → build → capture → judge → verdict. Then either commit, or return to the plan with the reason.

The plan lives in a single file that is rewritten, never appended — there is one current plan, and the history shows it replaced 340 times. The verdict lives in another, replaced 130 times. Work is grouped into lettered batches: 621 batch commits across 111 campaigns, the busiest day carrying 101.

The gate is mechanical, not a matter of discipline. The flashing script reads the verdict file and refuses to send a ROM to the console unless a passing verdict exists that is newer than the ROM itself. A stale pass counts as no pass, because a capture older than the build shows a game that no longer exists.

0598 notes, 89 of them about being wrong

The project keeps a memory: one file per lesson, written when something went wrong badly enough to be worth never repeating. There are 98. 89 record a failure. They are specific, and they are not flattering:

A lock that always passed green. A verification rule whose search pattern matched nothing at all — so it reported success without ever reading a pixel. A rule now has to be proven red against a known defect before it is trusted.

Cost: every build it silently approved

An engine bug that corrupted every animated sprite. A core function measured in tiles where its caller measured in pixels. Three working sessions went to blaming the artwork before anyone read the engine.

Cost: 3 sessions

An instrument that answered a question nobody asked. A detector reported a confident 780 ms pause in a voice line. It had found the silence at the end of the file. The figure was perfectly correct and completely irrelevant.

Cost: nearly published as a finding

Roughly one lesson for every three working days. That is the actual texture of this way of working: not a prompt and a finished game, but a long argument with a machine that is confidently wrong often enough to need a paper trail.

06What we will not claim

It is tempting to say « this would have taken years by hand ». We cannot know that. Nobody built this game unaided, so there is no control group, and a multiplier invented for a launch page would be exactly the kind of unchecked number the rest of this page argues against.

What the record does support is narrower and, we think, more interesting: the part of the work that grew was not the writing — it was the checking. 34,663 lines of C and 483 generated asset files are a large but ordinary amount of code for four months. 77,790 verification frames are not ordinary at all. That is where the leverage went.

07The part that is not augmented at all

The Virtual Boy is a 1995 console with a red LED display you press your face into. No emulator reproduces how it actually feels — the flicker, the depth, whether a ball stays readable as it crosses a bright wall.

So 118 times, the record shows the ROM leaving the computer for a real cartridge. Someone unplugged it, carried it to the console, put their face in the visor, and played. Every verdict that mattered came back from there.

Made with machines. Decided by a person.