Geeks Invention
Back to Blogs

Day one — shipped

500 hours of engineering. Done in 10.

We handed a product team's entire bug lifecycle to a fleet of AI agents. A bug goes in, a merge-ready PR comes out — and the middle now runs itself.

A product team we work with had been carrying the same backlog for months. Not because the bugs were hard — because the bugs were slow. Every single one had to be read, reproduced, prioritised, fixed, reviewed, security-checked and visually verified before anyone could merge it. Eight steps, each with a queue in front of it.

Today we pointed a fleet of agents at that backlog. Ten hours later, 50 issues were fixed, reviewed and sitting in merge-ready pull requests.

It started as a spreadsheet

The issues did not arrive in a tracker. They arrived in a spreadsheet: 150 rows, inconsistent severity labels, the same bug filed three times by three different people, and a "Notes" column quietly doing the work of six proper fields.

The usual advice here is a cleanup sprint — normalise the data, migrate to a real tracker, agree on a taxonomy, then start work. That advice costs a fortnight before a single bug gets fixed.

We imported all 150 rows as they were. No cleanup sprint, no schema migration, no new tool for the team to learn. Deduplication and severity became the first agent's problem, which is exactly the kind of judgement work it is good at.

Then it became a line

What we deployed is not one agent with a big prompt. It is a line — eight gates, each owned by a specialist that does one job and hands the work forward with something the next gate can use. An agent that only reproduces bugs gets very good at reproducing bugs.

The workflow

Eight gates, one pass.

Six agents on the line. Two gates stay human on purpose.

  1. Reported

    Human

    Someone hits the bug and writes it down — in whatever tool they already use.

    Hands off a raw report

  2. Bug Triage

    Agent

    Reproduces the report, finds the root cause, deduplicates against the backlog and sets a priority.

    Hands off a reproduction and a root cause

  3. Verify

    Agent

    Confirms the report against the live build, so nobody spends an afternoon fixing something that is already fixed.

    Hands off a confirmed, still-live defect

  4. Bug Fix

    Agent

    Branches, writes the fix, writes the test that would have caught it, opens the pull request. Never merges.

    Hands off an open PR with tests

  5. PR Review

    Agent

    Critiques every angle — correctness, scope creep, test quality — and blocks weak work instead of nodding it through.

    Hands off a reviewed diff, or a rejection

  6. Security & Code Quality

    Agent

    The vulnerability and standards gate — injection surfaces, unsafe dependencies, and the conventions this codebase actually follows.

    Hands off a cleared or flagged change

  7. Visual QE Testing

    Agent

    Verifies the fix in the interface a user would see, and runs the nightly regression pass against everything already merged.

    Hands off a merge-ready PR

  8. Merged

    Human

    A maintainer reviews the finished work one more time and merges it. This is the last word, and it belongs to a person.

Every handoff is an artefact, not a status change. That is why the line can run unattended for ten hours without anybody chasing it.

Why two gates stay human

The obvious next move is to automate the two ends as well. We deliberately did not.

Reporting stays human because a bug report is a claim about what the product was supposed to do. That is a judgement about intent, and intent lives with the people who use and build the thing.

Merging stays human because someone has to own what lands on the main branch. An agent that can both write a change and merge it has no gate left above it.

Everything between those two points is mechanical. Mechanical work is exactly what the fleet is for.

Three agents sit beside the line

Not every agent belongs in the sequence. Three of them work alongside it and get called on demand, which keeps the line itself simple.

  • Coordinator

    Routes work between gates, notices when something has stalled, and decides what the fleet picks up next.

  • Product Help

    Answers the question that stops most triage cold: is this a bug, or is it the intended behaviour? Reads the product docs so the line does not have to guess.

  • Tech Help

    Knows the codebase — architecture, conventions, the reason that odd module exists. Keeps fixes idiomatic instead of merely correct.

What ten hours bought

  • 150

    issues imported straight out of a messy spreadsheet

  • 50

    of them fixed, reviewed and PR-ready inside day 1

  • 500hrs

    of engineering work, delivered in 10h on the clock

That 500-hour figure is the team's own estimate of what those 50 issues would have taken them, at their historical pace, through their normal review process. It is the backlog they had been carrying for months.

What it did not do

The honest part. 100 issues are still moving through the line — day one cleared a third of the import, not all of it.

Several fixes bounced at PR Review more than once, which is the gate doing its job rather than failing at it. A handful went back to the human reporter untouched, because the report itself was ambiguous: the fleet is good at fixing bugs and deliberately bad at guessing what someone meant.

And nothing reached the main branch without a person reading it first. That was true at hour one and it is still true now.

The part worth repeating

The team did not change tools, did not clean their data first, and did not restructure how they work. They kept filing bugs the way they always had and kept merging them the way they always had.

The eight steps in between stopped being a queue.

Your turn

Get your own fleet of agents.

  • Whatever you already track issues in — Jira, Linear, GitHub, a spreadsheet.
  • A basic cloud subscription.
  • That is the entire list.
Start a project