What a run looks like
- You write a task file. It says what to change, how to tell it worked, which checks must pass, and how much the run may spend.
- An agent does the work in an isolated copy of the code. The run never touches your own checkout.
- Two reviewers read the result in parallel. They are read-only and come from different vendors, so one model's blind spots are not also the reviewer's.
- A fixer addresses what they found, and the reviewers look again. The bar is zero critical or high findings.
- The project's own checks run: tests, linting, types, whatever the task file names.
- A person gets one pull request, with the evidence attached, to approve or reject.
A run ends in one of two states. It is done, or it is parked and waiting for a person with a written reason. It parks when it reaches its round limit or its budget.
The rules it is built on
- Silence is not approval. If a reviewer could not be heard from, the run parks. It does not count as a pass.
- One run produces one pull request. Nothing merges without a person unless the task file says so.
- A fixed failure becomes a test, and the test's filename is the lesson.
- Unknown cost is reported as unknown. If any part of a run's spend was not measured, the total says so and does not show zero.
- Money is reserved before it is spent. The reservation is written to disk before each child process starts, so a crash cannot hide a charge.
Where it came from
Spren is the third version of a system I built to run my own software projects. The first was about 12,000 lines of shell script and cost roughly $360 a run. The second was a deliberate cut-down of the first. Spren is a clean rebuild from a written specification, designed to be open-sourced.
I care about this for the same reason I care about operations. The interesting question about AI agents is not whether they can do the work. It is how you would know the work is right, and what it cost, without watching them do it.
Where it stands
- Pre-alphaRunnable, no release yet
- 90+Pull requests merged
- 22Of those landed by running Spren on itself
- AGPL-3.0Licence when it opens
It is early. Some of those self-built changes needed finishing by hand, and each time that happened it went into a findings log that feeds the next round of work. The repository is private while I finish cleaning it up for release.