Skip to main content

LLM as a Judge: Did the Coding Agent Actually Fix It?

LLM as a judge: complete coding fix evaluation workflow

You give a coding agent a bug and say, “This is the problem. Fix it.”

The agent works on it, changes a few files, and comes back with “Implemented.”

Okay, good. But did it actually fix the problem?

You can run the application, open your browser, and try the behavior yourself. You can also run automated tests. Another check we can stitch into that workflow is an LLM as a judge.

Let’s reason this out.

We give the LLM an output, a rubric describing what good looks like, and evidence. It assesses where the result meets those criteria, falls short, or still needs verification.

1. Start with the issue

The user describes a login bug, the coding agent works on it, and the agent produces a proposed fix.
Describe the bug → coding agent → proposed fix.

Say you enter the wrong password, click Log in, and the loading spinner keeps spinning.

You ask the coding agent to fix it.

The agent returns a change. That gives us something to assess.

Define what “fixed” means

Before accepting it, we put together what “fixed” should mean:

  • A wrong password shows a clear error.
  • The spinner stops when the request finishes.
  • You can correct the password and try again.
  • A correct password still logs you in.

That is our rubric. Notice the last check: fixing the broken path should preserve the path that already works.

2. Give the judge something to assess

The proposed fix, rubric, and evidence feed the LLM judge, which produces findings for each requirement.
Proposed fix + rubric + evidence → judge’s findings.

Now we stitch together three inputs:

  • The proposed fix: what the coding agent changed.
  • The rubric: what a successful fix must achieve.
  • The evidence: what was actually checked.

The evidence might include code changes, automated test results, or a recording of the login flow.

The judge dissects that material and marks each check pass, fail, or unable to verify, with reasons.

Keep the evidence visible

Suppose a test shows that the spinner stops. Good. But if nothing checks whether the user can retry, that requirement still needs verification.

Reading code and watching the application work provide different kinds of evidence.

A useful assessment makes those limits visible. “Looks good” alone doesn’t tell us enough.

3. Compare the findings

Judge findings and human findings meet in a comparison, leading to acceptance or further investigation and another fix.
Compare both reviews, then accept the fix or investigate.

Next, you try the login flow yourself and compare your findings with the judge’s, using the same rubric.

Imagine the judge says retrying should work, but you discover that the button stays disabled after a failed attempt.

The spinner is fixed; the user is still stuck.

Now we have a gap to dissect. Did the judge miss something? Was its evidence incomplete? Did the requirement need a clearer check?

Human review can miss things too, so a disagreement is a reason to investigate.

We send the specific failed check and what we observed back to the coding agent, then assess the next fix.

4. Stitch the whole workflow together

Complete workflow from user request through coding, judging, human comparison, and acceptance or a feedback loop for another fix.
The complete workflow, including the feedback loop.

This is the full connection: describe the issue, produce a fix, assess it against the rubric and evidence, compare findings, and decide what still needs work.

One thing to keep in mind

You can use the same LLM to review its own work, but it may repeat the assumptions it made during implementation. A separate review can help; it still needs evidence.

The rubric can be precise and testable. The LLM’s judgment can still be wrong.

For me, the useful part is that pause after “Implemented.” We put together our expectations, dissect the result, and verify the behavior.

“Implemented” gives us something to assess. Evidence helps us decide whether the fix works.

Comments

Popular posts from this blog

How To Use Traefik as a Reverse Proxy for Docker Containers (One Docker Host)

 Learn how to run multiple applications on one docker host with Traefik Reverse proxy

I Am Perete Harrison

There comes a time when a person needs a proper home on the internet. Not just a social media account. Not just a company profile. Not just posts scattered across different platforms. A real place. A place where thoughts, work, ideas, lessons, experience, projects, writings, and personal reflections can live together in one public space. That is why I created this website. My name is Perete Harrison . I am a DevOps Software Engineer, Software Architect, AI Engineer, founder, builder, and problem solver . I am the founder of Atop Web Technologies , Perete Web Technologies , and other ventures I have co-founded. Over the years, I have developed a deep interest in, and practical experience across, the full lifecycle of web services and applications. This website is my personal space. It is where I will write about software engineering, DevOps, cloud infrastructure, AI, system architecture, automation, backend systems, frontend systems, performance, deployment, technical problem-solving,...

Software Development Is Now AI-Native Product Engineering

  Believe it or not, traditional software development is almost dead. Software development is heading toward AI-native product engineering: smaller teams, faster prototypes, more automation, agent-assisted delivery, heavier emphasis on quality control, and a stronger need for cloud, DevOps, and security discipline. The future stack is no longer just apps plus cloud. It is apps, cloud, automation, observability, security, and AI agents working together. AI is now embedded into development, infrastructure, security, and operations. One thing we have observed at Atop Web Technologies is that AI agents are now part of the team. Chatbots are almost dead. Companies are no longer just asking for chatbots; they are actively building and deploying agents that can support real workflows, engineering teams, operations, and product delivery. Personally, I have moved from coder to AI orchestrator. I now spend more time coordinating AI agents, reviewing output, setting architecture, deciding wha...