Как писать Cursor Rules: файл проекта и как агент его читает

Положите .mdc в .cursor/rules, выберите режим, пишите исполнимый текст. Подходящие правила попадают в начало контекста.

Cursor Agent не помнит устные ограничения между чатами. Если вы в третий раз вставляете «не переписывай роутер», положите это в правило проекта, чтобы следующая сессия началась с ним.

В документации это Cursor Rules. Правила проекта лежат в .cursor/rules и должны иметь расширение .mdc. Обычный .md в этой папке игнорируется. Это инструкция по редактору, не руководство по мозговому штурму.

Создать .mdcFrontmatterAgent подставляет

Что такое правило проекта

См. cursor.com/docs/context/rules. Из четырёх источников для старта хватает файла в репозитории. Когда правило срабатывает, текст стоит в начале контекста модели.

.mdc
Расширение
4 режима
Как подключается
Начало
Куда вставляется
ИсточникГде лежитКогда попадает в контекст
Project Rules.cursor/rules/*.mdcпо frontmatter
User RulesCustomize → RulesAgent (Chat), все проекты
Team RulesПанель (Team / Enterprise)Все репозитории; можно принудить
AGENTS.mdКорень или подкаталогОбычный markdown без frontmatter

Первое правило за четыре шага

  1. 1

    Создайте файл

    Добавьте .cursor/rules/your-name.mdc в репозиторий. Или введите /create-rule в Agent, или Customize → Rules → Add Rule. Папки допустимы. Расширение должно быть .mdc.

  2. 2

    Выберите режим

    alwaysApply: true в каждом чате. globs — когда подходящий файл в контексте. Только description: решает Agent. Всё пусто: только @имя-правила в чате.

  3. 3

    Напишите исполнимый текст

    Как внутренний документ: запреты, имена, границы каталогов. Указывайте примеры через @filename.ts, не вставляйте файл целиком. Официальный потолок: меньше 500 строк.

  4. 4

    Закоммитьте и проверьте

    Положите правило в git, чтобы команда делила одни ограничения. Статус смотрите в Customize. Если Agent всё ещё пропускает, упомяните правило через @ в чате.

Что писать в теле

01

То, что не ловит линтер

Например: не править сгенерированные файлы; новые сервисы возвращают структурированные ошибки. Обычный стиль — ESLint или rustfmt. Не вставляйте весь гайд.

02

Границы архитектуры

Какой слой трогает базу, какие папки не импортируют друг друга. Agent уже знает git и npm. Повседневные команды не нужны.

03

Указатели на примеры в репозитории

Ссылайтесь через @ на уже существующий шаблон. Код меняется — правило остаётся коротким. Добавляйте правило, когда 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 — комната мозгового штурма в браузере и к файлу правил не относится.

Начать бесплатную встречу