This site promises that agents keep working on your software after launch. This is the machinery I built for that — and it was itself built by agents in four days, with every change reviewed by me.
Agent Harness
The control room where my agents work — and wait for my sign-off.
An in-house tool. AI agents review pull requests, fix what they find, keep branches up to date and repair production errors — each in a sealed container, and nothing leaves without my approval.
How it works
- 01
Work that never stops coming in
Pull requests waiting for a review. Errors in production. Branches falling behind while nobody looks. Across several client projects, that adds up — every single day.
- 02
One place that hands out the jobs
Every new pull request and every error alert lands in the control room and becomes a job in a queue. Each night, the foreman also looks for pull requests that have fallen behind.
- 03
Every agent gets a sealed room
Each job runs in a fresh container that’s thrown away afterwards, with only what that job needs. The key to GitHub is never in the same room as the client’s code.
- 04
Nothing leaves without me
A review, a fix or a repaired error waits at the approval gate. I get a ping in Slack and approve or reject it — from my desk or my phone.
- 05
Then it goes back to the team
Approved work is posted where the developers already are — a review with numbered findings, a fix on their branch, or a draft pull request for the error.
- Built by me
- Outside service
- People
Choices I made
- 01
The fixer never grades its own homework
An agent that says “fixed” might only have fixed half of it.
A fix can only mark a finding as “attempted”. Only a fresh, independent review can close it.
The catch Every fix costs one more review — and I start each round myself, so it can never loop on its own.
- 02
Rules in code, not in the prompt
The agents run the client’s own code. Asking them nicely to behave is not security.
Each run is split into sealed steps, and sensitive files — secrets, settings, database changes — are blocked by the system itself.
The catch It’s slower and more complex. The review agents still found ways around early versions — which is exactly why they’re there.
- 03
Try the free way first
Bringing every open pull request up to date with AI each night would cost money every night.
The nightly job tries plain git first and only calls a model when there’s a real conflict.
The catch Approvals expire after five days, and if the pull request has changed meanwhile, the work is done again.
The result
- 4 daysfrom first commit to a working system — written by agents, reviewed by me
- 1,193automated checks that run before any change goes live
- 4kinds of agent work — review, fix, catch up and repair errors
- Neverdoes an agent merge or write to the main branch — that’s a hard rule
Under the hood — for the technical reader
Stack Next.js · TypeScript · Bun · PostgreSQL · Docker · Claude Agent SDK
Control room 2026
Dashboard, admin login with 2FA and the webhooks for GitHub and Sentry, behind Caddy.
Next.js 16 · React 19 · Tailwind 4 · Better Auth · GitHub App
Queue & worker 2026
Jobs live in Postgres — SKIP LOCKED to hand them out, LISTEN/NOTIFY to wake the worker, no Redis. The worker runs the nightly schedule and expires old approvals.
Bun · PostgreSQL 17 · Drizzle ORM
Agent sandbox 2026
A per-job runner image chained across several containers, so tokens and untrusted code never meet. Every agent must return a structured, validated result.
Docker · Claude Agent SDK · Codex CLI · Zod
Approval gates 2026
Hard floors — never merge, never write to main, force-push only with a lease — plus per-repository policy and budget limits, with Slack notifications.
TypeScript · Slack