{"slug": "ai-didn-t-break-open-source-it-removed-a-filter-nobody-designed", "title": "AI didn't break open source. It removed a filter nobody designed", "summary": "The curl project shut down its bug bounty in January 2026 after AI-generated reports overwhelmed triage, with the share of valid reports falling from above 15% to below 5% in 2025, and in the first three weeks of 2026, 20 submissions yielded no real vulnerabilities. Mitchell Hashimoto, creator of Ghostty, argues that agentic programming removed the effort-based backpressure that once filtered low-quality contributions, creating an asymmetry where generating code is cheap but reviewing it is not. The program reopened about a month later when report quality improved, highlighting that the issue was unreviewed AI output, not AI itself.", "body_md": "*By erickdevz · full-stack developer, Viçosa, Brazil*\n\nIn January 2026, the curl project shut down a bug bounty it had run since 2019. Not because the money ran out — it had paid out more than US$100,000 across dozens of confirmed vulnerabilities. It shut down because the economics of triage had collapsed. Around the same window, the Jazzband collective, which maintained 84 Python projects, announced it was winding down. tldraw's founder flipped the repository to auto-close every external pull request. Ghostty adopted a zero-tolerance policy for low-effort AI submissions.\n\nNone of these projects hit trouble from a lack of people wanting to contribute. They buckled under the opposite.\n\nIt's worth understanding why, because the correct diagnosis points to a very different fix than the one most of the industry is building.\n\n## The filter nobody knew was there\n\nMitchell Hashimoto, who created Ghostty (and co-founded HashiCorp before\nit), wrote the sharpest line about this in the project's [updated AI\npolicy](https://github.com/ghostty-org/ghostty/pull/10412). His framing:\nagentic programming eliminated the natural, effort-based backpressure\nthat used to limit low-effort contributions, and it's now far too easy\nto produce large volumes of bad content with minimal effort.\n\nSit with the word *backpressure*, because it's the whole argument.\n\nThink about what it took, up to 2023, to open a pull request against a project you didn't already know. Clone the repo. Get it to build. Read enough of the code to find where your change fit. Run the tests. Work out why a test broke.\n\nNobody designed that as a quality system. But it functioned as one. The\neffort was a toll, and the toll guaranteed a floor: almost anyone who got\nas far as a PR had understood *something* along the way.\n\nThe toll is gone. Producing a patch that compiles and passes CI now costs a few minutes and no understanding at all. The quality floor that existed as a side effect of effort vanished along with the effort.\n\nHashimoto is emphatic that this is not an anti-AI position — Ghostty is written with heavy AI assistance and its maintainers use AI daily. The line isn't about the tool. It's about contributors who outsource the thinking to a model and then hand the verification bill to the maintainer.\n\n## The asymmetry that breaks the system\n\nGenerating code got dramatically cheaper. Reviewing code got no cheaper at all.\n\nThat asymmetry is fatal to any system with an open front door. The\n[curl numbers](https://www.bleepingcomputer.com/news/security/curl-ending-bug-bounty-program-after-flood-of-ai-slop-reports/)\nmake it concrete: the share of vulnerability reports that turned out to\nbe real had run above 15% for years, then fell below 5% in 2025 as\nAI-generated reports flooded in. In the first three weeks of 2026, curl\nreceived twenty submissions — seven of them inside a single sixteen-hour\nwindow — and, after the security team read each one, tried to reproduce\nit, and traced the code paths, not one described a real vulnerability.\n\nDaniel Stenberg's own summary, in his post\n[\"death by a thousand slops\"](https://daniel.haxx.se/blog/2025/07/14/death-by-a-thousand-slops/),\nwas blunt: not only does the volume go up, the quality goes down, so you\nspend more time than ever to get less out of it than ever.\n\nSecurity reports are the cruelest version of this, because you can't just\nignore them. Dismissing a real vulnerability has a catastrophic cost. So\nevery invented report has to be investigated seriously *before* it can be\ndismissed. The cost of generating approaches zero; the cost of\nresponsibly discarding stays high.\n\n**An honest footnote:** curl\n[reopened the program](https://cybernews.com/security/curl-bug-bounty-ai-security-reports-daniel-stenberg/)\nabout a month later, when report quality climbed back up. Notably, what\ncame back wasn't the slop — it was high-volume, high-quality,\nhuman-verified reports. Which is the whole point: the problem was never\nAI. It was unreviewed output with the effort stripped out.\n\n## Why detecting AI is the wrong answer\n\nThe market's instinct was to build detectors: tools that score a PR by how likely it is to have come from a model.\n\nThis fails for two independent reasons, and both are fatal.\n\n**The first is technical.** Detecting AI-generated content isn't reliable,\nand it gets less reliable as models improve. A detector with a 5%\nfalse-positive rate, pointed at a project taking a hundred PRs a month,\naccuses five human contributors of fraud every month. It takes one of\nthose becoming a public thread for the project to lose more than it\ngained.\n\n**The second is conceptual, and it matters more.** AI-generated code isn't\nthe problem. The maintainers loudest about slop use AI assistants every\nday and say so. The clearest example in the whole saga: a security\nresearcher sent Stenberg a large batch of AI-assisted findings that led\nto fixing around fifty real bugs. Same tool, opposite outcome — because a\nhuman understood and verified the output before submitting it.\n\nA model-written PR that's read, understood, tested, and defended by a human is a legitimate contribution. A hand-typed PR from someone who can't explain what they did is junk, without a line of AI involved.\n\nThe variable that matters isn't where the code came from. It's whether a human understands what was submitted.\n\n## What projects are already doing by hand\n\nThe most telling detail is what these projects' policies actually ask for.\n\n[matplotlib's contributing guide](https://matplotlib.org/devdocs/devel/contribute.html)\nnames the real failure mode directly: it warns against using AI output\nwithout ensuring you fully understand it, or without verifying it's the\ncorrect approach — and says it will flag and reject low-value\ncontributions on those grounds. Ghostty's next move wasn't a better\ndetector either; it was a Vouch Request, where a first-time contributor\nhas to explain themselves in their own words — explicitly not written by\nAI — before they can submit a PR at all.\n\nNone of this is really \"don't use AI.\" It's a request for **proof of\nunderstanding** — applied by hand, one PR at a time, spending exactly the\nscarce resource the policy was meant to protect.\n\nAnd the maintainers say as much. When tldraw\n[closed external PRs](https://github.com/tldraw/tldraw/issues/7695), it\nframed the move as temporary, pending better tooling. Here's the part\nthat stopped me: in GitHub's own\n[public discussion on low-quality contributions](https://github.com/orgs/community/discussions/185387),\na GitHub product manager floated, as one possible direction, defining a\nset of rules or prompts and evaluating pull requests against them. The\nplatform itself reached for the same idea. There's written demand for a\nproduct that doesn't quite exist yet.\n\n## Restore the backpressure, don't police the origin\n\nIf the diagnosis is that the effort toll disappeared, the fix isn't to guess who used AI. It's to rebuild the toll — and charge it in the right currency.\n\nThe right currency is understanding. And understanding is measurable in a very old way: by asking questions.\n\nThe shape is simple. When you open a PR, you get two or three specific questions about that diff — questions you can only answer if you understood the change, not if you skimmed the description. You answer. The merge unblocks.\n\nThis has properties a detector never will:\n\n**It accuses no one.** You don't claim \"this was AI-generated.\" You ask\nsomeone to explain their own work — something any good-faith contributor\nfinds reasonable, and something several projects already ask for in prose.\n\n**False positives are cheap.** If the questions are too easy for an\nexperienced contributor, they lose thirty seconds. A detector's worst\ncase is calling a human a fraud; a quiz's worst case is mild annoyance.\n\n**It's tool-agnostic and future-proof.** It doesn't matter whether the\ncode came from a model, from Stack Overflow, or from the person's own\nhead. The question stays the same three model generations from now: is\nthere a human who understands this?\n\n**It rebuilds the toll exactly where it used to be.** It doesn't add new\nfriction — it puts back the friction that was always there, and only ever\nlooked invisible because it came free with the manual work.\n\n## The objections worth naming\n\nA quiz can be answered by AI. It can — but that requires pasting the diff and the questions into a model, reading the answer, and submitting it. That's a toll again, and the toll is the point. The goal was never to make it impossible; it was to make it not free.\n\nAnd there's an accessibility tension that shouldn't be waved away: questions in English penalize non-native contributors, and timed tests penalize neurodivergent people. Any serious version of this has to be configurable by the maintainer, untimed, and able to exempt established contributors. A filter that only passes people who write fluent English isn't measuring understanding — it's measuring something else, and reproducing an exclusion open source already has plenty of. (I care about this one personally: I'm not a native English speaker, and I'd fail a badly built version of my own idea.)\n\n## What this means\n\nThe public conversation framed 2025 and 2026 as the moment AI invaded open source. That framing leads to bans, detectors, and fights over code provenance — and none of them solve the problem.\n\nThe more useful reading: open source ran for decades on a quality filter nobody designed and almost nobody noticed — the effort of understanding before contributing. AI didn't break open source. It removed an accidental filter, and forced us to build on purpose what used to come for free.\n\n*I'm erickdevz, a full-stack developer\nfrom Brazil. I'm building an open-source tool that does exactly this:\ncomprehension-gate\nasks a contributor a few questions about their own PR before it can\nmerge. Not a detector — a comprehension check, configurable and untimed.\nIt's early and I'm looking for projects to try it on.*", "url": "https://wpnews.pro/news/ai-didn-t-break-open-source-it-removed-a-filter-nobody-designed", "canonical_source": "https://erickxdev.vercel.app/en/blog/ai-didnt-break-open-source/", "published_at": "2026-08-10 18:04:24+00:00", "updated_at": "2026-08-10 18:12:03.152666+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-ethics", "developer-tools"], "entities": ["curl", "Jazzband", "tldraw", "Ghostty", "Mitchell Hashimoto", "HashiCorp", "Daniel Stenberg"], "alternates": {"html": "https://wpnews.pro/news/ai-didn-t-break-open-source-it-removed-a-filter-nobody-designed", "markdown": "https://wpnews.pro/news/ai-didn-t-break-open-source-it-removed-a-filter-nobody-designed.md", "text": "https://wpnews.pro/news/ai-didn-t-break-open-source-it-removed-a-filter-nobody-designed.txt", "jsonld": "https://wpnews.pro/news/ai-didn-t-break-open-source-it-removed-a-filter-nobody-designed.jsonld"}}