Agent Sees, But Can't Find Cursor Rules In Sub-Directory

Problem

Issue started at 0.49+

When rules are used in:

  • Create a rule in .cursor/rules/global/with-javascript.mdc

And then combined with rules like:

  • Create a rule in .cursor/rules/propose.mdc

Rules in /global can NOT be used when added to the chat with either:

  • @with-javascript
  • @Ruleclicks the rule named with-javascript
  • Click the @ symbol in top left of chat → type with-javascript → click rule
  • Right click with-javascript.mdc in file view → Add to Chat
  • As well as selecting the rule as a File and a Rule, both fail

The rule adds fine to the chat, and on sending the message the agent says it recognizes I want it to use a rule, but then errors and says it can’t find the rule. I suspect the dual path (base path rules + a subdirectory) is breaking something that was related to a recent update)

Other Strange Behavior With /global

Furthermore, the rule name in the autocomplete of @ is behaving strangely by showing a few of the rules in /global as “global/with-javascript” and others missing the global/ suffix like “some-other-global-rule”. Which files it chooses to do this is random.

Things I’ve Tried

  • Reindexing, different codebases, different rule names, different folder names (this isn’t specific to /global)
  • Multiple models, multiple modes, multiple settings (I’m a fairly experienced user of Cursor and know the internals well)
  • Latest cursor (but occurring since 0.49+)

Current Workarounds

  • Going back to flat directory, with all rules in .cursor/rules
  • Using a low powered model like cursor-small and asking it to “what does this rule say at path/to/rule.mdc?” then once it’s in the context window, switching to a higher-powered model to follow it for the next action
  • Telling the agent to specifically: “use your tool read_file to read the markdown file located in the project root at ‘.cursor/rules/global/with-javascript.mdc’ then follow its instructions.”

Conditions

  • macOS Sequoia 15.4.1
  • No other forum posts relating to this issue
  • This does not stop me from using Cursor, but breaks workflows colleagues sharing our rules in /global previously

Screenshot

(It then fails after this. It sort of pretends it sees them at first)