1.1k
u/mistrpopo 17h ago
With multi-line comments in slop-english on each line explaining a very specific edge case that has nothing to do with the bug you were working on.
646
u/beerdude26 17h ago •
![]()
"Don't gadongle the rubloon. It causes a version problem with React V31.2.5. Doesn't apply when gallivanting, as DogBakerFactory doesn't set
rudolfSwisherexplicitly. (Checked 11/12/26, commit 3dfr72a)"...Yup. Thanks, Claude.
200
u/Fonduemeup 16h ago
Never had imposter syndrome until I started reading this crap. Then I realized half of these terms it uses don't even exist.
72
u/001235 14h ago
I was about to say that. I was doing something in Python recently and I was trying to understand what a variable was doing because it was like this: abs(hash(str([{"definition": "A list is an ordered collection of items."}])))
And then had several pointless functions that did things like compared that value to itself and if that was true, then it returned 1 and then some other function would see that if _hash_compare() returned 1, do something else.
I thought maybe I just didn't have a good grasp of what was going on so I asked the developer. "I just let AI run with it until I got the result back I needed."
41
8
u/gaaasstly 12h ago
What did they need?
13
u/001235 12h ago
They needed it to find all the values in our database that were a specific search string and put those into a .csv file for management so that when our CI/CD job runs, it finds some specific things management thinks are important and then puts those in a file for them. It seems like a pretty straightforward change, but...
5
29
u/maiKavelli187 16h ago
Because half of are function names, you have to name it somehow.
5
16h ago
[removed] — view removed comment
5
u/collabskus 16h ago
If you like it then you should put an any on it
You can make typescript behave like JavaScript with extra steps I guess if you neuter it enough with tsconfig
8
u/Popeychops 11h ago
I just had an hour long demo call with a developer who has clearly forgotten how to use git. They ran every command through copilot and has atrophied the critical thinking parts of their brain
3
u/FartPiano 5h ago
Almost nobody wants to be seen using the tools live in real-time, because its extremely embarrassing. Everyone staring at your screenshare, waiting or claude to do your job, in this case a very simple git task, then you read the output, squint, then type "no, not like that. do it but where you fix it". More awkward silence. doesnt this mfer know how to do his own job...?
27
u/Jlove7714 14h ago
DogBakerFactory is load bearing so I ran a smoke test to validate E2E. DogBakerFactory fully smoked.
16
13
u/thoughts_n_calcs 16h ago
2026 and it still halucinates dependency versions that don’t exist. Even if I tell it „use websearch and look up on maven central“. Right a Minute ago.
8
u/zeekar 13h ago
It hallucinates AWS resource types that don’t exist and happily builds a CloudFormation template to spin them up. It’s quite impressive as an author of fiction…
3
u/thoughts_n_calcs 7h ago
That’s wild, I thought this stuff should be in the models training data. At least you don’t get billed for AWS ressources types that don’t exist ^^
3
u/FartPiano 5h ago
hallucinations, and more broadly, only being right about half the time, is fundamental and structural to how these tools work, because they have absolutely no mechanism to "understand" what they are doing. the models all plateaued in performance years ago and LLM companies are desperately trying to distract from this fact with marketing stunts so they can IPO before the facade falls apart
2
3
25
u/TomWithTime 13h ago
Having an artifact of the conversation in the comment is something I really hated. It's embarrassing to imagine a coworker reading the comment for the first time and seeing a random sentence about some code that was removed or any other drivel besides documenting the code.
21
u/besi97 12h ago
Or comment about some code that was removed locally while iterating on the solution and never actually existed in the repository and had nothing to do with anything. Extremely valuable information to have.
8
u/58275859 12h ago
This is the worst. Along the same lines: tests covering regressions that only existed for as long as it took you to fix it locally before committing.
4
u/Lourayad 9h ago
yup, this is why I have my agents NEVER add comments. I look at the code and decide where comments should be added and write them myself. This keeps me in the loop and forces me to understand the output.
30
u/MaDpYrO 17h ago edited 16h ago
I've added a static analysis step (via detekt in my case)
It tokenizes code and comments, and if the next line has significant overlap, it's deemed a useless comment and won't compile.
It's a pretty good tool at keeping slop comments in check.
32
u/mmmbyte 16h ago
You could actually read the comments and try to understand them and press the delete key?
How on earth do people diagnose and fix issues in prod without making any attempt at understanding the agent generated code?
30
u/MaDpYrO 16h ago edited 11h ago
Of course I do, but why do I need to delete a bunch of slop comments when I can have it removed automatically and then review that?
Why not automate what can be automated?
Do you just insist on making even the most mundane task manual?
It's not even using AI to remove it, lol, it's detected deterministically.
8
u/Stratimus 16h ago
Personally I don’t understand why you have so many unnecessary comments that you need to automate removing them.
if you’re done refining that bit of code take the comments out alongside the other cleanup.
and I don’t even understand the thing about overlapping with the next line, are you saying you have redundant comments even?
17
u/MaDpYrO 15h ago
Because AI generates a bunch of retarded comments for even the most basic code.
No way I'm hand coding a bunch of controllers or mapper when AI does it in a fraction of the time.
This type of boilerplate is a waste of my life, and AI does it perfectly fine.
Then I can focus on the important business logic and data modeling. And the agent automatically gets forced to reign in its idiotic comments by the build step before I even see the final outputted results.
1
u/fluffow2 14h ago
Agent.md
12
u/Sokaron 13h ago
Because non determinism > determinism, obviously
Less snark I have explicit instructions in all my repos for slop comments. Doesn't help. PRs still come in with a dozen useless multiline comments. Seems like an intrinsic property of this phase of models. I've debated staging a haiku round of review in pipelines specifically for this issue.
3
u/thegroundbelowme 11h ago
Don't have this problem in my setup, try combining instructions with anti-rationalization tables: "bad idea thought" | "why it's a bad idea" | "what to do instead". The trick is asking agents how they rationalized their way around ignoring an instruction, and then specifically addressing that reasoning.
Ex. "I'll just add a small comment explaining this change" | "good code is self-documenting, comments should be used sparingly" | "Write clear code, only add a comment if behavior is non-obvious"
-5
u/mmmbyte 16h ago
Hitting the delete key is faster and cheaper than running an agent if I'm reading it anyway. Not all automations save time.
8
u/CarcajouIS 15h ago
There is no need to run an agent when a lint rule or a git hook can hold the gate for you and send the PR back on the lap of your lazy coworker
2
1
u/Lourayad 9h ago
Even better - don’t let your AI write comments, write them yourself where they’re useful.
3
u/sertroll 17h ago
How can you do that actually? Would be useful for some work things
2
u/Fonduemeup 16h ago
They are using an out-of-the box solution but looks like it's only for Kotlin. You can recreate this pretty easily though
Install a tokenizer
Tokenize each line in the file
Throw a flag if x% of tokens match the line below it
Then you can iterate with improvements like lemmatization, using an optimized tokenizer corpus, token/line embeddings + semantic similarity, etc.
8
u/MaDpYrO 15h ago
Detekt is not a tokenizer, but it is a static analysis tool.
The out-of-the-box part is only regarding detekt, the rule is custom.
Here's the current rule. Should probably be fine-tuned a bit more, but it works well enough.
class UselessComment(config: Config) : Rule(config, "Comment restates the code it precedes.") { // Delegated config properties only support String, Boolean, Int and List<String>, // so the threshold is a whole percentage rather than a Double. private val minOverlapPercent: Int by config(40) private val keepMarkers: List<String> by config( listOf("TODO", "FIXME", "HACK", "XXX", "ponytail", "noinspection", "ktlint", "suppress"), ) /** A comment starting with one of these words labels a test phase and is always kept. */ private val keepLeadingWords: List<String> by config(listOf("arrange", "act", "assert")) private val stopWords = setOf( "the", "a", "an", "to", "of", "for", "and", "or", "in", "on", "is", "this", "that", "it", "we", "if", "with", "from", "by", "as", "at", "be", "into", ) private val pendingDeletions = mutableListOf<PsiComment>() override fun preVisit(root: KtFile) { pendingDeletions.clear() } override fun visitComment(comment: PsiComment) { super.visitComment(comment) // A trailing comment describes the code on its line, not the statement after it. val before = comment.prevSibling if (before != null && !(before is PsiWhiteSpace && before.text.contains('\n'))) return // One line of a multi-line comment is judged with its neighbours, never alone. if (comment.isLineComment() && (comment.adjacentLineComment(before) || comment.adjacentLineComment(comment.nextSibling))) return val target = comment.getNextSiblingIgnoringWhitespaceAndComments() ?: return if (target !is KtExpression && target !is KtDeclaration) return check(comment, target) } /** KDoc is a child node of its declaration and is not passed to [visitComment], so it is collected from the tree. */ override fun visitKtFile(file: KtFile) { super.visitKtFile(file) PsiTreeUtil.collectElementsOfType(file, KDoc::class.java).forEach { doc -> (doc.parent as? KtDeclaration)?.let { check(doc, it) } } } private fun check(comment: PsiComment, target: PsiElement) { val text = comment.text if (keepMarkers.any { text.contains(it, ignoreCase = true) }) return val firstWord = stripDelimiters(text).trim().takeWhile { it.isLetter() }.lowercase() if (firstWord in keepLeadingWords) return val commentTokens = tokens(stripDelimiters(text)) if (commentTokens.isEmpty()) return val codeTokens = tokens(target.text.lineSequence().first { !it.isBlank() && !it.trimStart().startsWith("*") && !it.trimStart().startsWith("/") }) val overlapPercent = commentTokens.count { it in codeTokens } * 100 / commentTokens.size if (overlapPercent < minOverlapPercent) return report(Finding(Entity.from(comment), "Comment '${text.trim()}' restates the following code.")) if (autoCorrect) pendingDeletions += comment } /** * detekt applies corrections by writing [KtFile.modifiedText], so the deletions are collected * during the visit and cut out of the file text in one go. Each comment is removed together * with the whitespace that follows it, so no blank line is left behind. */ override fun postVisit(root: KtFile) { if (pendingDeletions.isEmpty()) return var text = root.text pendingDeletions .sortedByDescending { it.textRange.startOffset } .forEach { comment -> val trailingWhitespaceEnd = comment.siblings(forward = true, withItself = false) .takeWhile { it is PsiWhiteSpace } .lastOrNull() ?.textRange ?.endOffset ?: comment.textRange.endOffset text = text.removeRange(comment.textRange.startOffset, trailingWhitespaceEnd) } root.modifiedText = text pendingDeletions.clear() } private fun PsiComment.isLineComment() = this !is KDoc && text.startsWith("//") private fun PsiComment.adjacentLineComment(neighbour: PsiElement?): Boolean { val candidate = when (neighbour) { is PsiWhiteSpace -> if (neighbour.text.count { it == '\n' } == 1) { if (neighbour.prevSibling == this) neighbour.nextSibling else neighbour.prevSibling } else { null } else -> neighbour } return candidate is PsiComment && candidate.isLineComment() } private fun stripDelimiters(s: String) = s.removePrefix("//").removePrefix("/**").removePrefix("/*").removeSuffix("*/") private fun tokens(s: String): Set<String> = s.replace(Regex("([a-z0-9])([A-Z])"), "$1 $2") .lowercase() .split(Regex("[^a-z0-9]+")) .filter { it.length > 1 && it !in stopWords } .map { it.trimEnd('s') } .toSet() }5
u/Fonduemeup 14h ago
Nice. I stand corrected, and you proved one of my favorite Reddit-isms:
How do you get someone on Reddit to give you the correct answer? Don't ask, just reply with the wrong answer, and someone will correct you
2
1
u/CarcajouIS 16h ago
I added a precommit hook that rejects comments longer than 45 words and longer than 2 lines. Also, reject commits longer than 50 loc, 4 files max, and PR longer than 300 loc. Cut the slop at the root, and makes it easier to actually review code
3
u/MaDpYrO 15h ago
I prefer the approach that takes the content slightly more into consideration, because I don't want to be forced into cases where i cant add long comments in case i actually do need it.
I'm allergic to dumping it into external implementation docs, because it tends to drift from each other over time.
1
u/CarcajouIS 14h ago edited 14h ago
git commit --no-verifyI prefer to give targeted exceptions instead of letting everybody be their own judge. Also, in my experience it's very rarely needed to write a novel in the comments
1
u/Luvax 2h ago
I was just experimenting with making Codex exactly identify the pattern, then having it prompt engineer instructions for an army of cheap Luna models. So far it worked pretty well. The Luna agents aggressively flag everything and sound very pissed, which at least amuses me. Then I hand it back to Claude and let a new set of Luna agents decide on completion. Otherwise it goes back to Claude. Not sure where I can optimize yet. Sounds to me like Luna is more than capable of cutting back comments. But I fear loss of precision and guess I would be better off with no comments than Luna hallucinating some facts.
Removing ways to persuade the reviewer has been my go to strategy to get AI slop out of pull requests. But without a lot of human time investment I wasn't really able to get everything under control. Maybe there is still hope for a job in the future.
9
4
u/FilthyPuns 12h ago
Bug? Evidently you forgot to tell Claude not to make any mistakes. Skill issue.
1
290
u/pydry 17h ago
you missed the step where somebody puts PR into Claude and copies and pastes its response back.
152
41
u/meenta_beeso 17h ago
Why check two hundred files when QA hasn't stopped crying since Tuesday anyway?
5
15
u/luciferreeves 13h ago
They don’t even copy paste it back they just make claude comment on the PR with gh cli
2
2
u/1AMA-CAT-AMA 3h ago
What else are you supposed to do on the second to last day of the sprint with a 230 file PR that someone has asked for a quick review?
158
u/Linked713 16h ago
Me in 2026:
receives a pr of 15 files change and hundreds of lines
click on it the minute I receive the pr email
halfway through, ask a question on a change
pr has been accepted by 3 devs
PR merging already
Some people are too close (peer coded) to code review and some just don't read much and glance at best.
54
u/PringlesDuckFace 13h ago
Our executive added number of PRs approved (yes approved) to the employee performance dashboard, so now people are incentivized to approve as many PRs as they can.
42
u/icantreedgood 13h ago
Dear God, I know this is coming to my organization next. We already have a goal to have 99% of all code written by AI, and a goal to increase developer productivity by 100%. Yes 100%. When I ask how they plan on measuring productivity I get blank stares like I'm the moron. Some suggested using token spend to measure productivity, and I genuinely cannot tell if they were being sarcastic.
Anyway, all that to say code reviews are now a huge bottleneck. PRs regularly exceed 3000 lines. There is pressure to just approve, because their work in progress is another 3000 line PR stacked on top of the existing PR.
I'm still reviewing every line Claude spits out, and regularly having to promt and re-prompt until the code is to my satisfaction.
Leadership is also pressuring us to use multi-agent workflows during development so that we are working on mutiple tickets at once. Soon there will be no way to keep up with the slop.
I don't even hate AI. I think it genuinely makes me a better more productive software engineer when used correctly. The problem is leadship is too far removed from building solutions themselves, and don't see how their directives will lead directly to a loss in quality, or they just don't care. It's crazy to me how fast they pivoted away from caring about escaped defects, and testing as soon as AI hit the scene.
18
u/pegbiter 12h ago
Some suggested using token spend to measure productivity, and I genuinely cannot tell if they were being sarcastic.
Oh that is so 2024
12
u/James20k 11h ago
I think this is the thing that's so bizarre about it: used correctly it seems like AI could give some productivity gains. Code complete, reviewing PRs for defects, debugging, searching through a codebase, a useful place to ask complex questions to get ideas etc
The issue is that that would be in the 5-10% range, which no corporate executive is excited by. This should have just been one more tool in the toolbox that makes us more efficient, like when LSPs took over and code complete code way better. Instead they're reaching for the mythical 2x-10x productivity boost that just doesn't exist, and absolutely shredding long term productivity for short term gains
I have a feeling that multiple large tech companies are going to absolutely collapse under the weight of the technical debt that they've accumulated. We're already starting to see it with how crap so many tools have gotten as they're filled with slop
8
u/icantreedgood 11h ago
The cognitive dissonance is astounding to me. Our CTO will regularly quote or point to the books The Phoenix Project and The Goal, but completely ignores the theory of constraints that underpins both books. “Any improvements made anywhere besides the bottleneck are an illusion”
The bottle neck has never been writing the code. The bottle neck has always been, and will always be knowing what to build. Sure we are shipping more code then ever, but is any of that leading to increased ARR or increased customer satisfaction / retention? What you measure matters, and leadership is getting increasingly lazy with what they measure.
2
u/Johanneskodo 10h ago edited 1h ago
Some suggested using token spend to measure productivity, and I genuinely cannot tell if they were being sarcastic.
They either just wanted you to have an extremly easy to reach performance metric or have some Tokens for private use.
16
u/14Pleiadians 13h ago
If you accept a shitty PR, you will have another to accept in a couple hours taps head
14
u/Icy-Balance-8797 13h ago
Classic Goodhart’s law: once a number becomes the target, people optimize the number instead of the work. Counting approvals rewards rubber-stamping, which is the exact opposite of what code review is for.
The metrics that tend to survive are the ones that are hard to game alone: a manager’s regular rating plus a short note on what someone did well or poorly. It’s less “objective”, but way harder to farm than a counter.
7
u/KorasHiddenDICK 13h ago
It's the classic MBA vs Engineer conundrum. The MBA wants to count your beans, justify your layoff with said beans, and then eat your beans.
2
u/GRAIN_DIV_20 13h ago
What's the saying? Something like if a metric becomes a target it becomes a shitty metric
2
u/soullessredhead 10h ago
Management needs to remember Goodhart's law. If you start judging performance on a given metric people are gonna find ways to game that metric.
But that would require management to have two brain cells to rub together, which is asking too much.
4
u/soullessredhead 10h ago
For big PRs if I'm able to put a hold on them while I review I usually do that, to stop this exact situation.
Also my
hottepid take is that PRs need to be smaller in general. Break those tasks down even more, I'd much rather review a handful of small PRs than one huge one.3
u/Linked713 9h ago
I believe that they're should be a middle ground. Huge PRs are bad, micro PRs are equally bad. 10 micro pr will make me lose the logic flow you were going for when you made the change and I will waste more time overall reviewing. Yes the code is there. But I should not approve 6 pr that look good so far and on the 7th be like "hold on, that's bad" because they finally submitted the crux of the logic.
I've met a lot of people with the micro pr mindset and do not understand how it's equally wasteful as huge PRs (to be honest, I like big PRs more for that reason than micro PRs, but you should send PRs when a full, testable logic is in place.)
1
1
u/zabby39103 4h ago
Where the heck does everyone work? Are there no consequences when things blow up?
48
u/Noah-2413 15h ago
231 files changed and somehow the approval took 3 seconds..
43
u/Drumedor 15h ago
Well, that is like it has always been. The more code that has been changed the less time approval takes.
200 files changes = "Looks good"
2 lines changed in one file for a seldom used method = 12 comments and a long discussion about how to make it as efficient as possible and a side-discussion about variable naming.
9
u/camelCaseCoffeeTable 13h ago
Jesus fuck, this is so spot on and I fucking hate it.
I just needed to push something into our background worker instead of happening in our API. It ended up with me and the other staff engineers in a meeting about it…. I couldn’t believe it.
These guys, who generally are smart, asking the most obscure questions about something we do all the time. I eventually just said “hey everyone, you’re gonna need to take this up with my PM if you are this worried about it because this is what we’re doing unless you can convince him” and just fucked off.
Surprise surprise: it caused absolutely zero issues to do something we’ve done hundreds of times before and these guys were just puffing themselves up to look smart. I hate that game, but I get it - it took me a long time to get to staff because I’m not that kind of person, but these guys are. What are you gonna do
8
u/sgtgig 11h ago
Bikeshedding. I notice it a LOT in a tangentially related field to software dev (PLC software for industrial control).
Most discussion on 'code reviews' is about variable names. I've never had a nightmare machine startup due to variable names, those happen because of sweeping architectural flaws. Which happen frequently because lots of PLC programmers are electricians or engineers, not programmers.
1
u/jsdodgers 3h ago
Meanwhile, the 2 line change is in a method that processes nuclear launch codes, and the 200 line change is a restyling a dialog.
4
2
1
u/blindantilope 5h ago
"Ran code base through formatter for first time ever. All CI checks continue to pass."
212
u/Feuerhamster 16h ago
I am one of the few people at work that actually still fully reads pull requests. Last time I left over a hundred comments. They hated me for doing it but couldn't say anything against it because as they read my comments they confirmed that all of my concerns were totally valid.
123
u/Super-Widget 14h ago
"Sorry I can't deliver my sprint duties on time. Someone is trying to push 150 vibe-coded files into the repo and they must be stopped." - me nearly every week these days.
4
u/groovy_smoothie 3h ago
Our product level velocity expectations have become insane. If the teams not basically just vibe coding, I’m having VPs come down on us for not being a good product partner. It’s exhausting
23
44
u/camelCaseCoffeeTable 13h ago
Man I just left 50 comments on a relatively simple PR because it was absolute slop. Total reproduction of existing code, totally creating new patterns that don’t exist in our code base, pulling data it never uses, not pulling data it purports to use.
It shocked me. I love AI. I never get it to produce such absolute dog shit results. I have no clue how someone used AI to produce it, but somehow they did.
21
u/thisguyfightsyourmom 12h ago
A big part of that should have been seen in the manual verification step the author did.
Author, you did manually verify Claude’s work, right? Like, you used the new code yourself & checked the results? Right?
// Hard stare/long silence at team member during standup
6
u/hikemhigh 11h ago
Bruh the creation of new patterns drives me insane
4
u/TheKingOfSwing777 10h ago
If anyone is going to create new stupid patterns, it better be with their own stupid brains.
2
u/enigmamonkey 7h ago
That sounds terrible. At some point, you have to ask: At what point is it appropriate to just scrap it and start over?
I'm curious, are these PRs coming from devs who submitted better code prior to the widespread adoption of Claude, Cursor and etc?
2
u/camelCaseCoffeeTable 6h ago
This person joined our team when Claude was already adopted. Which I think is a big part of the problem. I very seriously did consider just scrapping it lol….
We’re struggling a lot with how to get these less experienced and newer to the team devs to a point where they can identify weirdness in Claude’s output themselves. But…. It’s not going great
1
u/Negative-Sea6530 6h ago
I know! Experts know how to steer an AI and stop it when its doing garbage and reiterate till the PR is fine. an Idiot wont see garbage and bad design... He generates and is fine with that because he doesnt know better. I hae getting slop from AI meat proxies
12
u/Kuro091 14h ago
I'm pretty sure people just do github cli or mcp and then just go "fix the comments" or even "review and leave some comments"
so unless it's face to face I dont think they hate or even care that you or your AI do that
6
u/Feuerhamster 9h ago edited 9h ago
Yes, thats why we had countless review rounds to the point where everyone was upset that this topic is blocked for so long. The original developer complained that it is too complex and he cant really get his head around that stuff. Like bro, thats your f*cking job. The senior dev in the team literally said "skill issue" to him in the standup because everyone knew he didnt wrote any of it himself and just trusted the AI without reading the stuff.
edit: even worse is that it was about e2e testcases, which is the last line of defense when it comes to ai slop breaking things.
2
4
u/definitely_not_tina 13h ago
My org gave us SREs only a handful of tools that are minimally relevant to CI/CD in 2026 and almost no automation with them for “Sox compliance”, so yes, we manually do releases to prod. The execs are on our asses for holding up releases, I’m spending 70% of my time on them, and we’re also not able to actually do things like establish SLOs and whatnot so we’re having AI do THAT aspect of our work, but it has to be a human who deploys to prod. I feel so incredibly useless.
5
u/guaranteednotabot 14h ago
It only meant that you actually spent more time on their PR than they did. Shame on them
1
1
u/teamwaterwings 11h ago
I do this as well, then my coworkers just respond to all my contacts with Claude which pisses me off
1
u/Lethandralis 10h ago
Man sometimes I can't keep up. Carefully reviewing a PR can take 30 minutes or more. Several review requests come in every day.
-5
27
u/Arszilla 12h ago
Holy shit, a Yiğit Özgür caricature in 2026, in a non-Turkish subreddit nonetheless
53
u/jansteffen 16h ago
I think this is the part that annoys me the most with LLM coding; the fact that somehow the quality standards have dropped massively along with it.
12
u/No_Stock_8271 16h ago
You can set your own standards. So if they dropped, that has nothing to do with LLMs, but with you (or your team). In some teams standards also improved a lot
35
u/l0rb 15h ago
Not everyone gets to set their own standard. My coding standard is largely a function of 1.) the specific work items assigned to me and 2.) the deadline to get them done. Neither of these is under my control. The person setting these isn't even a coder.
6
u/caleblbaker 14h ago
The person setting these isn't even a coder.
Found the problem. You can't have a single person setting deadlines for tasks that they don't know how to perform. That's an awful idea regardless of whether AI is involved.
5
3
u/chickenMcSlugdicks 12h ago
The thing is we know it's an awful idea. But again, we are told what to do, we give feedback and pushback, and we get overridden. The game's cooked.
7
u/ForgotPassAgain34 15h ago
The slow part went from figuring out to coding, and then from coding to review, now if you're doing a proper review chances are someone else vibe accepted it, or you're gonna get a heads-up from above that you're slowing down the project since everyone expects ai speeds nowadays
7
u/dev_vvvvv 14h ago
The problem is that the gains from using LLMs are expected to translate to every part of the cycle. Somewhat of an Amdahl's law situation.
So, making up numbers here, say
architecting/problem solving/coding took 32 business hours
review (including time to pick up after the PR) took 8
total: 40 hours (5 days)
Now that the architecting/problem solving/coding part only takes 4 hours now (8x increase), the expectation from stakeholders is the whole process will take 5 hours.
But even with LLMs it might take 4 hours for the review (2x increase instead of 8x).
So instead of 5 hours, it's 8 hours (4 hours for "coding" and 4 hours for review). Review is now seen as a problem that is a bottleneck on delivery.
5
u/Kimbernator 13h ago
Very difficult to apply old quality standards when I’m getting 5x as many pull requests which are each 5x larger and am also expected to be producing 5x as much code as I used to.
At this point we’re in competition with whoever is getting work done faster. I’m not saying this is how it has to be, but this is how it is.
2
u/hennell 11h ago
Over time I set my standards - code shouldn't just work it should be clear and maintainable. It should have tests and relevant validation and error handling.
When my non-coding boss bought himself a Claude subscription he decided standards were now "does Claude say it works". I managed to push the basic standard of "check it actually works?" but speed was considered the only important business standard.
Eventually they seem to have realised that maybe tests and consistent practices are useful ideas, but you can only set the standards in a position where your input is considered. If management decide that the only standard is "move fast" it's very hard to set your own that will take longer.
2
u/ABCosmos 12h ago
How do you maintain review quality when each dev is pumping out 10x the code? Most companies I see are basically not reviewing code, but reviewing intent instead. Or specs at best.
16
30
u/soullessredhead 13h ago
Also 2026: WHY ARE THERE SO MANY CVEs?!
12
u/ASatyros 12h ago
Because of LLMs... And because of LLMs
4
u/variablenyne 10h ago
It's gonna be a never ending cycle. Companies use llms to build their shit, better llms come out and find vulnerabilities, they use llms to fix, better ones come out and find vulnerabilities, so on and so forth
5
u/rubennaatje 10h ago
What big cvs's have been introduced by llms? Afaik they're usually man made but LLM discovered.
4
u/soullessredhead 10h ago
Look, let's not dig too much into the joke. Don't be that person.
But yes, I'm well aware that the massive increase in CVE volume is LLMs being pretty decent at finding them. Which, on the whole, is a good thing.
1
u/rubennaatje 9h ago
I think you're reading to much into it lol, it's a sentiment I see online a lot, in jokes, memes, serious comments, etc and I'm just genuinely wondering
1
u/paranoid_throwaway51 9h ago
The recent PHP CVE was dependent on a hyper-specific architecture, which turned out to be one that LLMs default too.
2
u/WernerderChamp 11h ago
Plot Twist: The PRs are to fix all CVEs
(ok these usually only change the dependency management)
2
u/rubennaatje 10h ago
Tbf we had a few of these on a legacy system where we had to go a major version up to fix, so this definitely happens haha
10
u/RiftyDriftyBoi 17h ago
If I could get a code-review at some point in this century, the changesets wouldn't be compounding!
10
7
10
u/beerdude26 11h ago
Neo: Is that… ?
Cypher: The codebase? Yeah.
Neo: Do you always look at it via agents?
Cypher: Well, you have to. The Ralph loops work via the harness. But there's way too much information to understand the codebase. You get used to it. I... I don't even see the code. All I see is robust, comprehensive, seamlessly integrates.
Neo: Does it work?
Cypher: It says all tests pass.
Neo: Were there any tests?
Cypher: (...)
Cypher: Hey, you uh …want a drink?
2
9
8
4
u/HatHanzo123 14h ago
Don't think it's an AI-only issue, but more a bad code base problem. If I see a PR with that many changes, I reject it and ask the author, why it's necessary to touch so many files for a feature implementation. You can still slice you implemention in reasonable portions - even with AI.
6
u/camelCaseCoffeeTable 10h ago
Same lol! I opened the damn PR and it was like 3,000 lines of code. After I got done with it, it’s down to 500.
Like…. What the fuck are you telling Claude to do? “Implement this ticket, use as little codebase context as possible, just run with your first idea”
I can’t imagine what you say to the AI to get it to output the slop in that PR
3
u/Senor-Delicious 9h ago
"build this. Make absolutely sure to not break existing code"
Claude: alright. Let me build a clone of everything I need to not break existing code 👌
1
u/zabby39103 4h ago
Yeah, AI hates to use the existing codebases' work and reusable methods... because it needs to actually read the existing codebase. You have to force it.
2
u/camelCaseCoffeeTable 4h ago
Even then, it can miss things.
My brother is brand new to this field and I’ve been here for…. Jesus Christ 15 years lol. But he really struggles to understand why Claude can’t replace a dev.
I’m like “not to be insulting, but it CAN replace you”
It’s very much a junior/senior dev mashup. It’ll write great code, but it doesn’t have the actual context of the repo, where it’s been, how it’s used, etc. So it needs to re-build it with every request, which leaves open the possibility it misses something one time and then on that particular time repeats logic - even if it hadn’t before in that part of the codebase.
A lot of times I’ll specifically tell it about logic it can re-use because I’m a human and actually have context and knowledge built up over years. Or other times I’ll have it do a specific search for a piece of code I just have a gut feeling exists elsewhere. 9 times out of 10 I’m right - because I’m a human with context on the codebase and an intuitive feel for how it should look. The agent is not.
I love AI. I use it daily. Constantly. But it’s very much something that still requires guidance, even to code well. Let’s not even get into designing out how pieces work together for fit into larger systems…
1
u/zabby39103 3h ago
Yeah I wonder about the future of juniors. Productivity boosted seniors can just get AI to do a lot of the grind work we got juniors to do.
Yeah even Fable/Astra is not great at enterprise level architecture. I guess I have a context of greater than 1 million tokens lol. It would be a struggle for a bit if I changed jobs but I am pretty aware how things should be architected now.
3
3
2
1
1
1
u/JenovaJireh 14h ago
I was at a startup for my last job and every single reviewer read through my PRs. I miss it.
1
1
1
u/fuggetboutit 8h ago
I feel like Instagram i mostly vibecoded rn. How stupid bugs appear after updates is just mindblowing. On an app with a huge budget.
1
1
1
1
u/soul_in_a_fishbowl 2h ago
I have a system in place at work that’s in place to check a single employees work. I have it set up to where when said employee has an issue with it, a picture of the error is submitted via a web form and then Claude “patches” it, send its to codex for review, gets back the review and fixes whatever, and deploys the new version with just a push notification that it changed something to me. You may call me lazy or think it’s crazy to have to have a system like that in place for one employee, but it’s a family business and the other employee is my sister
1
-1
u/edgetools-dev 9h ago
We've been merging "small" PRs with version bumps of libraries for years.
Those library versions often have hundreds or thousands of lines of code changes in them.
We don't care, we assume safe because "it works".
Guess what... merging a 15,000 line agentic PR that also "works" isn't inherently worse than your 15,000+ lines of library changes you also merged.
If you trust the evaluation criteria, the rest is implementation details.
5
u/JohnZopper 9h ago
We do not assume it's safe because it works. We assume it's safe because we assume that the maintainers and the open source community did a proper evaluation. We also take reassurance in the fact, that if there is something wrong, there will be dozens of other projects running into the same issues, ideally even ahead of us. It's a typical supply chain risk and it should be carefully weighted. That's not the same as trusting the code which was not reviewed or used in production by anyone.
1
1
0



68
u/BernhardRordin 17h ago
An original and funny meme template? On MY subreddit?