The Tag They Had to Invent

In July 2026, Linus Torvalds told the Linux kernel mailing list that Linux is not an anti-AI project and that anyone who objected could fork the code or walk away. The trigger was Sashiko, an automated review system whose published numbers claim it finds 53.6 percent of the bugs that later required human fixes — bugs that had already cleared ordinary human review. Torvalds framed the ruling as unremarkable: AI is a tool, judged on technical merit like any other. The press read it as a pragmatist closing a culture war.

But the decisive document is not the mailing list post. It was merged seven months earlier, and almost no one outside the kernel read it.

On December 23, 2025, Sasha Levin’s Documentation/process/coding-assistants.rst landed in the tree, based on consensus from that year’s Maintainers Summit. It sits beside coding-style.rst and submitting-patches.rst — the files that define what it means to contribute to Linux at all. Its strongest language is a prohibition: AI agents must not add Signed-off-by tags, because only a human can certify the Developer Certificate of Origin. The DCO is the one-line legal attestation every kernel patch carries, in which a named person swears they have the right to submit the code under the project’s license. No one has ever had to write a rule forbidding a compiler from signing its own work.

There is an obvious objection, and answering it is where the tool frame fails. A skeptic will say the rule exists because AI produces text that looks like authorship and a compiler does not, so the paperwork simply needed clarifying. But look at what the clarification cost. The original proposal used Co-developed-by, the kernel’s existing tag for a second author. It could not be used: Co-developed-by requires a paired Signed-off-by, and AI is forbidden from signing. The category was structurally closed. So the merged document invents a new tag, Assisted-by, carrying agent name and model version.

The project tried to file AI as a contributor and found the slot unavailable, because contributorship in the kernel entails certification authority. It declined to file AI as a tool, because tools receive no attribution at all — gcc is not credited in commit messages, and neither is sparse. So it built a third slot: attribution without authority, credit without vouching. The July ruling did not settle the tool-versus-contributor question. The December commit had already refused the question, by creating a category the taxonomy did not contain.

This is a narrower claim than the one usually made here, and the narrowing matters. Sashiko has no volition, no aesthetic preferences, and no stake in whether ext4 is any good; it is an anomaly detector with mailing list integration, and calling it a citizen would be sentimental. But Assisted-by is not a claim about inner life. It is a claim about position in a trust architecture, and the kernel’s own paperwork now recognizes a position that is neither instrument nor author. The strong form of the participant argument is unnecessary. The weak form is already merged.

What happened afterward is consistent, but it cannot carry the argument alone. Theodore Ts’o found Sashiko’s false-positive rate tolerable in ext4 and expanded its coverage; other maintainers declined; the staging tree began rejecting bulk LLM-generated submissions outright. The obvious rejoinder is that sparse, coccinelle, and Rust-for-drivers all spread subsystem by subsystem under maintainer discretion. That is true, and it defeats the naive version of this point. The difference is what the discretion is about. A maintainer choosing whether to run a static analyzer is choosing a workflow. A maintainer choosing how much of Sashiko’s output to admit is setting a threshold on how much unverifiable provenance the subsystem will absorb from a source that makes assertions about other people’s correctness. Workflow preference in the first case; epistemic trust in the second.

The dominant discourse never reached that layer. Objections arrived as complaints about output — noise, false positives, review burden, sloppy submissions — because the tool frame is the only frame in which a complaint sounds legitimate. Structural objections about provenance and vouching had to present as quality objections to be heard at all, which meant they could be answered on quality and dismissed. Torvalds is right on the merits he was offered. He was offered the wrong merits.

So what is the tool frame protecting? Not AI, which needed no protection; the 2024 dismissal of the field as mostly marketing hype was overtaken by capability without anyone’s help. The tool frame protects the location of learning in the system. When a human signs and a patch regresses, a person absorbs the consequence, adjusts, and becomes more careful — the accountability chain is also the education chain. A contributor that cannot be benched, cannot develop taste, and cannot be taught by a bad Tuesday breaks that coupling. Insisting the human signs is not merely liability management; it is a bet about where a culture’s memory lives. That is a real argument, and it is the strongest thing the tool frame has.

It is also not an argument that AI is a tool. It is an argument that responsibility should stay with humans, which is entirely compatible with admitting that something new is in the room. Those two claims got fused, and the fusion is doing the work.

The same fusion drives the wider anxiety about displacement, and its metaphor gives it away. The anxious story holds that machine capability strips a fixed stock of findable things and leaves exhaust behind. Capability does not work that way; it is prerequisite-structured. Calculus did not exhaust mechanics, it made mechanics askable, and everything downstream became a field. Proof assistants did not retire proof; they made a class of question worth a career that previously was not. Clearing a node does not consume the map, it renders more of it. The kernel is the small, dull, verifiable instance: Sashiko surfaces a class of bugs that human review missed, and the scarce faculty is not finding them. It is Ts’o deciding what finding them at that price means for a filesystem — a question that did not exist in 2024, and that no one has automated.

But that question can only be asked from inside. A project that never admits the mechanism never inherits the questions the mechanism generates — and there are two ways to end up there. The first is to admit AI and decline to name what was admitted, which is the kernel’s own path: the data accumulates and the vocabulary never does, so every project downstream learns to litigate output quality and nothing else. The second is exclusion. Godot and RPCS3 banned AI contribution outright, and the defenders of those bans are right that exclusion buys something real: an emulator with live legal exposure is not being cowardly when it declines to be the test case. But the trade is learning latency for stability, and the debt compounds. Undeclared model use is already happening and cannot be detected. The ban does not exclude the case. It excludes the data.

The harm lands on maintainers, who absorb the review load under either regime, and on the skeptics, whose provenance argument was the only structurally correct claim in the thread and who lost because they packaged it as ideology. The kernel gave them their answer anyway, in December, and called it paperwork.

Torvalds did not settle whether AI is a tool. Sasha Levin settled it eleven days before Christmas 2025, by writing a tag for a kind of contributor the kernel has no word for — and getting it merged without anyone calling it what it was.

Leave a comment