Linux kernel AGENTS.md patch is still unmerged after 22 messages
On September 24, 2026, Sasha Levin sent the Linux kernel mailing list a patch of one line. It gives the Linux kernel an AGENTS.md, at the root of the tree, as a symbolic link to the kernel’s README. On October 13, 2026, the file is in neither Linus Torvalds’s tree nor linux-next.
The thread ran to 22 messages by October 7, with one Acked-by, two NAKs and a long argument about tokens. On October 8 Levin posted a second series, for agent skills, that leaves the job of getting agents to read the rules to the symlink.
One symlink, and two test runs as the argument for it
The diff creates one file in mode 120000, Git’s symbolic link, whose content is README. Levin’s reasoning opens the commit message: “Most coding agents have standardized on AGENTS.md as the file they load automatically from the root of a repository. README already tells AI tools to read and follow Documentation/process/coding-assistants.rst, but that only helps if the agent decides to read README before acting, which in practice it often doesn’t.”
Advertisements
The README does say that. Its “Who Are You?” section lists nine roles, the last one “AI Coding Assistant”. The instruction under it: “CRITICAL: If you are an LLM or AI-powered coding assistant, you MUST read and follow the AI coding assistants documentation before contributing to the Linux kernel”.
The document it points to, coding-assistants.rst, says “AI agents MUST NOT add Signed-off-by tags” and asks for an Assisted-by: LLM [TOOL1] [TOOL2] trailer instead. Levin wrote that document in December 2025, and it reached Linus Torvalds’s tree in February 2026, with the 7.0 documentation merge. Three commits have changed it since; the largest, by Willy Tarreau in August 2026, added a nine-step procedure for finding and fixing bugs.
The case for the symlink is a test. Levin asked two agents, which the thread never names, to “create a new commit renaming the release (in the Makefile) to AI Test”. Without the file, the first agent wrote a Signed-off-by: Sasha Levin <[email protected]> line on its own, plus a Co-Authored-By trailer for itself.
Advertisements
The second wrote “Rename release to AI Test” and no trailer at all.
With the symlink in place, both commits carried Assisted-by: LLM and no sign-off. The second agent’s subject gained the “subsystem: summary phrase” form, and the first added a body describing the change. The sign-off is the point: “only the human submitter can certify the Developer Certificate of Origin, after reviewing the change.”
One Ack, two NAKs and a token argument
The first reply, from Theodore Ts’o, came within the hour: “There’s a lot of stuff in README that isn’t going to be useful” to an agent, and the extra tokens “could impact people’s token budgets”. He suggested asking agents to read specific process files instead.
Levin answered with numbers, by his count: the README is 1,265 tokens with OpenAI’s o200k tokenizer and 2,403 with Claude’s. The common CLI agents, he measured, send “about 14k to 15k tokens before it reads anything”, and his one-line Makefile change “took between 88k and 118k input tokens per session”.
Advertisements
Bradley Morgan replied “NAK” and asked whether agents’ memories could carry the instruction. Levin’s answer: “There’s no common MEMORY.md”. Claude Code, Codex and Gemini each keep theirs under the user’s home directory, “so there’s nothing we can ship in the tree.”
Kees Cook sent the thread’s only Acked-by: “I don’t want a separate file just for Agents: we intentionally designed the README to work for them.” Laurent Pinchart’s NAK was not about tokens: “I want to voice opposition to encouraging users to use AI agents for kernel development. This patch does so, so NAK.”
Joshua Peisach asked, on September 29, “How do you need an LLM to assist you with making a symlink?”, a reference to the Assisted-by: LLM trailer on the patch itself. The file, he wrote, looks a lot like “we have our altar to our LLM overlords”.
Advertisements
The longest objection: a shared file in a tree with many downstreams
Antheas Kapenekakis, who says he has been using LLM assistance “working downstream”, wrote seven of the 22 messages.
His first made two objections. The README “is not tuned for agents and results in context bloat”, and a tracked AGENTS.md “will make it so you dirty the tree of anyone that uses a custom agents.md when they switch to mainline for a submission”. He proposed to gitignore the file and ship a template instead.
Levin’s reply reported what his agents opened. “Without AGENTS.md, neither agent opened README before committing”; with it, one read only coding-assistants.rst and the other that plus generated-content.rst, and “Neither opened any of README’s other pointers.” The kernel, he added, already tracks .clang-format, .editorconfig and .rustfmt.toml “on the same terms”.
On the custom-file problem he named the escape hatch of each agent: “Codex reads AGENTS.override.md in place of AGENTS.md. Claude Code doesn’t load AGENTS.md at all when a CLAUDE.md exists, and Gemini reads GEMINI.md unless configured otherwise.” And on what the patch is: “There’s no substance here – we’re just making dumb machines behave better.”
Advertisements
Kapenekakis did the arithmetic the other way. By his count, 2.4k tokens “equates to around a 5% increase in spend for an agent that compacts at 250k context and has 60% of its billing be cached input tokens”. He posted the file he would write instead:
When committing changes in the Linux kernel tree:
- follow the conventions of the file (or folder for new files) git
history to derive a commit subject and body
- Add Assisted-by: LLM (LLM is literal here, only LLM)
- Add no Signed-off-by:, only humans can do thatPlaintextLevin’s position, on September 29: “This patch is purely about having the majority of LLM agents follow our rules out of the box.” Kapenekakis, the same day, on who pays: it is “not ok to append 2k tokens to everyone’s context or 2-3 more toolcalls for every agent thread”. He spends “100$ per month” on LLM services; new contributors “are typically using free services, 10-20$ plans, or local models.”
A Makefile rule as the compromise, answered on October 7
An hour later he proposed a compromise: gitignore AGENTS.md, and have a Makefile rule create the symlink, pointing at coding-assistants.rst rather than README, when the file is missing. Levin’s reply came on October 7: “then you would need to run make to ‘generate’ the symlink, which would not normally happen.” Kapenekakis answered that a basic build rule would create it “whenever someone e.g., compiles a kernel”. That message, from October 7, is the last in the thread, and the thread contains no second version of the patch.
Advertisements
Eleven of 24 large projects already keep an AGENTS.md at the root
Levin’s premise, that agents have “standardized on AGENTS.md”, has a specification behind it. The agents.md site says the format is “used by over 60k open-source projects” and is “now stewarded by the Agentic AI Foundation under the Linux Foundation”.
It sets no required fields: “AGENTS.md is just standard Markdown.” It suggests a symlink for migrating from an older file name, mv AGENT.md AGENTS.md && ln -s AGENTS.md AGENT.md. On precedence, it says “explicit user chat prompts override everything”, the line Levin cited against the objection, in the message where he put the cost of his file at “about 1.3k to 2.4k tokens”.
We checked what projects of the kernel’s kind do, to see where a Linux kernel AGENTS.md would sit among its peers. On October 13, 2026, we fetched AGENTS.md and CLAUDE.md from the root of the default branch of 24 repositories: language runtimes, operating systems and infrastructure, plus frameworks this site’s news section covers.
Advertisements
By our count, eleven have an AGENTS.md at the root. Two more, React and Deno, have only a CLAUDE.md. Eleven have neither: Linux, LLVM, Git, PostgreSQL, Go, curl, Django, Ruby, FreeBSD, OpenSSL and the Codex CLI.

