Правило Cursor технически существует в репозитории, синтаксически корректно, но почему-то не влияет на поведение агента в конкретном файле. Ошибки при этом нет — Cursor не ругается на неправильный glob-паттерн, он просто не применяет правило там, где оно, по вашим ожиданиям, должно было сработать.
Структура файла .mdc
Формат состоит из двух частей: YAML frontmatter между двумя строками из трёх дефисов, и markdown-тело с самими инструкциями.
---
description: Frontend conventions
globs: src/**/*.tsx, src/**/*.ts
alwaysApply: false
---
Use functional components with hooks, not class components.
Prefer named exports over default exports.
Три поля, которые определяют, применится ли правило
| Поле | Назначение | Частая ошибка |
|---|---|---|
| description | Краткое описание правила для навигации | Не влияет на применение, только справочная информация |
| globs | Список путей, к которым применяется правило | Опечатка в паттерне — правило не сработает без явной ошибки |
| alwaysApply | Применять правило ко всем файлам без ограничения | true игнорирует globs полностью, false без globs может не применяться нигде |
Как работает синтаксис glob-паттернов
Одна звёздочка совпадает с любым количеством символов внутри одного сегмента пути, а двойная звёздочка — рекурсивно на любую глубину вложенности директорий:
src/*.ts — файлы .ts прямо в src, не глубже
src/**/*.ts — файлы .ts в src и любой вложенной директории
Путаница между этими двумя паттернами — вторая по частоте причина, почему правило применяется не там, где ожидалось: разработчик пишет src/*.ts, ожидая покрыть весь проект, а на деле паттерн ловит только файлы прямо в корне src.
Главная ловушка: отсутствие и globs, и alwaysApply
Если frontmatter не содержит ни одного, ни другого поля, поведение зависит от конкретной версии Cursor и может измениться между релизами — самый надёжный способ не гадать: явно указать alwaysApply true для универсальных правил, или явно прописать globs для правил, ограниченных конкретной частью проекта.
Как проверить, не дожидаясь реального использования агентом
Открывать десяток файлов и смотреть, применяется ли к ним правило, — медленный и ненадёжный способ отладки. Cursor Rules (.mdc) Frontmatter Validator разбирает frontmatter и сразу показывает на списке тестовых путей, какие из них реально попадут под правило.
Итоговый чеклист
Ошибка в glob-паттерне не выдаёт explicit ошибку — правило просто молча не применяется, и это стоит проверять отдельно, а не полагаться на отсутствие сообщений об ошибках.
Двойная звёздочка нужна для рекурсивного совпадения по вложенным директориям, одна звёздочка работает только внутри одного сегмента пути.
alwaysApply true полностью отменяет проверку globs — если оба поля заданы одновременно и противоречат друг другу по смыслу, победит alwaysApply.