With alwaysApply: false, no globs and an empty description, that rule is a Manual rule. It only gets loaded when you @-mention it. Cursor never has a reason to pick it up by itself.
For a rule that must hold everywhere:
---
description: Package manager for this repo
alwaysApply: true
---
Use pnpm for everything (pnpm add, pnpm dlx). Never run npm or npx.
You can check it's loaded: start a new agent chat and look at the rules listed in the context for that message. If it's not in there, the model never saw it.
Keep "always" rules to one or two short files, though. Everything always-on competes for the same context.