Small specific complaint: whoever is making Opus love using git checkout to mutate test, please stop. IME it's a footgun that it shoots itself with every single day. I'd rather it pollute git stash than watch it git checkout and forget the reverted file.
I explicitly forbid Claude to make any changes to Git state in my global CLAUDE.md, but every so often if I let it perform a task in Auto mode, after it finishes it will remorsefully confess to having used git checkout to test a change. I suppose that its RLHF training has taught it that asking forgiveness later is sometimes a useful workaround for annoying restrictions.
I'm glad it's not just me - the failure mode you and the parent discuss is a huge part of why I just don't use Claude anymore.
I've never had this issue with GLM or DeepSeek.
I noticed it using git more too and it was frustrating me bc I view that as stepping too far. It does seem something has changed.
I explicitly have global rules preventing Claude from running any write git commands (stash, commit, reset, merge, etc.; only r/o commands allowed).