How a request flows
Persisted, then queued
The request and its first job are written in one transaction. A worker claims jobs with
SKIP LOCKED, so a restart never loses one.
Tool calls
The diff (and which payments, auth or migration files it touches), test results, incidents in the last 30 days, and the service tier.
The LLM advises
Gemini or Ollama returns a risk score, level, reasons and confidence as validated JSON. Timeouts, 429s and bad output fall back to a rule-based assessor.
Rules decide
Failing tests reject. Tier-1 production, high risk, low confidence or a Friday-evening deploy wait for a human. Everything else auto-approves.
Engineering highlights
Never less strict than the rules
Every LLM assessment is merged with a rule-based baseline: the higher risk and the lower confidence win.
A persisted state machine
Every state is stored in Postgres, illegal transitions are rejected in code, and pending work resumes on startup. A timed-out approval escalates; it never auto-approves.
Append-only audit trail
Tool calls, raw model output, fallbacks, policy decisions and human actions are recorded in a table that a database trigger keeps append-only.
Built for free tiers
It runs in 512 MB on Render with Neon Postgres. The health check never touches the database, and a CDS archive shortens cold starts.
Measured
Try the demo scenarios
In the demo, click Load demo scenarios, then open one. You can approve, reject, or ask the agent a question, which re-runs the assessment.
| Scenario | What it shows | Outcome |
|---|---|---|
| Docs typo fix | A small, green change to a tier-3 service | Auto-approve |
| Risky payments change | 400+ lines of payments code and a schema migration, after a recent incident | Needs a human |
| Failing tests | A red CI run is rejected before anyone looks | Reject |
| Tier-1 production | A trivial UI change, but to a tier-1 service in production | Needs a human |
| Low confidence | A broad refactor with thin evidence | Needs a human |
| Friday evening | An otherwise safe deploy inside the freeze window | Needs a human |