Правила Claude Code: как написать CLAUDE.md и управлять контекстом агентного кодирования

Правила Claude Code: как написать CLAUDE.md и управлять контекстом агентного кодирования

Правила Claude Code находятся в файлах CLAUDE.md — файлах Markdown, которые вы размещаете в репозитории проекта, домашнем каталоге или конфигурации организации. Claude читает их в начале каждого сеанса. В сочетании с правилами с привязкой к пути в .claude/rules/, файлом settings.json для разрешений и автоматической памятью для изученных предпочтений, система правил даёт вам точный и постоянный контроль над поведением агента кодирования в любой задаче.

Что такое правила Claude Code?

Каждый сеанс Claude Code начинается с пустого окна контекста. Правила — это способ предварительно загрузить контекст, необходимый Claude, чтобы он не начинал с нуля — и не повторял одни и те же ошибки.

Две взаимодополняющие системы отвечают за это:

Файлы CLAUDE.md — это файлы Markdown, которые вы пишете, а Claude читает их в начале каждого сеанса. Используйте их для инструкций, которые должны применяться всегда: команды сборки, соглашения по коду, архитектурные решения, жёсткие ограничения.

Авто-память — это заметки, которые Claude пишет сам на основе исправлений и предпочтений, которые вы даёте ему во время сеансов. Они накапливаются автоматически; Claude решает, что стоит сохранить, и читает эти заметки в будущих сеансах.

Обе системы загружаются в контекст в начале сеанса, но они не являются обязательной конфигурацией. Это инструкции, которым Claude следует как контексту. Для жёсткого принуждения — блокировки конкретной команды независимо от того, что решит сделать Claude — вам нужен хук PreToolUse или правило deny в settings.json. Это различие важно для автономных запусков, где вы хотите предсказуемого поведения, а не вероятностного соблюдения.

Расположение и область видимости файлов CLAUDE.md

Claude Code загружает файлы CLAUDE.md из нескольких мест, каждое из которых охватывает разную область. Они загружаются в порядке от самой широкой к самой конкретной:

Расположение Область видимости Для чего используется
~/.claude/CLAUDE.md Все проекты на вашем компьютере Личные предпочтения, глобальные привычки рабочего процесса
./CLAUDE.md (корень репозитория) Все сеансы в этом проекте Соглашения проекта, команды сборки, общие правила команды
./CLAUDE.local.md (корень репозитория) Только ваши локальные сеансы Индивидуальные предпочтения разработчика; добавьте в .gitignore
./src/CLAUDE.md (поддиректория) Сеансы, затрагивающие файлы в этой директории Правила, специфичные для модуля, которые не применяются ко всему проекту

Все найденные файлы объединяются в контекст — они не переопределяют друг друга. В рамках этого объединения содержимое от корня файловой системы до вашей рабочей директории упорядочивается от самого общего к самому конкретному, так что инструкция проекта появляется после инструкции пользователя. Это даёт естественную специфичность: правило проекта побеждает там, где оно конфликтует с правилом пользователя.

Вы можете импортировать дополнительные файлы с помощью ссылок @path внутри любого CLAUDE.md:

@./docs/architecture.md
@./CONTRIBUTING.md

Импортированные файлы загружаются в начале сеанса, так же как и сам CLAUDE.md. Импорты полезны для органиации, но не экономят конекст — содержание импорта учитывается в вашем токенном бюдете.

Для команд: фиксируйте проектный CLAUDE.md в системе контрла версий. Это гарантирует, что каждый сеанс Claude разработчика — и любые запуски агентов на основе CI — начинаются с одного и того же общего контекста. Относитесь к нему как к .eslintrc или pyproject.toml.

Что включить в CLAUDE.md

Самое полезное содержание — это то, что иначе вам пришлось бы объяснять заново каждый сеанс, или то, что новому члену команды нужно было бы знать в первый час.

