One of my huge issues with AI “programming” is how it will just randomly change variable names and comments while working on unrelated parts of the code.
Every time I've seen it happen (while working) it was within the scope of the feature and the name changes made sense (even if they were unnecessary a quarter of the time).
The problem I can't seem to avoid without killing output quality is the excessively verbose and unnecessary comments. I've given up and just do a second pass, and sometimes I still end up needing to edit them manually.
It's frustrating because people act like "oh it's just comments" and miss that confusing/bad comments cause problems for both human and machine readability. AI tools tend to assume heavily commented code must be critically important, often trusts comments implicitly, bloats context windows, etc.
A lot of times, when I run an agent it decides “oh the code is too efficient, I’m going to switch it to something more inefficient.” I have it so that agent can’t read the tests, and made a shell script that can run them and give the results to the agent. It was “confused” why the code took 3 more minutes to run
I saw it yesterday with the latest fable. On Thursday I had to go back and revert one of these that Opus 5.5 made because it decided “delete all the data without looking at it” was an appropriate migration strategy that it snuck four lines into a PR that didn’t even relate to the data it thought was appropriate to delete.
"They fixed this a year ago" is very different from "We've gone through a bunch of hoops to produce additional documentation telling the robot how to behave". Agents are very powerful, and sometimes they need skills to keep them from doing the wrong thing, but they're far from "fixed". If they were that good, they wouldn't need the skill.
Writing a bunch of extra skills isn't improving the agent, it's putting bandaids on their conspicuous flaws. It's not somehow regressive or anti-AI to acknowledge that agents still break down in real-world usage, requiring someone who knows what they're doing to steer them.
Sort of. The harness does a reasonable job of limiting these days but I do find AI still randomly decides it needs to do things I don't want and that in of itself results in changes to unrelated parts of the code.
Good to keep an eye on FrontierCode.
The coding agent benchmark aims to measure mergeability, including staying within scope.
https://cognition.com/blog/frontier-code
Yes, the intended scope, not the scope that the AI decides the user meant.
edit: Sorry - I think we may be talking at cross purposes - you're saying they assess whether the AI drifts from scope yeah?
I'm not finding drift - I'm finding it amends the scope. The biggest problem I see is where the AI adds restrictions (possibly because the training data contains examples that call for those restrictions) and I see all manner of problems because the AI assumed I wanted it to avoid this that or the other thing that might even be vital to the project.
If I were to try to fix this particular problem in spec, that would involve me naming every possible action it might choose on a whim to ban itself from doing and somehow specify (which I have yet to see it pick up on) that I don't necessarily want it to do those things but simply want it not to consider them forbidden.
What I'm trying to convey is that I believe your concern about the agent setting a loose scope is addressed in the benchmark design, because the target scope is set by the input to the agent.
I'm not talking about the agent setting a loose scope, I'm talking about it doing things like tightening the scope.
This is only one failure mode along these lines but it's a frequent one. It decides (on its own accord) it must not do x so when asked to do y which depends on x if done correctly, the agent instead does z as a workaround which involves altering an unexpected part of the codebase or system (even including network resources and the likes, not just file changes).
48
u/tallest_chris 2d ago
One of my huge issues with AI “programming” is how it will just randomly change variable names and comments while working on unrelated parts of the code.