Архитектура правил: 3 слоя и контекстное окно
Как правила попадают в мозг языковой модели, как устроена трехуровневая иерархия и почему бездумное добавление правил убивает качество ответов.
🏛️ Трехуровневая иерархия правил в Cursor
Глобальные настройки пользователя. Содержат общие стили общения, PREFLIGHT CHECK и глобальные ограничения (например, запрет добавления непроверенных npm-пакетов).
Надпроектные правила. Защищают соседние папки от случайного взаимного проникновения (например, правило lite-never-touch-big-webgpu.mdc).
Основной репозиторий правил (122 файла). Версионируется в Git, разделяется всей командой, регулирует архитектуру 3D-движка, админки и деплой.
🔬 Анатомия файла правила (.mdc)
Файл правила состоит из YAML-заголовка (Frontmatter) и тела инструкции на Markdown. Cursor использует фронтматтер для принятия решения: когда загружать правило в память модели.
description: Только когда пользователь пишет «большая задача». Декомпозиция на одно окно.
globs: _MD/**/context/*_PLAN.md # Подключать если открыты эти файлы
alwaysApply: false # true = всегда в памяти; false = on-demand
---
# Заголовок правила
**Триггер:** фраза «большая задача» в сообщении.
1. До кода изучить существующие инструменты.
2. Не начинать вторую подзадачу в этом же окне.
Always-On Правила (Ядро)
Инжектируются в начало системного промпта в каждом запросе пользователя, независимо от того, какие файлы открыты.
- Плюсы: ИИ всегда помнит о строгих запретах (no hardcode, no data patch).
- Минусы: Каждое такое правило сжигает токены контекстного окна. 28 правил = ~18k токенов «налога» на каждое сообщение.
On-Demand Правила
Подключаются в контекст только тогда, когда модель открывает, читает или редактирует файлы, соответствующие маске globs.
- Плюсы: Нулевой расход токенов в обычных диалогах. Правило появляется строго в момент работы с целевой зоной.
- Минусы: Если агент правит файл без предварительного чтения, правило может не успеть подгрузиться.
Контекстное окно LLM ограничено и очищается при открытии нового окна. Чтобы знания не терялись между сессиями, проект использует структурированную базу знаний в каталоге _MD:
Файлы активных линий разработки (ADM10_CONTEXT.md, _PLAN.md). Хранят статус задач и текущую очередь.
Уроки, инциденты и мета-анализ: WHY_AGENTS_IGNORE_RULES, разборы экспертных аудитов и рекомендации.
Скриншоты реальных экранов (каноны интерфейса) и паттерны разметки для предотвращения расхождения дизайна.