Fetching from the wire…
Top 5 · 2026-05-24 · source-backed
Researchers analyzed 3,691 patches from AI coding agents. Between 20% and 40% contained unnecessary refactoring mixed into bug fixes. This isn't a prompting failure. It's a training data problem, and it's baked into the models.
A paper on arXiv examined patches from Multi-SWE-bench and found that LLM-based coding agents, including SWE-Agent variants, systematically produce "tangled refactoring." They mix bug fixes or feature additions with unrelated code reorganization inherited from their training data. Open-source repositories routinely bundle refactoring with functional changes in the same commit. The models learned that pattern. Now they reproduce it faithfully.
You can't prompt this away. The model genuinely believes that renaming a variable three files over is part of fixing a null pointer exception. It learned from millions of commits where humans did exactly that. The paper proposes mitigation strategies but acknowledges the behavioral pattern is fundamental to how these models were trained.
I've been feeling this for months in my own work. Every PR from an AI agent needs a skeptical eye, not just on correctness but on scope. That extra import cleanup the agent added? It didn't add it because it helps your fix. It added it because the training data says "when you fix a thing, also tidy up the neighbors."
The connection to the Copilot economics story is direct. If 20-40% of generated tokens are unnecessary refactoring, that's 20-40% of your token budget burned on work nobody asked for. It's also 20-40% more surface area for regressions. The Cloud Security Alliance reports 35 CVEs from AI-generated code in March 2026 alone, more than all of the second half of 2025. Agents touching code they don't need to touch is part of why.
What to do: review every AI-generated PR for scope creep, not just correctness. If the diff touches files unrelated to the issue, flag it. Use smaller, more constrained prompts. "Fix only this function, don't modify any other files" works better than "fix this bug." My CLAUDE.md already includes rules about surgical changes and scope discipline. Yours should too.
Each link below shares sources, entities, or timing with this story.
Copilot uses Claude / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Copilot uses Claude); both cover Copilot, March; overlapping topics (agent, code, coding, data, model).
VS Code uses Copilot / Shared entities / Shared topic / What happened next / Tension
Linked by a graph relationship (VS Code uses Copilot); both cover Copilot, SWE; overlapping topics (code, coding, model).
Simon Willison released LLM / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Simon Willison released LLM); both cover Copilot, SWE; overlapping topics (code, coding, model).
Copilot deprecates Gemini / Shared entities / Same source domain / Earlier coverage
Linked by a graph relationship (Copilot deprecates Gemini); both cover LLM, Multi, Researchers, SWE; reported by the same outlet (arxiv.org).
Microsoft released Copilot / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Microsoft released Copilot); both cover Agent, Copilot; overlapping topics (agent, model).
Copilot uses Claude / Shared entity: Agent / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Copilot uses Claude); both cover Agent; overlapping topics (agent, code, coding, pattern, prompt).
Copilot supports Visual Studio / Shared entity: Agent / Shared topic / What happened next / Tension
Linked by a graph relationship (Copilot supports Visual Studio); both cover Agent; overlapping topics (agent, chang, code, commit).
Microsoft released Copilot / Shared entity: LLM / Same source domain / Shared topic / What happened next / Tension
Linked by a graph relationship (Microsoft released Copilot); both cover LLM; reported by the same outlet (arxiv.org).