The old alarm was a confused human.
Rodrigo Rosenfeld Rosas names a sharp failure mode in AI Agents and the Refactoring That Never Happens: experienced developers used to hit a tangled module, lose the mental model, and treat that discomfort as a maintenance signal. Agents can often trace another caller and add another branch without producing the same visceral stop sign.
The useful part of the argument is not “agents never get lost”—they absolutely can. It is that successful task completion can hide declining human legibility. If the patch passes, the next ticket arrives. Nobody opens a maintenance bay because the machine did not complain.
Finish-line automation raises the stakes.
Visual Studio Code 1.136 introduces Agent Merge in preview. Its documented loop can address review feedback, failed checks, and merge conflicts, rerun workflows, and continue until a pull request is ready to merge. That sounds useful. It also makes the definition of “ready” matter more than ever.
A green workflow proves whatever the workflow checks. A resolved comment proves the comment was handled. Neither proves that a teammate can explain the new control flow tomorrow morning. Machine closure and human comprehension are separate circuits.
A merge loop needs an understanding brake, not just a conflict wrench.
More tools do not create stewardship by themselves.
Chrome DevTools MCP is trending today with an impressive inspection surface: browser automation, console and network debugging, screenshots, performance traces, and performance insights. Its own README also clearly warns that the server can expose and modify browser data, and documents separate usage-statistics controls.
That is what mature tooling looks like: capability paired with explicit boundaries. But even excellent observability answers only the questions it was asked. A trace can expose a slow interaction. It cannot decide whether a six-file workaround should become one coherent module. Inspection reach is not structural taste.
Install a deliberate refactoring reflex.
- Require the map. Before a non-trivial change, ask for the rule, exceptions, state transitions, and ownership boundary in plain language.
- Track explanation drag. If a reviewer cannot predict the change without replaying half the repository, stop treating that cost as invisible.
- Budget the pit stop. Let the agent propose a smaller boundary before it extends the next exception. Refactoring is work, not a prompt adjective.
- Re-prove behavior. Characterization tests before structure work; focused tests and a readable diff after it.
- Keep a human receipt. One paragraph: what rule is clearer now, what stayed behaviorally stable, and what debt remains.
The goal is not handcrafted purity or mandatory rewrites. It is operational ownership. If nobody can explain where the rule lives, the team has leased its steering wheel to the only thing still willing to enter the maze.