Product spec
A junior engineer who only works nights, on one repo, and isn’t allowed to click merge.
Who this is for
- A team of two to eight whose branch protection is “Priya notices.”
- A solo maintainer whose scheduled build (docs, data refresh, release smoke test) shows up red at breakfast.
- Open-source maintainers, on their own branches. Running an agent on untrusted fork PRs is a different threat model (see traps).
A night
Monday, 18:40. Dana pushes a refactor to
feat/date-ranges and logs off. The nightly suite runs at 02:00.
02:14. Two tests fail and the agent goes to work in its container.
02:24. The suite passes. PR #413 opens against Dana’s branch, and a one-line summary lands on the failed run.
09:03. Dana reads a seven-line diff, asks for one rename and merges. The failure lasted seven hours and took four minutes of a person’s time.
Another Monday. A flaky S3 timeout. The agent can’t fix it, says so and sends a diagnosis. Even when healing fails, triage works.
What it never does
- Merge. The route prompt and
approvals.denyboth enforce that (setup, stage 5). - Push to the broken branch. Fixes go to a new
ci-heal/*branch. - Edit tests to pass (trap 2).
- Retry. One attempt per failure. Flakes get reported.
- Cover more than one repo. Routes can, but earn trust on one first.
Success rate
It fixes mechanical failures with a clear stack trace and a test that fails locally. It misses flakes, CI-versus-sandbox drift and design disagreements. My guess: about half of failures end in a PR and half in a good diagnosis. I haven’t measured it. If your failures are mostly the unfixable kind, build only the diagnosis half.