QGIS bans AI assisted contributions(github.com) |
QGIS bans AI assisted contributions(github.com) |
Just throwing such contributions out is a big loss.
I have gained a lot of experience working for over 20 years in our industry, but writing CUDA Kernels in not one of my skills or something I'd want to spend weeks to learn.
So recently when I was trying to run a particular local AI model and the inference software was running pretty badly I haven't even considered debugging it myself. It would take me weeks to even start properly.
But it was Saturday evening and my Claude Code usage resets on Sunday and I haven't used any of my Fable 5.1 quota yet this week. In fact I found no need to use fable at all, opus doing everything I needed.
So I decided to let fable work on a problem overnight. Llama.cpp, fix the bugs that cause horrible speed decay in Qwen3.8-Flash-Next in longer context and with multiple users. I told it it can build llama, run it on my hardware and iterate as much as possible.
In the morning I found it finished. It managed to produce up to 10x speedup in some cases (running 5 simultaneous users, with long contexts). 6 thousand lines of code. 19 patches. A ridiculous amount of work. Each patch explained in a readme. Speed tests run before and after for each.
This code made a huge difference for me. Suddenly I have a local model almost as capable as opus that I can run in 5 simultaneous claude code/pi sessions with further 5 sessions idle and cached in RAM.
I've run that code for last 3 weeks. It hasn't crashed once. It hasn't failed me once. Based on it I created a system where fable, limited to 200k of contexts only distributes work to 5 Qwen agents. This way I could do far more of such type of work (including fixing vllm and adding missing features to it in a similar way).
But would I ever post my 19 patches as a PR to llama.cpp? Hell no. I do not know what other models they will break. How they will behave on other people's hardware. Or how contrary to architecture authors have in mind they are.
So what did I do? I want those fixes to make their way to llama.cpp eventually.
I published it as a "temporary fork". I posted about it on the llama.cpp discussions. And I hope authors will use that code if they want to speed that model up.
If not, that is fine too. People like me that can benefit from those fixes also have access. And I'm not risking my professional reputation by submitting something I haven't read and fully understood.
Come to Jesus, come to AI, written in an engaging novelist style. Maybe sell the rights to Hollywood.
Reality: No software has gotten better since AI, and only the tinkerers and learning-resistant cherish AI and promote it like their favorite computer game.
Then again maybe that's where all software is heading, if AI can produce features on demand at infinite space there might no longer be specialized software, or at least not nearly as much, as people will just code their own solutions tailored perfectly to their use case.
On the weekend I wrote a full-fledged 3D planner where I modeled my whole house based on plans and written descriptions I handed to Claude, it runs in the browser, produces high quality renderings, has path tracing for realistic lighting and materials and builds real objects like windows based on specifications and blueprints, so you can actually see how stuff looks like (unlike with AI images where proportions are always off). For me it's way better than SketchUp and it works completely dialogue based and allows me to experiment with furniture, window styles, doors, colors etc. in a super intuitive way. There is software I could use for this but why bother at this point? This whole thing took me a few hours and maybe 10-20 € in AI credits to build. Why try to use open-source software where I need to wait weeks for a reply from a maintainer?
So I think these projects fundamentally misunderstand where software engineering is heading, they are trying to hold back the flood but that will only lead to them being left in the dust once people realize they no longer have to wait for maintainers to update their sanctioned software timeline for you. That said, I think it's also ok and maybe even beneficial to be very protective of your feature set. There will (at least for now) still be room for complex core software that can serve as a basis for AI modification, so from that perspective it might be good to keep the core really tight and fully audited. My little software project only exists because three.js and other libraries provide most of what I need as LLMs will not write everything from scratch in such a short amount of time.
Edit: https://xkcd.com/2347/
QGIS is more of a slab/deck that links all those foundations together.
AI coding comes with the tradeoff that you lose understanding of your own code. That is an acceptable tradeoff when getting it out to users matters more than understanding code. But free of capitalistic pressures, why would you accept AI slop?
But if your coworker is shipping 5x more PRs than you your manager couldn’t care less about understanding code
I'll fork it in about 30 seconds.
And neither of us will get any traction, because the QGIS team has a history and proven track record within the GIS community, and neither of us are attempting to solve a problem that community has.
The question is whether or not you are willing to support your creation for the next two decades.
Second, majority of apps do not last 2 decades.. and that is okay... someone else can fork the repo and continue if needed.
My 2 cents.
Omarchy is on the opposite spectrum.
This is more like a warlord economy. Another cretin in this thread already threatened to clone this project and use AI. This is all they can do: Lie and steal and press buttons.
We have gone from "LLM-slop is gonna ruin open source projects" to we wanna "protect" humans so they can make some dough on the side training and stuff. If human coders become the bottleneck in the chain, the solution is obvious and there's only so much protection anyone can do.
This "human bottleneck" is why we have QGIS in the first place. I think they deserve a bit more respect than that.
Which chain? It’s not like there’s much productivity going on. There’s a lot of activity for very little impact.
Furthermore, how will they prove whether code is AI generated or not?
And... I was correct. See their other PR
> QEP 429: Add exception to the AI policy for trusted contributors - #388
Aka only the trusted maintainers can use LLMs for speedups, the rest can suck it? Very mature behavior from the maintainers.
you are the reason for this policy change
No, you cannot replace what QGIS is to its users with a couple of prompts and a factory of agents.
Any more than you could do it with FreeCAD, really.
These things, whatever their shortcomings, are unique in scope for open source projects and are the centre of large, multi-decade communities of collaborative users and developers.
But I invite you to try. Do it, clone QGIS. Then go to the user community and say "your software was bad so I cloned it, you should all use mine because we accept AI contributions". See how it works for you.
Either way my bug got fixed but if a project maintainer doesn’t want it who am I to fight it.
You can always fork it. I suspect my contributions are higher quality because I use different model providers to review each other but whatever.
if someone disagrees they can fork.
I don't understand why it would be the right call. not my field.
haven't seen a good explanation in the comments. (yet?)
IOW, your city might be using QGIS to plan the city and verify everything being done on it, down to cm level accuracy. So, any subtle bug is a big deal for these kinds of software packages.
While doing construction work (regardless of infrastructure or buildings), the plans are laid and verified to that level. The haphazard spray paints on the ground are indeed big deal, and has a digital copy in the GIS software.
It's not only used by municipalities and/or governments either. Research teams use GIS packages extensively as well. I briefly worked with a research team working at Antartica. These GIS software and related ecosystem is their both bread and butter and foundation to anything they do.
A patch generated by an AI model breaking these software packages have cascading and important effects. So, the software needs to stay dependable and reliable.
Data portal for South Korean team: https://kpdc.kopri.re.kr/
They're not the team I was working with, though.
Long answer: These software packages generally have a couple (or more) graybeards on the team knowing the intricacies of the domain and the software pretty well, so they can read a patch, see the effects, make an informed decision and give required feedback, or sometimes get the patch, mangle it to correct form and merge.
LLMs tend to write overly verbose code with many file edits at the same time, accompanied by walls of text to explain themselves. This overwhelms these kinds of communities. So, they prefer targeted, smaller patches arriving at a slower rate.
...and maybe that big patch can be written as a one-liner somewhere else, just because AI failed to find where the problem originates and just patches where the problems happen, making thing way more complicated than before?
These are complex software packages and are sometimes things looking correct and wrong, and things looking wrong are correct, esp. on the math side.
I developed software using boundary element method to evaluate things, and it was complex to put it mildly. Verifying everything down to 32 significant digits after comma, and tearing the code down when the tests deviated for no apparent reason is something I did regularly.
GIS is no different. You're modeling the world, down to the earth's curvature, and putting things on it with cm level accuracy, and a couple of people knowing what they are doing is way more effective than a statistical model which emits code with no bounds and understanding of the domain.
If not you may want to familiarize yourself:
The majority of LLM use is to make slop or answer simple questions that could have been searched. The mythical AI-Chad Coders are so rare that catching them in the anti-slop dragnet will not meaningfully decrease the quality of a big project.
There's the "inline editing" paradigm - independent sessions, describe each micro-change individually. This is good for quick responses but requires you to re-describe the context every time. There's also the "use an agent as a fancy code editor" stuff - just list out all the functions and the changes you want to make in them. This is a better workflow IMO but the trap is that it doesn't feel "productive" compared to one-shotting it, irrespective of the actual quality.
So people gravitate towards one-shot agentic prompts without a human in the loop.
Most often we’re satisfied with signals and indicators that it works and we build theories and mental models that use to try to avoid the effort of proving anything.
Worse is what happens when you start using LLM models to generate the code for you. I find you start losing the mental model short-cuts; you start to trick yourself into understanding the code. You understand little.
And what few studies there are of code review suggest that we have very little impact on code quality after reading more than a couple hundred lines of code over an hour.
So the current mental leap is, “the AI is a better programmer than I am.”
I think it’s still worth becoming a better programmer regardless. And there’s no royal road. You just have to write code and struggle with writing bad code.
This is not just a software problem. I see it everywhere. Folks in business roles just as much as any other role. There is a surface-level operating framework to get a job done but the why/how is sometimes lost.
I always come back to an example in my past. Somehow automated a report. From Excel to Power BI. Then for months Power BI was wrong. Automation (more code involved for sure) made it run faster but then people forgot about the how - how to check/validate/etc. And since it was code - for many non technical people the whole thing was a lot harder to deal with needing to deep investigate issues.
But I feel like it's a minority that really know how the software they're writing really works. And it's 10x worse for older legacy software.
Mostly because the people doing it don't care. Not judging, just reporting I guess. I know because I used to work in quite a few companies where the "money maker" app was on maintenance for years and nobody was able to answer questions or didn't even know most corners of it still existed.
This desperation mindset also often correlates with people writing code without care for the next maintainer.
And the scary part is that this also correlates with advocacy for going all-AI.
Perfectly and succinctly said.
The way I like explaining this to people is that I don't think I build products anymore. Now I build the harnesses which build the product. And a massive part of that is ensuring that I can make the AI remain aligned with my way of thinking.
The software telephone game seems to never end!
My prediction is that in the future we are going to be more focus in the testing part (that should be more human readable) than the code itself.
Whatever it is, the only thing clear to me is that the tooling will have to change.
That’s the old “Programming as Theory Building” stated by Peter Naur. Writing code, once you learned a language and a few libraries has always been easy and can be made easier by using tooling. Having a good understanding of what has been written and what needs to be added is the difficult part.
I think for every line of code I’ve written, I spent 2 to 5 hours reading specs and docs. Creating software is always about understanding. If you’re thinking too much about syntax and libraries symbol, you’re just at the beginner phase of coding. Like thinking about grammar when learning a second language or being hyperaware of the car as a beginner driver.
Is the fear that it is (maybe wilfully) misinterpreting the code, being too general, not going into specifics or is just not smart enough to catch all the nuances, privacy issues and hidden mistakes? Is it a token issue? A combination of all this?
One approach that Ruby took for type introduction was to put that in a different file. That comes to my mind.
Typescript brings some niceties, but also some boilerplate all other the place. Combined with something like Effect, Zod, and the like and line count explode. Not sure OCAML or Haskell would provide more compactness for equivalent safety.
The bottleneck has never been the writing of the code. It's all the rest that takes the majority of the time. Of course, it is often the writing which lets you expand your understanding or your awareness of challenges and pitfalls, which then puts you back on the drawing board.
Look at this PR: https://github.com/qgis/QGIS/pull/67731/files
The code change is so simple that Claude today could easily write this code. How will they know if an LLM wrote the code? They won't. And this policy will age like milk: Each passing month, coding LLMs are improving. It will become more difficult to "detect" an LLM-authored submission.
The best LLM policy that I have seen for an open source project is Linux. Roughly: You can use LLMs, but you are fully responsible for the code it produces. Linus acknowledges both positives and negatives to LLMs.
They don’t need to know. The policy is not a linter that will scan each PR. Just like the law does not monitor everyone 24/7 for criminal behavior. It’s enough that the rule is in place and it’s enforced when they catch an infraction. No need to be perfect as long as it lowers the pain.
> AI stream is a lot higher than what human review can take seriously, leading to either a longer list of un-reviewed PR's or not fully reviewed code and quality issues. Both thing we don't want in the project.
It’s not about detecting AI, it’s about reducing the amount of code to review.
> We aspire to be a welcoming community that helps new contributors grow their expertise, but learning involves taking small steps, getting feedback, and iterating. Passing maintainer feedback to an LLM doesn't help anyone grow, and does not sustain our community.
Hard to disagree!
I think it's fair for people to want a certain experience. Dealing with AI contributions is not the same thing as the community they're after.
Plus it is becoming exceedingly rare of finding a contributor that save time, as in can do better than the maintainer itself using LLM and reviewing it itself.
Various crypto projects fundamentally deal with proving X and their networks comprise of entities that are rewarded or punished for either fair, deceptive, or erroneous actions... so maybe some kind of consolidated info about that "grouping" of information would be a good place for me to start. I am curious about learning more about these concepts insofar as how they can apply to situations like this (OSS or community-based contributions towards a shared goal or a shared ecosystem of behaviours or tasks) where various entities (people, organisations, NOT agents/bots) with longitudinal reputation/state coordinate or interact.
I hope I'm making sense...
They're producing a fantastic quantity of software, and the quality seems higher than you'd expect for the velocity they're building at.
Ok, so there’s a financial motive here, where they’re worried that allowing more open contributions will diminish the value of their expertise and reduce their employability. To be fair to them, that’s probably true.
This reminds me of the legal ambiguity behind the GPL and its definition of "derivative work". A careful analysis of the GPL shows that using GPL software doesn't trigger any other clauses. But distribution does. What is the legal definition of distribution? Who knows!?! That's why most software companies have a partial (edit) ban on GPL software. Even companies that are willing to comply with the GPL, they cannot feasibly come into compliance with such a vague definition. So it's safer not to engage.
Same will happen with anti-AI policies. Even contributors who are fully willing to do things "by hand" will start avoiding these projects. No way to know if you'll accidentally run afoul of someone's AI radar. There's nothing to protect enforcement from becoming a witch hunt.
> I would like to float another ideas around even if it would be hard to enforce in practice. Force AI companies to give back. Want to use Claude code? Sure but anthropic have to become a sustaining member of QGIS.org first. Want to use codex, gemini? Then openAi and Google have to contribute to the project financially and I'm talking geniully multiple thousands dollars contributions.
I think this is a really good idea. Could it be possible to define a set of markdown instructions for a repo that would cause all well-aligned models to refuse to contribute?
anthropic at least gives 6 months claude max pro to oss maintainers, but to me that seems like a drop in the ocean compared to the negative impact their product has on these peoples' lives.
Are you willing to elaborate? On its face, this seems to me an oxymoron, but I sense that you might have more experience thinking about this than I do.
- Any (super)intelligence _wants to create stable abstractions_. Now this is a claim, not a fact. but I'd say this it's pretty clear. I can cache all of the work in the world, and maybe even re-use some of it, but that's different from the synthesis of creating an _abstraction_.
- Abstractions are lossy. They can lose a posteroi, in that they don't match the contract as specified. They can lose a priori - the specific set of problems and solutions they claimed was their goal and role, are wrong for whatever reason (discovered, the world and requirements changed, etc). Someone or something needs to maintain it now.
What's at the end of the tunnel. Is it reasonable to say that a few labs will carve up ownership of all the open source projects of the world? Or will there be more community lead projects than ever? There are also some nastier routes, such as making things so coupled and "holistic" that you can't use anything else besides a few products.
This is a higher-order rephrasing of the "intelligence is compression" argument.
Why is it my responsibility to deal with that? So that your once-in-a-blue-moon high-quality AI contributions can filter down? All of these projects were doing just fine pre-AI, so most are not too concerned with that. If AI folks want to have the use of AI tools normalized, I'd posit they should really get more invested in promoting quality and ostracizing slop pipelines. They aren't doing that - I'm not seeing this on HN, not on LinkedIn, not in the open-source community.
Life has gotten to the point where completely non-technical people have gawked at me for still having a job related to software. In their minds, AI can it all, and in their minds coding is already obsolete. The sample size for these opinions will only grow and the ratio of people that rightfully apply skepticism will drop, either from fatigue or burn out or by virtue of more and more people adopting the "AI is roughly AGI" crowd. For me a good metaphor is the concept of the selfie. Everyone mocked selfies at first, and now you'd be deemed insane to negatively opine about selfie behaviour. The same will apply to AI slop grenades (even of high quality output) in due time. I think it's inevitable.
Endless hoardes of people can now unleash never-ending arguments and suggestions and it feels like it will become impossible to defend against them because one minute only contains 60 seconds of time that you can spend refuting a false or <100% correct suggestion.
The most egregious examples are always lazy (big diff, lengthy descriptions, weird phrasing,…). Now there’s a section in the policy to point to for the quick rejection.
> My code is clearly AI "assisted"
No such thing, it's 100% your code, regardless of how it came to be.
Possibilities range from "public domain" to "the cancer Microsoft accused GPL-licensed code of being". In no plausible scenario does the person who pressed the "generate slop" button become the copyright holder.
"Assisted" does not necessarily mean "authored", which is the point of the comment you're replying to; helping you review the code is "assistance", even if no code was written.
Curiously, https://github.com/qgis/QGIS-Enhancement-Proposals/pull/387#... shows that at least some contributors realize the vagueness of the policy, but they don't seem to care, which is rather unfortunate.
> If we subsequently discover that you have used an AI, LLM, or any agent-based workflow for your contribution, you will be subject to code reversion and contributor rights sanctioning.
Policies like this have an element of trust to them. That's not new: open source projects have needed to trust contributors not to paste in proprietary licensed code since open source began.
hmm. What if they didnt realise at first because the code is actually fine and works as intended. They gonna back it out just because it was AI?
But I feel it's a bit crazy not to use any AI assistance to develop real code these days, if you care about outcome. You can get to result much faster, and have a higher quality solution, if you use it right.
The problem for open source is low quality slop, not AI assistance. Not sure what's the solution though.
RIP.
Many reasons:
1. The people on HN tend to think they're very clever, but they're often not as clever as they think they are. That has a lot of wide-ranging implications, from classic "engineer's disease" thinking to stuff a lot dumber.
2. I wouldn't be surprised at some unexpectedly large amount of AstroTurfing, especially considering the sheer amount money is flowing into the AI space. My understanding is HN has some influential people reading it, and is influential on a certain fraction of the wider group of software developers.
3. I think there's a certain amount of defensiveness from AI enthusiasts. They've enthusiastically adopted AI to a certain degree, so critique/skepticism of their choice is felt as a personal criticism.
4. HN is a pedantic place (see 1), so "everybody all the time in favour of AI" will be interpreted literally as false, when it really should be interpreted as "why is there so much pro-AI activity."
I don't think suggesting that people are stupid is a very good argument. I think part of the reason people are for it is post like yours which are rude and not in good faith.
I'd imagine why as many people are for it on HN is for many people, it just works. Now imagine this snark about not being as clever as you think you are just because you enjoy using a tool. What's that going to do? Cause you to dig your feet in because you're being told the real reason you like these tools is because you're not very clever or you take things as a personal criticism. Yes, being told you think you are clever but you aren't really is personal.
I don't think you're posting in good faith. I certainly don't think you're going to get the real reasons people support this stuff when you act like they're stupid or suggest a lot of this is being turfed. People are using these tools because they work.
Your post says more about you than it does supporters.
Including money from Y Combinator itself (which, may we never forget, was once helmed by Sam Altman).
If you're looking for unbiased tech news and genuine user sentiment, you probably shouldn't be getting it from one of Silicon Valley's favorite VC firms.
Given the soul-crushingly large amounts of money sloshing around in this tiny slice of the industry, the amount of astroturfing, positive-sentiment manufacturing, & etc. is right about where I expect it to be... as is the amount of vehement denial that it exists. ;)
1. "everybody all the time in favor of AI" - this is not true (objectively)
2. "This is objectively a good change because it will improve the quality of the code in the long term." - this cannot be considered "objectively" a good change because quality is subjective. Second, it makes the assumption that human written code is always (objectively) better than LLM generated, which is also not true.
But this is a software engineering project - the code is only part of the whole project / product, and the (subjective) quality of the code is only part of that. LLMs could write perfect code by whatever quality metrics they use, but if a reviewer is overwhelmed by a morbillion other perfect code contributions from LLMs it's moot.
It is useful?, it works most of the time?
> This is objectively a good change because it will improve the quality of the code in the long term.
It depends?, sure, banning hit-and-run massive AI generated PRs will help.
These were problems before AI too, people just want to get their name on things without putting in effort.
This also bans possibly high quality PRs that fix things or add something new.
Either way, we'll see, anyone can still fork and if it's a better project then that will win over
Not to mention that the thought out LLM assisted PRs won't even register as LLM assisted PRs...
> I'd like to open another topic about the usage of LLM for review, auditing and security purposes, but I think this is a very separate thread, and we'll open discussions at the user conference before any formal discussions.
That does not mean the product becomes more useful. I could rewrite Windows 1-to-1 with better code quality and no one would care because it still provides the exact same features. Unless "better code" means "better features", better code is useless.
Software design and architecture is about creating a system that can be built well, run well, and modify well.
If you just throw things together without thought you get an unmaintainable mess.
The utter disbelief people on HN show when they find out a lot of people hate or despise generative AI is much stranger.
Those that are opposed to AI development in principle, or have dealt only with its worst consequences, like neverending PR-slop, are going to have trouble engaging due to a lack of experience.
I think humans will be saying this long, long after it's not true anymore. I'm not sure it is right now, for 80+% of developers and projects.
But I love this muddying of the waters. The more uncertainty and misinformation it is, the easier it is for people to make mistakes, and for edges to be had.
It's like poker. Everyone thinks they're a good player. About 5% of players (my estimation) would admit they're not very good. The luck & complexity fools the rest of 'em. They have no idea you can be operating several levels deeper than they are, playing in a dimension they cannot yet see.
Anyway, not a perfect analogy. But I think your idea was true, isn't true now, and I hope people & projects keep banning AI contributions anyway.
Can you explain why you think that?
QGIS is written in C++. Does that affect your answer to this question at all?
In this way it is very much a spiritual cousin of FreeCAD (also cross-platform Python/C++/Qt6), though that (at least currently) has a somewhat more liberal ("humans in the driver seat") policy.
The opinions regarding AI are quite diverse here, most people are, I think moderately pro-AI, the top comment "A ban is a bit harsh but I understand the reasoning" summarizes it well, but many are in favor of banning AI contributions to open source projects too. The extreme slop cannons and Butlerian Jihadists are usually not well received.
Funny to see this while in other threads someone else will ask why HN hates AI so much.
For me, it is the way AI has kept suggestions to either open issues with maintainers or make PRs to fix an "issue" it found. I know it hasn't researched the issue in depth enough to be talking with the confidence it has, and I know I am in no position to be bothering someone else unless I want to spend considerable time investing to make sure the issue is exactly what the AI is claiming, it isn't a known issue, and it is justified to bother the maintainer with it. But there are far too many who will see that option and just tell the AI to do it.
It isn't that I'm against AI. It is that opening a PR or filing an issue use to have significant enough gatekeeping that most low effort low quality work simply wouldn't pass it, but that has now changed. So a new gate is needed to ensure those who aren't willing to put their own time into the work before asking for the time of others, and banning AI is one of the better options I've seen.
This also doesn't even end AI interacting with the project, just changes it. If you have some unique use case that AI finds, you can download it locally, have the AI make the change just for you, and have AI keep updating when necessary. Each user gets the customization they want while maintainers are protected from low effort low quality spam.
Second, while I sympathize with not wanting to be inundated with low effort PRs, putting a ban on AI assisted contributions in response is myopic virtue signalling.
(The issue is, I think, if you allow AI, no matter how many paragraphs you write about taking responsibility and ensuring high quality contributions, you're gonna get a lot of bad ones just because by sheer volume there's enough people who aren't gonna read it, and that's gonna take a disproportionate amount of effort to filter out).
Would you personally join in to evaluate and review the onslaught of AI generated PR to the project?
I haven't written a line of code myself since March. I've shipped over 100,000 lines since then. And coding isn't even what I spend the majority of my effort on.
It really works. I just had Opus 5.5 write a distributed load testing service on Friday and it's been using what it wrote to iterate and diagnose problems over the weekend.
My experience is that maintainers cannot do this. Or rather, that it is useless.
The fact of being open source means if your contributions are rejected, you simply need to fork. The open market competition will soon determine if your contributions were truly valuable and whether the original project's owner misjudged, or that contribution was essentially worthless.
Then marketing it to convince others to even try... If the idea is too niche it might never hit that threshold for uptake.
Traditionally you've opened to a PR only to get closed for a style/procedural issue or get ghosted. You often didn't fork because maintenance is a hassle. Less so with LLMs, you know?
Nowadays you can just implement your change and vibe-fork it...
Although that would probably change of the AI-assisted spam shifted over to it.
Another option would be to make a contributor pay for the review of its PR, even a small fee, to deter AI-slop, at least for new contributors. It could/would exclude students or people with the lowest wage though, but I'm optimistic even a 1$ bill or less would be enough.
I agree!
The problem is obviously a resource allocation one. Economics solves problems like that.
To make the system viable, you need something like the free-to-play games use (shudder).
Offer a choice: user’s time and attention or money.
(This addresses the issue of excluding low-resource contributors, which we might care about for equity or because that was us when we were young.)
As an idea on the money front, you could require the contributor to pay for the tokens needed to review their PR! Maybe even let simple models review simple PRs or advanced models decide which model is needed to do the actual review.
I don’t know how the humans can contribute their time and attention effectively, but maybe we can figure that out.
People can 100% still use LLMs without “vibe coding” in a meaningful capacity and understand the output, and still be drastically more productive.
Put simply, if you're so convinced that AI contributions will ruin your project, you owe the world a full and complete definition of what "AI contribution" means.
This is the issue!
Without objective, verifiable criteria, the rules cannot be enforced. Rules without enforcement rely on the strength of community norms, which we don’t have in this case.
All you’re going to do is end up banning obviously vibe coded crap. If that’s what they mean, say it.
In spite of the positive reaction, this IS a bad policy because it isn’t enforceable.
Keep thinking - we need guidelines that focus on our needs and goals, not the basic mechanics of code creation.
If you're serious about an anti-AI policy, you owe the world a definition. It's not hard. You are making a strong statement - an outright ban. Make an equally strong case for what is and is not in scope. You must get in the weeds, since it is you yourself that is banning the weeds.
To quote Gustave Flaubert: “The art of writing is the art of discovering what you believe.” Failing to write the definition is a strong signal that no one thought through the problem.
First other people poke at the gray areas of the rules which leads to the "you accepted x, but not y, this must be favoritism when allowing AI posts". Things degrade into insane rule lawyering.
Or, you end up with insane sets of rules and enforcement that kill the project. We've seen a lot of project leaders recently just act kind of mental. Quite often it will lead to the project forking and falling apart.
Well written rules for a project matter even more than well written code.
That doesn't sound right: most software companies, for example, make extensive use of Linux.
The standard I'm used to is:
* Internal use of GPL software is fine.
* SAAS products with GPL software are fine.
* GPL software leaving company infra is fraught. Either just don't do it, or bring in legal if there's a strong business need.
This is different from, say, AGPL, where many companies do just ban it outright.
This might be the key point. There's legal ambiguity surrounding these licenses. Large companies with legal resources can draw their own line in the sand to protect themselves.
But small companies don't have the resources or the bandwidth to address the ambiguity. So a blanket ban (Zero AGPL and GPL for Internal or SAAS, Linux generally gets a pass) is rational.
Likewise, I see small dev shops without the resources to address anti-AI policy ambiguity are going to defer contributions until further notice.
It means: did you use AI? If so, we don't want it.
Like come on. They don't like your new shiny toy and you're mad about it, but there's no need to be purposely obtuse.
You fire up an IDE, you write code, you submit it. That is not an AI contribution. You fire up Claude Code and prompt it, you submit it. That's an AI contribution.
Contributing to projects is a privilege not a right, and if you fail to contribute, be it because your PR was written like shit, be it your documentation wasn't complete, be it you didn't abide the style guides, or, yes, be it you used AI and they don't want AI, your submission doesn't go in. That's that. 2 + 2 = 4.
To be blunt it's wild that otherwise very intelligent people keep getting bluescreened by the fact that they occasionally must reckon with other intelligent people who do not necessarily believe the same things as them. Have y'all never gone outside or what?
I’ve mentored juniors and the common trait is that they rush to code without understanding, then they spend days trying to fix things. Coding will seem like a real bottleneck for them.
Nowadays, it's just a prompt away. LLM's can still run around in circles when the code quality is bad enough, but LLM's are also getting exceedingly better at catching that and writing code that's good.
We're all in a different phase of the collective grieving process, some are still in denial, I would put you in the bargaining phase judging from the comment.
The current contributors are already massively skewed towards people with more ressources and time and 75% of the world, so I do not expect a sharp decrease in contributions.
Being able to market your work and build community are key skills for open source contribution. The history of forges is littered with interesting code that never got enough attention to go anywhere.
No project is obliged to accept your contributions. It's on you to market them, either to the maintainers of the existing project for merging, or to the community through a fork.
At “work”, non-open source, I see maintainers addressing usability issues they never would have touched before. I write the issue, the LLM does the rest.
In fact, last time I included a PR to fix some trivia, the AI said “let’s fix the root issue instead”, and did that. This was astounding to me. That team used to do nothing in the face of complaints / small bug reports. It used to be that without a PR you were ignored.
So what do you think is going on behind the experience with the maintainers? They don’t use AI? Or they are incompetent? Or…?
> The other option: people are using AI successfully on the job and are writing based on their own experience.
Those aren't mutually exclusive.
And it's worth noting that people claiming to use "AI successfully on the job" often do not stop at "their own experience." They often make sweeping statements like "LLMs write better code than people," and attack any critiques or skepticism of LLMs.
A careful reader of my post notices that I neither said nor suggested that there were no honest success stories. ;)
For everything else the general mode is "can we make it work well enough". And when it breaks, well, we will curse and pry it open and either fix or rebuild it. There are many stories of a particular thing that was built long time ago by folks who are long gone and no one knows how it works or even where it physically is.
And it works fine; usually better than ensuring complete reliability from the get-go, when it is not clear if it is a long-term core feature or a kludge that will be obsolete soon. My 2c.
i.e. have few, generic rules, and have their boundaries be constrained by implementation. The important part is consistency. There is a boundary, it's just unstated. If you're enforcing stuff arbitrarily, this won't work, but if you're mostly consistent this can make things smooth by eliminating the space for rules lawyering, drama and schemes by getting everyone in the community to "sign up" to the status quo.
When you're new you don't know where you're at so you join, observe and listen. After some time, you're familiar with the norms so you can engage with them, advocate for changes, etc.
Of course, the alternative is codified rules for everything, but the moral hazard there is that the more rules you add, the more they're likely to be contradictory, leading to the possibility of arbitrary enforcement nonetheless despite the pretence that the rules are specific and clear so the enforcement isn't arbitrary at all.
A broad stroke based on community trust and your own self-evaluation of a very simple rule is acceptable here.
If a contributor wishes to poke the edges of the policy to try and find the line of acceptable AI/LLM usage in the project, they are probably not the kind of contributor they want.
[1] https://www.reddit.com/r/Bitcoin/comments/1vddeuy/are_you_ki...
And that is why you felt you needed to boost the narrative and reinforce it so people are fired faster. Totally believable!
Didn't he get fired because enough of the other YC partners couldn't trust him? If so, it's a pity for him that -at that time- he didn't have the CEO of a software megacorp to call on to reverse the decision and shitcan the people who made it.
I don’t know anything about formal verification myself! But proof? I am sure we have seen that AI capabilities exceed humans on that front.
I recently started using Claude to write an app. I was going to write it by hand but was having trouble getting motivated, and I knew I had to "up my game" in the vibecodery anyway. So far it's been a lot of back and forth, I keep the leash pretty short because I don't want The Claude AI you see everywhere now.
But even with good intentions and the short leash, I find myself saying "yeah, whatever, it looks like it did what I told it to do" and not actually reading all the code. Some yes, all no. And this is for my own project, nobody is my boss here, and it's nothing I couldn't have done by myself.
Now imagine the incentives for someone who's doing it for money, whose boss is pushing them to do more AI and not less, who probably doesn't actually know how to do all the things the AI is doing for them, who looks around and sees who's getting promoted and who's getting laid off...
And remember that most of us, most of the time, no matter how much we might love computers and software, are that person.
But hey, it could be worse! Have you heard about the Literacy Crisis?
That stops working once the code reach a certain size/complexity limit. It is a different limit for different people, but there is a point where there is just too many parts to be possible to fit in a head. There is also a middle stage where everything fits, but can't be accessed all at once but require some time to retrieve specifics when looking at areas not in recent memory. The middle step is more achievable the easier the code is to reason about by black boxing parts.
You'll note I didn't say anyone was "stupid," if anything, I was actually saying those people were myopic and arrogant. I recommend you familiarize yourself with the concept of "engineer's disease," once you understand it, you'll see it all the time on HN.
> I don't think you're posting in good faith. I certainly don't think you're going to get the real reasons people support this stuff when you act like they're stupid or suggest a lot of this is being turfed. People are using these tools because they work.
> Your post says more about you than it does supporters.
I don't think suggestion that people are posting in bad faith is a good argument. I also detect a fair bit of binary thinking from you. All I did was post a non-exhaustive list of different reasons for that kind of content to answer the comment I was replying to.
You didn't even try to suggest that a lot of people are using these tools for positive reasons. Who is being myopic and arrogant? Who is engaging in binary thinking?
Consider that some people simplye find that these tools work for them.
I've worked with a lot of people. Many of them are that stupid. Suggesting that these stupid people do not exist, that -if they did exist- none of them are professional programmers, and -even if they were programmers- they do not have the means to voice support for something that they're smitten with is not a good argument.
I'll also vaguely gesture at the various studies that find that the majority of conversation -by post volume- on Internet Forums is done by a small number of people. Never doubt the ability for a few loud folks [0] with lots of time on their hands to dominate a conversation. This goes like 10,000x when there's a huge amount of money sloshing around in said industry and said industry really needs to maintain a positive public reputation.
[0] ...and -sometimes- their sockpuppets...
With that many elements you'd be better off storing the elements as a tuple or a struct, but people often reach for a generic array container regardless.
And I explained why I disagreed! One "subtle" thing to note is that the claim isn't "Everyone who uses LLM-based tools and writes about the success they had is stupid.".
I couldn't disagree more!
If you haven't already, you should watch this topical presentation from Greg K-H that was posted to HN like a week ago. [0] It's about an hour long, but you can probably watch most of it at 120->150% speed.
Notice how his praise for the tools differs from so much of the expressed positive sentiment for said tools here on HN. The "low-horsepower" people I've known tend to praise things in a way that smells very much like astroturfing. The "high-horsepower" people I've known both express very nuanced opinions and tend to know better than to burn a ton of time squabbling with Internet Randos in a place like this... they have much better things to do with their lives.
Me too!