Хорошие кандидаты:

  • Команды сборки и тестирования, которые отличаются от очевидных умолчаний (./scripts/test.sh --ci, а не просто npm test)
  • Соглашения по коду, которые не покрываются линтером (“мы используем именованные экспорты везде; никаких экспортов по умолчанию в общих утилитах”)
  • Архитектурные решения, которые не очевидны из чтения кода (“директория lib/ является общей для сервисов — не добавляйте туда логику, специфичную для сервиса”)
  • Известные “подводные камни” ("файл config.ts генерируется на этапе сборки; не едактируйте его вручную)
  • Ограничения рабочего процесса (“всегда создавайте ветку перед внесением изменений; отправляйте изменения на удалённый репозиторий перед открытем PR”)

Что лучше оставить за рамками:

  • Списки директорий и деерья файлов — Claude читает их из репозитория
  • Списки зависимостей — доступны из package.json, pyproject.toml и аналогичных файлов
  • Прозаические описания того, что делает существующий код — Claude читает исходный код напрямую
  • Последние изменения — Claude использует git log и git diff, когда ему нужна истрия

Держите CLAUDE.md сосредоточенным на том, что нельзя вывести из чтения кодовой базы. Файлы длинее 200 строк потребляют больше контекста и снижают надёжность соблюдения. Команда /doctor в Claude Code анализирует закоммиченный CLAUDE.md и предлагает удалить содержание, которое можно вывести из кда — полезный спосб урезать раздутый файл.

Как писать эффективные правила

Конкретность имеет значение. Сравните:

# Размыто — менее последовательно
Следуйте стандартам кодирования проекта.

# Конкретно — более последовательно
- Используйте pnpm, а не npm или yarn
- Запускайте pnpm test перед каждым коммитом; не коммитьте, если тесты не проходят
- Экспортируйте все общие типы из src/types/index.ts — не определяйте типы встроенно в компонентах
- Директория data/ доступна только для чтения в тестах; используйте тестовые фикстуры из tests/fixtures/

Каждое правило должно быть выполнимым без дополнительных объснений. Если вам нужно объснить кому-то логику правила, добавьте её прямо в правло — это поможет Claude правильно применять правло в граничных случах.

Правила с областью видимости по пути: .claude/rules/

Директория .claude/rules/ позволяет прикреплять правила к конкретным шаблонам файлов, не загружая их в каждый сеанс. Claude обнаруживает файлы в .claude/rules/ и загружает их, когда вы работаете с соответствующими файлами.

Типичная структура для монорепозитория TypeScript:

.claude/rules/
  api.md             # правила для src/api/** — валидация запросов, форматы ошибок
  components.md      # правила для src/components/** — типы пропсов, стилистические соглашения
  tests.md            # правила для tests/** — шаблоны фикстур, настройка моков
  database.md        # правила для migrations/ и models/ — именование миграций, шаблоны запросов

Каждый файл правил использует YAML-шапку с полем paths, чтобы контролировать, когда он загружается:

---
paths:
  - "src/api/**/*. ts"
  - "src/api/**/*.test.ts"
---

# Правила разработки API

- Все обработчики маршрутов должны валидировать входные данные с помощью zod перед любой бизнес-логикой
- Возвращайте ошибки в виде `{ error: string; code: string }` — никогда не используйте простые строки
- Ограничение частоты запросов применяется на шлюзе; не добавляйте его внутри обработчиков

Правила без поля paths загружаются безусловно в начале сеанса, так же как и содержание в проектном CLAUDE.md. Правила с paths загружаются только тогда, когда Claude открывает файлы, соответствующие этим шаблонам.

Это сохраняет корневой CLAUDE.md проекта кратким и гарантирует, что подробные соглашения для одного слоя стека не заполняют конекст во время сеансов, сосредоточенных на другой области.

settings.json против CLAUDE.md

CLAUDE.md контролирует то, что Claude знает и намерен делать. settings.json контролирует то, что Claude фактически разрешено делать.

CLAUDE.md settings.json
Назначение Инструкции и контекст Разрешения и конфигурация
Обязательно? Нет — Claude действует на основе этого как указание Да — правила deny блокируют вызовы инструментов безусловно
Формат Свободный Markdown Струкурированный JSON
Расположение ./CLAUDE.md, ~/.claude/CLAUDE.md .claude/settings.json, ~/.claude/settings.json

Проектный settings.json в .claude/settings.json:

{
  "permissions": {
    "allow": [
      "Bash(pnpm test)",
      "Bash(pnpm build)",
      "Bash(git status)",
      "Bash(git diff *)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force*)",
      "Bash(git reset --hard*)"
    ]
  }
}

Список allow предварительно одобряет конкретные команды, чтобы Claude мог выполнять их без запроса. Это ускоряет интерактивные сеансы для операций, которым вы доверяете. Список deny блокирует команды безусловно — независимо от того, что решит сделать Claude, независимо от того, что говорит CLAUDE.md. Используйте deny для необратимых операций с продкционными даными или ифраструктурой.

Пользовательские настройки в ~/.claude/settings.json применяются ко всем проектм. Проектные настройки в .claude/settings.json применяются только в этом репозитории. Проектные настройки имею приоритет над пользовательскими там, где они перекрываются.

Если вашей команде также нужна справка по упаковке инструментов MCP, а не только правла для их упраления, сопоставьте эти ограничители с руководством по плагинам Claude Code. В нём объсняется, где плгин MCP вписывается относительно правил, хооков и отдельной конфигурации.

Авто-память: заметки Claude

Авто-память — это аналог CLAUDE.md. В то время как CLAUDE.md — это инструкции, которые пишите вы, авто-память — это заметки, которые Claude пишет сам на основе того, что он узнает во время ваших сеансов.

Когда вы исправляете Claude во время сеанса — “в этом проекте мы используем Viest, а не Jest” — он может сохранить это как заметку в ~/.claude/projects/<repo>/memory/. На следующем сеансе Claude читает эту заметку и применяет исправление без повторного объснения.

Директория памяти содержит:

~/.claude/projects/<repo>/memory/
  MEMORY.md          # индекс, который Claude испльзует для поиса других файлов; первые 200 строк загружаются в каждом сеансе
  debugging.md       # шаблоны, обнаруженные Claude при решении проблем в этом репозитории
  conventions.md    # соглашения, которые Claude у знал из ваших исправлений

Это машино-локально и привязано к репозиторию. Авто-память дополняет CLAUDE.md, а не заменяет его: CLAUDE.md — для общих правил проека, а авто-память — дляличных шаблонов, которые Claude узнл из работы с вами.

Авто-память — это читаемый Markdown, который вы можете редактировать или удалять в любое время. Запустите /memory внутри сеанса, чтобы просматривать и редактировать файлы. Если что-то устарело или неправильно, удалите это — Claude перестанет применть устаревшее правило.

Лучшие практики для агентного кодирования

Запуск Claude Code автономно — через claude -p, SDK агента или конвейеры CI — повышает ставки для настройки правил. Агент может выполнить десятки вызовов инструментов без пауз, и нет интерактивного обмена, чтобы улвить недоразумения в середине работы.

Пишите явные ограничения, а не просто предпочтения. Интерактивный Claude можт попросить вас уточнить.Автономный запуск работает с тем, что находит в контексте. Если “никогда не изменяйте миграционные файлы без предварительного создания снимка базы данных” важно, это должно быть в CLAUDE.md. Не предполагайте, что Claude выведет ограничение из структуры кодовой базы.

Используйте правила deny для всего, что трудно отменить. Предваительное одобрение Bash(pnpm build) ускоряет интерактивные сеансы и маорискованно. Но для автономных запусков список deny — ваша страховочная сетка для операций, которые затрагивают продкционную инфраструктуру, навсегда сохраняются в истории git или удаляют данные.

Держите проектный CLAUDE.md под версионым контролем. Зафиксированный CLAUDE.md в корне репозитория применяется единообразно к интерактивным сеансам, запускам CI и локальным агентам любого члена команды. Это правильное место для правил, которые определяют, что означет “правильно” для вашей кодовой базы.

Используйте .claude/rules/ для доменно-специфичного контента. Если ваш проект имеет различные слои — фронтенд-компоненты, бэкенд API, схема базы данных, скрипты инфраструктуры — поместите правила для каждого слоя в .claude/rules/ с привязкой к пути. Один файл CLAUDE.md на 400 строк со всем содержимым сложне для навигации Claude и стоит больше контекста на сеанс.

Перемещайте справочные маериалы в навыки. Навыки (.claude/skils/) загружаются по требованию, а не в начале сеанса. Длинная документация API, многошаговые процедуры ра зверывания и учебники по устранению неполаок долны быть в навыках, которые вы вызываете с помощью /deploy или /debug — а не в CLAUDE.md, где они потребляют конекст, да же когда нерелевантны.

Периодически пересматривайте авто-память. Авто-память накапливается со временем. Команды сборки меняются, сошшения рефакторируюся, шаблоны тестов сдвигаются. Устаревшая заметка памяи, котоая говорит “испльзуйте клиент v1 API”, когда вы перешли на v2, вызовет незаметные ошики в автономных запусках. Аудируйте ~/.claude/projects/<repo>/memory/, когда вносите существенне изменения в структуру проекта.

Использование открытых моделей с вашей настройкой правил

Контекст CLAUDE.md и .claude/rules/, которые вы создали, работают одинаково независимо от того, какая модель выполняет вывод. Когда ваши правила написаны, переключение бэкендов моделей сохраняет всё это — и открытые модели через LLM API Novita AI являются практичным вариантом для высокообъёмной агентной работы.

Конфигурация — одна переменная окружения:

export ANTHROPIC_BASE_URL="https://api.novita.ai/anthropic"
export ANTHROPIC_AUTH_TOKEN="<ваш-ключ-api-novita>"
export ANTHROPIC_MODEL="qwen/qwen3-coder-480b-a35b-instruct"

С ANTHROPIC_BASE_URL, указыающим на Novita AI, Claude Code отправляет все запросы на вывод на совместимую с Anthropic конечную точку Novita вместо api.anthropic.com. Ваши CLAUDE.md, правила с привязкой к пути и settings.json применяются точно так же, как и раньше — уровень правил находится выше выбора модели.

Novita AI хостит модели с открытыми весами, ориентированные на кодирование, включая Qwen3-Coder, GLM-4.7, MiniMax M2.5 и DeepSeek V4. Эти модели оптимизированы для многошагового использования инструментов и вызова функций, что хорошо соответствует шаблонам вызова инструментов, которые Claude Code использует внутри для редактирования файлов, команд оболочки и навигации по репозиторию.

Для команд, запускающих агентные задачи в масштабе — конвейеры проверки кода, автоматический рефакторинг в больших репозиториях, генерация тестов — модели с открытыми весами на Novita обычно стоят значительно меньше за миллион токенов, чем проприетарные альтернативы, при этом всё так же эффективно читают и применяют ваши проектные правила.

Если вы запускаете агентов против производственной кодовой базы и хотите дополнительный уровень безопасности помимо правил deny, рассмотрите возможность объединения LLM API Novita с Agent Sandbox от Novita. Песочница предоставляет агенту полноценную среду Linux для файловых операций и выполнения команд, изолированную от вашей хост-системы. Ваш контекст CLAUDE.md путешествует с задачей; риск выполнения остаётся внутри контейнера.

Часто задаваемые вопросы

Что такое CLAUDE.md в Claude Code?

CLAUDE.md — это файл Markdown, который даёт Claude Code постоянные инструкции в разных сеансах. Он загружается в начале сеанса, так что Claude не нужно каждый раз заново объяснять соглашения вашего проекта. У вас могут быть файлы CLAUDE.md на нескольких уровнях: пользовательский уровень (~/.claude/CLAUDE.md) для личных предпочтений, которые действуют везде; проектный уровень (корень репозитория) для общих правил команды, зафиксированных в системе контроля версий; и уровень поддиректории для правил, специфичных для модуля.

Что следует включать в файлы правил claude?

Пишите то, что иначе вам пришлось бы объяснять заново каждый сеанс: команды сборки и тестирования, соглашения по коду, отличающиеся от настроек фреймворка по умолчанию, архитектурные ограничения и известные «подводные камни» кодовой базы. Оставьте за рамками то, что Claude может вывести из самой кодовой базы — файловые деревья, списки зависимостей и описания того, что делает существующий код. Держите файлы объёмом до 200 строк для стабильного соблюдения правил.

В чём разница между CLAUDE.md и settings.json в Claude Code?

CLAUDE.md — это инструкции, которым Claude следует как указаниям. settings.json — это конфигурация, которую Claude Code применяет на системном уровне. Правило в CLAUDE.md формирует то, что Claude намерен сделать; запись deny в settings.json безусловно блокирует вызов инструмента. Для всего, что ни в коем случае не должно произойти, независимо от решения Claude — необратимые удаления, принудительные пуши, операции в производственной среде — используйте settings.json, а не CLAUDE.md.

Что такое директория .claude/rules/?

.claude/rules/ содержит файлы правил с привязкой к пути, которые загружаются только тогда, когда Claude работает с файлами, соответствующими области действия правила. Это позволяет писать подробные, доменно-специфичные правила без их загрузки в каждый сеанс. Правила — это файлы Markdown с опциональной YAML-шапкой, содержащей поле paths с шаблонами glob. Правила без шапки paths загружаются безусловно в начале сеанса, как дополнительное содержимое CLAUDE.md.

Работает ли CLAUDE.md в CI и автоматизированных задачах claude code?

Да. Любой вызов claude -p, вызов SDK агента или конвейер CI, запущенный в каталоге репозитория, загружает проектный CLAUDE.md. Это делает CLAUDE.md эффективным для обеспечения единообразного поведения как в интерактивном, так и в автоматизированном контексте. Фиксация его в системе контроля версий гарантирует, что каждый запуск — локальный и CI — начинается с одного и того же общего контекста.

Как работает контекст claude code и как им управлять?

Контекст — это токенный бюджет текущего сеанса. Файлы CLAUDE.md, импортируемые ссылки, автопамять и истоия разовора — все вносит в нео. Управляйте им, держа CLAUDE.md кратким, используя .claude/rules/ для загруки доменного контента только тогда, когда он актуален, и используя /compact для суммирования длинных сеансов без потери непрерывности. После /compact Claude повторно читает проектный CLAUDE.md с диска и автоматически внедряет его обратно в сеанс.

Как использовать лучшие практики clode code для агентного кодирования в команде?

Зафиксируйте проектный CLAUDE.md в вашем репозитории, чтобы все члены команды и агенты CI использовали одни и те же правила. Используйте .claude/rules/ с привязкой к пути для доменно-специфичного контента. Добавьте правила deny в .claude/settings.json для операций, которые никогда не должны выполняться в автоматизированном контексте. Держите авто-память вне CI — она привязана к машине и разработчику; зафиксированный CLAUDE.md является источником истины для общего поведения.

Novita AI — это облачная платформа ИИ, которая предлагает разработчикам простой способ развёртывания моделей ИИ с помощью нашего простого API, а также предоставляет доступные и надёжные GPU-облака для создания и масштабирования.

Рекомендуемые статьи


Источники проверены 21 июля 2026 г.: Документация по памяти Claude Code, Обзор возможностей Claude Code, LLM API Novita AI