[ ../ ](/) # On Building AI Systems That Don't Eat You Alive Slow enough to follow. Fast enough to ship. How a strict loop, a JSON backlog, and a forced review pass turned autonomous coding from anxiety into leverage. Gas Town and the 20-agent swarm crowds miss something obvious: humans become the bottleneck. When you're juggling two dozen Claude Code instances, you can't actually follow what's happening. You're along for the ride, hoping the factory doesn't disembowel you. That's not autonomy I can trust. "Too fast causes anxiety and loss of control. Too slow causes boredom and disengagement. The sweet spot is just barely above your ability to intervene." A day or two for a project is the right tempo. It gives you space to do other things, let the system run, and check in with enough context to redirect. If it's been coding for 48 hours and the direction is wrong, you can stop it and pivot. Nothing is a total loss yet. ## The backlog inversion Free-form AI coding turns you into the project manager: breaking down tasks, checking completeness, deciding what's next. The AI is smart, but you're doing all the orchestration. A backlog inverts this. The AI pulls tasks, completes them, and then — crucially — runs a review pass that either adds new work or marks the project complete. The review pass behaves like a senior dev: read the whole repo, check against source specs, decide what's missing. Only the review pass can append the project-done marker. When every task is explicit and every update flows through a schema, you get traceability for free. No task can sprawl because each iteration has a single objective. You can always answer: what changed, why, and in which iteration? ## The five rules of the loop 01 — One task per iteration No partial work, no multitasking, no drift. 02 — JSON backlog as source of truth The plan and the audit surface are the same file. 03 — Schema-driven updates Every change flows through jq. Nothing is implicit. 04 — JSONL logging Replay, diff, and measure every run. 05 — Forced review pass A senior-style gate that either adds work or marks the project done. The rule is boring on purpose. Boring scales. If you're building with AI, don't give it free-form leeway. Give it: - \* A backlog — so the work is explicit - \* A schema — so the updates are mechanical - \* A review gate — so completion is honest The magic isn't in the model. The magic is in the constraints.