Ten loops and a board
For three months, scheduled Claude Code agents ran my product factory with no one at the keyboard: an idea generator, a scorer, a builder, a validator, a watchdog. 1,012 runs. How the loops fit together, what broke, and three patterns worth copying.
Between May and August a set of scheduled Claude Code routines ran a product factory for me. Ideas went in one end. Live websites came out the other. I mostly read the digest and moved things around on a board.
It's paused now, and most of what it built was programmatic SEO that never had a chance. But it ran unattended for three months, and the plumbing that made that possible is the useful part.
The line
Each loop is one prompt file, one cadence and one job. They share a repo, a state file and a board, and they talk to each other only through files.
| Loop | Cadence | Job |
|---|---|---|
| Brainstormer | daily | Write up to three new ideas against a shared theme. No web, no scoring. |
| Fleshouter | 1 to 2 a day | Research one idea (ten searches, tops), fill every field, score it. |
| Triage | daily | Promote the good ones and keep the build queue at ten. |
| Scoper | daily | Turn an idea into a plan of 12 to 30 small tasks. Never writes code. |
| Builder | 4 a day | Take the next plan to a working site in one session, one PR per task. |
| Executor | twice a day | Follow-up work on existing projects. |
| Auditor | daily | Read one project, file what's wrong, open at most one ticket. |
| Validator | daily | Fix up to three projects that failed the nightly batch. Never fake a green. |
| Nightly stats | daily | Write my digest and check every other loop is still alive. |
| Planner | weekly | Write a retro and regroom the board. |
Everything that merged went out in one daily batch that type-checked, tested and deployed only what had changed. Batching mattered: the loops merged 100 to 200 pull requests a day, and deploying on every merge burned about 200 paid CI runs a day for no benefit.
The numbers over the run: 1,012 run logs, 4,782 merged pull requests, 144 sites deployed, 307 ideas scored.
Three patterns worth copying
1. Write the log before doing anything. Every loop's first act is to write the header of its run log, then check whether another run is in progress, and quit if so. If a run dies halfway, there's a record that it started. Without this, a crashed loop just looks like a quiet day.
2. A watchdog with a heartbeat table. The nightly loop checks when each other loop last wrote a log, against a limit per loop: 36 hours for the builder, 48 for most, nine days for the weekly planner. It exists because the planner skipped three of its first five weeks and nobody noticed. Silent failure is the default for anything scheduled.
3. Score with reasons, and reward honest low scores. Every idea is scored 1 to 5 on seven dimensions, each with one sentence of justification, for a total out of 35. The prompt says it plainly:
A 12/35 PASS with clear reasoning is more valuable than an inflated 24/35 TEST.
Without that line, every idea drifts toward "worth testing".
What broke
The kill switch had nothing to measure. The first design gave every site a traffic target and a kill date, and a loop to enforce them. Analytics were never wired in, so it was killing sites on no evidence at all. In July I retired it and made the factory a build machine, with kill decisions left to me.
The board outgrew everyone. The planner was meant to keep it under about 3,000 lines. It reached 7,182.
Some work had no lane. Ideas about improving the factory itself landed zero times in four weeks: every loop's job was a product, so nobody's job was the factory.
The sandbox has walls. The cloud routines couldn't complete my hosting provider's login, so every deploy had to run from CI instead. One project sat blocked for weeks because outbound requests to its data source weren't allowed.
What I kept
The loops are paused. What survived is the shape: small single-purpose agents, files as the interface, logs written first, a watchdog, and honest scoring. I now run the same ideas one job at a time with two skills, /ticket and /ship, on the one idea that held up: allbutnew.
Drafted with Claude from the factory's prompts, run logs and weekly retros.
Next post
The orchestrator I deleted after a day