SQLite added a plain rule to its repository guidance: it does not accept SQLite agentic code as a contribution. The project still welcomes bug reports that include a reproducible test case, which makes this less of an anti-AI manifesto and more of a maintenance boundary for a public-domain database used almost everywhere.
Table of Contents
The short version
- SQLite’s
AGENTS.mdsays the project does not accept agentic code, even though maintainers may review concise proof-of-concept patches before reimplementing changes themselves. - The project separates code contributions from bug reports: AI-assisted reports are acceptable when they include a reproducible test case.
- The policy is tied to public-domain requirements, long-lived C code, Fossil-based development, and the cost of reviewing patches the maintainers did not write.
- For AI coding tools, the useful lesson is blunt: a good repro may travel farther than a generated patch.
What happened
SQLite now has an AGENTS.md file aimed at people pointing coding agents at the SQLite source tree. The file explains project basics, build commands, testing commands, repository conventions, and contribution rules.
The sharp part is the contribution policy. SQLite says it does not accept pull requests without prior agreement or legal paperwork that places the contribution in the public domain. It also says, in a separate sentence, that SQLite does not accept agentic code. Maintainers may still review a short, well-written pull request as a proof of concept, but the human SQLite developers reimplement accepted ideas themselves.
That distinction matters because SQLite is not run like a typical GitHub-first project. Its canonical repository is Fossil, not Git, and its public-domain status is part of the project’s identity. A generated patch is not only a review burden. It can also blur authorship and provenance in a codebase that treats those details seriously.
Why this is worth watching
Most open source projects will not copy SQLite word for word. Plenty of maintainers do accept pull requests, and many projects live inside GitHub’s normal review flow. Still, SQLite has given maintainers a clean pattern: reject AI-written code as merge material while accepting AI-assisted evidence when it helps a human reproduce the problem.
That is a useful split. A patch asks maintainers to trust the author, the code path, the licensing story, the tests, and the future maintenance cost. A reproducible bug report asks them to verify a failure. Those are different jobs.
The wider lesson for developer tools is that output format matters. If an AI coding assistant produces a patch with no small failing test, it may be creating work for the maintainer. If it produces a minimal case, commands to reproduce it, and enough context for a person to inspect the failure, it has a better chance of being useful.
For more coverage of developer-tool policy and AI engineering practice, see the IT & AI archive.
What Hacker News readers are arguing about
The Hacker News thread around Simon Willison’s write-up is small, so there is not enough there to claim a broad community consensus. The useful point in the comments is a clarification: SQLite is not refusing every artifact touched by an agent. It is refusing agent-written code as codebase input, while still allowing possible fixes to appear as documentation and accepting reproducible bug reports.
A related earlier discussion on the prototype AGENTS.md commit framed the policy as a reasonable compromise. The tone was less “AI is banned” and more “give agent users rules, then keep generated code out of the project unless a human maintainer owns the final implementation.” That reading fits the file itself.
The argument that remains open is practical. If AI tools get better at producing tests, minimization steps, and failure cases, maintainers may welcome them as triage tools. If the tools mostly produce plausible patches, projects with strict ownership rules will keep pushing back.
SQLite agentic code policy in practice
SQLite agentic code is the wrong deliverable for this project. A reproducible test case is the right one.
That should influence how developers use coding agents around mature open source infrastructure. Instead of asking an agent to “fix SQLite,” ask it to isolate the failing behavior, reduce the input, show the exact command that fails, and explain why the result conflicts with documented behavior. If a patch is generated along the way, treat it as a debugging note, not as something to submit.
For coding-agent companies, this is also a product signal. The next useful feature may not be a bigger diff. It may be a maintainer-friendly report: environment, build command, failing test, expected result, actual result, and a short explanation a human can audit.
The practical read
If you maintain an open source project, SQLite’s policy is a good starting template even if you soften the wording. Say whether you accept AI-written patches. Say whether AI-assisted bug reports are allowed. Say what evidence makes a report useful. The policy does not need to be dramatic; it needs to reduce ambiguity before the first generated pull request lands.
If you contribute to projects with AI help, submit less code and better evidence. A concise failing test and reproduction steps respect the maintainer’s time. A large generated patch shifts the risk to someone else.
