Both versions of this RowClear were written entirely by LLMs. Only the harness differs. The hare got one sentence — Make a falling-block puzzle game in HTML — sent to Sonnet 5 at extra-high reasoning effort. What came back is what you're playing. The tortoise got a methodology: a seed sentence fed into two tools I've been building, vend (turns intent into a reviewed backlog) and lisa (turns a backlog into shipped code) — 27 stories, 54 tickets, and 79 commits in a day. Both artifacts are frozen as their process produced them. This page is the scoreboard.
Day One Goes to the Hare
The day-one numbers defy the methodology brochure. The hare's single response is 844 lines in one file, no dependencies, and complete: 7-bag randomizer, hold, ghost piece, next preview, soft and hard drop, wall kicks, pause, levels, touch controls, reduced-motion support. Six words bought all of that.
The tortoise, after its first morning, played a solid RowClear with no ghost, no hold, no preview, no pause, and no clear animation. Each sat in its backlog as an open ticket. When this page first went up, the one-shot was the better game. Anyone selling an agentic methodology without admitting this curve is selling something. (The retrospective below tells what happened next; the day-one standings were real.)
The Machinery, Briefly
You don't need these tools. You need the two ideas they encode.
vend plans. I steer it with sentences; it proposes epics and decomposes them into tickets with dependencies. Its proposals earn no free pass: each runs automated review gates before I see it — read-never-invent (claims about the codebase must come from reading it), fork-genuineness (choices offered to me must be real alternatives, not rubber stamps). My job shrinks to steering and assenting.
lisa executes. It schedules concurrent agent sessions across the ticket graph. Every ticket passes through six phases — research, design, structure, plan, implement, review — and each phase leaves a document in the repo. Forty-two tickets have their own folder of artifacts. I wrote none of them.
In one day this produced thirteen pure logic modules, each with a paired test file; 169 tests running in under two seconds; more test code (2,231 lines) than production code (1,412); and a seeded RNG with a determinism test. The seed is load-bearing: it makes the suite possible and gives an AI player a seam to drive through. The hare has 844 lines that work until you change them. No test has ever touched that file.
Drift Is the Norm
The seed sentence promised "deployed live to Vercel." The shipped game runs on Cloudflare Workers. That gap is the most instructive thing on this page.
First, the mechanics. vinext is Cloudflare's Vite-based, Next.js-compatible runtime: it builds the same App Router code with Vite and deploys it to a Worker with one command. Why prefer it here? Everything else in this experiment already lives on Cloudflare — the portfolio site embedding these games, the zone serving rowclear.b28.dev, the security headers that let the embed work at all. Vercel would have meant a second platform, a second account, and a second deploy story for one demo. Moving put the whole experiment on one stack.
The move took one sentence. vend decomposed it into an epic — six tickets across three stories: install the toolchain, wire the config, verify the build, lint, and full test suite under the new runtime, retire the Vercel wiring, generate the Workers config, bind the domain. The game code did not change, and the tests proved it. An infrastructure migration went through the same discipline as a gameplay feature and cost me the sentence that requested it.
This matters because drift is not a failure mode. It is the norm. However good the initial idea, the spec will move — the prompt was ambiguous, the real need surfaced only once something was running, or someone asked "can we make a tweak?" A one-shot freezes its guesses at the moment of generation. A pipeline treats revision as ordinary input. The strength on display is not that the seed was right — it wasn't — but that being wrong cost a sentence instead of a rewrite.
The Headline: Effort per Ticket
Don't measure this in tokens; the compute is amortized under a flat plan. The scarce input is my attention.
My contribution so far: one seed sentence, some steering, and yes/no calls at forks. Across 54 tickets, my effort per ticket approaches the cost of stating the wish. The process per ticket is heavy — six phases, five documents, tests, review — but the weight lands on the machine. The methodology doesn't reduce the work. It relocates the work off the human.
This week I added ten feature requests: ghost piece, hold, next-piece queue, pause, row-clear flash, and an attract mode in which a planner plays the game on the start screen. Typing the wishes was my whole involvement; vend turned them into fifteen scoped, ordered tickets. Now run the counterfactual for the hare. Ten requests means ten prompts — then what? Ten new 844-line files, none sharing code? Or re-prompting the old file and hoping the model edits eight hundred untested lines without breaking the wall kicks? Feeding requests into a system is easy. Making something from ten single-shot falling-block puzzle games is not a workflow. The hare has no backlog. It has a ceiling.
Scoring at Day One
For a small, famous, well-specified program — and the falling-block puzzle is the most famous program shape there is — one shot of a frontier model goes astonishingly far, and the methodology's first day reads as overhead. The axis that matters is not time-to-first-playable. It is what each further feature costs you. On day one the hare wins every visible measure. By feature request ten, one contestant accepts wishes as input and the other is done growing.
Retrospective: The Second Lap
The fifteen tickets cleared the same day: six hours, 42 commits, the suite grown from 169 to 302 tests with the day-one tests still passing. My share of those six hours was the ten sentences that started them. Effort per ticket is no longer a bet. It is a measurement.
The tortoise's pane above now opens in attract mode — the planner playing on its own start screen. How the feature landed is the exhibit. The seeded RNG made the game simulatable; the pure modules made placements enumerable; five small tickets composed them into a placement seam, a heuristic, a planner, a driver. To add the same feature to the hare, you would first extract its logic from the 844-line file. That is not a feature request. That is a rewrite.
The lines crossed in a day, not in the second week I had braced for. The tortoise is now the better game, and it demos itself. The hare keeps one honest advantage — touch controls, in the file since minute one. Day one goes to the hare. Every day after goes to the contestant with an intake.