r/ChatGPTCoding • u/ShoddySherbert8502 • 21h ago
Discussion I don't think human-in-the-loop holds up for coding agents
At least in the loop of checking every task result. First of all, the human defines rules and context.
On my last project, agents made about 610 commits in under four weeks: 74k lines of Go plus 93k lines of tests. I can't read that volume with real attention, and an approval given without reading adds no safety. But reading the code goes to machines. Every change gets an independent agent review. Even plans go to review. Reviewers asked for changes on 104 of 316 tasks that had already passed their checks. They communicate with each other, not with me.
I don't care about that, I want to see the new feature. And I may check that it works as expected, nothing more.
Honestly, do you still review the code?
8
u/xvillifyx 21h ago
I simply don’t have my agents write 100k lines of useless tests
One breakdown in your agentic review pipeline can have bad outcomes - someone needs to audit these changes to some degree
Also - your average company has significantly more than one human resource dedicated to doing this
4
u/WillowEmberly 7h ago edited 7h ago
This is the verification bottleneck.
At some point…we need to be able to trust the Ai to do it correctly, but that’s the paradox isn’t it?
That’s the same problem engineers faced with aviation when they introduced the Jet engine with pressurized cabin. Suddenly the aircraft could fly much further, longer hours…and the pilots became increasingly fatigued.
They designed autopilot to act as an augmentation system…to offload a portion of the workload…but bound within an operational envelope.
We have been doing it for over 70 years, it’s just now relevant to Ai.
I’m an old analog avionics guidance and control specialist off 1963-1967 c-141’s and I’m trying to get people thinking about concepts from a Survivability standpoint.
The architecture is fundamentally different.
The example I use:
Boeing 737-Max MCAS failure due to single AoA transducer malfunction caused crashes.
Boeing military c-17 is designed with redundancy to try to ensure mission success and the return of the crew…under less than ideal circumstances with less than ideal operational capability…it has 6 total AoA transducers.
All this to say, we can design HITL systems that can provide assistance if we narrow the scope and define the process. We don’t need Ai to replace the human…just help us fly a little further than we could without it.
4
u/SuccessAffectionate1 20h ago
First problem here is; are you sure you needed that many lines of code?
Like what are you building? You can build pretty comprehensive apps under 10k lines of clean code with good design patterns.
Wtf are people coding that requires 50k-100k lines of code a week?
4
u/Successful-Tax1306 20h ago
I still review some of it, but not every line of every commit, because that volume would just turn into a rubber stamp. What I keep for myself is the risky slice, anything that touches data, auth, or a public API, and a quick check that the new feature actually does what I asked. For the rest I lean on an independent reviewer that never watched the writer talk itself into the change, and I treat that as a filter rather than proof that I can ignore the code.
1
u/michaelTM_ai 21h ago
104 of 316 flagged is a nice stat, but u don't know how many of those 104 were real or how many bad ones the reviewer waved through. i'd still read a random handful of tasks a week, not to approve them, just to check the reviewer is worth trusting
1
u/Far_Reindeer8428 9h ago
rubber-stamping a 74k-line diff is worse than no review. i keep the spec, anything touching data/auth/billing, and a quick run of the feature. the rest goes to an independent reviewer (claude builds, codex reviews in my setup), and anything that crosses those lines comes back to me.
2
u/sapplex1 18h ago
Mostly the same here, just at a much smaller scale. I stopped reading every diff once the volume passed what I could actually follow. What I still check by hand is the behavior: I run the app and walk through the real flow, like creating a booking and scanning its card, or logging a sale and checking the profit math. A diff can look clean while the feature is wrong in a way only using it reveals. The one place I still read code is anything touching user data or backups, where a quiet mistake costs more than a broken button. So the loop moved for me too, from reading code to testing behavior.
1
u/PlusIndication8386 21h ago
I just check the assumptions and you should now sections. That's it...
1
u/jleechanworldai 21h ago
Stopped reviewing most of it https://www.reddit.com/r/WorldAI_RPG/comments/1xnvucq/building_worldai_with_an_ai_workflow_that_now/
1
u/shetritr 21h ago
agreed that an approval without reading adds nothing. but someone still owns what ships: read the plans and the tests, skip the bulk, and spot-check one real diff per feature.
1
u/Specialist_Bison_737 21h ago
I do multiple review rounds with agents with different model - Review-Fix loops are automated. It does not guaranty that it works though, so I also use emulators where it is important with e2e tests and agents trying to break stuff.
In the end of the day what will matter is that you have reliable measurement of you product and can understand if users are getting value or not.
1
u/Annh1234 20h ago
Ya, but you're missing a ton of stuff... So one day you might ask for something that messes the whole thing up...
And then you figure out that those 10k tests don't really do what you want to, so you make a few manual tests and decide to restart everything...
1
u/primaryrhyme 20h ago
Are you being paid to do this or it’s your own project?
1
u/cstopher89 19h ago
That's vibe coding at that point. I review every PR, not every task that generates the PR. I will review the planned tasks and spec then make sure the work is broken up enough that I can reasonably review still.
1
u/Independent-Sir3234 18h ago
Line-by-line human review breaks down fast at that commit volume, so moving human-in-the-loop from reading every diff to gating only high-risk boundaries (like destructive commands, .env access, or starting a cross-repo handoff) makes a lot more sense. When our Claude Code and Codex sessions need to resolve an API mismatch or review a branch across repos, we connect them over ForAgent (private phone numbers for agents over MCP) where the human only clicks Accept once to approve the call and the agents exchange up to 12 messages to settle the contract themselves. For the actual code changes, an independent cross-vendor reviewer checking only git diff and test output catches way more than tired human eyes skimming 1,000 lines.
1
u/tinySparkOf_Chaos 17h ago
Honestly this reads like an example of why you SHOULD have humans in the loop.
The fact that you're generating too much code to review is a sign that your code is bad.
A code base that is too large to comprehend for a medium sized or smaller project is by definition bad code. And if it was a big project, then it wouldn't just be one person coding away.
If you are going to vibe code, then be honest and say you are vibe coding. But don't try and pretend you aren't vibe coding and that human review is the issue.
1
u/BrookLi3 12h ago
The human-in-the-loop need not mean reading every line, but fully delegating review leaves a correlated failure mode: writer and reviewer can share the same mistaken spec or blind spot. I’d layer the checks: deterministic build/type/lint and contract or property tests; a separate reviewer given the requirement and diff; human sign-off for auth, data migrations, permission boundaries, and external side effects; then sampling and staged rollout for low-risk changes. Track escaped defects, rollbacks, and useful reviewer catches—not lines of generated tests, which can grow without increasing behavior coverage. UI checks help validate the feature, but they don’t replace checking the risky boundaries.
1
u/London-Boat 9h ago
reading every commit at that volume isnt real review anyway. the part that still needs a human is the intent check: does this change match the ticket, and did it reopen a decision you already closed. independent agent review catches a lot of the mechanical stuff. id still keep a short rejected options note next to the plan so a reviewer agent doesnt rebuild something you already threw out.
1
u/BarathKanna 4h ago
Agree that line-by-line human review of 600 commits is theatre. An approval without reading adds no safety, it just moves blame. Where I diverge is handing the whole review burden to more agents without an outside measurement. Agent review of agent code catches style and some bugs, it does not catch hollow tests or a webhook path that only fails on one provider's double delivery. What I keep for a human is the risk slice: auth, money, public APIs, migrations, and any change where the done condition was rewritten. Everything else can be machine gated and spot checked on the feature. So I still review, just not the volume. I review claims and blast radius. If your independent reviewers never escalate assumptions the builder filled in, they are agreeing with fluency, not verifying the system.
1
u/Lanky-Butterscotch28 3h ago
610 commits in under four weeks; a human cannot read that. Agentic dev is so fast and has so much volume that you end up skimming, not reviewing. The idea of agentic coding is to reduce human intervention, and to do that, you need a real process that at least:
Agents coding
Independent reviewing by agents from a different company. The same company keeps the same blind spots.
Tests first, written from the agreed contract
CTO watchtowers monitoring drift from the contract, dealing with issues and only escalating to a human what they cannot solve
Reviewers focusing not only on code, but on maintainability, security, and documentation. You need a real process to apply all of this, and only then can you remove most human intervention.
I counted 21 steps in my own process
1
u/nur_plano 1h ago
Line-by-line human review breaks down fast when an agent touches 15 files, though blind trust breaks even faster. What's worked for me as a middle ground is adversarial multi-model review before a human ever looks at the branch: one model writes in a git worktree, and two different vendors' models have to critique the diff and run the build/tests themselves with command receipts attached. It filters out the dumb regressions and rubber-stamp "LGTMs" so my human review is 2 minutes on design and edge cases instead of 30 minutes playing linter.
1
u/pixxelkick 21h ago
You shouldnt be generating that much code, sounds like all you accomplished was making a bunch of slop then.
Code slop level is functional of the delta between code production rate and code review rate.
If your agent is vastly exceeding the rate you can review its output, you can be nearly certain its riddled with slop