“NEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTANT to only commit when explicitly asked, otherwise the user will feel that you are being too proactive.”
My entire workflow, and cursor rules, are built around it commiting after every atomic edit and file add. The commits are verbose, but I track the Prompt and what was changed.
When this rolled out I got through an entire project with 0 commits. I asked it why and it said this. I tried adding a rule to explicitly ignore it, but it seems internal rules override .cursor/rules
A way to turn it off would be nice, because right now it’s a serious PITA and even though it tells me it’s over riding it, if I open up a new agent I get zero commits until I yell at it again.
And then it’s off to vibe coding. Prior it was committing after every prompt. I leaned into this behavior and explicitly added cursor rules so that it would commit atomic things and add descriptive and useful prompts.
However I got to the end of one project and found nothing had been committed. I had an entire project done with no tracability to my prompts or anything.
I asked Cursor why it wasn’t committing and it told me exactly that. I asked it for the source of that rule and it could not tell me. I double checked my rules and it’s not one of mine. So somewhere that got into training or added as a rule.
I do have it set to Auto but my git commits should have had the used model in the background.
And this just started recently, but seems to be across all of my packages. In every prompt I have to remind it to use the explicit rules and not built in stuff. But every new Agent prompt forgets that.
Try a shift in perspective.
Rather than telling AI what not to do, if you define when it should act, you can make it perform the desired behavior only when you want it to.
For example, I disliked Cursor running Git commands on its own.
So I explicitly defined rules for how commits or PR descriptions should be generated only when I make a specific request. After that, it stopped committing on its own.
Since I am a Korean user, I will not quote the rules because I am not confident they would be fully understood.
In the Cursor settings, I defined the When conditions in the global rules, and put the detailed How rules in .cursor/rule.
It ignores that unless you tell it directly to use the .cursor/rules.
I also did not tell it what not to do. Quite the opposite. I told it exactly what I wanted it to do in my cursor rules, above. The problem is that Claude is overriding that with that directive to not commit anything unless explicitly told.
Yes, that is currently set. And has been set. They are not followed on every run. They are following some internal rule that I can not over ride without telling it every single time.