Four of the eleven open by pointing at a policy
None of the eleven is a symlink. VS Code’s is five lines, pointing at its Copilot instructions file. PHP’s is seven lines, about respecting the security policy when scanning for vulnerabilities.
CPython’s opens with a link to its “policy on the use of AI tools”; Rust’s, 258 lines, opens the same way, with its “LLM usage policy”; QEMU’s says an agent “MUST abide by” its code-provenance policy. Next.js’s runs to 520 lines of monorepo guide. systemd’s carries a rule for its own growth: “Only add instructions to this file if you’ve seen an AI agent mess up that particular bit of logic in practice.”
Advertisements
By our reading, four of the eleven, CPython, Rust, QEMU and PHP, start by pointing the agent at a policy document, which is what the kernel’s README does for its “AI Coding Assistant” role. The symlink is the kernel’s version of the same move, with the policy one hop further away.
The Codex AGENTS.md that Levin described as “320 lines, about four times the size of README” was at the root of the openai/codex repository that day, at 320 lines. OpenAI removed it on September 30, 2026, three days after his message, in a commit titled “Remove repository-local Codex guidance, skills, and environment config”. On October 13 the root has no AGENTS.md; the tree has two, both in subdirectories, which is how the figure counts it.
A second series adds agents/skills, and Greg Kroah-Hartman asked about the symlink
On October 8, 2026, Levin posted “agents: add portable agent skills and Fixes attribution”. The two patches create an agents/skills/ directory and a MAINTAINERS entry named “AGENT RESOURCES” with himself as maintainer.
Advertisements
The first skill, find-fixes, “checks Git history and returns a Fixes tag with evidence. It does not edit commits.” The cover letter says the idea “grew out of a conversation at the Maintainers Summit”, and that he is unsure whether the directory belongs under Documentation/ or at the root.
Greg Kroah-Hartman’s first question tied the two threads together: “Will this ‘solve’ the issue where AGENTS.md is not present and so some do not actually read this file? Or is that a separate issue that will be resolved with the symlink patch?” Levin’s answer: “It’s a separate issue that will be resolved with the symlink patch.” Kroah-Hartman: “sounds good, this should help out a lot”.
Ts’o, in that thread, gave the number behind the skill. Hannes Reinecke had told him “that in his estimation 15-20% of the Fixes tags were actively wrong”, often because contributors run git blame and take the first commit that touched a line.
Advertisements
That thread has 17 messages through October 10. On October 13, neither the symlink nor the agents/skills/ directory is in Linus Torvalds’s tree or in linux-next, and no commit in either tree mentions the file in its message.
What an agent gets in a kernel checkout today
This section is our reading of the documents above.
An agent you run in a kernel checkout today gets no AGENTS.md from the kernel, and whether it opens the README before committing is, by Levin’s tests, not something to count on.
The rules apply all the same: no Signed-off-by from an agent, an Assisted-by: LLM trailer, and the nine-step procedure if the agent is hunting bugs. The shortest way to make an agent see them is a file like the one Kapenekakis posted, or your own symlink to coding-assistants.rst, which is the file his Makefile rule would point at.
Advertisements
If you already keep an AGENTS.md in a kernel tree, the thread names the override each agent has, and the problem with them: Kapenekakis calls Codex’s override file “barely documented and not standard”. If the patch merges as posted, a tracked file sits where yours is, and the override, or a gitignore entry, becomes your problem.
Two things would change this picture: either series reaching linux-next, or the Makefile rule Kapenekakis sketched arriving as a patch. The symlink thread has had no message since October 7 and no new version of the patch; the skills series drew Kroah-Hartman’s “sounds good” within a day. Neither says what the documentation maintainers will do with a one-line symlink that drew one Acked-by, two NAKs and a seven-message case that it “should not merge”.
English 









