portfolio-press · applied-AI lab
counted 2026-10-02 · nothing estimated

A spec goes in. A reviewed pull request comes out.

Agents plan, implement, run the tests and open the pull request. A reviewer from a different vendor reads the diff and posts findings. Fix rounds land, CI runs, and then a person clicks merge. The human writes specs and clicks merge. The human does not write the code.

The verification ladder this loop is built on runs on AWS: Bedrock writes the draft, a Lambda gate recomputes every quoted figure against its source, Step Functions holds the run until a person approves it, DynamoDB journals the tokens and the cost, S3 takes the published report, and CloudWatch carries the cost of a run.

One real pass, start to finish

A single specification on 4 October 2026, in UTC, with nothing left out of the middle.

12:43Spec pull request merged, 101 lineshuman
12:44Developer round created and leasedfactory
12:49Two commits; the local gate runs 3,402 tests and 4 typechecks, all greenagent · GPT-5.6
12:53Pull request opened: 17 files, +338 / −13factory
12:55Review round opens; 13 findings posted inline at 12:56rival model · Claude Opus 5.5
12:57Fix round answers all 13; commit at 13:04, a reply on each finding at 13:06agent
13:13Second review of the fixed code: 12 further findings, verdict “ready”rival model · Claude Opus 5.5
—CI: 7 of 7 greenGitHub Actions
16:41Mergedhuman

Spec to open pull request: ten minutes. Spec to merged code: four hours, of which the person spent minutes.

Throughput

22 April to 2 October 2026.

Specs written794
Pull requests opened by the factory440
… merged420
… merged by a human clicking the button418 of 420
Agent rounds run1,686
… of which developer / reviewer / analyst882 / 763 / 41
Green on the first CI run80% of 237 branches
… in the main repository90%
Merged spec to merged implementationmedian 60 h
… shipped inside a day58 specs
Model cost per round≈ $2.49, upper bound

The gates, and what they caught

Reviewer findings3,037 in 705 reviews
… of them concerns1,291
Fix rounds after review, CI or a conflict410
Rounds that claimed “already satisfied” with no change, refused by the guard35
Reviews ending in “merge”471 of 705

A product this loop actually ships

A daily astrology product: a site in four languages, a social feed and a video channel, built and published by the same machinery.

Pull requests merged, 26 July to 1 October150 in 68 days
Green on the first CI run77 of 93 branches
Checks every push must pass643 flat + 422 tests
Longest fully autonomous publishing run19 days
Longest run of published days by any means54 days

The gate on every push: linting, a language rule, 643 flat checks, 422 tests, and a census of outbound calls that fails the suite when a new one appears unregistered. The nineteen autonomous days ran site, feed and channel with nobody pressing anything.

What runs through it

Counted on 2026-10-06: every pull request opened on a factory/* branch, broken down by repository. 433 pull requests in the ten repositories below, 414 of them merged. This is a breakdown, not a second total: the 440 above was counted four days earlier and also includes the one-round repositories excluded here.

The first row is more than two thirds of that count, and saying so is the point. The factory mostly builds itself: 300 of the 433 are its own code, reviewed by a model from a rival vendor and merged by a person. What the remaining rows show is that the same loop was pointed at nine other things without being rebuilt for them.

the factory itselforchestrator, runners, cockpit, the reviewer's rulebook300 / 28427 Apr → 5 Oct
the specification repositoryevery spec is its own pull request; the count mixes specs with status changes57 / 5621 May → 23 Aug
a voice front-end for coding sessionsspeech in, speech out, prompter, call transcripts; in daily use throughout31 / 2916 Aug → 3 Oct
a daily astrology productengine, narrator, voice and publishing to a site, a feed and a channel in five languages29 / 294 Aug → 11 Sep
the essays sitecodecot.com5 / 518 May → 10 Jul
a video publishing executorupload, quota handling and its own journal4 / 423 Apr → 27 Apr
a calendar watcheralerts on what the calendar is about to do3 / 323 Apr → 4 Jun
shared media toolingthe toolkit the media pipelines import2 / 27 Jul → 12 Jul
this showcasethe ladder on AWS, these pages; only factory/* branches count, so the hand-run gcp/* and vitrina/* branches are not here1 / 123 Aug
a karaoke studiostems, vocal recording, a mixer1 / 120 Sep

Three edges, so the number is not read as more than it is. 19 of the 433 were closed without merging. The specification repository's count mixes real specs with status changes, so it is not a count of specs. And 13 further repositories received exactly one round each in late April, when the loop was pointed at each project to write its description from its own code: that is a round, not a project built through the loop, and it is excluded from the rows above. Private projects are described rather than linked, because the loop holds write access to them.

Defects, both lists

A gate is only as good as the list of what it missed. Both lists are kept for this product, with dates and commit identifiers; what follows is every entry, described without the internals.

Caught before publication

2026-09-07Two stray files left at the repository root by a careless copythe outbound-call census, by file count
2026-09-07A missing helper that only the linter sawlinting in CI
2026-09-19Two pull requests, each green alone, red together on the main branchCI on the main branch
2026-09-15The suite wrote seven fake users into a live databasea test that failed on one machine and not the others
2026-09-26An inserted word in the day's generated audio, flagged at 08:31the voice gate, by transcribing the audio back
Sep 2026Horns on three of the illustrated figures; an arrow pointed the wrong waya person looking at them before publication

Reached production

2026-08-13 → 09-17The morning digest window was zero length, so every morning reported a quiet sky for 35 days. Two tests had certified the bug.a person noticed a real eclipse day being reported as quiet
2026-09-26 → 09-27The forecast announced a lunar eclipse that did not happen, in four languages, on the site and on two channelsfound on 1 October while answering a viewer's comment; the videos were made private the next day
2026-09-26Preparation failed its voice gate and the rails published anyway, twice, because silence was treated as consentthe same investigation
2026-08-28A title longer than the platform accepts, rejected with an empty error bodythe upload failing
2026-09-30 → 10-01Credit ran out and the owner was paged every fifteen minutes, because the alert remembered only the most recent faultthe owner, asking it to stop
Aug 2026A guest's English city resolved to a village in another countrythe guest reported it

The eclipse is the one worth reading twice. The engine returned a full moon and no eclipse flag; the text announced an eclipse anyway, and the rails published it because a failed preparation had been treated as consent rather than as a stop. It was found by a viewer's comment, six days later. And the 35 quiet mornings are worse, because two tests had certified them: a green suite looks exactly the same whether it is testing the thing or testing its own mistake. That is why the gate on this site recomputes figures from source rather than asserting that someone checked.

What failed

127 of 882 developer rounds failed. 51% were infrastructure: a round that read its spec from the wrong commit, branch races, a dirty checkout. 25%, about 32 rounds, were the agent producing no change on a fresh spec. (The 35 guard refusals above are the guard’s own count, not a share of these 127 failures, so the two are not expected to match.) 6% were timeouts. None failed on an ambiguous specification. Two defects that escaped to production were certified by tests that tested the wrong thing, which is the failure worth losing sleep over, because a green suite is exactly what it looks like.

Where to look

All four open with no account and no login.

← the loop these numbers come from you are here · the factory on one page next: work with us →