Not only is it even faster, they now disguise themselves to look like professionally written PRs with advanced understanding of the tech, while being filled with junior level bugs. So you have to super scrutinise it.
Which makes me wonder what the point of even taking PRs is, the reviewer could just run the AI themselves and do the same review but not have to go through the process of leaving comments and waiting for the submitter to resolve them.
I'm imagining a funny possible outcome of this: Code linters/formatters get abandoned so personal style quirks can shine through, making code look visibly "not AI". If the quirks are consistent then it could also hint against it being faked.
I'm old enough to remember the global melt down in 2000ish and 2008. Oh and 1991 in the UK - lol, that's when I graduated. Take your money out of AI and stuff it under the mattress (gold if you are a magpie or blue stocks).
I have actually just spent out on a fairly handy GPU to stuff into one of our backup boxes at work. It has gobs of RAM and a fairly useful pair of CPUs and sits idle during the day.
AI via LLM is a thing but it isn't worth silly money and I think that a wind of change is on the way.
All these GPUs have to be used for something, if it's not AI then its bitcoin, if its not bitcon it's NFTs, if its not NFTs then its Porn.
This is a hardware driven bubble that will mutate into the next big computing hype. Server farms have to be doing something because they cost money. So whatever the next big hype is, big-tech will jump on the bandwagon.
OSS maintainers may need some kind of response like the one I've written here that can be strategically dropped on the worst "bad AI" contributions. I certainly wrote this for myself to make my job easier, anyway.
Maybe the decent comments hadn't had time to bubble upwards yet. HN is a relatively higher quality online forum but... I still only expect half the commenters to have read the full post.
I'm curious to hear what rationale you partly disagree with.
I wonder why we haven’t seen AI weaponised in the opposite direction yet? Say, a bot with a prmpt like “criticise this PR into oblivion” let loose on AI-generated PRs. The “contributor” is supposed to address the concerns but will they be able to?
Why developers should invest THEIR money? Maybe let vibe coders pay?
Look at this - https://github.com/n4si/kubernetes/pull/1 -
devin-ai-integration wants to merge 10,000 commits, 5000+ files changed. This is not some random user of
Devin AI, this is a part of paid promotional video, demonstrating "a nice PR" (quote from https://youtu.be/OIomeLQmf-4?t=219), solving "real life problem" (sic). Now let's say, user pays $$$ according to formula of cognitive load added (both for human and CI). A single PR like this would cost as much as "oops, Netlify just sent me a $100k bill", but this time without a refund.
1. I wonder if it would be more effective or land better if it didn’t mention AI at all. You’re not rejecting because of the tools they used, you’re rejecting because it’s a poor request.
2. I’d suggest an addition along the lines of “by the way, since I’m not seeing anything here that would make me think that there might just be some misunderstandings, this request makes me trust you, individually, a little bit less than I did before, and that will be reflected in how I address future requests from you. Happy to chat about it though. Please remember that trust is what makes all of this work.”
On the flip-side of this, have had friends have their MRs against projects get "reviewed" by CoPilot which does a lot of unnecessary nit-picking and can often be incorrect at it. I get it helps project maintainers save time, but it just feels very dismissive to have your code be thrown to a robot to critique and comment on.
I hope to get automated CR bots in my org working soon. But with 2025 capabilities it should definitely only be brief feedback that people can choose to ignore.
I would just create an agent that provides the reviews. Instead of saying "your MR meets some of the criteria I have in this blog post", the agent can point very clearly at the exact criteria and how the merge request meets them, and can even make improvement suggestions. At the end, the author would review the AI generated review, to make sure everything sounds (and is) right. AI can be used in good ways, and bad ways. Show them the good way.
Based on personal use there's no way 2025 capabilities would do a good job of that task. I hope to get automated CR bots in my org working soon but today, it should definitely only be brief feedback that people can choose to ignore.
> Merge Request (MR): when a programmer submits proposed changes to a project in a structured way. This makes it easy for anyone to see the differences and review the changes. Sometimes called a Pull Request.
Ok, maybe I’m in a bubble, and my job is only coding-adjacent, but I’ve literally never heard a PR called an MR until today. Is this a new thing?
Mitchell Hashimoto did the same thing with Ghostty and I respect the decision. AI assistance is okay but writing slop with little to no effort to understand it simply to get a badge that you've contributed to OSS is a waste of time for everyone.
If it’s a low risk site (marketing page), I’ve been blindly approving them so that the engineer can go and fix it when prod breaks. Submit unreviewed garbage, get unreviewed garbage. I am not your quality gate keeper.
Sounds like you're in a fairly unusual position if you're the one in charge of accepting PRs but the people submitting them are the ones who care about uptime/quality.
Always fine to ask that question anywhere, in my opinion!
Good to note: contributing to code projects also occurs in closed source, big orgs. The same tools are used. My cases for example are from government and our projects usually aren't open source.
>How can my feedback improve you as a software developer if you don't understand your own code?
Just say that you don't want my code, better yet just silently reject it.
I don't want a moral referendum about how my code shall be the mana by which all future reviewers and practitioners of the art shall sup and become enlightened. Group education isn't my job as someone submitting a PR to fix some trivial shit. Sometimes it doesn't need to be smart, sometimes it doesn't need to be a learning experience by which we all grow.
Throw out the garbage, keep the good stuff, and appreciate the attention to the project. Be happy that someone wants to help.
If you don’t care about the reason for rejection, you don’t have to read it. Many people will ask for a reason and take even more of a maintainer’s time, so writing once and linking helps.
> Throw out the garbage, keep the good stuff, and appreciate the attention to the project
The garbage in the case of an AI generated PR, is all of it. I will happily reject all of your slop and every future contribution from you if you can't follow the project's contribution guidelines.
If you don't like that, that's what forking is for.
> Just say that you don't want my code, better yet just silently reject it.
Not only I don't want it but I have some ideas what you can do with it and wher this code can go. Also, the code is not yours. I can generate the same amount of garbage as you myself using the same tools, and it will also not be mine, yet I stop myself from doing it, because more garbage is the last thing this world needs.
> Be happy that someone wants to help
How full you must be of yourself to consider pointing an LLM towards a repo as helping.
Must have been very difficult to point Claude towards a repo and trash code goes brrr, something that every person with a pulse can do.
And I shudder at the the entitlement to think that OSS maintainers have to thank you for your godly prompt and 0 amount of effort.
> The garbage in the case of an AI generated PR, is all of it.
I promise you that you have merged PRs with AI generated code and/or comments. You just couldn't tell because the contributor wasn't a lazy idiot and actually thought about how to use the tools at their disposal to do good work like a professional.
I swear if we left things to you people, we'd all still be programming in assembler. Copilot generates most of my commit message drafts now. I end up accepting about half of them without needing any modifications. Sometimes they're shit. That's why I'm the developer and author. I always make sure whatever PR I submit in my name is something I'm proud to stand behind. But sorry that you don't want me on your project for that sin of the tools I chose to use for my work.
It's bold to call yourself an author when you merely edited something that somebody else wrote for you. It's like me going to work and all my PRs being done by 3 North Koreans in a trench coat. I am not the author then, and neither are you when using an LLM.
> sin of the tools I chose to use for my work.
Your editor is a tool, your terminal is a tool, agentic LLMs are somebody else doing your work instead of you (badly, very very badly).
I got 10 upvotes on my first answer, and 4 on the next one, how many did you have?
Maybe not everyone is so enthusiastic to reduce their skill level while simultaneously lining the pockets of our corporate overlords? Have you considered that you are in the wrong, and that's why you are irrationally triggered by people questioning your stance?
The science is clear: you start cognitively declining the more you use LLMs:
The current research on experienced developers (be mindful this study is on experienced developers so if your mileage varies, take a second look at the word experienced) shows that their performance also declines by roughly 19% while using LLMs.
So, you are deskilling yourself while at the same time producing less than before and wasting money and burning resources, for what?
I already can see the opportunity for a business for those of us who didn't get our brains rotted by the overuse of LLMs, to fix the messes created by "engineers" using LLMs.
You keep not responding to the actual point I am making. I made a specific point with an example about LLM generated commit messages. You keep tilling at imaginary windmills. I'm done. You clearly need therapy.
And citing up votes? Without controlling for how votes are also a function of time since posting and depth of reply thread?
>>How can my feedback improve you as a software developer if you don't understand your own code?
> Just say that you don't want my code, better yet just silently reject it.
These decision points are orthogonal, in that the author identifies a social contract wherein a contributor must have an understanding of the change-set they submit in order for it to be a viable candidate. Determining if the submitted change-set is applicable/appropriate/correct and how to provide feedback to the contributor is a subsequent activity.
no, it sounds like the author has encountered this enough that giving the same feedback over and over manually is a waste of their time. hence the post: "please read this, read your own pr, and get back to me when it's in a better state."
I have, and I have declined them all. Prompting an LLM and pointing it to somebody else's repo is not helpful, it's distracting and disrespectful, and also delusional to think that it helps the maintainers.
For a couple of bucks I can drown my own repos in low quality slop, so I don't need some well wishers to do it for me.
As a matter of fact I have yet to see an OSS maintainer that accepts AI generated slop MRs.
If you can't code, don't code and try to contribute to OSS projects. Claude or whatever trash one uses to make this outburst of garbage is not a substitute for skills. Don't waste mainteners' time and attention.
I got a MR the other day that should be 40 lines of code but it was 1000. It "mostly" worked. Do I pick apart this slop? Why should I? It's bad for the team and for the project.
It's hard to respond to that. I'm genuinely stumped. As I explain in the post, this is me trying to write something re-usable to share with people who do that to a team lead.
If I give a fun extreme example it doesn't mean there's no subtle problem. Where do you draw the line? Maybe I guessed 40 but it would really be 80. Maybe they send in 400 lines. 200?
Also 1000 is maybe fine if it's a one shot script that just works one time on non-prod.
Low effort contributions have always, and will ways be, unhelpful. We just now have a tool that generates them EVEN FASTER. :)
That must be frustrating for OSS maintainers, especially when contributing them can meaningfully move the needle on getting jobs, clients, etc.
Definitely makes sense to have rules in place to help dissuade it, but this brave new world isn't going away.
Not only is it even faster, they now disguise themselves to look like professionally written PRs with advanced understanding of the tech, while being filled with junior level bugs. So you have to super scrutinise it.
Which makes me wonder what the point of even taking PRs is, the reviewer could just run the AI themselves and do the same review but not have to go through the process of leaving comments and waiting for the submitter to resolve them.
> they now disguise themselves
I'm imagining a funny possible outcome of this: Code linters/formatters get abandoned so personal style quirks can shine through, making code look visibly "not AI". If the quirks are consistent then it could also hint against it being faked.
To prove your humanity one must now make holocaust puns throughout their code
Grok already has that covered.
Grok isn't joking though
Bubble goes pop!
I'm old enough to remember the global melt down in 2000ish and 2008. Oh and 1991 in the UK - lol, that's when I graduated. Take your money out of AI and stuff it under the mattress (gold if you are a magpie or blue stocks).
I have actually just spent out on a fairly handy GPU to stuff into one of our backup boxes at work. It has gobs of RAM and a fairly useful pair of CPUs and sits idle during the day.
AI via LLM is a thing but it isn't worth silly money and I think that a wind of change is on the way.
All these GPUs have to be used for something, if it's not AI then its bitcoin, if its not bitcon it's NFTs, if its not NFTs then its Porn.
This is a hardware driven bubble that will mutate into the next big computing hype. Server farms have to be doing something because they cost money. So whatever the next big hype is, big-tech will jump on the bandwagon.
Hype it 'til you make it.
What do you mean Nvidia isn't worth $4.5 trillion?!
Indeed.
OSS maintainers may need some kind of response like the one I've written here that can be strategically dropped on the worst "bad AI" contributions. I certainly wrote this for myself to make my job easier, anyway.
From the comments I was expecting a less well reasoned post. However, while I don't agree with some of his rationale, generally they seem reasonable.
The author isn't even condemning all AI generated MRs. Only ones meeting a few conditions.
Maybe the decent comments hadn't had time to bubble upwards yet. HN is a relatively higher quality online forum but... I still only expect half the commenters to have read the full post.
I'm curious to hear what rationale you partly disagree with.
I wonder why we haven’t seen AI weaponised in the opposite direction yet? Say, a bot with a prmpt like “criticise this PR into oblivion” let loose on AI-generated PRs. The “contributor” is supposed to address the concerns but will they be able to?
https://lennytroll.com/ but for PRs
Why developers should invest THEIR money? Maybe let vibe coders pay?
Look at this - https://github.com/n4si/kubernetes/pull/1 - devin-ai-integration wants to merge 10,000 commits, 5000+ files changed. This is not some random user of Devin AI, this is a part of paid promotional video, demonstrating "a nice PR" (quote from https://youtu.be/OIomeLQmf-4?t=219), solving "real life problem" (sic). Now let's say, user pays $$$ according to formula of cognitive load added (both for human and CI). A single PR like this would cost as much as "oops, Netlify just sent me a $100k bill", but this time without a refund.
And here I was thinking that rejecting a MR and calling it "AI slop" may sometimes be too harsh. Your scheme is diabolical. I love it.
I like this, a couple thoughts on it:
1. I wonder if it would be more effective or land better if it didn’t mention AI at all. You’re not rejecting because of the tools they used, you’re rejecting because it’s a poor request.
2. I’d suggest an addition along the lines of “by the way, since I’m not seeing anything here that would make me think that there might just be some misunderstandings, this request makes me trust you, individually, a little bit less than I did before, and that will be reflected in how I address future requests from you. Happy to chat about it though. Please remember that trust is what makes all of this work.”
On the flip-side of this, have had friends have their MRs against projects get "reviewed" by CoPilot which does a lot of unnecessary nit-picking and can often be incorrect at it. I get it helps project maintainers save time, but it just feels very dismissive to have your code be thrown to a robot to critique and comment on.
Rough.
I hope to get automated CR bots in my org working soon. But with 2025 capabilities it should definitely only be brief feedback that people can choose to ignore.
>which does a lot of unnecessary nit-picking and can often be incorrect at it
Like an average style checker.
I would just create an agent that provides the reviews. Instead of saying "your MR meets some of the criteria I have in this blog post", the agent can point very clearly at the exact criteria and how the merge request meets them, and can even make improvement suggestions. At the end, the author would review the AI generated review, to make sure everything sounds (and is) right. AI can be used in good ways, and bad ways. Show them the good way.
Based on personal use there's no way 2025 capabilities would do a good job of that task. I hope to get automated CR bots in my org working soon but today, it should definitely only be brief feedback that people can choose to ignore.
> Merge Request (MR): when a programmer submits proposed changes to a project in a structured way. This makes it easy for anyone to see the differences and review the changes. Sometimes called a Pull Request.
Ok, maybe I’m in a bubble, and my job is only coding-adjacent, but I’ve literally never heard a PR called an MR until today. Is this a new thing?
Merge Request is what Gitlab calls a Pull Request: https://docs.gitlab.com/development/contributing/first_contr...
I'm more familiar with that term as I use Gitlab more than Github.
Indeed. I think I'll add a note that PR is GitHub.
Not only do I use GitLab more often in my org, but I genuinely think the term itself is more precise. I can be a bit of a stickler for vocabulary.
It’s all I heard in 2011 when I first entered the corporate world.
Gitlab calls it merge requests
Mitchell Hashimoto did the same thing with Ghostty and I respect the decision. AI assistance is okay but writing slop with little to no effort to understand it simply to get a badge that you've contributed to OSS is a waste of time for everyone.
This is a pretty nice document to put in AGENTS.md. Thank you!
I hope so! Feel free to reach out and let me know how it goes ;)
If it’s a low risk site (marketing page), I’ve been blindly approving them so that the engineer can go and fix it when prod breaks. Submit unreviewed garbage, get unreviewed garbage. I am not your quality gate keeper.
Sounds like you're in a fairly unusual position if you're the one in charge of accepting PRs but the people submitting them are the ones who care about uptime/quality.
If you care about uptime you’re probably not generating code right? What am I missing?
sorry if it's wrong to ask here, I've never joined an OSS project but kinda want to are there many out there that could use the help?
https://github.com/MunGell/awesome-for-beginners
This is a repo of good beginner OSS projects to contribute to
Always fine to ask that question anywhere, in my opinion!
Good to note: contributing to code projects also occurs in closed source, big orgs. The same tools are used. My cases for example are from government and our projects usually aren't open source.
Prepare a pull request to fix bugs from the issue tracker of any library you like. If your pull request gets merged you've joined.
That is quite bad advice!
Most projects have some contributing.md file or something similar with their specific guidelines. One should really start from there.
Also a fire and forget merge request is probably the least welcome way to contribute to something.
[flagged]
Sheesh, that's harsh.
Based on a comment that was more constructive than yours I changed it to:
> Also called a Pull Request like on GitHub.
My org mostly uses GitLab with MRs.
I'm on both sides of the same argument these days, demanding uniformity while pushing the users to understand novelty lol.
>How can my feedback improve you as a software developer if you don't understand your own code?
Just say that you don't want my code, better yet just silently reject it.
I don't want a moral referendum about how my code shall be the mana by which all future reviewers and practitioners of the art shall sup and become enlightened. Group education isn't my job as someone submitting a PR to fix some trivial shit. Sometimes it doesn't need to be smart, sometimes it doesn't need to be a learning experience by which we all grow.
Throw out the garbage, keep the good stuff, and appreciate the attention to the project. Be happy that someone wants to help.
If you don’t care about the reason for rejection, you don’t have to read it. Many people will ask for a reason and take even more of a maintainer’s time, so writing once and linking helps.
> Group education isn't my job
It doesn't sound like I'd like your dev culture. This is also explicitly part of the work objectives of me and my team.
> Sometimes it doesn't need to be smart
I prefer code that is dirt simple and stupid actually.
> Throw out the garbage, keep the good stuff, and appreciate the attention to the project
The garbage in the case of an AI generated PR, is all of it. I will happily reject all of your slop and every future contribution from you if you can't follow the project's contribution guidelines.
If you don't like that, that's what forking is for.
> Just say that you don't want my code, better yet just silently reject it.
Not only I don't want it but I have some ideas what you can do with it and wher this code can go. Also, the code is not yours. I can generate the same amount of garbage as you myself using the same tools, and it will also not be mine, yet I stop myself from doing it, because more garbage is the last thing this world needs.
> Be happy that someone wants to help
How full you must be of yourself to consider pointing an LLM towards a repo as helping.
Must have been very difficult to point Claude towards a repo and trash code goes brrr, something that every person with a pulse can do.
And I shudder at the the entitlement to think that OSS maintainers have to thank you for your godly prompt and 0 amount of effort.
> The garbage in the case of an AI generated PR, is all of it.
I promise you that you have merged PRs with AI generated code and/or comments. You just couldn't tell because the contributor wasn't a lazy idiot and actually thought about how to use the tools at their disposal to do good work like a professional.
I swear if we left things to you people, we'd all still be programming in assembler. Copilot generates most of my commit message drafts now. I end up accepting about half of them without needing any modifications. Sometimes they're shit. That's why I'm the developer and author. I always make sure whatever PR I submit in my name is something I'm proud to stand behind. But sorry that you don't want me on your project for that sin of the tools I chose to use for my work.
> That's why I'm the developer and author.
It's bold to call yourself an author when you merely edited something that somebody else wrote for you. It's like me going to work and all my PRs being done by 3 North Koreans in a trench coat. I am not the author then, and neither are you when using an LLM.
> sin of the tools I chose to use for my work.
Your editor is a tool, your terminal is a tool, agentic LLMs are somebody else doing your work instead of you (badly, very very badly).
Sure, buddy. You didn't actually respond to my point. You're so clearly irrationally triggered by AI you can't even have a rational conversation.
I got 10 upvotes on my first answer, and 4 on the next one, how many did you have?
Maybe not everyone is so enthusiastic to reduce their skill level while simultaneously lining the pockets of our corporate overlords? Have you considered that you are in the wrong, and that's why you are irrationally triggered by people questioning your stance?
The science is clear: you start cognitively declining the more you use LLMs:
https://publichealthpolicyjournal.com/mit-study-finds-artifi...
The current research on experienced developers (be mindful this study is on experienced developers so if your mileage varies, take a second look at the word experienced) shows that their performance also declines by roughly 19% while using LLMs.
https://metr.org/blog/2025-07-10-early-2025-ai-experienced-o...
So, you are deskilling yourself while at the same time producing less than before and wasting money and burning resources, for what?
I already can see the opportunity for a business for those of us who didn't get our brains rotted by the overuse of LLMs, to fix the messes created by "engineers" using LLMs.
You keep not responding to the actual point I am making. I made a specific point with an example about LLM generated commit messages. You keep tilling at imaginary windmills. I'm done. You clearly need therapy.
And citing up votes? Without controlling for how votes are also a function of time since posting and depth of reply thread?
>>How can my feedback improve you as a software developer if you don't understand your own code?
> Just say that you don't want my code, better yet just silently reject it.
These decision points are orthogonal, in that the author identifies a social contract wherein a contributor must have an understanding of the change-set they submit in order for it to be a viable candidate. Determining if the submitted change-set is applicable/appropriate/correct and how to provide feedback to the contributor is a subsequent activity.
sounds like the equivalent of people posting on social media that they are getting way too many DMS and dating requests. The coder "humble brag".
Just give feedback or decline the PR
no, it sounds like the author has encountered this enough that giving the same feedback over and over manually is a waste of their time. hence the post: "please read this, read your own pr, and get back to me when it's in a better state."
Spot on.
As far as I can tell this is entirely hypothetical and he hasn't actually received an AI generated MRs.
I absolutely have. I also wrote "One example I've seen" and "Common examples I see" so you either don't believe me or you didn't read what I wrote.
It's not 100% automated. The worst I've seen so far is 98% AI generated code from a real person. They write and submit the MR comment.
I have, and I have declined them all. Prompting an LLM and pointing it to somebody else's repo is not helpful, it's distracting and disrespectful, and also delusional to think that it helps the maintainers.
For a couple of bucks I can drown my own repos in low quality slop, so I don't need some well wishers to do it for me.
As a matter of fact I have yet to see an OSS maintainer that accepts AI generated slop MRs.
https://news.itsfoss.com/curl-ai-slop/
https://www.theregister.com/2024/12/10/ai_slop_bug_reports/
https://biggo.com/news/202508220113_Ghostty_Requires_AI_Disc...
If you can't code, don't code and try to contribute to OSS projects. Claude or whatever trash one uses to make this outburst of garbage is not a substitute for skills. Don't waste mainteners' time and attention.
I have. Now what?
Reject anything made in bad faith and humor anything in good faith, as is everything
It can be hard to tell the difference in the workplace sometimes. Especially with juniors.
Prepare a test suite and lint file to ensure some quality control.
We get it, some changes to a project are a bad idea. I feel like the overemphasis on AI generated ones is kind of posturing.
I got a MR the other day that should be 40 lines of code but it was 1000. It "mostly" worked. Do I pick apart this slop? Why should I? It's bad for the team and for the project.
It's hard to respond to that. I'm genuinely stumped. As I explain in the post, this is me trying to write something re-usable to share with people who do that to a team lead.
"I got a MR the other day that should be 40 lines of code but it was 1000. It "mostly" worked."
I mean just stop there. It isn't a good MR.
I think you're missing the point.
If I give a fun extreme example it doesn't mean there's no subtle problem. Where do you draw the line? Maybe I guessed 40 but it would really be 80. Maybe they send in 400 lines. 200?
Also 1000 is maybe fine if it's a one shot script that just works one time on non-prod.