Настройка
CLAUDE.md — правила и память
Скопируй страницу и вставь в Claude или GPT — разберёт под твою задачу.
Представь толкового сотрудника с одной особенностью: каждое утро он приходит на работу с чистой памятью. Вчера вы три часа разбирали, как устроен проект, какой стек, что нельзя трогать, — сегодня он этого не помнит и снова работает на догадках. Claude Code ровно такой: каждая новая сессия стартует с нуля, про твой проект он ничего не знает. CLAUDE.md — это вводный инструктаж, который агент перечитывает каждый раз перед тем, как взяться за дело. Один раз записал правила проекта — и больше не объясняешь их заново.
Короткий ответ
CLAUDE.md — обычный markdown-файл в корне проекта, который Claude Code сам подгружает в контекст при каждом старте. Создаётся одной командой прямо в чате Claude Code:
/init
Она анализирует твой проект и генерит стартовый CLAUDE.md. Дальше правила дописываешь на ходу — набираешь символ #, а за ним правило, и агент сам добавит его в файл:
# всегда запускай тесты перед коммитом
Всё. Файл лежит в корне проекта, агент читает его каждую сессию, ты перестаёшь повторяться.
Что понадобится
- Установленный и работающий Claude Code (команда
claudeдоступна в терминале). - Проект — обычная папка с кодом, из которой ты запускаешь
claude. CLAUDE.md ляжет в её корень. - Пять минут. Стартовый файл генерит
/init, дальше он растёт сам по мере работы.
Что такое CLAUDE.md и зачем
CLAUDE.md — это текстовый файл с инструкциями и контекстом про проект, написанными человеческим языком. Никакой магии и хитрого синтаксиса: просто структурированные заметки, которые агент гарантированно увидит. Claude Code читает его при запуске и держит как постоянную память правил всё время, пока работает внутри этого проекта.
Что обычно кладут внутрь: конвенции проекта, стек и технологии, команды сборки и тестов, стиль кода и коммитов, важные факты и границы — что можно, а что трогать нельзя. Всё то, что иначе пришлось бы объяснять агенту каждый раз с нуля.
Без этого файла каждая сессия начинается с угадывания. Агент не знает, что бэкенд на Python, что тесты лежат вот тут, что коммиты у тебя по-русски, а вон ту папку открывать не надо. Он начнёт догадываться — и часть догадок будет неправильной. Хуже того, одну и ту же ошибку он повторит и завтра, и послезавтра, потому что вчерашнюю поправку не помнит. CLAUDE.md убирает этот цикл: записал правило один раз — работает во всех сессиях.
Ключевая мысль: CLAUDE.md — это не конфиг и не код, а инструктаж для агента. Всё, что ты устал повторять из сессии в сессию, выносится сюда один раз и перестаёт быть твоей заботой.
Как создать — команда /init
Не нужно писать файл с нуля вручную. В Claude Code есть команда, которая делает стартовую версию за тебя. Открой проект (запусти claude в его папке) и набери прямо в чате:
/init
Агент пройдётся по кодбазе — посмотрит структуру, ключевые файлы, какой стек, какие команды используются, — и сгенерит стартовый CLAUDE.md в корне проекта. Это первое, что стоит сделать в новом репозитории: получаешь болванку, в которой уже разложена структура и основные конвенции, а не пустой лист.
Дальше файл — твой. Открой его, прочитай, поправь под себя: агент угадывает хорошо, но не идеально. Что-то он не увидел, что-то важное для тебя не выделил — допиши руками. /init даёт скелет, наполнение остаётся за тобой.
Что писать внутрь
Структура свободная, но обычно в CLAUDE.md держат несколько типовых блоков:
- Краткое описание проекта. Одна-две строки: что это вообще за штука и для чего.
- Стек и технологии. Языки, фреймворки, база данных, менеджер пакетов.
- Команды. Чем собирать, чем тестировать, чем запускать. Самое ценное — агент перестаёт угадывать, как гонять твои тесты.
- Стиль и конвенции. Язык комментариев и коммитов, правила именования, формат кода.
- Важные правила «всегда / никогда». Твёрдые границы, которые агент не должен переступать.
Блок правил — сердце файла. Формулируй их коротко и как чёткие черты, а не пожелания. Пример:
## Правила
- Всегда запускай тесты перед коммитом
- Комментарии и коммиты на русском
- В main напрямую не писать — только через PR
- Не трогай папку legacy без явного разрешения
Каждая строка — одно понятное правило, которое агент может применить без интерпретации. «Пиши хороший код» он проигнорирует, потому что не поймёт, что от него хотят. «Функции короче 40 строк» — выполнит.
Совет: держи файл коротким и конкретным. CLAUDE.md грузится в контекст каждый запуск, и чем он длиннее, тем дороже каждая сессия и тем хуже фокус — важные правила тонут среди второстепенных. Лей сюда только то, что реально влияет на работу. Хороший тест перед добавлением строки: «это правило сэкономит мне повторное объяснение в будущем?» Если нет — ему здесь не место.
Как пополнять на ходу
Не пытайся написать идеальный CLAUDE.md за один присест — не выйдет, да и не нужно. Файл растёт по факту работы, и для этого есть удобный способ не отвлекаться на редактирование.
Прямо в сессии набери символ #, а за ним — правило обычными словами:
# всегда запускай npm test перед коммитом
Claude допишет это правило строкой в CLAUDE.md, не прерывая текущую работу. Поймал агента на повторной ошибке, в очередной раз поправил одно и то же — вместо того чтобы злиться, набери # и зафиксируй поправку правилом. Так файл наполняется органично: в нём ровно те правила, которые реально понадобились.
Когда хочешь посмотреть или отредактировать память руками — есть отдельная команда:
/memory
Она открывает файлы памяти на редактирование и показывает, что сейчас загружено в контекст. Удобно, чтобы навести порядок: перечитать правила, выкинуть устаревшее, поправить формулировки.
Частые ошибки
| Симптом | Причина | Что сделать |
|---|---|---|
| Агент игнорит правила | CLAUDE.md раздут, важное тонет среди второстепенного | Сократи до сути — оставь только то, что реально влияет на работу |
| Агент как будто не видит CLAUDE.md | Файл лежит не в корне проекта | Положи его в корень папки, из которой запускаешь claude |
| Правила есть, а агент их «забыл» | Добавил в старой сессии без перезагрузки | Правила из # применяются со следующей сессии — перезапусти Claude Code |
| CLAUDE.md огромный, жрёт контекст | Сложил туда всё подряд «на всякий случай» | Оставь только то, что влияет на работу; одноразовое и очевидное убери |
FAQ
Чем CLAUDE.md отличается от обычного промпта?
Промпт — разовый: сказал в чате, агент учёл здесь и сейчас, в новой сессии этого уже нет. CLAUDE.md — постоянный: он автоматически подгружается в контекст в каждой сессии, ничего повторять не надо. Промпт — для конкретной задачи, CLAUDE.md — для правил, которые верны всегда.
Где он лежит?
Проектный CLAUDE.md — в корне проекта, рядом с кодом. Есть и глобальный, на уровне пользователя — ~/.claude/CLAUDE.md: он применяется ко всем твоим проектам сразу. В глобальный идёт то, что верно везде (как ты любишь общаться, общие запреты), в проектный — всё специфичное для конкретного репозитория. Проектный дополняет глобальный, а в спорных местах перебивает его.
Надо ли править файл вручную?
Как удобнее. Можно пополнять на ходу через #, не отрываясь от работы, а можно открыть файл в редакторе (или через /memory) и переписать руками — почистить, переформулировать, выкинуть устаревшее. Оба пути рабочие, чаще всего используют оба: # для быстрых добавлений, ручная правка для гигиены.
А если я работаю в Codex, а не в Claude Code?
Тогда файл-карта называется AGENTS.md, а не CLAUDE.md. Принцип ровно тот же — вводный инструктаж в корне проекта, — меняется только имя файла.
Что ты увидишь
Быстрый способ дописать правило в память проекта — строка через # прямо в чате. Агент подтверждает, куда записал:
> # всегда запускай тесты через bun, не npm
✔ Добавлено в CLAUDE.md (память проекта)
Итог
Claude Code каждую сессию забывает твой проект. CLAUDE.md — файл в корне проекта, который агент подгружает в контекст каждый раз и держит как постоянную память правил: стек, команды, стиль, границы. Создаёшь через /init, пополняешь на ходу через #, чистишь через /memory, общее для всех проектов кладёшь в глобальный ~/.claude/CLAUDE.md. Держи его коротким и конкретным — каждая лишняя строка стоит тебе контекста.
Кстати про контекст: CLAUDE.md — это первое, что попадает в него в каждой сессии, и поэтому каждая строка в файле расходуется на любой задаче. Что такое контекст, как он тратится и почему за ним стоит следить — про это в следующей части.