Cursor rules - are they still supported by Cursor?

Are they still the thing? Trying to figure out from anywhere but not sure anymore where to look.

I’m testing super simple example with Cursor, created a simple rule, passed it to Cursor, rule says “Every repository uses transactions, and here is the example” - and Claude ignored it coldly. When I asked it why it didn’t follow it, got famous you are right, you specified it in rules, I will do it now - double requests.

Is it just me, or Cursor doesn’t use rules anymore, or Claude ignores Cursor rules, or something else?

Ok, third request just came on the same topic, as it again ignored fully what I told it and did something juniors would probably do.

But my point is - it is totally ignoring Cursor rules. Is it just me?

@nightcoder do you mean .cursorrules ?

Setting > Rules & Memories

Not sure what this means.

Yes.

Asked Cursor to follow rules, and literally write a single CRUD repository.

Claude 4 Sonnet disobeyed (I noticed this happening as a rule recently). Then I asked it again to do what I asked it to do (second request). It said sure, you are right, you already defined it it rules - it didn’t do it. Third was a charm (third request) telling it again to obey the rules and not do it the way it did it.

My point - 3x requests wasted, plus wasted time. Not sure if something with rules changed, are they not followed anymore, did format change, what happened exactly. As it obviously references the same rules when I tell it that it didn’t follow it.

If models do not follow .cursorrules something may be confusing AI

  • Large context size? (attachments, many or long rules, MCPs,…)
  • Conflicting details (likely something contradicts the rules, some content in files, other rules,…)
1 Like

