We use AI on every project we ship. We also spend real time undoing what it does. Pretending otherwise makes teams trust the output more than they should.
July 15, 2026
The trouble is not that the model produces bad code. Most of the time it produces reasonable code. The trouble is that the failures are quiet, confident, and shaped exactly like success. Below are the ones we hit most often, and what we actually do about each.
It refactors things you did not ask it to touch
We ask for a fix to one function. We get back a rewritten module, with variables renamed for taste and helpers reorganized for a symmetry that was not requested. The new code may even be better. That is not the point. The diff is now too large to review honestly, and an unreviewable diff is the real hazard, because an unreviewable diff gets approved. We push back by scoping the request to a single function and rejecting the rest, however tidy it looks.






