Rules in subdirectories of .cursor/rules/ not visible in @ mentions or Settings UI

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Project rules (.mdc files) placed in subdirectories of .cursor/rules/ (e.g., .cursor/rules/dev/coding-guidelines.mdc) no longer appear in:
The @ autocomplete menu in chat
The Cursor Settings > Project Rules panel

This used to work previously. The rules still get injected into context at runtime when their globs/alwaysApply conditions match, but they cannot be manually referenced via @.

Steps to Reproduce

Repro:

Create .cursor/rules/subdir/my-rule.mdc with valid frontmatter (description, globs, alwaysApply: false)
Open chat and type @ — the rule does not appear in the autocomplete list
Move the same file to .cursor/rules/my-rule.mdc (no subdirectory) — it appears

Expected Behavior

Rules in subdirectories should be discoverable and @-mentionable, as they were in previous versions.

Operating System

MacOS

Version Information

Version: 2.6.19
VSCode Version: 1.105.1
Commit: 224838f96445be37e3db643a163a817c15b36060
Date: 2026-03-12T04:07:27.435Z
Build Type: Stable
Release Track: Default
Electron: 39.4.0
Chromium: 142.0.7444.265
Node.js: 22.22.0
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.2.0

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

It appears the Cursor is respecting the project gitignore rules. We have the following gitignore rules:

.cursor/*
.cursor/rules/*
!.cursor/rules/public/

and once I modify them to:

.cursor/*
!.cursor/rules/*
!.cursor/rules/public/

the rules are loaded.

We store our rules (and skills, and other agent related configs) in a separate repo and sync them. This breaks our workflow.

Hi Nitzan!

Thanks for the detailed report and for tracking down the root cause yourself. You’re exactly right — Cursor’s file discovery currently respects .gitignore patterns, which means rules in subdirectories of .cursor/rules/ get silently excluded when .gitignore contains patterns like .cursor/rules/*.

This is a known issue that our team is actively working to resolve.

Your workaround of changing .cursor/rules/* to !.cursor/rules/* in .gitignore is correct for now, though I understand it’s not ideal since it changes which files git tracks.

Thanks for your patience while we get this fixed.

Great, LMK when this issue is resolved