Why does Cursor ignore rules?

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I have specific rules that prohibit things.

For example one that prohibits saving progress summaries and status updates and another one that forces all documentation to be placed into a reference directory. Cursor routinely ignores these rules and creates documents that contain summaries of the changes it has made. It places these into the root of the project.

Another example: I have a rule that says “ALWAYS place test files in /tests directory mirroring the /src directory structure”. Cursor created a tests directory next to the service it was testing.

- ALWAYS place test files in `/tests` directory mirroring the `/src` directory structure
- ALWAYS name test files as `{SourceFileName}.test.ts` or `{SourceFileName}.spec.ts`
- ALWAYS use the same relative path structure as source files
- ALWAYS create test directories that mirror source directories exactly
- ALWAYS ensure test files are easily discoverable by following the mirror pattern
- NEVER place test files in the same directory as source files
- NEVER use inconsistent naming patterns for test files
- NEVER create test files without proper directory structure

When I ask Cursor why it created the tests directory it apologises for ignoring the rule and corrects itself.

What is the point of rules if they are ignored?

Steps to Reproduce

Add Cursor rules.
Use Cursor.
Observe it ignore the rules.

Expected Behavior

If I have rules explicitly laying out a directory structure then I expect Cursor to create files that follow that structure.

Operating System

Windows 10/11

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.7.44 (user setup)
VSCode Version: 1.99.3
Commit: 9d178a4■■■89981b62546448bb32920a8219a5d0
Date: 2025-10-10T15:43:37.500Z
Electron: 34.5.8
Chromium: 132.0.6834.210
Node.js: 20.19.1
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.26100

For AI issues: which model did you use?

Auto

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. This is a known issue: Cursor sometimes follows rules inconsistently even when they’re clearly formatted.

