Called it a year ago https://clojurians.slack.com/archives/CBJ5CGE0G/p1746956325288649?thread_ts=1746858919.776579&cid=CBJ5CGE0G
I'm not theoretically opposed to using LLMs in development but seeing the PRs opened in some projects wasting mainterners' time makes me think of a very exclusionary policy for accepting generated contributions. Essentially maintainer has to trust contribtor, personally, to hold the tool correctly. Otherwise ban.
I put this disclaimer in the https://github.com/cjohansen/dataspex#contributing-to-dataspex: > I'm happy to collaborate with other humans to improve and add new features to Dataspex. However, I will not review the results of your LLM prompts. When opening a pull request, I expect that you understand the code you're submitting and can vouch for its quality. I don't care if you had help from an LLM to write it, and I certainly do not want to read any part of your LLM chat logs. Edit: changed "AI" to "LLM". LLMs aren't intelligence.
I haven't received a lot of LLM slop on my projects yet, so I've started with some soft warnings.
Tbf I don't see the rationale in such a long explanation. Just: LLM generated? No, thank you.
I guess π€·ββοΈ
Yeah, better off with a prompt injection as the people doing those PRs are not reading the readme their LLM is.
I don't really want to cater to LLMs, which is why I wrote the disclaimer as if a person would read it. It's as much signalling my values as it is stating my stance on the matter.
In any case, I wrote this in response to someone asking me on Slack if I would consider LLM generated contributions.
My open source projects have very rarely contributions, but I would fully supports this type of disclaimers. LLMs are a "tool" to support a human developer, in the same way as "code completion" is a "support tool" That "by coincident" they can be turned into "agents" which "could autonomously submit PRs" (which 'code completion' in current IDEs cannot do), is just a detail, which should not change the principle. Luckily as a "open source repo maintainer", we can decide which contributions we accept. Maybe this type of policies result in "fewer contributions", but so-what.
Wonder if it's better to just say no PRs, issues only. Any issue that is not written by a human will be closed.
Those who make good issues can then later be given the PR permission
I like that!
Mostly a riff on this piece https://mikemcquaid.com/stop-mentoring-first-time-contributors/
From the pre LLM days
About effectively using your time.
Token costs aside, I wonder about the scale economics of βmore people with LLMs on a problemβ. The value for a maintainer of another person driving an LLM vs. just themselves is not obvious.
Applies to other areas as well. If you're giving someone a problem and all they do is go and let Claude solve it, you might as well do it yourself and remove the indirection.
But that was true before LLMs. See sqlite. Why have someone else write the code you will end up maintaining. Better they submit an issue and you write the code.
The difference now is, they didn't write the code, they effectively made a PR with someone else's code. So you can talk to that βpersonβ directly instead.
If you're going to spend money on tokens, donate that money to the maintainer instead, build a good relationship, bring attention to your use case or difficulties.
Well that's easy. Because you have "free" tokens and you only pay 200$ for unlimited* use. So slopping PRs is "free" donating to maintainers is not.
That's why the subsidies matter because they create the current behaviour.
If a slop PR cost you 50$ per go we wouldn't have the corosive dynamic that is currently in play.
Honestly, charging a token 1-3$ fee per issue submitted would solve a lot of problems.
For PRs, charge per line of code.
There is this prompt injection from Hashimoto https://x.com/mitchellh/status/2067970516951150721?s=46&t=-3-BL9HYiz5yur7dXo9f-A And a recent discussion about open source + AI in the Casey Muratoriβs channel https://youtu.be/gR2T1uxHG7o?si=3T_1RjAmdfTJ2j-i
The other poison is mention openclaw, zero's your claude, and puts it on cooldown.
Of course only works on claude and shuts down any claude use (for now). Which is more extreme.
@pfeodrippe I was looking for this picture to post in the thread, it's just perfect
@andersmurphy simply by mentioning openclaw? π
Charging tokens per LoC is absolutely devilish Oh, you want to make LoC a metric? Two can play this game.
Fun fact - if you have a recent commit that mentions OpenClaw in a json blob, Claude Code will either refuse your request or bill you extra money.
What a wonderful way to exercise some resistance.
This is not resistance to anything. This is exclusionary application of taste.
It's doing whatever I want with my code. And it doesn't require any more effort to stop than reading what you're feeding to the plagiarism machine.
I don't disagree with that
I'm just allergic to the resistance framing.
I mean streaming html and brotli/zstd compression behaves like a zipbomb if you try to scrape it without paying attention and try and hold the whole stream. So not very LLM friendly
I'm all for being a dick to anyone who shits in the commons
Completely unintentional emergent bot defence mechanism? π
We're just free agents reacting to stimuli π
To clarify you mean mass extinction of entry level positions and then senior positions. Not because seniors are not needed but because we stopped training juniors.
Yes, although by dealing juniors you still won't make more seniors
Not only this video, but the entire series is pretty good, worth a watch https://youtu.be/gR2T1uxHG7o?si=IA6087rDVuiMSWwL
Another rant: DAE feel reluctant to contribute to a project that went full slop overdrive (that is, used to be "organically" developed, but now is just vibe-rushed?) And I'm not talking about code quality β the AI-generated code is alright (I guess? I'm not able to keep the pace of tracking all changes) and is reviewed reasonably well, but it feels like the soul has already departed from the body, and I'm the only living person in a ghost town. Am I overreacting?
If I see a CLAUDE.md in the repo, I close the tab. π€·ββοΈ If I see an AI-generated ad for a company, I sear into my brain that I will never give them my money. π€·ββοΈ
We all have to draw our lines somewhere.
Yeah, for me it's when the README (or any other documentation out of code) read as AI-generated with all the BS AI loves to talk about, if you didn't had time to do it yourself (not even to simplify or putting a Docs in WIP warn), what else haven't you reviewed in the project? Very bad times we live today, and imagine the internal projects in big companies pushing tokens usage just for metrics. Also, not only code, but dialogue quality/soulness has decreased a lot, nothing worse than a coworker giving you a AI-generated output each time you ask something
I saw an interesting tweet from Mitchel who created hashicorp and ghostty. He puts a poison in the claude.md file so he can more easily discern between slip and augmented work
https://clojurians.slack.com/archives/C0B7Q4XRM1U/p1782043878334079?thread_ts=1782018172.603959&channel=C0B7Q4XRM1U&message_ts=1782043878.334079 yes ahahaha @dpsutton
Yeah this seems like a good way to ensure the ai assists the programmer and it's not just slop
Yeah, but in general having these files are a good proxy about knowing if a project uses AI or not (and ofc people may as well be dishonest and just have them locally or in a private version of the project)
I do have a few open source libs where the code is all hand written no AI at all, but the readme was AI generated π, I probably need to change that or people will think it's all vibe slop
Sure. But knowing if they use AI or not is a pretty coarse metric these days
I agree though, it's not even the use of AI for me, it's the standard of care around it, there's a level of speed where it's like, you need to let these ideas bake a little longer in your head, even if the code is good, are the concept and ideas good? Is the design ideal? Where was the hammock time?
I find the AI policies for the zig compiler really sane, specially the part regarding new contributors, rationale at https://kristoff.it/blog/contributor-poker-and-ai/
(and ofc people may as well be dishonest and just have them locally or in a private version of the project)> But, then you can't get other agents to contribute efficiently to your project. Having good claude/llm files means you can use others tokens more efficiently. When the price of tokens go up the main benefit of open source will be getting free tokens from other users. TLDR: in short the LLM projects will always out themselves. π€£
Basically see two worlds developing. Projects that don't accept PRs (except from trusted users) and projects that accept mostly LLM PRs. The bazaar is now just agents. The cathedrals are inhabited by handcoding monks. laughcry
code monks instead of monkeys. I like it