Yesterday, I had a relatively trivial bit of work in play using distance-weighting to measure stuff, and Claude did really well / but right at the end, despite having a success metric and lots of great results matching it, Claude insisted my maths was wrong and needed changing.
When i asked why, and pointed out that the suggested replacement would cancel out the distance-weighting entirely, it immediately agreed with me and asked to write its fifth project memory about it.
The other big ones it tends to mess up on without strict guardrails are coordinate systems; and measurements, often converting back and forth between a given nation grid and wgs84 latitude/longitude in ways that lose good amounts of precision; and then custom-coding haversine-equivalents to measure a distance that’s otherwise be a simple subtraction via the national grid coordinates. It’s baffling.
I’ve been renovating a spatial/topology validation system for an OpenLayers driven map editor for robot fleets. I set up a clean interface for spatial indexes and predicates as well as your basic geotoolbox functions.
I was most surprised by a moment where Opus detected that using a union approach to ensure that robot footprints always sat within valid polygons (possibly straddling multiple valid polygons) was slow in testing. So it decided to find the difference between footprint and each polygon within the AABB of it. And if the remaining polygon is zero size, it’s valid. If not, the remaining shape is what is invalid.
I was also surprised just how good it was at recognizing, “in the test data there’s a lot of this kind of feature so we should explore what’s more common: hits or misses?
Before robotics I spent a lot of time building spatial models for data processing and analysis. I find that I can usually just explain the spatial question in natural language and it will figure out the relevant inputs from the dataset and what the process can be. I’m not obsolete quite yet though because maybe 10-20% of the time it goes on a pretty fantastical journey through unnecessary intermediate data products.
The worrying bit is if you're not keeping a close eye on it, very easy to think you're getting a solid system, but thanks to the internal madness it's used, your entire grid has in effect shifted 10 metres right, and any spatial measurements are far more approximate than it's letting on.
That was the bad old days for me. Nowadays I keep it locked down to specific systems for projections or actual spatial calculations, and that seems to keep it honest.
And the surprise is awesome when it happens! My favourite is all the QA steps you wish you'd had and that it reasons out on the raw data alone:
"oh hey, this one city has no data but it has a high population, oh right, that's because of this obscure lookup had a row chopped off, there you go, sorted."
I get to stand back and applaud it, honestly.
One thing that helped me a ton was making an adapter between my domain specific datasets/systems and QGIS. So I can watch and examine the intermediate steps and leverage that my brain is still pretty darn good at visual pattern matching.
For what it's worth, I use duckdb and its spatial stuff as my adapter. Works for my brain and if you force e.g. SQL files for each step, gets there in the same kind of way. Still some sharp edges, mind, but overall working well. And then Claude comes for my maths and I sob.
I uploaded 4 different photos of the same house, from different angles.
I asked Gemini, ChatGPT, and Grok add the same patio to each photo. The results were laughably incoherent (not to mention ugly).
I repeatedly asked them to make the 4 photos consistent in 3D, and it's obvious that they have no way to do this -- no understanding of the scene.
They also could not understand the concept of "back patio" and "side patio" -- relative to the house, when the house was being photographed from different angles. Even when I pointed out which one was the side patio, they would get it confused in a different image.
(I should not be surprised by this, and yeah I know everyone says LLMs have "jagged" capabilities. But to me this shows how bad all the extrapolation of AI I read on say Hacker News has been)
An LLM can describe a photo fine, but it cannot tell you the exact coordinates of what it's describing. When I last tested this, you could sometimes get it to lie about the coordinates, but asking it to draw an approximate bounding box around a given feature - total fail, sometimes laughably so.
We can see for e.g. that frontier models have got really good at CAD sorts of tasks recently. That suggests benchmaxxing RL to a degree but it does mean they've suddenly got quite good at forming simple geometries in a step by step way.
so i made a simple ab testing eval on fixed prompts: https://threejseval.com
There is a 7 degree o freedom robot arm that is really telling of the improvements in coordinates reasoning:
B.) I worry what this entails for QGIS, and for the future of such community-built platforms as a whole.
Let's say I need some functionality which QGIS doesn't have. My options are to:
1. Learn to program QGIS, add the functionality, and commit it back to the community. From where I currently sit -- I've never developed for QGIS, I don't know its language -- that's an investment of several months, at a minimum.
2. Vibe-code the extension I need -- or just make a bespoke GIS application which has the small subset of GIS capabilities that I need, optimized for my particular use-case. Depending on the complexity, that's an investment of either days or hours.
By that math, (1) is never going to win, and now (2) is never going to be able to make a contribution back to QGIS. Moreover, the pool of people for whom (1) is a real option will be shrinking every day, particularly as those people have to compete economically with the people who embrace (2).
So it's hard for me to see how community projects survive in the face of these dynamics. And it would be a shame to lose them -- they create a lot of value that a bespoke vibecoded thingamajig never will. But for better or worse, I just don't see humans-only coding having much of a future.
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."
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.
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.
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. ;)
> 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. ;)
cough
It's at least as important as Slashdot was back in the day. I'm not "buying" what you're "selling", dude.
[0] <https://www.quora.com/When-and-how-did-the-meaning-of-the-te...>
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.
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...
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.
I think that's a good observation, but I wouldn't say those people are actually astroturfing (noting you only said they smell like that).
But that "low-horsepower" vs "high-horsepower" distinction probably has a big bearing on people's attitudes towards LLMs. "Low-horsepower" people are simultaneously much more easily impressed and often lack the skill to properly evaluate the output they're getting. It's often been remarked that LLMs feel awesome for topics you know nothing about. It's kinda like Gell-Mann Amnesia Effect for people who were never knowledgeable about any topic.
[1] "The phenomenon of a person trusting newspapers for topics which that person is not knowledgeable about, despite recognizing the newspaper as being extremely inaccurate on certain topics which that person is knowledgeable about." (https://en.wiktionary.org/wiki/Gell-Mann_amnesia_effect#Engl...)
People are writing entire apps in days. You're just jaded if that isn't impressive to you.
No, clearly I did not.
FYI, it's tedious and annoying for me to respond to someone who consistently misunderstands my posts. And I'm seeing a pattern in your misunderstandings. They send a message that undermines the points you're trying to make.
This is why people who praise these models do? You're saying they aren't capable of evaluating their own experiences. Once again, not giving any positive reason as to why people could feel the way they do about these models. The pattern is you are engaging in the binary thinking you are complaining about.
Your sentiment is pretty clear.
> Your sentiment is pretty clear.
See, this one of the frustrating things about your responses: I make some statement about some subset, and you generalize it to the universe (of AI fans) and object. The thing you're objecting to is your own misunderstanding.
Do yo believe there are positive reasons people are adopting these models? Because there is nothing in your responses that suggest you do. I, as somebody who rarely uses these models but understands why people might, don't see any attempt at being unbiased.
You:
You're again reverting to the only reason people like these is because they're stupid.
Me: If you haven't already, you should watch this topical presentation from Greg K-H that was posted to HN like a week ago. ... Notice how his praise for the tools differs from so much of the expressed positive sentiment for said tools here on HN. ... The "high-horsepower" people I've known both express very nuanced opinions ...> people are simultaneously much more easily impressed and often lack the skill to properly evaluate the output they're getting
Yes, this is the exact sentiment expressed. That the praise you see is because of these people with low-horsepower who aren't capable of evaluating their own experiences.
You really should! It's positive sentiment about LLM-based tools that comes from a "high-horsepower" individual. Given your commentary here, it really seems like you've not encountered much of that sort of thing, so it'd really do you some good to load it into to your databanks for use in future discussions.
I agree with everything you've said here [0] as well as this bit I'm quoting specifically. I would strongly disagree with any claim that positive reports from "low-horsepower" people are likely to be astroturf. I'm just noting that a lot of astroturf reads like the way the "low-horsepower" people I've known tend to praise things.
[0] ...at least with whatever the comment said when I wrote this one ;)...
I think we're in agreement.
> I'm just noting that a lot of astroturf reads like the way the "low-horsepower" people I've known tend to praise things.
The "why" behind that would be interesting to know. It could just be that we assume astroturf would be low-effort, and that praise is low-effort (even if that's the most effort the "low-horsepower" person can muster), so they read the same.
Ditto!
> The "why" behind that would be interesting to know.
I'm going to briefly noodle on about why I think astroturfing generally Sounds Like That, and then attempt to answer your implied question.
So my hunch about the tone of astroturfing is that it's _kind of_ like 419 scams. [0] Perhaps none of this is new to you, but I write it down anyway:
1) Creating detailed praise that withstands scrutiny is a lot of effort, whereas expressing positive sentiment in very broad strokes is extremely easy. If your strokes are broad enough, you can probably often reuse the praise, saving even more time and effort. Similarly, defending criticism of detailed praise is much harder than defending broad-strokes positive sentiment.
2) If you want to hire live people to astroturf on message boards, people able to effectively defend detailed praise are surely going to be much more expensive than those who can only handle the vague broad-strokes stuff.
3) The target of this astroturfing deliberately isn't someone who can scrutinize detailed praise... in part because of how much work it is to author that praise, and in part because the people with power and/or purchasing authority are the ones you want to target... and it's often but not always the case that those folks lack one or more of the time, background information, or horsepower required to perform that detailed scrutiny in the first place. So, why waste the time, effort, and money?
Now please excuse the dogshit writing style of the following attempt to address your question, I'm definitely having a "low-horsepower" day today...
But why do "low-horsepower" people tend to praise in that way? speaking as someone who definitely has "low-horsepower" days, and who has occasionally been an absolutely godawful teacher, it might have something to do with the whole "You can't effectively teach someone something if you don't have a solid understanding of it yourself." thing? Both detailed praise and good instruction require a detailed understanding of the thing in question.
So part of the reason might be that "low-horsepower" folks tend to have just a surface understanding of the thing they're praising, so they cannot really create detailed praise. [1]
Both praise and instruction invite questions from the folks who are around to hear it. Folks who are capable of feeling shame often feel shame when when they present themselves as someone who is far more knowledgable about something than they actually are and questioning reveals the deception.
So another part of the reason might be to avoid in-depth questioning -both to determine the justifications for their praise, as well as to gain an in-depth understanding of parts of the thing being praised that the praiser is entirely unequipped to provide-. If one gets a vague "IDK, it's just good, right? It makes my work so much faster! I just like it!" response to your request for praise then that's a signal that you're not likely to get much more information if you ask probing questions. _Maybe_. This paragraph I'm super not confident in.
I'm happy to chat more about this, and will spend some time over the next day or so trying to phrase the gunk that's in my head better... but I can't make any promises that I will succeed at that.
[0] ...AKA "Nigerian Prince" scams...
[1] To downvoters: There's absolutely nothing wrong with this! Knowing just enough about your work and how to do it to satisfy your boss and keep your paychecks flowing is a solid way to live one's life. Precious few people do work that they like, let alone work that they're interested in... and it's my bone-deep belief that the best future for all humanity is one in which no one has to work unless they either want to or if having a job of some kind truly makes their life far better than not having one. Work sucks for most folks and putting in just enough effort to get the work done to the standard required is a fine way to engage with it.
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.
Related: the Rationalists display this very well (though it's certainly not unique to them). The jump from "I think my beliefs through carefully, therefore I am reasonably rational" (likely already false, or at best true in a limited domain) to "I am rational, therefore my beliefs are well-thought through" is actually very small in the human mind, despite the latter being the opposite of rationality.
Also, the existence of Gell-Mann amnesia should be taught to everyone!
> 3. I think there's a certain amount of defensiveness from AI enthusiasts.
I've encountered this as well. I think this is also a huge part of why you see so many people loudly exclaiming "every programmer uses LLMs now" despite that not being even close to true. If you criticize LLMs, it (socially, to them) counts as criticism of their users as well. As well, bosses are probably the most excited about LLMs because they hope to fire us all soon, so it can be pointlessly self-destructive to speak negatively about LLMs in a professional context right now.
That, plus AI boosters tend to be incredibly annoying about it, bringing it up at every possible opportunity, changing every technical discussion to be about them, suggesting them for the stupidest use-cases, loudly proclaiming nonsensical productivity boosts (perhaps you feel 5x as productive because you're forcing other people to spend their time fixing your shitty slop code?) etc. So as someone who does not use LLMs I avoid talking to them.
I see a lot of people going even further and claim that "it's impossible not to use LLMs now."
Not just among programmers talking about code either, you see it with non-tech people defending their overly long emoji-ladden AIspeak text posts.
I'm not a booster, I barely use these tools but what I notice is the two apparent "sides" that people have shifted into and really I don't think that' necessary because these are just tools that have adnvantages and disadvantages.
I will cede this: it indeed seems like you can throw together a shitty half-working prototype very quickly using LLMs. There's been a deluge of half-working prototypes, but years in and where are all these projects now? No study has concluded anything near a 5x improvement.
Besides, my actual opinion is that even if these actually gave a large productivity improvement, it's wouldn't be worth it. The negatives are simply too large:
- the concentration of power they are pushing for;
- the environmental effects of training;
- the disinformation they spread at scale (which in practice is their primary use-case);
- the adverse effect on a shared reality from the fact that they cannot reliably answer questions, yet are presented as doing so;
- the adverse effect on a shared reality from their sycophancy (do the rich surrounded by yes-men seem in touch with reality?);
- their anti-social nature, as they discourage engaging with other people in favour of solipsism masked by a poor simulacrum of personhood;
- their weakening of labour power because of the managerial class' belief that they will soon replace workers (whether or not they actually can is not particularly relevant);
- the large-scale plagiarism they enable;
- lastly, their weakening of already incredibly lax standards of engineering from our field.
The promise of more software does not even come close to outweighing all of that.
I can't speak to you other issues but these are here to stay and I think the only realistic way forward is to learn how to use them.
I guess let's just ignore the evidence, then.
> I can't speak to you other issues but these are here to stay and I think the only realistic way forward is to learn how to use them.
People only say this about things that they want. Ignoring the consequences of one's actions is not a neutral position. Societies are perfectly capable of banning things (yeah, you can probably sneak a local model through a hypothetical law, but it would end the industrial scale problems).
There isn't any evidence. It's pretty much all anecdotal. I can only speak from my experience.
> People only say this about things that they want. Ignoring the consequences of one's actions is not a neutral position. Societies are perfectly capable of banning things (yeah, you can probably sneak a local model through a hypothetical law, but it would end the industrial scale problems).
We're not going to ban these models, though. Which means we have to figure out how best to live with them.
> A recent study of actual coding practices across hundreds of firms finds that human code review forms a significant “bottleneck” for the overall efficiency of AI coding tools, resulting in “little evidence that firms increase software output or reduce employment” by using them.
https://metr.org/blog/2025-07-10-early-2025-ai-experienced-o...
> When developers are allowed to use AI tools, they take 19% longer to complete issues—a significant slowdown that goes against developer beliefs and expert forecasts. This gap between perception and reality is striking: developers expected AI to speed them up by 24%, and even after experiencing the slowdown, they still believed AI had sped them up by 20%.
LLM boosters always cry foul with this one because newer models exist (see next item), but the fact is this is evidence that programmers are remarkably bad at estimating their own productivity.
https://metr.org/blog/2026-02-24-uplift-update/
> For the subset of the original developers who participated in the later study, we now estimate a speedup of -18% with a confidence interval between -38% and +9%. Among newly-recruited developers the estimated speedup is -4%, with a confidence interval between -15% and +9%.
With the rather large caveat:
> Unfortunately, given participant feedback and surveys, we believe that the data from our new experiment gives us an unreliable signal of the current productivity effect of AI tools. The primary reason is that we have observed a significant increase in developers choosing not to participate in the study because they do not wish to work without AI, which likely biases downwards our estimate of AI-assisted speedup. We additionally believe there have been selection effects due to a lower pay rate (we reduced the pay from $150/hr to $50/hr), and that our measurements of time-spent on each task are unreliable for the fraction of developers who use multiple AI agents concurrently.
> We're not going to ban these models, though.
How could you possibly be confident of that?
> How could you possibly be confident of that?
I just don't see any indication that we're anywhere close to that. It would take a rather big shift in governance.
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.
[1] https://www.reddit.com/r/Bitcoin/comments/1vddeuy/are_you_ki...
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.
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.
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.
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.
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.
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.
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.
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.
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.
The utter disbelief people on HN show when they find out a lot of people hate or despise generative AI is much stranger.
Funny to see this while in other threads someone else will ask why HN hates AI so much.
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?
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.
Once you get to that point, you can copy paste your issue into an LLM and get a fix close to the PR you would open, but so can the maintainers, so what's the point of opening a PR and adding more friction?
In fact discussing the issue is way more productive since it's just about the actual issue, root cause and tradeoffs without the debates on implementation details and nitpicks.
If you want to contribute major features, you need to befriend, discuss and agree with the maintainers, I don't think drive-by PRs ever worked for this.
I don’t disagree with what you’re saying, but not all cases are created equal. If the PM could create a PR that was clearly verified, like we expect out of all the SWEs, I wouldn’t have a problem.
Multiple companies I know of have internal tool websites that are the front end to the major AI companies and it has access to cut PRs so non devs are able to open PRs
My experience is that maintainers cannot do this. Or rather, that it is useless.
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 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.
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.
It's not a key skill at all, as not everyone is interested in popularity.
Then marketing it to convince others to even try... If the idea is too niche it might never hit that threshold for uptake.
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.
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.
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...
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.
Also, Linus is also comfortable closing 100 PRs as "this looks like garbage". Many communities are softer and try to be more helpful with new contributors.
> Also, Linus is also comfortable closing 100 PRs as "this looks like garbage".
Probably, as LLMs get much, much better, most open source projects will be overwhelmed with submissions. I guess this is a good problem to have. Some projects will scale (more maintainers/reviews); others will become more harsh.The problem isn't just the code - the documentation for the change explaining what it fixes, how, why, what testing has been done, and so forth is often either lacking, far to verbose, or both (massively verbose without actually containing much useful information or other sense).
You raise a valid point for the future: when the average quality of submissions is good enough that it is impossible to tell the difference between human (or human aided by AI but giving its output sufficient review/rewrite) and LLM/agent submissions, then the issue will have gone away. But, given the problems projects like this are seeing it is obvious that the technology (or the people using it, probably both) are not nearly there yet.
> The best LLM policy…
That is a great policy. If only the entire world would follow it, or in fact even ever read it.
If the only reliable way for now to not be suffocated under a mass of bad AI submissions is to refuse anything that even vaguely sniffs of AI, then that is what many projects are going to have to do. If that offends you, then fork the project and patch your changes in, or vide code one from scratch yourself, then you can keep maintaining that along with all the submissions you get for fixes. Let time tell which the right decision is :-)
If the author really did one-shot the PR, then the author must have also put in the extremely detailed and tedious work which would be required to tame LLM output for this specific repo, in which case, they actually put in real effort, applyed expertise and thoughtfulness, which is the whole issue at hand.
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.
This sort of thing, in the minds of not just you but many other people, is exactly the problem. On behalf of the projects that you have communicated with this way: thanks a bundle.
You don’t know the model and prompt they used to generate the report so you can’t even take the model quality into account
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.
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.
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.
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?
I used to think this but have come around to the opposite. I'm already seeing client projects where they went off and LLMd their way forward. A few hundred KLOC and many rounds of bug fix whack-a-mole later, they have something that's a giant house of cards.
Sure, once in this state the LLMs can repair issues at a faster rate than the humans can, but the damage is already done at that point. And it requires a lot of combined human/agentic effort to unfuck it.
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.
Yes, but it's not ever too much code for a team to understand, or a community. The question is whether you can build a team or community with enough trust and integrity that two things are always true:
1. Alice understands the fluxtron renoberator module she wrote.
2. Bob can also shift his attention there and understand it if necessary, because Alice writes clean code that was reviewed by John and Sally.
You can have Alice, Bob, John and Sally all be robots, and you can decide to trust the robots, but (so far anyway) it's a choice, not an inevitability.
Every large project I ever worked on worked exactly this way. What do you mean it was rare?
I'm ready to bet that is untrue. Sure, no one can recite the code, but people can quickly scan the module and refresh their memory as well as understanding the new changes, even after a while. If not, collaboration would have been impossible.
> Because 3 months later, the fluxtron renoberator module has been modified, fixed and refactored by 5 other people and looks little like Alice remembers it
I don't know for which type of projects those things happen, but good design can have a long staying power. Drastic refactoring in a short period is a clear sign of bad engineering.
> and Bob, well, he could never shift attention and actually understand it, nor could anyone else, because that's just a nice story we told ourselves that never worked in practice.
A lot of OpenSource projects are decades old, and while some core maintainers can stay for the lifetime of the project, new contributors came, understood the code, made changes, then left. Same for hires in companies.
I don't understand this part. When I was doing freelance consulting, my job was quite often "come to our office, scan this 40 million lines codebase and fix stuff for the next week". It was never a problem to read and get up to speed completely unknown codebases if you have basic programming ability. Much harder to do something that fits floaty business objectives though.
I can’t help drawing a parallel with what is going on now. Even though I’m pro AI, I understand why QGIS is stepping back. There are a lot of places where the processes and tools are not ready yet to fully embrace it and you need time to prepare.
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!
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.
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.
Have you ever heard of the V model (https://en.wikipedia.org/wiki/V-model) ?
Long story short: it does not work, because the act of coding adds new valuable inputs that alters the (original) design.
One might say "you just have to know", which is an equivalent to "you just have to figure out the future", "you just have to be perfect" and other non-sense (which does explain why V cycle does not work, high inefficient, low quality outcome, bad method)
Honestly, where did the bottleneck end up now ? It sure isn't simply reviewing, or designing, so where is it ?
Assuming you're comparing to experienced human developers that are good at what they do, then I think you have to define what "better" means here. It's clear that you can get correctly functioning software faster in many cases, but it's not clear that the design will be better in terms of conciseness and readability or that it's as useful as a foundation for building upon later if nobody understands what's going on inside.
If I can shit out some vibe-coded thing over a weekend that does <useful thing> it means anybody else with the same tool can do the same thing. There is no value in the actual code itself -- the faster these models run, the more true that statement will become. In the not too distant future these things will run directly on silicone and operate at thousands of tokens a second. That means they'll iterate and explore something far faster than they do now -- mistakes they make will be fixed in seconds or perhaps milliseconds.
That being said my <useful thing> is likely only "60%" of what makes an actual product somebody would buy. It's finding the other 40% that is something I don't think that LLM's can solve. That requires human judgement and then knowledge of how to communicate that vision to your agents.
In short, I believe the challenge is knowing what to build that others would find useful. It's easy to crank out <useful thing> for yourself. Making something others can use is not. And that is, possibly, the bottleneck. But once these are fast and dirt cheap, (and that is a when not an if) the cost to iterate to something workable goes way down. Of course mumble mumble "no silver bullet" / "mythical man" month mumble mumble and all that soo......
I dunno... doesn't directly answer your question but it is what came to my mind anyway.
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.
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.
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.
There was no mention here on rushing to anything. Verbosity is not always bringing actual non-duplicating information. And even when the explicit way is taken, it can be put aside from human main analysis observation point. Actually even Typscript allow to organize type information by using .d.ts files for declaration files that contain only type information, while implementation files use the .ts extension.
Then there is the tradeoff between grepable explicit type and spare implementation with as much type inference as possible.
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?
> An eigenvector or characteristic vector is a (nonzero) vector that has its direction unchanged (or reversed) by a given linear transformation.
Do you understand eigenvectors now? Speaking for myself: certainly not. To really understand even that definition I'd need to do the calculations, play around with how they can be used in different circumstances, and allow my brain time to sit with all this new information and become comfortable with it.
I think LLM code descriptions are similar. They don't really bring understanding. Sometimes that is fine.
Ideally the project has a well written, living product and system implementation document that can be used to verify bug reports and feature requests against. Before even looking at the actual code implementation.
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.
The best fork wins :)
They're producing a fantastic quantity of software, and the quality seems higher than you'd expect for the velocity they're building at.
There's a lot of depth in these tools, but the process seems to be working. Look at the issues, PRs, commit history and release notes. It's moving faster than a project with an "all code must be reviewed by a human who is responsible for it" policy would. Will be interesting to see if there's an upper quality bound.
If it does support projecting differing CRSs though, please can you point me at it? I’m a nobody and nothing to do with qgis but I would love to have a play with it!
For what it's worth, I just skimmed the MDN docs and e.g. DOMPoint is using the right kinda wording to sound like it's not inherently cartesian-only. Could be interesting, that. Thanks for getting it into my head!
I have a sneaking suspicion that people are having some agent check out 500 repos and just prompting with “find a bug in this repo and fix it” and submitting the results blindly.
Edit: typos, on mobile
From the reports coming from a number of places, I'm absolutely sure this is what is happening. People want the glory of finding a named bug, perhaps they believe some more widely useful reputation gain is heading their way if something that their bot finds is actually massively significant. Though it isn't limited to 500 repos, they tell it to just keep going after every one it scans.
This is unironically suggested as a way to 'get in the door' both in bootcamps and 'spammy' universities.
Combine this with a growing sense of being "left behind" and a highly publicized collapse in software jobs coming any day now and any proof of contribution is highly prized. So why not?
Its kind of appalling that people think this is an acceptable way to behave
Most bugs that are reported via AI-generated GitHub issues are edge cases, which are technically bugs, but not something anyone actually ran into.
Contributions are exclusively AI-generated, and it's much easier to just go off of a GitHub issue myself than asking the bot behind the GH account to remove the 5 redundant tests it added, or to refactor what has become a 3k line file.
AI doesn't care about code quality, maintenability, or long term goals. It's just a local maximum optimized with RL. Great for debugging, OK for reviews, but can't produce anything that's above average.
Sadly, people seem to think all these edges AI finds are valid and must be fix and were never thought about. Most were thought about and deemed not worth the additional 50 if statements to handle. Cyclomatic complexity has exploded exponentially with AI and everyones response is “no no no you just need to use opus 6.5 and it will work”
I think this is going to be a common outcome from the fact that many people have AI agents that can one-shot fix and deploy. Maybe it’s not a bad thing for those people and the maintainers who each get what they want.
I think OSS is going to look more like the original Git model, or perhaps even further towards “horizontal gene transfer” where memes/alleles get copied across various repos, rather than having a single lineage of phenotypes.
The other option they proposed was a proof-of-humanity by payment, which seems much more in line with the above.
The problem with just banning AI is you didn’t solve trust, and your untrusted users are just going to drop drive-by PRs anyway. How do you know if an untrusted user did or did not use AI? In practice this likely means just aggressively closing “slop-looking” PRs from users you don’t recognize?
But then, you’re preventing your trusted community members from benefiting from AI assistance.
I’ve been advocating for defining a higher standard for AI contributors, eg an AGENTS.md that specifies some meaningful correctness bar. In this case, perhaps the PR that adds you to CONTRIBUTORS.md could to add a large novel and non-trivial end-to-end test; if you can construct problems that are easy to verify but hard to get right, then this is your “proof of work” to establish competence.
From reading the GH issue it does seem this is a placeholder solution, so I hope they find a more stable long-term resolution.
Yes but this is fairly tedious people work that most open source maintainers are not interested in. Once the tooling is available to make that easy, it will become more popular.
https://www.youtube.com/watch?v=NnV_cWeoo5Q
One thing I've been thinking is something like the DCO checks. Set up some account bridge between (eg.) Discord and GitHub, then auto close anything submitted by accounts not sufficiently involved with a message linking to the new contributor policy and rationale.
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...
The linked discussion thread specifically calls this a "moratorium" and it's unfortunate that they decided not include that explanation in the policy document specifically to avoid controversy and flak, with the end result that there's now a 202-comment-plus HN thread: https://lists.osgeo.org/pipermail/qgis-developer/2026-Septem... -- the "proof of life" concept being tossed around in that thread, although rejected, is genuinely interesting and I hope they revisit it and allow a nominal financial contribution to the project to prove a human is behind a PR regardless of AI assistance (probably along with some other approach, as a total exclusion and the only way it would also be bad).
My own experience with QGIS is limited to the most basic navigation and queries of some local maps I've archived. Nonetheless it's an obvious gem and I hope they're able to arrive at a balanced and sustainable policy. Maybe they would get there faster and more reliably by tightening the previous LLVM-inspired policy rather than the slam-shut and then loosen approach they seem to be taking, but hardly anyone has experience with a situation exactly like this, so only time will really tell.
> 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.
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.
"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.
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.
- 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.
In the past, communities were required to produce the rest of these things. Now we live in an era of unprecedented free software. Soon no one will even be able to lock us out of firmware and all software will be free as in free speech to all.
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.
> 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.
> 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.
Users can continue to fork my code, if they wish, and it is still available, but I'm done fighting submissions.
Although recently I've started getting more spam by email from scrapers which are obviously AI based. Just yesterday:
"We reviewed your "Added generated syscall identifiers" in skx/slisp and selected it for the hub. It is a substantial piece of work: 3 files and about 390 lines across packages." Some bollocks AI coding hub, where apparently people will be able to see my code when they have 100% identical problems. Meh.
I'm almost reaching the point where I want to make repositories private, and maybe it will come, but for the moment things remain.
I just leave one-three repositories "open", and archive the rest. Then when my interest shift, or I need to go back to something old I rotate them.
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
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.
Edit: https://xkcd.com/2347/
QGIS is more of a slab/deck that links all those foundations together.
RIP.
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.
Could be worthwhile looking into how the folks at OpenClaw are doing it, or at some of these projects that are at the frontier.
I suppose strong and automated AI screening, using PRs more as prompts rather than as direct contributions, and potentially liberal use of just closing PRs are useful patterns.
Banning AI contributions is just the first step. Contributions are just generally no longer useful when given the idea you can have an llm do the work with 1/50th the effort it would take you before. Even with repeated rounds of feedback and correction it is less work to have an LLM do the work for you than it is to manage an eager contributor attempting the same work, and the result is going to be better and more in line with what you want.
The developers and maintainers are explaining that the amount of slop they receive is unsustainable, what do you even complain they try to find a solution?
I don’t have a good solution to their slop problem, but I also don’t have a good solution to their overall bandwidth problem. I like QGIS better than any other GIS software I’ve had the misfortune of using, and at the same time brace myself a little bit every time I open it up because there’s a solid chance I’m going to have encounter another weird quirk or awkward workflow that I haven’t figured out The Trick for…
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.
My point is that no-AI assisted development is becoming very niche; it's not a right approach if you want to get things done, and AI-assisted doesn't mean lower quality. And if you against paying evil Anthropic and OpenAI corporations you have options like local LLMs.
My 2 cents.
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.
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.
The same influencers by the way who are just for hire and were preaching DEI and Covid boosters in 2022 but now support Trump, Kushner, BigAI (and local AI as a figleaf).
Whether or not to accept LLM generated code to your highly technical open source project has literally nothing to do with DEI policy. Not everyone is an American. Not everyone is reading about politics all day long and desperate to debate it. Touch some grass.
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.
Couldn't happen sooner.
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.
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.
If not you may want to familiarize yourself:
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.
> No, you cannot replace what QGIS is to its users with a couple of prompts and a factory of agents.
You absolutely could. Maybe not to its users, but the core functionality would be the same.
> Any more than you could do it with FreeCAD, really.
Didn't that dude clone the whole Adobe suite with a single prompt? Well a prompt per app, but my point still stands.
> 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.
Obviously if I clone QGIS it would be because I'd be using it for my own projects. But without being disrespectful here, I quite honestly do not see the point of this library whatsoever. I was under the impression that _most_ GIS work was either outright trivial or specialized enough that it warrants custom code regardless. I don't understand who needs this.
Oh come on. You’re doing a bit here, right? You cannot possibly be serious.
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 justify itself. 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 are 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.
Sounds like llm's have made is so easy for anyone without a shred of know how to submit anything that people prompt one or two times and consider the job done, not knowing any better becausue they don't have to.
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.
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.
You're under the false impression that the maintainers of a project are obliged to follow the same standards as a court of law.
> 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
False.
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.
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.
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.
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.
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.
I think this is where it becomes a question of whether it’s an ideological rejection of LLMs or a technical/practical rejection of LLMs.
A project that is rejecting contributions where LLMs are used purely because of the “we can’t handle the amount of newbie generated inbound slop” would, in theory at least, have minimal issue where the contribution is, in fact, indistinguishable from human-only contribution. “This person has put together a solid clean patch that solves a real problem” sounds like a great kind of contributor to have.
On the other hand, a project that rejects LLM-assisted patches because of ideology or social or environmental concerns might actually hate a contributor like this even more than a random drive-by slop contributor.
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.
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?