Как писать Cursor Rules: файл проекта и как агент его читает
Положите .mdc в .cursor/rules, выберите режим, пишите исполнимый текст. Подходящие правила попадают в начало контекста.
Cursor Agent не помнит устные ограничения между чатами. Если вы в третий раз вставляете «не переписывай роутер», положите это в правило проекта, чтобы следующая сессия началась с ним.
В документации это Cursor Rules. Правила проекта лежат в .cursor/rules и должны иметь расширение .mdc. Обычный .md в этой папке игнорируется. Это инструкция по редактору, не руководство по мозговому штурму.
Что такое правило проекта
См. cursor.com/docs/context/rules. Из четырёх источников для старта хватает файла в репозитории. Когда правило срабатывает, текст стоит в начале контекста модели.
| Источник | Где лежит | Когда попадает в контекст |
|---|---|---|
| Project Rules | .cursor/rules/*.mdc | по frontmatter |
| User Rules | Customize → Rules | Agent (Chat), все проекты |
| Team Rules | Панель (Team / Enterprise) | Все репозитории; можно принудить |
| AGENTS.md | Корень или подкаталог | Обычный markdown без frontmatter |
Первое правило за четыре шага
- 1
Создайте файл
Добавьте
.cursor/rules/your-name.mdcв репозиторий. Или введите/create-ruleв Agent, или Customize → Rules → Add Rule. Папки допустимы. Расширение должно быть.mdc. - 2
Выберите режим
alwaysApply: trueв каждом чате.globs— когда подходящий файл в контексте. Только description: решает Agent. Всё пусто: только@имя-правилав чате. - 3
Напишите исполнимый текст
Как внутренний документ: запреты, имена, границы каталогов. Указывайте примеры через
@filename.ts, не вставляйте файл целиком. Официальный потолок: меньше 500 строк. - 4
Закоммитьте и проверьте
Положите правило в git, чтобы команда делила одни ограничения. Статус смотрите в Customize. Если Agent всё ещё пропускает, упомяните правило через
@в чате.
Что писать в теле
То, что не ловит линтер
Например: не править сгенерированные файлы; новые сервисы возвращают структурированные ошибки. Обычный стиль — ESLint или rustfmt. Не вставляйте весь гайд.
Границы архитектуры
Какой слой трогает базу, какие папки не импортируют друг друга. Agent уже знает git и npm. Повседневные команды не нужны.
Указатели на примеры в репозитории
Ссылайтесь через @ на уже существующий шаблон. Код меняется — правило остаётся коротким. Добавляйте правило, когда Agent повторяет ошибку, а не начинайте с двадцати файлов.
---
description: TypeScript conventions for this repo
globs: **/*.{ts,tsx}
alwaysApply: false
---
# TypeScript
- Prefer named exports
- Do not edit files under dist/
- New API clients follow @src/api/client.tsКак агент использует правило
После совпадения текст стоит в начале контекста для генерации кода, пояснений правок и рабочих потоков. Официальный порядок конфликта: Team Rules → Project Rules → User Rules; более ранние источники побеждают. Rules не влияют на Cursor Tab. User Rules не действуют на Inline Edit (Cmd/Ctrl+K).
Когда хватит AGENTS.md
Нужна только читаемая заметка — положите AGENTS.md в корень или подкаталог. Вложенные файлы сливаются с родительскими в этом дереве; более конкретные побеждают. Для globs или ручного @ оставайтесь на .mdc.
Когда правило лежит и нужен общий набросок, wbstorm — это ID комнаты в браузере; см. создать или войти в комнату и основы доски.
Почему правило не применяется?
Проверьте тип. Apply Intelligently нужен description. Файловому правилу нужен glob, совпадающий с путём уже в контексте. Обычный .md в .cursor/rules игнорируется.
Влияют ли правила на Tab?
Официальный FAQ: Rules не влияют на Cursor Tab и другие функции вне Agent. User Rules также не действуют на Inline Edit.
Можно ли ссылаться на другие файлы?
Да. Напишите @filename.ts в тексте. Правило можно также @-упомянуть в чате, чтобы подключить вручную.
Это инструкция по wbstorm?
Нет. Статья только про правила проекта Cursor. wbstorm — комната мозгового штурма в браузере и к файлу правил не относится.