Правила
Правила задают системные инструкции для Agent. Они объединяют промпты, скрипты и другие элементы, упрощая управление рабочими процессами и обмен ими в команде.
Cursor поддерживает четыре типа правил:
Правила проекта
Хранятся в .cursor/rules, находятся под контролем версий и применяются к вашей кодовой базе.
Пользовательские правила
Действуют глобально в вашей среде Cursor. Используются Agent (Chat).
Правила команды
Правила для всей команды, которыми можно управлять из дашборда. Доступны на тарифах Team и Enterprise.
AGENTS.md
Инструкции для Agent в формате markdown. Простая альтернатива
.cursor/rules.
Как работают правила
Большие языковые модели не сохраняют память между запросами. Правила задают постоянный, повторно используемый контекст на уровне промпта.
При применении содержимое правила включается в начало контекста модели. Это даёт ИИ единые инструкции для генерации кода, интерпретации правок и помощи в рабочих процессах.
Правила проекта
Правила проекта хранятся в .cursor/rules в виде файлов .mdc и отслеживаются системой контроля версий. Их область действия определяется шаблонами путей, они могут вызываться вручную или включаться по релевантности.
Используйте правила проекта, чтобы:
- Фиксировать знания о предметной области вашей кодовой базы
- Автоматизировать специфичные для проекта рабочие процессы или шаблоны
- Стандартизировать решения по стилю или архитектуре
Структура файла правила
Каждое правило представляет собой файл .mdc, которому можно присвоить любое имя. Правила проекта должны иметь расширение .mdc. Обычный файл .md в .cursor/rules система правил игнорирует, поскольку в нём нет фронтматтера с параметрами description, globs и alwaysApply. Если вы предпочитаете обычный markdown, используйте AGENTS.md.
.cursor/rules/ react-patterns.mdc # Распознаётся как правило проекта api-guidelines.md # Игнорируется (неподходящее расширение) frontend/ # Группируйте правила по папкам components.mdcСтруктура правила
Каждое правило — это Markdown-файл с фронтматтером и содержимым. Управлять применением правил можно в выпадающем списке типа правила, который изменяет свойства description, globs и alwaysApply.
| Тип правила | Описание |
|---|---|
Always Apply | Применяется к каждой сессии чата |
Apply Intelligently | Когда Agent считает правило релевантным по описанию |
Apply to Specific Files | Когда файл соответствует заданному шаблону |
Apply Manually | При @-упоминании в чате (например, @my-rule) |
Три поля фронтматтера определяют, когда правило включается:
alwaysApply | description | globs | Поведение |
|---|---|---|---|
true | — | — | Включается всегда. Глобы и описание игнорируются. |
false | — | указано | Автоматически прикрепляется, когда соответствующий файл есть в контексте. |
false | указано | опущено | Agent читает описание и добавляет правило, когда оно релевантно. |
false | опущено | опущено | Включается только при @-упоминании правила в чате. |
---alwaysApply: true---- All source files must include the company copyright header- When you are unsure about implementation details, read the relevant source files before proposing changes- Never modify generated files in the `dist/` or `build/` directories---globs: src/components/**/*.tsxalwaysApply: false---- Используйте именованные экспорты, а не экспорты по умолчанию- Размещайте стили в модуле CSS рядом с компонентом- Содержите компоненты в пределах 200 строк. Когда файл становится больше, выносите подкомпоненты в тот же каталог- Предпочитайте композицию вместо "prop drilling". Передавайте children или render props вместо протаскивания данных через несколько уровней---description: Соглашения и шаблоны RPC-сервисов для бэкендаalwaysApply: false---- Определяйте каждый сервис в отдельном файле в `src/services/`- Всегда проверяйте входные данные на границе сервиса перед передачей их во внутренние функции- Возвращайте структурированные объекты ошибок с полями `code` и `message`, никогда не бросайте необработанные строки- При создании нового сервиса добавляйте файл-ссылку `@service-template.ts` со стандартным шаблонным кодом---alwaysApply: false---- Every database migration must have both `up` and `down` functions so it can be fully reversed- Never alter a column type in-place. Add a new column, backfill, then drop the old one in a separate migration- Reference the template for the expected file structure@migration-template.sqlПримеры glob-шаблонов
Используйте globs, чтобы применять правило только к определённым файлам или каталогам. Разделяйте несколько шаблонов запятыми.
| Шаблон | Соответствует |
|---|---|
* | Любому одному сегменту имени файла |
** | Любому количеству каталогов (рекурсивно) |
*.ts | Всем файлам .ts в корневом каталоге |
**/*.ts | Всем файлам .ts в любом каталоге |
src/** | Всем файлам в любом месте внутри src/ |
src/**/*.tsx | Всем файлам .tsx в любом месте внутри src/ |
docs/**/*.md, docs/**/*.mdx | Файлам .md и .mdx внутри docs/ (разделены запятыми) |
tailwind.config.* | tailwind.config с любым расширением |
Создание правила
Создать правило можно двумя способами:
/create-ruleв чате: Введите/create-ruleв Agent и опишите, что вам нужно. Agent создаст файл правила с правильным фронтматтером и сохранит его в.cursor/rules.- Через Customize: Откройте Customize на боковой панели, перейдите в правила и нажмите Add Rule. Будет создан новый файл правила в
.cursor/rules. В Customize можно просмотреть все правила и их статус.
Рекомендации
Хорошие правила должны быть конкретными, применимыми и чётко ограниченными по области действия.
- Не превышайте 500 строк в одном правиле
- Разбивайте большие правила на несколько небольших, комбинируемых правил
- Приводите конкретные примеры или указывайте файлы
- Избегайте расплывчатых рекомендаций. Пишите правила как понятную внутреннюю документацию
- Повторно используйте правила для повторяющихся промптов в чате
- Ссылайтесь на файлы вместо копирования их содержимого — так правила остаются краткими и не устаревают при изменении кода
Чего следует избегать в правилах
- Копирования целых руководств по стилю: Лучше используйте линтер. Agent уже знает распространённые соглашения о стиле.
- Документирования всех возможных команд: Agent знает распространённые инструменты, такие как npm, git и pytest.
- Добавления инструкций для редко возникающих крайних случаев: Формулируйте правила с учётом шаблонов, которые вы часто используете.
- Дублирования того, что уже есть в вашей кодовой базе: Ссылайтесь на эталонные примеры вместо копирования кода.
Начните с простого. Добавляйте правила, только если замечаете, что Agent раз за разом допускает одну и ту же ошибку. Не стремитесь к преждевременной оптимизации, пока не разберётесь в своих шаблонах.
Добавьте правила в git, чтобы ими могла пользоваться вся команда. Если Agent допускает ошибку, обновите правило. Можно даже отметить @cursor в issue или PR на GitHub, и Agent обновит правило за вас.
Формат файла правила
Каждое правило представляет собой файл markdown с метаданными во фронтматтере и содержимым. Метаданные фронтматтера определяют, как применяется правило. Содержимое — это само правило.
---description: "This rule provides standards for frontend components and API validation"alwaysApply: false---...rest of the rule contentЕсли alwaysApply имеет значение true, правило будет применяться к каждой сессии чата. В противном случае описание правила будет предоставлено Cursor Agent, который решит, следует ли его применять.
Примеры
Это правило задаёт стандарты для frontend-компонентов:
При работе в каталоге компонентов:
- Всегда используйте Tailwind для стилизации
- Используйте Framer Motion для анимаций
- Соблюдайте соглашения об именовании компонентов
Это правило обеспечивает валидацию конечных точек API:
В каталоге API:
- Используйте zod для всей валидации
- Определяйте возвращаемые типы с помощью схем zod
- Экспортируйте типы, сгенерированные на основе схем
Это правило содержит шаблон для сервисов Express:
Используйте этот шаблон при создании сервиса Express:
- Следуйте принципам REST
- Добавляйте middleware для обработки ошибок
- Настройте корректное логирование
@express-service-template.ts
Это правило определяет структуру компонентов React:
Компоненты React должны иметь следующую структуру:
- Интерфейс props вверху
- Компонент как именованный экспорт
- Стили внизу
@component-template.tsx
Это правило автоматизирует анализ приложения:
Когда требуется проанализировать приложение:
- Запустите сервер разработки с помощью
npm run dev - Получите логи из консоли
- Предложите улучшения производительности
Это правило помогает создавать документацию:
Помогите подготовить документацию:
- Извлекая комментарии из кода
- Анализируя README.md
- Создавая документацию в формате markdown
Сначала создайте свойство для переключателя в @reactiveStorageTypes.ts.
Добавьте значение по умолчанию в INIT_APPLICATION_USER_PERSISTENT_STORAGE в @reactiveStorageService.tsx.
Для бета-функций добавьте переключатель в @settingsBetaTab.tsx, в остальных случаях — в @settingsGeneralTab.tsx. Для обычных флажков переключатели можно добавлять как <SettingsSubSection>. Примеры смотрите в остальной части файла.
<SettingsSubSection label="Your feature name" description="Your feature description" value={ vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty ?? false } onChange={(newVal) => { vsContext.reactiveStorageService.setApplicationUserPersistentStorage( "myNewProperty", newVal, ); }}/>Чтобы использовать параметр в приложении, импортируйте reactiveStorageService:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty;Примеры доступны у провайдеров и во фреймворках. Правила, созданные сообществом, можно найти в открытых коллекциях и репозиториях в интернете.
Правила команды
На тарифах Team и Enterprise можно создавать и применять правила для всей организации через дашборд Cursor. Администраторы могут настроить обязательность каждого правила для участников команды.
Правила команды дополняют другие типы правил и имеют приоритет над ними, обеспечивая соблюдение стандартов организации во всех проектах. Они помогают поддерживать единые стандарты кодирования, практики и рабочие процессы во всей команде без индивидуальной настройки или конфигурации.
Управление правилами команды
Администраторы команды могут создавать правила и управлять ими прямо в дашборде Cursor:
После создания правила команды автоматически применяются ко всем участникам команды и отображаются в дашборде:
Активация и применение
- Включить это правило сразу: Если установлено, правило становится активным сразу после создания. Если флажок снят, правило сохраняется как черновик и не применяется, пока вы не включите его позже.
- Применять это правило принудительно: Если включено, правило обязательно для всех участников команды и его нельзя отключить в Customize. Если принудительное применение отключено, участники команды могут отключить правило в разделе Правила команды в Customize.
По умолчанию пользователи могут отключать правила команды без принудительного применения. Чтобы этого не допустить, используйте Применять это правило принудительно.
Формат и применение правил команды
- Содержимое: Правила команды представляют собой произвольный текст. Они не используют структуру папок правил проекта.
- Glob-шаблоны: Правила команды поддерживают glob-шаблоны для применения к отдельным файлам. Если задан glob-шаблон (например,
**/*.py), правило применяется только при наличии в контексте соответствующих файлов. Правила без glob-шаблона применяются к каждому диалогу. - Где применяются: Если правило команды включено (и пользователь не отключил его, если оно не является обязательным), оно включается в контекст модели для Agent (Chat) во всех репозиториях и проектах этой команды.
- Приоритет: Правила применяются в следующем порядке: Правила команды → Правила проекта → Пользовательские правила. Все применимые правила объединяются; при конфликте указаний приоритет имеют более ранние источники.
Некоторые команды используют обязательные правила в рамках внутренних процессов соблюдения требований. Хотя это поддерживается, рекомендации ИИ не должны быть единственным средством контроля безопасности.
Импорт правил
Вы можете импортировать правила из внешних источников, чтобы повторно использовать существующие конфигурации или добавить правила из других инструментов.
Удалённые правила (через GitHub)
Импортируйте правила напрямую из любого доступного вам репозитория GitHub — публичного или приватного.
- Откройте Customize на боковой панели
- Перейдите в правила и нажмите Add Rule
- Выберите Remote Rule (Github)
- Вставьте URL репозитория GitHub с правилами. Cursor просканирует все файлы
.mdcв репозитории. - Cursor скачает и синхронизирует правила с вашим проектом
Правила будут размещены в .cursor/rules/imported/<repoName>. Они также сохранят относительные пути, поэтому dir/rule.mdc будет импортирован как .cursor/rule/imported/<repoName>/dir/rule.mdc.
AGENTS.md
AGENTS.md — простой markdown-файл для задания инструкций агенту. Разместите его в корне проекта как альтернативу .cursor/rules для простых сценариев.
В отличие от правил проекта, AGENTS.md — обычный markdown-файл без метаданных и сложных конфигураций. Он идеально подходит для проектов, которым нужны простые и понятные инструкции без сложной структуры правил.
Cursor поддерживает AGENTS.md в корне проекта и подкаталогах.
# Инструкции проекта## Стиль кода- Используйте TypeScript для всех новых файлов- Отдавайте предпочтение функциональным компонентам в React- Используйте snake_case для столбцов базы данных## Архитектура- Следуйте шаблону репозитория- Храните бизнес-логику в сервисном слоеУлучшения
Теперь поддерживаются вложенные файлы AGENTS.md в подкаталогах. Вы можете размещать файлы AGENTS.md в любом подкаталоге проекта — они будут автоматически применяться при работе с файлами в этом каталоге или его дочерних каталогах.
Это обеспечивает более детальный контроль над инструкциями для Agent в зависимости от области кодовой базы, с которой вы работаете:
project/ AGENTS.md # Глобальные инструкции frontend/ AGENTS.md # Инструкции для frontend components/ AGENTS.md # Инструкции для компонента backend/ AGENTS.md # Инструкции для backendИнструкции из вложенных файлов AGENTS.md объединяются с инструкциями из родительских каталогов, при этом более конкретные инструкции имеют приоритет.
Пользовательские правила
Пользовательские правила — это глобальные настройки в Customize → правила, действующие во всех проектах. Они используются Agent (Chat) и позволяют задать предпочтительный стиль общения или соглашения по написанию кода:
Отвечайте кратко. Избегайте ненужных повторов и пустых фраз.Часто задаваемые вопросы
Проверьте тип правила. Для Apply Intelligently убедитесь, что указано описание. Для Apply to Specific Files убедитесь, что шаблон файла соответствует файлам, на которые есть ссылки.
Да. Используйте @filename.ts, чтобы включить файлы в контекст правила. Также можно @упоминать правила в чате, чтобы применить их вручную.
Да, можно попросить Agent создать новое правило.
Нет. Правила не влияют на Cursor Tab или другие функции ИИ.
Нет. Пользовательские правила не применяются к Inline Edit (Cmd/Ctrl+K). Их использует только Agent (Chat).