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
- @Rule → clicks 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)