Rules — договор с агентом, не README для людей. Если правило не выполняется в новом чате, его нет. Три слоя путают со Skills и командами: граница — Skills, Commands и Rules.

Три места
- User Rules — на этой машине, для всех проектов. Язык ответов, «не коммить
.env», личные запреты. Не стек конкретного репо. - Проект:
.cursor/rules/*.mdcв git. Стек, slug, запрет force-push, globs. Это то, что клонирует коллега. AGENTS.mdв корне — короткий указатель для агентов. Не четвёртая простыня: либо ссылка на Rules, либо пять строк. Иначе модель цитирует устаревший абзац.
Старый .cursorrules в корне не размножайте. Где лежит каталог — где cursor/rules. Globs по папкам — .mdc и globs.
Что писать
Факты и запреты, которые можно проверить по diff.
Работает: «не меняй существующие slug без миграции», «секреты только в env», «не добавляй зависимости без просьбы», «отвечай по-русски».
Не работает: «пиши чистый код», «будь полезным», «следуй best practices». Это лозунги. Агент их не нарушит и не выполнит.
Один файл — одна тема. secrets.mdc всегда. frontend.mdc с globs: src/app/**. Десять копий одного текста — шум.
Frontmatter типичный дух, не копипаста под ваш стек:
---
description: Next.js App Router, не Pages
globs: src/app/**
alwaysApply: false
---
Не трогай legacy в pages/. Новый код — App Router.
alwaysApply: true — для запретов, которые нужны в любом чате. Не для гайда по деплою: деплой — skill.
Как проверить
- Сохранили файл. Новый чат, не тот же тред.
- Спросите: «какие правила проекта ты видишь?»
- Узкая задача, где правило должно сработать. Нет в diff — правьте формулировку, не добавляйте вторую копию.

После апдейта Cursor имена полей frontmatter могли смениться. Смотрите свою сборку и changelog, не gist 2024 года.
Чего не класть
Секреты, токены, DSN прода, личные ключи API. Rules попадают в git и в контекст модели. Privacy Mode не делает .mdc сейфом: Privacy.
Не кладите сценарий «как выкатить на Beget» на три экрана. Это skill. Не кладите /review целиком — commands.
Team Rules с дашборда Cursor не знают ваш slug. Локальный .mdc всё равно нужен. Teams.
Практика на старте
Три файла: запреты (always), фронт, бэк. Потом режете. Не импортируйте чужой набор из блога «50 rules для Cursor». Там чужой стек и устаревшие модели.
cursorignore скрывает файлы от индекса, не заменяет Rules. cursorignore.
Если агент игнорирует правило — сначала узкий @ и новый чат. Потом текст правила. Потом skill. Не «ещё один alwaysApply на весь репозиторий».
Коротко
User Rules — человек. .mdc в git — проект. AGENTS.md — указатель. Пишите проверяемые запреты, режьте globs, проверяйте новым чатом. Секреты и сценарии деплоя сюда не относятся.
Миграция со старого файла
Нашли один огромный .cursorrules — разрежьте: always-запреты, фронт, бэк. Не переименовывайте в SKILL.md. Не просите агента «разложи rules красиво» без рамки: он размножит дубли.
После переноса удалите старый файл, иначе оба попадут в контекст и поспорят. Коллегам — один PR с rules, не «у каждого своя папка в Downloads».
Русский интерфейс и язык ответов — разные вещи. Язык ответов можно зафиксировать в User Rules. Интерфейс IDE — отдельный гайд.