> No consistency, chaotic application of different conventions, duplicated code, ghost code (does nothing), and perhaps more as I'm digging in.
I didn’t understand this part. You said you reviewed the code and it was looking good, so how did the cruft creep in?
Were you reviewing every diff, or taking an occasional sample?
Good point! Reviewing code, in the AI era, in my practice, means skimming code and looking for patterns.
I use templates / conventions and make the AI generate code using them. When reviewing code I'm scanning if a file uses a specific template and follows specific conventions.
This can't catch subtle errors like a function is re-created vs is re-used (duplicate code), unnecessary code (bloat), inconsistent naming (a Button component has a cssRow() styling function associated vs cssButton()).
When you start editing, using code these little things add up, consume your attention, drain you up, giving no flow and resulting in minimal productivity.
Reviewing is a very different mindset than writing it yourself. You don't have all the context you would have built up had you done it, and it's much much more difficult to think through all cases. So I'm thinking: The individual changes all looked good in isolation, and they started borderline rubber-stamping the changes without stepping back to think about the larger context.
Looking at the individual changes in isolation, it's harder to see it doesn't match other conventions, duplicates code, removes or disables paths without cleaning up, etc. I'll bet there's also some crazy spaghetti code in there, from helping a co-worker clean up their Ai-generated code that they didn't understand.
I didn’t understand this part. You said you reviewed the code and it was looking good, so how did the cruft creep in? Were you reviewing every diff, or taking an occasional sample?