An unattended agent coding loop
Break a big job into small tasks, then let the loop build them. One model writes the code. A second one, which takes nothing on trust, refuses anything that only looks done.
Code on GitHub The design The diary
How one task runs
- A reviewer reads the task and refuses it if the check could pass without the work being done.
- A builder does that one task alone, in its own copy of the repository.
- A gate runs. It is a command, and its exit code is the verdict.
- A second reviewer, who has not seen the work before, reads the finished change. Only then is it committed.
The backlog is a folder of notes
One note is one task. What you read is byte for byte what the loop reads. Links between notes are ordinary wikilinks, so your editor's graph view is the dependency graph, and the loop writes nothing in a note but its front matter.
Reviews take 70 to 99 percent of the clock. One campaign refused nine tasks in a row and built nothing, for $0.00 — and that was the loop working. The backlog was the defect. The way to go faster is a clearer task, not a faster builder.
What you need
A machine with python3, git, bash and
ps, and command-line access to two different model providers: one that
builds, one that reviews. That is not a detail. The whole design rests on the reviewer
having blind spots the builder does not.
Start with the method
The method is a Claude Code skill, and it is useful on its own — you can slice work into tasks without running the loop at all.
/plugin marketplace add cocodedk/graph-loop
/plugin install graph@graph-loop
To run the loop itself, follow Run it in the README, and read STATUS for what is proven and what is not.