Skip to content
Geeks Invention

AI Delivery / Autonomous bug resolution

Bug backlog work, from triage to reviewed pull request

QA files the ticket exactly the way they do now. An agent reproduces it, traces the root cause and writes it up. Someone on your team confirms the diagnosis. Then the fix, the code review, the security scan and a real browser test all happen before one of your developers opens the ticket.

The backlog problem is a throughput problem

Most defect backlogs are not full of hard bugs. They are full of ordinary ones that nobody has had a spare afternoon for. The ticket sits there, the reporter loses interest, and eighteen months later someone closes it as stale without ever finding out whether it was real.

What makes this expensive is not the individual fix. It's the context switch. A developer halfway through a feature picks up a two-year-old ticket, spends forty minutes reconstructing what the reporter meant, finds the cause, writes six lines, and has lost the thread of what they were actually building. Do that often enough and velocity on the roadmap quietly halves.

The work that eats the time is reproduction and tracing, and that part parallelises well. So we moved it off your team.

How the workflow runs

Nothing changes for whoever files the bug. Same tracker, same template, same fields. The workflow attaches to your existing tracker and picks up tickets according to a priority order you set.

Triage

A triage agent takes the ticket and tries to reproduce it. When it can, it traces the behaviour through the codebase and writes up a root cause: the mechanism, the specific files, the specific lines. When it cannot reproduce the issue, it says so and lists what it tried, which is more useful than it sounds. A ticket that cannot be reproduced from its own description is a ticket that needs a better description, and knowing that early saves everyone the argument.

The human gate

The triage write-up goes to your team, and the workflow stops until somebody confirms it. This is the one step we won't automate. A wrong root cause is worse than no root cause, because the fix built on top of it looks plausible, passes review, and puts the bug somewhere new. Confirmation usually takes a minute. It's reading, not investigating, because the investigation has already been done and written down.

Human gate: your team confirms the root cause before any code is written.

Fix, review, scan, test

Once the diagnosis is signed off, a developer agent writes the fix against it, following whatever conventions the surrounding code already uses. A separate reviewing agent then goes over the change against the confirmed root cause and the repository's standards. If it fails, it goes back to be rewritten, and that loop runs without anyone being notified.

Security and vulnerability analysis runs on the diff. Every diff, including the one-line ones, because a dependency bump hidden inside a small fix is exactly the kind of thing that gets waved through.

Then a testing agent checks out the branch and verifies the fix in a real browser by using the feature the way a person would. It also does a regression pass over whatever sits next to the change. This isn't a snapshot diff — something actually clicks through the flow and looks at the result.

The pull request

Only then does a PR open, and it opens for your engineers with the triage write-up, the review notes, the scan result and the test evidence attached. A person reads it. A person merges it. There is no route to your main branch that goes around a human.

What you get

  • Tracker integration with Jira, Linear, GitHub Issues or Azure DevOps.
  • A written root-cause analysis on every ticket, whether or not it proceeds to a fix.
  • Pull requests in your repository, in your conventions, with test and scan evidence attached.
  • A list of tickets that could not be reproduced, and what was tried.
  • An audit trail of every step, readable while the work is happening.

What this doesn't suit

Worth saying plainly, because the coverage claim converts worse than the honest one. This workflow is weak on anything that can't be reproduced from the ticket, on race conditions that only appear under production load, on defects whose cause lives in a third-party service you don't control, and on tickets where the real question is what the product should do rather than what the code does. Those come back to a person. The service earns its keep on the reproducible, well-scoped majority of a typical backlog.

A note on review load

The constraint on this service is not how fast fixes can be produced. It's how fast your team can review them. We size the intake to what your engineers can absorb, batch the pull requests rather than opening them one at a time, and work down a priority order you control. A queue of unreviewed PRs helps nobody.

In practice

Placeholder — real figures required before launch.

Enterprise platform

The situation: A defect backlog growing faster than the team could work through it, with every sprint losing time to regressions.

What we did: Wired the resolution workflow into their existing tracker. QA kept filing tickets exactly as before.

Outcome: TO SUPPLY: bugs resolved per day, sustained over what period, backlog reduction, review time per PR

Questions we get

Won't this flood us with pull requests to review?

It would, if we opened them as fast as they were ready. So we don't. Work runs against a priority order you set, and PRs are batched rather than fired off individually. The review load is the real constraint on this service, not the fix rate, and we size the intake to whatever your team can absorb in a week.

What about bugs that need a product decision?

Those come back to you at the triage gate rather than getting a fix written against a guess. The triage agent is good at establishing what the code does and where the behaviour diverges from the ticket. It cannot tell you which behaviour the business wanted. When that's the actual question, the ticket routes to a person.

How do you avoid fixing the symptom instead of the cause?

The human confirmation gate exists for exactly this. The triage output names the files and lines and explains the mechanism, and someone on your team signs off before any code is written. A reviewer who disagrees with the diagnosis rejects it there, which costs a minute, rather than after a fix has been built on top of it.

What kinds of bug is this not suited to?

Anything that can't be reproduced from the ticket, race conditions that only appear under production load, bugs whose root cause sits in a third-party service you don't control, and anything where the fix is really a design change. Those still need a person.

Try it on one week of your real backlog

Pick the tickets. You'll see the triage quality and the review load before committing to anything longer.