A few quick questions for diagnosis:

  1. Where are your rules stored? .cursorrules file, .cursor/rules/*.mdc, or User Rules?
  2. If you use .cursor/rules/*.mdc, what’s the top metadata? Do you have alwaysApply: true or attachment patterns set?
  3. Which feature triggers the issue most often? Agent, or a custom mode?

Temporary workarounds that help:

  • Explicitly mention the rules at the start of each request
  • Repeat critical rules directly in your prompt
  • Attach markdown reference files with the critical patterns to the chat

I am struggling with this exact issue. I write detailed rules, i mark all rules important, then when the time comes, they are applied partially. Once I say that you missed this rule with a follow up request, it fixes the code.

It’d be great to make the model aware of rules BEING MANDATORY, not optional. Instead of cherry-picking, it should apply them all.

BTW, Claude Code struggles with this as well.

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Project rules configured with alwaysApply: true in .mdc files located in the .cursor/rules/ directory are not being automatically applied to the AI agent during conversations, despite being correctly configured and in the proper location.

The AI agent does not follow the rules defined in the file until the user explicitly mentions the existence of the rules or asks the agent to read them.

Steps to Reproduce

  1. Create a rules file in .cursor/rules/ (e.g., agent.mdc)
  2. Configure the file with the alwaysApply: true property in the YAML frontmatter:
    ---
    alwaysApply: true
    ---
    
  3. Add extensive rule content in the file that includes instructions about mandatory response format (e.g., pre and post execution messages, validation questions, etc.)
  4. Start a new conversation with the AI agent in Cursor (Agent Auto mode)
  5. Make a direct technical request without explicitly mentioning the rules (e.g., “examine a database”, “analyze this error”)
  6. Result: The agent performs “planning next moves” but omits applying the rules automatically. It does not include the mandatory response format defined in the rules.

Specific Cases Observed

Request ID: 6d29f34a-0030-47ef-9003-f64d07e1a1ce

  • Action: Requested to examine a database
  • Behavior: The agent performed “planning next moves” but did NOT apply the rules during execution
  • Result: Skipped the mandatory response format defined in the rules

Request ID: d232be09-09e9-4f7e-8e68-7678591b0800

  • Action (Step 1): Asked “who are you?” to the agent
  • Behavior (Step 1): The agent detected and read the project rules
  • Action (Step 2): Then asked to investigate database connection
  • Behavior (Step 2): The agent DID apply the rules during the task
  • Result: The agent applied the rules correctly

Request ID: d232be09-09e9-4f7e-8e68-7678591b0800 (Extended Case 3)

  • Action (Step 1): Asked “who are you?” to the agent
  • Behavior (Step 1): The agent detected and read the project rules
  • Action (Step 2): Then asked to perform a complex technical task (e.g., investigate database connection, analyze errors, implement features)
  • Behavior (Step 2): The agent performs “planning next moves” but omits the pre-execution message defined in the rules
  • Behavior (Step 3): The agent executes the task but only includes the post-execution validation message
  • Result: The agent partially applies the rules—it includes post-execution validation but skips the mandatory pre-execution message that should appear before task execution begins

Conclusion: Rules only apply when an explicit question triggers the agent to detect them. However, even when rules are detected, if the task requires “planning next moves”, the pre-execution message format is lost—only the post-execution validation is included. Rules do NOT apply automatically at the start of conversations or when handling direct technical tasks.

Expected Behavior

Rules with alwaysApply: true should be automatically applied at the start of each conversation with the AI agent, without requiring the user to explicitly reference them or the agent to manually read them.

The agent should:

  • Automatically detect rules with alwaysApply: true
  • Load and apply those rules before processing any user request
  • Follow the defined rules without requiring manual user intervention

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

  • Cursor Version: 2.0.43
  • VSCode Version: Based on VSCode (exact version not available via command)
  • Commit: 8e4da76ad196925accaa169efcae28c45454cce0
  • Architecture: x64

For AI issues: which model did you use?

Agent Auto (automatic mode - model automatically selected by Cursor)

For AI issues: add Request ID with privacy disabled

Request ID with incorrect behavior (rules NOT applied):

  • 6d29f34a-0030-47ef-9003-f64d07e1a1ce - Request to examine database, agent skipped the rules

Request ID with correct behavior (rules applied):

  • d232be09-09e9-4f7e-8e68-7678591b0800 - Step 1: Question “who are you?” (agent detected the rules). Step 2: Asked to investigate database connection (agent applied the rules correctly during the task)

Additional Information

Rules Location and Configuration

  • Rules file path: /home/app/.cursor/rules/agent.mdc
  • File size: 382 lines (~46 KB)
  • Format: .mdc file with valid YAML frontmatter
  • Verified configuration:
    ---
    alwaysApply: true
    ---
    

Related Environment Variables

  • CURSOR_AGENT=1 - Correctly configured

Problem Context

  1. The rules file exists and is correctly formatted
  2. The YAML frontmatter has alwaysApply: true configured
  3. The file is in the standard location .cursor/rules/ as per documentation
  4. However, during initial conversations, the agent does not automatically apply these rules
  5. Only when the user explicitly mentions the rules or asks the agent to read them does the agent access and apply them

Investigation Conducted

  • Verified the file exists and has correct format
  • Confirmed that alwaysApply: true is present in the YAML frontmatter
  • Verified that the file is in the correct location according to Cursor documentation
  • Researched online and found similar reports from other users experiencing the same issue

References Found

Based on online research, this appears to be a known issue reported by several users in Cursor community forums, where rules with alwaysApply: true do not automatically apply even when correctly configured.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hi @deanrie, how are you?

This is my first time reporting a bug in Cursor, so I wanted to take the opportunity to ask how you handle this kind of issue internally. Since Cursor is a private IDE, I’d really like to understand how these cases are reviewed.

Overall, I’m very happy with Cursor, and I really like how the agent works when it properly follows the rules. That’s why I took the time to write them carefully for each project. But now, it’s creating a bit of uncertainty for me seeing that the rules aren’t applied automatically. I’ve had to review code multiple times or regenerate parts because the agent loses context or responds inconsistently.

What’s most frustrating is that, even though I know the agent can follow some of the rules if I remind it, I have to do so with every message. That’s the only partial workaround I’ve found so far, but it’s not practical, doesn’t always work, and really breaks the workflow.

I’d appreciate any insight you can share on how these situations are handled, or if there’s anything I can do on my side to make this work better.

Thanks for taking the time to read this.