Как выжать максимум из CoreCode
Как писать CLAUDE.md
CLAUDE.md — это описание проекта, которое Claude Code читает в начале каждой сессии. Если он написан хорошо, Claude перестаёт повторять ошибки; если он длинный и запутанный, он впустую расходует контекст на каждом ходу. Эта страница опирается на официальное руководство Anthropic и объясняет, как это отражается на счёте.
- CLAUDE.md — это контекст, а не принудительная конфигурация: Claude учитывает его, но не гарантирует выполнения каждого правила. Всё, что делать нельзя ни при каких условиях, блокируйте хуком.
- Личные правила кладите в
~/.claude/CLAUDE.md, правила проекта — в./CLAUDE.mdили./.claude/CLAUDE.md, а свои предпочтения для проекта — в./CLAUDE.local.md, добавленный в.gitignore. - Пишите конкретные, проверяемые правила, держите каждый файл короче 200 строк и структурируйте его заголовками и списками.
- Правила, которые относятся к части кодовой базы, выносите в
.claude/rules/с ограничением черезpaths; многошаговые процедуры оформляйте как skills. - Файл отправляется на каждом ходу; правка в середине сессии вступает в силу только после
/clear,/compactили перезапуска.
Что такое CLAUDE.md
Обычный Markdown-файл, в котором сказано, что Claude должен знать об этом проекте: как собирать и тестировать, соглашения по коду, структура, правила вида «всегда делай X». Claude Code читает его в начале каждой сессии как контекст.
Это не принудительная конфигурация. Чем конкретнее и короче правила, тем стабильнее Claude им следует; для того, чего нельзя допускать никогда, например правки защищённого каталога, используйте хук PreToolUse.
В Claude Code есть и авто-память: исправления, которые вы даёте, сохраняются в ~/.claude/projects/<project>/memory/. В CLAUDE.md лежат правила, которые пишете вы, в авто-памяти — то, чему учится Claude; оба источника загружаются в каждой сессии.
Где его размещать
| Область | Расположение | Для чего |
|---|---|---|
| Пользователь | ~/.claude/CLAUDE.md | Предпочтения для всех ваших проектов, например язык ответов или используемые инструменты |
| Проект | ./CLAUDE.md или ./.claude/CLAUDE.md | Правила команды: команды сборки, стандарты кода, архитектура. Добавьте файл в коммит |
| Локально | ./CLAUDE.local.md | Ваши личные предпочтения для этого проекта, например локальный URL для тестов. Добавьте в .gitignore |
При запуске Claude Code читает CLAUDE.md из рабочего каталога и из каждого каталога выше, склеивая их сверху вниз, так что файл, ближайший к месту запуска, читается последним. CLAUDE.md в подкаталоге загружается позже, когда Claude читает или правит файл в этом подкаталоге.
С чего начать
Выполните /init в проекте. Claude проанализирует кодовую базу и напишет CLAUDE.md с командами сборки, инструкциями по тестированию и найденными соглашениями; если файл уже есть, он предложит улучшения вместо перезаписи. Затем добавьте то, что Claude не смог узнать сам.
Что в него класть
Считайте его местом для всего, что вам иначе пришлось бы объяснять снова. Добавляйте строку, когда:
- Claude допускает одну и ту же ошибку второй раз;
- на код-ревью обнаруживается соглашение, которое Claude должен был знать;
- вы вводите то же замечание, что и в прошлой сессии;
- новому коллеге понадобился бы тот же контекст.
Ограничивайтесь фактами, нужными в каждой сессии. Многошаговые процедуры оформляйте как skills, которые загружаются по необходимости, а правила для одной части кодовой базы помещайте в .claude/rules.
Как писать правила, которые работают
Пишите правила, которые можно проверить, а не общие пожелания:
| Вместо | Пишите |
|---|---|
| Форматируй код как следует | Используй отступ в 2 пробела |
| Проверяй свои изменения | Перед коммитом запускай npm test |
| Поддерживай порядок в файлах | Обработчики API лежат в src/api/handlers/ |
- Коротко. Держите каждый CLAUDE.md короче 200 строк. Длинные файлы занимают больше контекста, и им следуют хуже.
- Структурированно. Группируйте связанные правила под заголовками, списком, а не плотными абзацами.
- Согласованно. Если два правила противоречат друг другу, Claude может выбрать любое. Удаляйте устаревшие записи; начиная с Claude Code v2.1.283 команда
/doctor prompt-auditнаходит устаревшие или противоречащие записи и ссылки на несуществующие файлы. - Заметки для людей — HTML-комментариями. Строка
<!-- note -->в CLAUDE.md удаляется до попадания в контекст, поэтому не тратит токены.
Короткий пример:
# Project
## Commands
- Install: pnpm install (not npm)
- Test: pnpm test, must pass before committing
- Run locally: pnpm dev, port 3000
## Conventions
- TypeScript strict mode, no any
- API handlers in src/api/handlers/, one route per file
- Schema changes only through prisma migrate
Импорт других файлов
Подключайте другие файлы через @path, например See @README and @docs/git-instructions.md. Относительные пути отсчитываются от CLAUDE.md, в котором они указаны, а импорты можно вкладывать до четырёх уровней. `@README` внутри обратных кавычек не импортируется.
Импорты помогают организовать файл, но не уменьшают его стоимость в контексте: импортированное содержимое тоже загружается каждый раз. Когда проект впервые импортирует файл вне своего каталога, Claude Code просит вас подтвердить это.
Разделение по областям через .claude/rules
В крупном проекте разбейте инструкции на тематические файлы в .claude/rules/, например testing.md или api-design.md. Правило без paths загружается при запуске, как CLAUDE.md; правило с paths загружается только тогда, когда Claude работает с подходящими файлами:
---
paths:
- "src/api/**/*.ts"
---
# API rules
- Validate every endpoint's input
- Return errors as ApiError
Раздел CLAUDE.md, выросший в многошаговую процедуру, можно превратить в skill, который загружается только при использовании; см. руководство по skills.
Если у вас уже есть AGENTS.md
Начиная с Claude Code v2.1.277, Claude читает AGENTS.md напрямую: без CLAUDE.md он читает AGENTS.md, а при наличии CLAUDE.md читает только его. Чтобы использовать один файл в разных инструментах для программирования, добавьте в CLAUDE.md строку @AGENTS.md.
Стоимость и кэширование
- Файл отправляется на каждом ходу. CLAUDE.md, авто-память и правила без
pathsуходят с каждым запросом. При попадании в кэш они стоят как чтение из кэша, но чем они длиннее, тем дороже обходится промах и повторная запись. Это ещё одна причина держать их короткими. - Правки в середине сессии ждут. Работающая сессия не видит изменённый CLAUDE.md до
/clear,/compactили перезапуска (см. руководство Anthropic по кэшированию в Claude Code). Зато правка не сбрасывает кэш сессии.
Другие способы сэкономить — в разделе Как тратить на Claude Code меньше.
Как убедиться, что файл загружен
- Выполните
/contextи посмотрите раздел Memory files. Файл, которого там нет, Claude не видит. /memoryпоказывает, открывает и редактирует каждый CLAUDE.md и включает или выключает авто-память.
FAQ
Какой длины должен быть CLAUDE.md?
Anthropic рекомендует не более 200 строк на файл. Правила для части кодовой базы переносите в .claude/rules/ с paths, а многошаговые процедуры — в skills.
Почему Claude не следует моему CLAUDE.md?
Обычно правила расплывчаты, файл длинный, правила противоречат друг другу или правка в середине сессии ещё не применилась. Проверьте через /context, что файл загружен, сделайте правила конкретными и проверяемыми, а для всего, что должно соблюдаться неукоснительно, используйте хук.
Почему моя правка CLAUDE.md не подействовала?
Работающая сессия не перечитывает файл. Выполните /clear, /compact или перезапустите Claude Code.
Можно ли использовать CLAUDE.md и AGENTS.md вместе?
Если CLAUDE.md есть, по умолчанию читается только он. Добавьте @AGENTS.md в свой CLAUDE.md, чтобы использовать один набор инструкций.