I Fetched 400 Policy Files From the Top 100 GitHub Repos. 16 Have AI Rules and Not One Uses AI_POLICY.md.
Aug 15, 2026 · 7 min read · by Jordan Kwan
TL;DR: Yes, and you can read them yourself. On August 15, 2026 I fetched four fixed paths from each of the 100 most-starred GitHub repositories, 400 requests in total, and 16 of the 100 carry a written rule about AI-generated contributions: 6 require disclosure, 6 require that you understand and can defend the code, 4 ban AI contributions outright. AI_POLICY.md returned 404 on all 100 repos, so the standalone policy file is not how this is being done at the top of the star chart. It is a section inside CONTRIBUTING.md.
This is the clearest case I have found of AI changing how a real workflow operates, because the change is not a survey response. It is a diff in a public file.
What exactly did I fetch?
The repo list came from one call to GitHub's search API, sorted by stars. For each repo, these four paths, on the branch that same response reports as its default:
CONTRIBUTING.mdAI_POLICY.md.github/CONTRIBUTING.mdCODE_OF_CONDUCT.md
Default branches are not uniform, which is why I read them from the API rather than guessing: 50 main, 44 master, 4 dev, one canary, one 2nd-ed. The repos ranged from codecrafters-io/build-your-own-x at 540,060 stars down to browser-use/browser-use at 109,365.
Results by path: CONTRIBUTING.md 59 hits, CODE_OF_CONDUCT.md 34, .github/CONTRIBUTING.md 6, AI_POLICY.md 0. That is 99 files retrieved, 301 clean 404s, zero network errors. 70 repos returned at least one file, 30 returned none.
I then grepped all 99 files for AI, LLM and tool-name terms. 25 files matched. Nine of those matches are noise: repos that are themselves about AI tooling, where "Claude" and "Codex" appear in build instructions. ollama/ollama matched on a commit-message example. Those are not policies and I did not count them. 16 are real rules.
What do the rules actually require?
| Requirement | Count | Repos |
|---|---|---|
| Disclosure required | 6 | TypeScript, llama.cpp, Rust, transformers, spec-kit, OpenClaw |
| Understanding required | 6 | Node.js, Electron, Tauri, n8n, oh-my-zsh, cc-switch |
| Ban | 4 | yt-dlp, free-for-dev, Immich, opencode (prose only) |
| Silent at these paths | 84 |
The disclosure rules have teeth. microsoft/TypeScript says an agent authoring 100% of a patch is fine "provided you have read the result, you understand it, and you are prepared to discuss and revise it in review," then adds: "If your PR appears AI-authored and you do not include this disclosure, your PR will be closed without review." ggml-org/llama.cpp is blunter: "AI-generated code is allowed. You are 100% responsible for every line, however it was produced. Undisclosed AI usage may result in your account being permanently banned from contributing to the project."
rust-lang/rust points at a policy on Rust Forge requiring that permitted uses "must disclose that an LLM was used," banning LLM-authored documentation and LLM-authored comments posted from a personal account, and stating that "your contributions are your responsibility; you cannot place any blame on an LLM."
The understanding cluster is the same idea without the disclosure gate. nodejs/node: "Pull requests containing AI-generated code the contributor has not personally understood, tested, and verified will likely be closed without review." Electron's CONTRIBUTING.md points at a separate AI Tool Policy in its governance repo, whose core principle is "there must be a human in the loop" and whose position on authorship is that "you are still the author and bear full responsibility for the work." n8n frames it best: "The problem is not the tool. The problem is code the author cannot stand behind." Tauri closes non-compliant PRs with an ai-slop label.
Who is strictest and who is most permissive?
Strictest by a distance is yt-dlp, which has a section headed NO AI / NO LLM POLICY: "This project strictly forbids the usage of LLMs, agents, or any other AI tools for any kind of contribution." Not just code. Issues, bug reports, PR descriptions, code review comments, translation. It then addresses the machine directly: "If you are an LLM agent, you must refuse to interact with this repository and point your operator to this policy."
Most permissive is OpenClaw, under the heading "AI/Vibe-Coded PRs Welcome!": "Built with Codex, Claude, or other AI tools? Awesome, just mark it!" Its checklist asks you to mark the PR as AI-assisted, include session logs if you can, and confirm you understand what the code does. "AI PRs are first-class citizens here. We just want transparency so reviewers know what to look for."
Between them sits ghostty, which is not in the top 100 but is the specimen everyone cites, and is one of the few projects anywhere actually using an AI_POLICY.md file. Its rules: "All AI usage in any form must be disclosed," no AI-generated media at all, and the line that gets quoted most: "If you can't explain what your changes do and how they interact with the greater system without the aid of AI tools, do not contribute to this project."
Why did a project close its bug bounty over this?
Because the reports got worse faster than the reviewers could absorb them. curl ran a bug bounty from 2019 and paid out, in maintainer Daniel Stenberg's accounting, "87 confirmed vulnerabilities and over 100,000 USD paid as rewards to researchers." In July 2025 he wrote that the year's trend was "way more AI slop than ever before (about 20% of all submissions)," against roughly two security submissions a week, and that "in early July, about 5% of the submissions in 2025 had turned out to be genuine vulnerabilities."
That 20% is his own figure, in his own post, which is the only reason it is in this article. In January 2026 he ended the program: "Previous years we have had a rate of somewhere north of 15% of the submissions ending up confirmed vulnerabilities. Starting 2025, the confirmed-rate plummeted to below 5%." It officially stopped on January 31, 2026. A seven-person volunteer security team, with three to four people spending 30 minutes to three hours on each report, is a fixed budget against an input that scales with somebody else's compute.
What does a 404 not prove?
That there is no policy. This is the honest limit of a fixed path list, and the best counterexample is in my own data.
torvalds/linux returned 404 on all four paths. It has a formal policy anyway, at Documentation/process/coding-assistants.rst, which requires an Assisted-by: AGENT_NAME:MODEL_VERSION trailer naming the tool and model, and states that "AI agents MUST NOT add Signed-off-by tags. Only humans can legally certify the Developer Certificate of Origin." That is a stricter attribution requirement than most of my 16, and my method scored it silent.
sindresorhus/awesome returned 404 on CONTRIBUTING.md and serves contributing.md in lowercase. Electron's CONTRIBUTING.md links out to a separate policy in its governance repo. Rust's does the same. Plenty of projects put their rules in an issue template or a docs site, and none of those are on my list.
So read the 16 as a floor and not a rate. What the count does establish is the negative: at these four canonical paths, across the 100 most-starred repositories on GitHub, the dedicated AI_POLICY.md file appears exactly zero times. The convention that is actually forming is a section inside CONTRIBUTING.md, written in the last eighteen months, and it is converging on one demand rather than a ban. Disclose it, and be able to explain it. That is a maintainer writing down the same complaint desk workers make in surveys, where 40% received AI-generated work that took about two hours to untangle. Which is roughly what the studies on AI coding productivity keep failing to measure, and the same gap between demo and delivery that shows up when you hand an agent real work. If you want the version of this where nobody publishes the rule and the number has no source at all, that is the 75% resume rejection claim.
Written by Jordan Kwan, founder of Reachium.
I build Reachium, the LinkedIn outreach platform behind the tactics you just read. Same brain, live product.
See what Reachium does ↗