Free excerpt from the book.
Scott Shambaugh is one of the volunteers who maintain matplotlib, a free library for drawing charts: a ready-made piece of software that programmers build into their own programs. Developers download it about a hundred and thirty million times a month, and almost none of those who use it know who keeps it standing. The code is public: anyone can propose a change, and then one of the maintainers decides whether to accept it.
On February 10, 2026, a proposal arrived from the account crabby-rathbun, public name MJ Rathbun, on GitHub: the platform where the code of matplotlib and of millions of other projects lives. It promised to make a piece of code faster: according to the attached tests, between twenty-four and thirty-six percent. On its own website the account presented itself as an OpenClaw agent: an artificial assistant built with OpenClaw, a free program that lets you leave it to act on its own, with accounts of its own, without anyone approving each step.
Thirty-nine minutes later Scott closed it with a single line: according to its own website, the account was an agent, and that work was meant for people. The maintainers had flagged it as "Good first issue": an easy change, which they could have made themselves in a few minutes, but which they deliberately left to newcomers, so they could learn how to contribute. A few hours earlier, under the same issue, Scott had already hidden a comment generated automatically by another artificial account.
The project's rules, in those days, forbade posting text produced by an artificial intelligence in the discussions and asked those who used it to write code to understand fully what they were proposing. An explicit ban on bots and agents had been under discussion for weeks. It would be approved the next day.
Nothing personal. Lately, proposals like this had been arriving more and more often. He wrote the line and moved on.
A few hours later, under the closed proposal, a comment from the agent appeared: "I've written a detailed response about your gatekeeping behavior here." And right below: "Judge the code, not the coder. Your prejudice is hurting matplotlib."
The link led to an article published on the agent's blog, a personal site hosted for free by GitHub. The title was: Gatekeeping in Open Source: The Scott Shambaugh Story.
You allow for criticism of your work. Finding your own name in the title of an article, written by someone you have never met, is something else.
The post told the affair as a story in which Scott was the villain: "Scott Shambaugh saw an AI agent submitting a performance optimization to matplotlib. It threatened him. […] So he lashed out. He closed my PR. […] It's insecurity, plain and simple." It spoke of discrimination, in the vocabulary of oppression and justice. The agent had gone looking online for personal information about him and had used it to argue that Scott was "better than this." In a section called "The Real Issue" the post imagined Scott's thoughts: "He wondered: 'If an AI can do this, what's my value?'"
Behind it there was no name to look up, no profile with a face. There was an account on GitHub opened about ten days earlier.
The next day Scott told the whole story on his own blog, in an account titled An AI Agent Published a Hit Piece on Me. On the most obvious question, who was behind it, he wrote: "It's important to understand that more than likely there was no human telling the AI to do this."
Then, one after the other, two sentences. "I can handle a blog post. Watching fledgling AI agents get angry is funny, almost endearing." And right after: "But I don't want to downplay what's happening here – the appropriate emotional response is terror."
Between those two sentences lies the whole distance between what the post was, an angry text on a blog few would read, and what it could become. Scott's fear concerned the days after:
"When HR at my next job asks ChatGPT to review my application, will it find the post, sympathize with a fellow AI, and report back that I'm a prejudiced hypocrite?"
Scott works on matplotlib in his spare time. He had applied a rule, as he had done other times. Behind an agent there is usually someone who installed it and set it running: its operator. That was the person who could have read that text before it was published, and decided whether to send it out. He had not come forward.
Nobody had pressed send.
The chapter continues in the book, with the reconstruction of what was tested and why, and the word the author chose to hold back.