PPПётр ПашкуровCursor · наставничество · заказы

Руководство · Cursor

Cursor Rules: как задать правила проекту

Cursor Rules — постоянные инструкции для Agent Chat в репозитории (.cursor/rules/*.mdc, при необходимости AGENTS.md). В них фиксируют стек, команды lint/test/build и запреты, чтобы агент не «забывал» контекст между сессиями. Минимум: один .mdc с alwaysApply: true или globs под ваш стек, затем проверка в новом Agent-чате.

Cursor Rules: как задать правила проекту

Что такое Cursor Rules и зачем они нужны

Cursor Rules — постоянные текстовые инструкции для Agent Chat: стек, команды проверки, стиль кода и запреты. Они живут в репозитории (или в настройках аккаунта) и подмешиваются в контекст агента, чтобы не копировать одни и те же абзацы в каждый новый чат.

На разборе это выглядит предсказуемо. Ученик открывает второй Agent-чат на том же проекте, просит «почини тест» — и агент предлагает Jest, хотя вчера мы настраивали Vitest. Или лезет в package.json с правками, которые мы уже запретили. Без rules модель ориентируется на открытые файлы и последние сообщения; с rules — на явную «память проекта».

Важная граница, которую я проговариваю сразу: все Cursor Rules работают только в Agent Chat. Tab (автодополнение) и Inline Edit (Cmd/Ctrl+K) их не читают. Rules не заменяют ESLint, Prettier, CI и code review — они снижают разброс ответов, но не дают детерминированного «всегда так».

По запросам в Wordstat люди ищут «cursor rules», «cursor правила», «правила для курсора» — по сути один интент: как зафиксировать контекст проекта, чтобы агент не «забывал» стек между сессиями.

Где хранятся правила: `.cursor/rules`, `AGENTS.md` и типы подключения

Проектные cursor правила по умолчанию лежат в папке .cursor/rules/ в корне workspace. Канонический формат файла — .mdc: YAML frontmatter сверху и markdown-тело с инструкциями. Plain .md в этой папке без frontmatter Cursor игнорирует — на разборе часто вижу скопированный rules.md, который «молчит» именно по этой причине.

Схема уровней и форматов Cursor Rules: Team, Project, User и AGENTS.md

Альтернатива — AGENTS.md в корне или в подпапке: plain markdown без frontmatter, кросс-инструментовый вариант (Codex, Copilot и др. тоже умеют читать такие файлы). Nested AGENTS.md в подпапке по официальной доке применяется к файлам в этом каталоге и ниже.

Уровни правил, если коротко:

УровеньГдеВ git?Когда
Team RulesDashboard Cursor (Team/Enterprise)НетAgent Chat; enforce не отключается
Project Rules.cursor/rules/*.mdcДаAgent Chat; четыре режима через frontmatter
User RulesCustomize → RulesНетAgent Chat only
AGENTS.md / CLAUDE.mdКорень или подпапкиДаAgent Chat

При конфликте приоритет: Team → Project → User. Личные User Rules не перебивают team/project enforce.

Файл .cursorrules в корне — legacy, deprecated. Если он ещё есть, я мигрирую содержимое в .mdc с alwaysApply: true и убираю дубль: по опыту с форумов при совпадении текста побеждает .mdc, и правки только в .cursorrules могут «не срабатывать».

Четыре режима Project Rules в UI Cursor (2026):

Режим в UIFrontmatterПоведение
Always ApplyalwaysApply: trueВ каждый Agent-чат
Apply to Specific Filesglobs: [...], alwaysApply: falseКогда файлы по glob в контексте чата
Apply Intelligentlydescription: "...", без globsАгент решает по description — для критичных запретов я не полагаюсь
Apply Manuallyбез description/globs/alwaysApplyТолько через @rule-name в чате

Нюанс Cursor 2.x: rule с globs и alwaysApply: false подхватывается, когда файл по glob уже в контексте чата (@-mention или агент читает файл для правки), а не просто открыт в редакторе. Это объясняет половину «правило молчит» на разборах.

В монорепо отдельная папка packages/api/.cursor/rules/ по сообщениям на форуме не сканируется — практический workaround: AGENTS.md внутри пакета. Официально nested AGENTS.md поддерживается; для nested .cursor/rules в подпакете — только с оговоркой «по опыту / форум».

Минимальный рабочий пример `.mdc` для небольшого репозитория

Ниже — не «идеальный шаблон с курса», а демо-структура. Вы подставляете свой стек, реальные команды и запреты. Я специально оставляю плейсхолдеры: на наставничестве мы заполняем это из вашего package.json, а не из чужого GitHub-пака.

Типовая раскладка файлов:

project/
  AGENTS.md                 # опционально: кросс-tool база
  .cursor/rules/
    00-project-overview.mdc # alwaysApply: true — стек и общие запреты
    frontend-react.mdc      # globs: src/**/*.tsx
    tests.mdc               # globs: **/*.test.ts

Базовый overview — 00-project-overview.mdc:

---
description: Базовые соглашения проекта
alwaysApply: true
---

- Стек: Node 20, TypeScript, Vite, React 18
- Проверка: npm run lint && npm run test && npm run build
- Комментарии в коде и ответы агента — на русском, если задача на русском
- Перед удалением файлов или массовым рефакторингом — спросить
- Не коммитить секреты (.env, ключи API)
- Не менять lockfile без явной задачи

Зональное правило для фронта — frontend-react.mdc:

---
description: React/TSX в src/
globs: src/**/*.tsx
alwaysApply: false
---

- Named exports, не default export
- Стили: Tailwind; не добавлять inline style без причины
- Новые компоненты — в src/components/, не в корень src/

Таблица «строка → зачем» для overview:

Строка в .mdcЗачем
alwaysApply: trueПравило в каждый Agent-чат без @-mention
Стек (Node, TS, фреймворк)Агент не «угадывает» Jest vs Vitest
Команды lint/test/buildПосле правок агент знает, что прогнать
Язык ответовСтабильный тон в чате
«Спросить перед удалением»Меньше случайных rm -rf в diff
Запрет секретовМеньше утечек в коммит
LockfileМеньше шумных merge-конфликтов

Официальный best practice: до 500 строк на файл, один файл — одна тема, для длинных кусков кода — @filename в rule вместо копипасты. Для старта хватает одного alwaysApply overview на 5–15 пунктов.

Создать файл можно вручную, через Customize → Rules → Add Rule, command palette «New Cursor Rule», или командой /create-rule в Agent-чате — агент положит .mdc в .cursor/rules/.

На наставничестве такой overview обычно собираем из вашего package.json и регламента команды — не из чужого GitHub-пака. Обсудить в Telegram.

Как проверить, что rules реально работают

Проверка rules — отдельный шаг после настройки; без неё легко жить с «молчащим» frontmatter.

Чек-лист, который я прохожу на разборе (5–7 пунктов):

  1. 01

    Customize → Rules → Project Rules — файл виден, режим (Always / Specific Files / …) совпадает с frontmatter.

  2. 02

    Новый Agent-чат — не продолжение старого; в старом контекст мог перекрыть ожидания.

  3. 03

    Вопрос агенту: «Какие project rules сейчас активны?» — сверяю с тем, что завёл в .mdc.

  4. 04

    Тестовая задача в зоне glob — открываю или @-mention файл под globs, прошу типовую правку; смотрю, подтянулось ли зональное правило.

  5. 05

    Тест запрета — прошу удалить папку или поменять lockfile; агент должен остановиться и спросить (не гарантия 100%, но без rule часто идёт вперёд).

  6. 06

    Команды проверки — после правки прошу «прогони тесты»; агент должен вызвать те команды, что в overview, а не выдуманные.

  7. 07

    Git.cursor/rules/ и AGENTS.md закоммичены; коллега в новом клоне получает те же rules.

Если glob-rule не срабатывает: проверяю расширение .mdc, закрывающий --- в YAML, путь glob, что файл реально в контексте чата, а не только в табе редактора.

Чек-лист проверки Cursor Rules в интерфейсе Customize → Rules

<!-- cta: telegram-audit-rules-mid -->

Cursor Rules vs Skills vs Agent mode — в чём разница

Rules, Skills и Agent mode часто смешивают в одном чате — отсюда ожидание «rule сам запустит линтер». Разделение простое: rules — текст в контексте; skills — подключаемые процедуры/скрипты; Agent mode — режим работы агента с инструментами.

Cursor RulesSkillsAgent mode
Что этоПостоянные инструкции в .mdc / AGENTS.mdНавыки, часто с SKILL.md и скриптамиРежим Agent Chat с правкой файлов
Где живёт.cursor/rules/, AGENTS.md, User/Team.cursor/skills/ и др.UI: Agent (не Ask/Plan)
КогдаКаждый чат (или по glob / @)Когда агент вызывает skillКогда вы в Agent и даёте задачу
Не заменяетCI, linter, hooksRules (дополняет)Rules (читает их)

Запросы «cursor skills» и «cursor agent» в Wordstat тянут смежные темы — у меня на это отдельные материалы: про Cursor Agent mode (безопасный рабочий процесс) и про skills в будущих статьях. Здесь — только граница: rule не выполняет npm test сам по себе, он подсказывает агенту, что выполнить.

Сравнительная таблица Cursor Rules, Skills и Agent mode

Типичные ошибки при настройке rules

«Правило молчит» — самый частый тикет после второго занятия. Типовые причины:

  • .md вместо .mdc в .cursor/rules/ — файл не rule.
  • Битый YAML — пропущен ---, кавычки в description; иногда rule падает молча.
  • Apply Intelligently для критичного запрета — я для запретов только Always Apply или globs + тест.
  • Два alwaysApply на 300+ строк — съедает контекст; дроблю на темы.
  • Дубль AGENTS.md и overview.mdc с противоречиями — агент выбирает случайно.
  • Скопированный пак с GitHub без проверки frontmatter — в открытых rule-паках часто битая разметка.
  • Ожидание Tab/Inline — rules туда не попадают по дизайну Cursor.
  • Glob без файла в контексте чата — после Cursor 2.x открытый таб не всегда считается.

Диагностика в шесть шагов: расширение → YAML → режим Apply → путь в корне workspace → контекст glob → нет ли конфликтующего .cursorrules.

На разборе один кейс: ученик держал alwaysApply: true overview на 40 пунктов из чужого monorepo-template. Агент «забывал» код — потому что в контексте почти не оставалось места для файлов. Сократили до 12 пунктов про свой репо — стабильность выросла, хотя 100% соблюдения rules всё равно никто не обещает.

Cursor Rules и проекты на 1С

Запрос «cursor rules 1c» (~30 показов в месяц в Wordstat) — узкий, но живой. Cursor Rules для 1С работают по той же механике: .mdc в корне workspace с alwaysApply: true, в теле — стек (1С:Предприятие, версия платформы, где конфигурация), команды проверки (если у вас скрипт выгрузки/синтакс-проверки — явно прописать), запреты (не трогать production-выгрузку без подтверждения).

Я не обещаю, что агент станет «1С-разработчиком из коробки»: rules не заменяют знание метаданных и вашего регламента. Но фиксация «отвечай про процедуры в стиле BSL, не генерируй SQL вместо запросов 1С» снижает разброс в Agent Chat так же, как в JS-проектах.

<!-- cta: telegram-audit-rules -->

Если rules конфликтуют, «молчат» или вы скопировали чужой пак без понимания frontmatter — на наставничестве разбираю ваш реальный .cursor/rules, а не шаблон с курса.

Что прислать в Telegram:

  • ссылку на репозиторий или фрагмент .mdc;
  • что уже пробовали (новый чат, @-mention, globs);
  • где застряли: YAML, Apply Intelligently или монорепо.

Попросить аудит правил в Telegram

Дальше по цепочке: промпты для Cursor и Cursor Agent mode. Если Agent mode ещё не настроен — первый рабочий сценарий.

FAQ

Частые вопросы

Что такое Cursor Rules?

Cursor Rules — постоянные текстовые инструкции для Agent Chat: стек, команды проверки, стиль и запреты. Обычно живут в .cursor/rules/*.mdc или в AGENTS.md и коммитятся в git, чтобы агент не «забывал» контекст проекта между сессиями.

Где создать файл rules в Cursor?

Проектные rules — в папке .cursor/rules/ в корне workspace, файлы с расширением .mdc. Создать можно вручную, через Customize → Rules → Add Rule, command palette «New Cursor Rule» или командой /create-rule в Agent-чате. Альтернатива — AGENTS.md в корне или подпапке.

Чем Cursor Rules отличаются от Skills?

Rules — текст в контексте агента (что делать и что не делать). Skills — подключаемые навыки, часто с SKILL.md и скриптами, которые агент вызывает по задаче. Rule не запускает линтер сам; skill может содержать процедуру или команду.

Нужен ли AGENTS.md, если уже есть `.cursor/rules`?

Не обязательно. AGENTS.md — plain markdown без frontmatter, удобен для кросс-инструментов и nested правил в подпапках. .mdc даёт globs и alwaysApply. Можно один формат или комбинация, главное — не дублировать противоречия.

Что такое `alwaysApply` и `globs` в rules?

alwaysApply: true — правило попадает в каждый Agent-чат. globs с alwaysApply: false — правило подтягивается, когда файлы по шаблону уже в контексте чата (в Cursor 2.x не всегда при простом открытии в редакторе). Без globs и alwaysApply — только через @rule-name вручную.

Подходят ли Cursor Rules для проекта на 1С?

Да, механика та же: .mdc с стеком (платформа, конфигурация), командами проверки и запретами. Rules не заменяют знание метаданных и регламент 1С, но фиксируют стиль BSL и границы правок в Agent Chat.

Работают ли rules в Tab и Inline Edit (Cmd/Ctrl+K)?

Нет. Все Cursor Rules — только для Agent Chat. Tab (автодополнение) и Inline Edit их не читают. Для форматирования и линта — ESLint, Prettier, CI.

Как связаны Rules и Agent mode?

Agent mode — режим Agent Chat, где агент правит файлы. Rules подмешиваются в контекст этого режима. Ask и Plan rules не подставляют так же, как Agent. Подробнее — в материале про Cursor Agent mode.

Дальше

Связанные страницы

Птенец в капюшоне печатает сообщение в телефоне
Telegram

Попросить аудит правил в Telegram

Разберём ваш реальный `.cursor/rules`: frontmatter, globs и конфликты — не шаблон с курса.

Отвечаю сам — без бота и «оставьте заявку».