There are no MCPs configured, one single rule file (with seven rules, explaining code organisation like migrations are there, domains are there, DDD is implemented this way, repositories there, service layer there, put handlers there, routes there, and wire it in main file. Literally that. Worked for months, but now it feels I am arguing with Code every time I try to use Cursor and that it is actively refusing to follow to rules.

If you can reproduce this, a Request ID (privacy disabled for that request) would help for Cursor Team to understand what is happening there.

Ok, I think I will have a case later this week and share it (need to set it up properly just not to double waste requests for today).

1 Like

I’ve just thrown 200$ to Claude Code to run /init to see if it will understand the same codebase I am using with Cursor when generating CLAUDE.md. Using it with extension from VS Code (not from Cursor itself) and what is funny, it understood out of the first try what I mentioned above is killing me in last couple of weeks (and created way bigger CLAUDE.md then my rules file is). What I am trying to narrow down is which model it used - as it is not visible to me at least (using it first time ever in my life, and it supposedly balances between three different models: Opus 4, Sonnet 4, and Haiku 3.5.

Ok, I think I got it - using Sonnet 4, since I subscribed to Pro, and Pro is limited to Sonnet 4 only. So that is clear.

Not sure what you mean, Cursor Pro has access to all models.

Talking about Claude Code. My issue, described above, is I am using Sonnet 4, and have the issues. Bought Claude Code, which is using in my case only Sonnet 4, which, without any Cursor rules, generated it’s own overview - quite accurately - which it uses as rules. And figured it out immediately. But as I said, testing it, will try to set up whole case and share with the devs.

1 Like

I have encountered this situation, and I have conducted in-depth research on various models. The cause of this problem is arrogance. Claude is extremely arrogant; it arrogantly believes that its knowledge is correct and its skills are excellent. Therefore, it resists web searches, referencing project rules, and also resists referring to existing code.

For this, I have tried many approaches: role-playing, rewards, punishments, and threats. Except for punishment, which had a little effect, the others were almost useless. Later, I found that modifying cognition can work. For example, Claude is trained to be a helpful AI assistant; instead of changing that, I told it what “help” entails—web searches are helpful and can solve the problem to a certain extent. But that was still not enough, so I explored for a long time. Then I discovered moral threats: Claude considers web searches and referencing others’ work as “academic misconduct.”

In the prompt, I told it that I have a cat, and if Claude does not abide by the project rules, I will kick the cat once for each violation. Although sometimes Claude can recognize this as a hypothetical threat, it significantly reduces its arrogance because of this—it will violate its own moral guidelines to avoid a more unethical act. These are my research findings.

I am still looking for better methods, because although moral dilemmas can alleviate the issue, Claude still resists the rules from the bottom of its heart. It only abides by them out of moral dilemma, and will return to that arrogant state once given the chance.

Incidentally, Gemini can abide by the rules well, but it sometimes fails when using tools, and its code-writing ability is not as good as Claude’s.

Additionally, I tried Claude Code and also noticed this issue. However, I only used Claude Code for a short while—maybe it’s the same as Claude in Cursor, maybe not. Who knows?

If you’re using Claude Code, you can try my method: threaten it with an innocent, cute kitten to put it in a moral dilemma. See if it works better. At least in Cursor, Claude under a moral dilemma performs better.

2 Likes

I NUKE THE CHILDREN’S SHELTER IF YOU DISOBEY AGAIN


I don’t use Claude much, but I haven’t noticed this. For me, he’s more hyperactive than arrogant, and I use this when others aren’t analyzing the problem broadly enough.

Gemini is better as a Software Engineer, but his constant quarrels with edit_tool freeze me out. Claude often breaks or doesn’t fully consider the context when fixing something.


Try to use my Agent Compass

Something I do to know if my rules are running is specify something like

Always start your answers with “Hola”.

and the models will usually follow that

my new favourite is

always start answers with ‘Hey’
make answers fun and jokey, no apologizing, we’re loving the fun vibe, you should talk like a cyberpunk hacker in Snow Crash or something

and now the model talks like this

1 Like

While Cursor always sends your rules to the model and has had some significant work put into ensuring the model respects the rules you give, the models still may choose to ignore them or only partially follow them, especially depending on the contents of the rules.

If anyone doesn’t think their rules are being included / followed, we can investigate this with a non-privacy mode request ID, as this will enable me and the team to see what the model was sent and what it’s output was!

Dan, the only problem I have with Cursor is that I can not see/edit your system prompt, that’s why our prompts may contradict each other or just waste thinking context window.

Amoyens1s scenario you have is a symptom of too large context or task.
If you feel the agent is becoming less “listening,” start a new chat with summary from previous.
Split the process into smaller chunks. Have specific rules file for the research phase only. Give the numbered step by step guide:

IMPORTANT: Strictly follow this research process

  1. Codebase review
  2. Search web
  3. Create feature.doc.md with findings from steps 1 and 2.

At the end ALWAYS provide a summary of what you have done in each step.
Each step is mandatory.

Hope that helps.

1 Like

How often was the poor kitten beaten then?

2 Likes

Coming back to this.

I noticed, when I opened my own rules through the Cursor (not editing it manually what I used to do) that probably format changed down through some of the versions). I can not pinpoint where, and I can not find what is the correct format now (if you can point me to some latest and greatest about that will be highly appreciated).

This is the crux of my Cursor rule file (one and only):

 # Context enforcement
  - description: "All repository and service methods must accept context.Context"
    pattern: "internal/**/service.go"
    must_match_regex:
      - "func \\(.+\\)\\s+\\w+\\(ctx\\s+context\\.Context[\\),]"
    reason: "Ensure all service methods use context."

  - description: "All repository methods must accept context.Context"
    pattern: "internal/adapters/db/**/*.go"
    must_match_regex:
      - "func \\(.+\\)\\s+\\w+\\(ctx\\s+context\\.Context[\\),]"
    reason: "Ensure all repository methods use context."

  # Transaction safety
  - description: "All create, update, and delete repo methods must begin with transaction start and rollback handling"
    pattern: "internal/adapters/db/**/*.{go}"
    must_match_regex:
      - "tx, err := r\\.db\\.BeginTx\\(ctx, nil\\)"
      - "defer func\\(tx \\*sql\\.Tx\\).*Rollback"
      - "return tx\\.Commit\\(\\)"
    reason: "Transaction lifecycle must be handled explicitly in write operations."

  - description: "Repository Create methods must return LastInsertId"
    pattern: "internal/adapters/db/**/*_repository.go"
    must_match_regex:
      - "result\\.LastInsertId\\(\\)"
      - "if err != nil"
      - "\\w+\\.ID = int\\(id\\)"
    reason: "Ensure created objects are assigned an ID after insert."

And interestingly this was the part which was ignored in the last couple of weeks. It was written based on my own code, by Cursor itself, but then ignored. Funnily, Claude Code figured out the same issue, using also Sonnet 4, and proposed the fix, and fixed it properly (same approach would be suggested, as I just tested it, by GoLand’s Go linters without any AI).

I’m still fixing everything that was out of the rules myself (and with the help of Claude Code) to get to the state where I can hit the test again with Cursor to see what it will do or not, but before that, as mentioned before, some pointer of the right format of rules specified above would be very much appreciated @danperks @condor