How a run goes
- Improve the prompt. One model call rewrites your request into a clearer specification with acceptance criteria and edge cases, and the result is saved to the chat.
- Three candidates. Each gets its own git worktree, branched from where your chat’s checkout is now, and works from the same specification. One failing does not stop the others.
- Review. A reviewer opens all three worktrees, reads the code, and decides: use winner (one is clearly best) or synthesize (the best answer combines pieces), with a confidence from 1 to 10 and a rationale.
- Apply. The winner is applied to your project, or for synthesize an agent works in your project to merge what the reviewer asked for.
- Verify. Your test and build commands run on the result.

The reviewer's verdict between three candidates. Example data.
How the winner is applied
This step touches your files, so it is deliberately cautious. Applying a winner does not copy the candidate over your project. It takes only the candidate’s changes and applies them as a patch withgit apply.
For each git checkout in the candidate (the project root, or each nested repository), the workflow computes everything the candidate changed since it started, committed or not, as a binary-safe diff from the point it branched. It leaves out gitignored files and the .env files that were copied in so the candidate could run. It then checks every patch against your project before applying any. If any patch would not apply cleanly, nothing is changed and the step fails with a message saying so.
Several things protect your own work:
- Only files the candidate changed are touched. Your other files, and anything the candidate did not modify, are left alone.
- Paths outside the project are refused by
git applyitself. - The step refuses to run unless the destination is your chat’s checkout (never
/or your home directory) and the source is one of this run’s candidate worktrees. - Nothing is committed. The changes land as ordinary uncommitted edits, and the step finishes by telling you to run
git statusandgit diff.
rsync --delete or rm -r, but this path is an agent making edits rather than a patch, so review it as you would any agent’s work.
Inputs
The defaults assume an npm project, so set both commands for anything else. They run only after the result has been applied.
Cost and clean-up
Three candidates cost roughly three times one implementation, plus a review. The candidate worktrees stay on disk under~/.reliant/worktrees after the run so you can look at the losers; remove them from Workspaces when you are done.