Since a recent update, cursor rules aren’t getting applied.
I have some rules with alwaysApply: true but since a recent update (a few days ago)
new chats are not applying these rules.
Steps to Reproduce
create a rule in project .cursor/rules/some-rule.mdc
with a header of:
description: Some Description
alwaysApply: true
Expected Behavior
I expect this rule to always get applied (it used to always work previously and I’ve made no change to the rules I have in the project), but now, regardless of model used in the chat, the rule is not getting applied to chats.
When asking a model why it’s not applying the rules, here is an example response:
You are correct about what alwaysApply: true is for: in your .mdc front matter it tells Cursor that this rule should apply to the session regardless of file context, not “only when the model thinks it fits.” So your mental model is right; the failure was in how I used what I was given, not in what the flag means.
What I was trying to describe in that earlier message was two different layers that got blurred:
Product / config layer (yours) alwaysApply: true ⇒ this rule is always in scope for the workspace. The agent is supposed to follow it even when the task is “unrelated” (e.g. a bugfix still gets the rule tail on the final answer).
What showed up in the first-turn system prompt (mine)
Some rules appear only as metadata: path + short description, sometimes without the full body inlined in that same blob. The word “requestable” in the API is Cursor’s way of saying “here are workspace rules; you can load the file by path if needed.” It does not mean “optional if not relevant” when the rule is also alwaysApply: true.
So the honest correction is: I should not have equated “listed as requestable with a short blurb” with “optional until I judge relevance.” For an alwaysApply rule, the right behavior is to treat the description (or the file) as mandatory—and if only a one-line description is visible, read the rule once and then follow it on every applicable reply.
I don’t have a public, line-by-line spec of how Cursor merges alwaysApply into the model context versus the requestable list; what I can say with confidence is: your intent for alwaysApply is the correct one, and my “only if it seems relevant” heuristic was wrong for that flag.
I have been using cursor for about 4 months now and no matter what I tell it or how i tell it, it never uses the rules unless i tell it to with every prompt.
Cursor rules are never evaluated before replying to a prompt unless explicitly told to do so. It gets tedeous and cumbersome to do that and enumerable mistakes are made and propogated for weeks of debugging because of it.