раздел 03

Rules (правила)

Правила - это точечные подсказки, которые срабатывают по условию. Самый известный формат - правила Cursor, они лежат в папке .cursor/rules/ файлами с расширением .mdc. Похожий механизм есть и у других агентов. Идея одна: правило включается не всегда, а когда агент работает в определённой области - с определённым типом файлов или в определённой папке.

Чем правило отличается от AGENTS.md / CLAUDE.md

Это частый вопрос, разберём прямо.

  • AGENTS.md / CLAUDE.md - всегда на виду. Общие вещи про весь проект: стек, команды, стиль. Агент читает его в начале и держит постоянно.
  • Правило - точечное и условное. Включается только в своей области. Например: работаешь с файлами тестов - подключилось правило про тесты; открыл компонент - правило про компоненты.

Проще так: AGENTS.md / CLAUDE.md отвечает на вопрос «как устроен проект в целом», а правило - «что важно вот здесь, в этом углу».

Как это выглядит

У правила обычно есть условие срабатывания (по маске файлов) и текст подсказки:

---
description: Правила для React-компонентов
globs:
  - "app/components/**/*.tsx"
alwaysApply: false
---

- Компоненты - функциональные, без классов.
- Пропсы типизировать через type, не interface.
- Никакой бизнес-логики в компоненте: только отображение,
  данные приходят пропсами.
- Стили - через Tailwind-классы, без inline style.

Здесь globs задаёт, для каких файлов правило включается. Пока агент не трогает компоненты, правило молчит и не занимает его внимание. Открыл компонент - правило подключилось.

Хорошо и плохо

Хорошо
Узкое правило с чёткой областью: подсказки по компонентам включаются только на файлах компонентов. Короткий список конкретных требований. Не мешает работе в других частях проекта.
Плохо
Правило без области, включённое всегда, дублирует AGENTS.md / CLAUDE.md. Или наоборот - в него запихнули все договорённости проекта, и оно превратилось во вторую инструкцию, только спрятанную.

Когда заводить правило

Заводи правило, когда у отдельной области кода есть свои требования, не нужные остальному проекту: особый стиль тестов, соглашения для миграций базы, правила оформления API-роутов. Тогда подсказка появляется ровно там, где нужна, и не засоряет контекст в других местах.

Куда дальше