К основному содержимому

Дайте Claude контекст: CLAUDE.md и лучшие подсказки

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


Часть 1 — CLAUDE.md: память вашего проекта

Что это такое

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

Вам не нужно ссылаться на него в подсказках или прикреплять его вручную. Если файл существует, Claude уже его прочитал.

Где он находится

Claude ищет в нескольких местах и объединяет найденное, от общего к конкретному:

Расположение

Область действия

Подходит для

~/.claude/CLAUDE.md

Каждый проект на вашей машине

Личные предпочтения (например, "я использую pnpm, а не npm" или "всегда предлагайте тесты").

<repo-root>/CLAUDE.md

Этот проект

Архитектура, соглашения и команды. Это главный файл.

<subdir>/CLAUDE.md

Этот подкаталог (загружается по требованию, когда Claude читает файлы в этом каталоге, а не при запуске сессии)

Правила, специфичные для модуля (например, разные соглашения в frontend/ и api/).

Большинству команд нужен только файл в корне проекта. Зафиксируйте его в git, чтобы вся команда получила выгоду.

Как он загружается (и что это стоит)

Файлы в вашем рабочем каталоге и выше читаются при запуске сессии и доставляются Claude как пользовательское сообщение сразу после системного приглашения (не встроены в само системное приглашение). Файлы CLAUDE.md подкаталогов загружаются по требованию позже, когда Claude читает файлы в этом подкаталоге. Нет суммирования или усечения, и он не перечитывается с диска при каждом ходе. Если вы отредактируете файл во время сессии, изменение будет применено при следующем запуске /compact или открытии через /memory; в противном случае оно вступит в силу в вашей следующей сессии.

Для клиентов Claude for Enterprise картина затрат лучше, чем может показаться из фразы «загружается при каждом запросе». Claude Code применяет кэширование подсказок Anthropic к CLAUDE.md. Первый запрос в сессии платит полную цену входных токенов для файла; последующие запросы в течение примерно пяти минут друг от друга попадают в кэш и выставляются по гораздо более низкой ставке чтения кэша. Кэш адресуется по содержимому, поэтому любое изменение CLAUDE.md его инвалидирует, и следующий запрос снова платит полную цену.

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

Начало работы: запустите /init

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

Что на самом деле в нём должно быть

Стремитесь к файлу, который короткий и информативный — примерно под 200 строк. Каждая строка загружается в контекст при каждом запросе, поэтому каждая должна быть стоит своей цены.

Стоит включить:

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

  • Соглашения — именование, обработка ошибок, расположение файлов и решения «мы используем X, а не Y».

  • Архитектура в трёх предложениях — какие основные части и как они взаимодействуют.

  • Жёсткие ограничения — например, «никогда не пишите в производственную базу данных из тестов», «все маршруты API нуждаются в middleware аутентификации» или «не редактируйте generated/».

  • Известные подводные камни — проблемы, на которые спотыкается каждый новый инженер.

Не стоит включать:

  • Полную документацию API (Claude может читать код напрямую).

  • Журналы изменений или историю.

  • Всё, что уже очевидно из дерева файлов.

  • Стремительные правила, которые команда на самом деле не соблюдает.

Как часто его обновлять

Относитесь к нему как к живому документу адаптации, а не как к спецификации.

  • После /init — проверьте один раз, чтобы очистить созданный черновик.

  • Когда Claude что-то неправильно понимает дважды — это сигнал того, что правило отсутствует. Добавьте одну строку, чтобы это решить.

  • Когда соглашения меняются — например, новый фреймворк, тестовый раннер или набор правил линтера.

  • Ежеквартальный просмотр — удалите всё устаревшее, так как устаревшие инструкции хуже, чем никакие.

Вы также можете добавить его во время сессии: откройте /memory, чтобы отредактировать файл напрямую, или просто попросите Claude «запомнить» правило, и он добавит его в правильный CLAUDE.md для вас.


Часть 2 — Привычки в подсказках, которые окупаются в Claude Code

Это не общие советы по инженерии подсказок; это привычки, которые имеют наибольшее значение специально, когда Claude читает и редактирует реальную кодовую базу.

1. Укажите результат, а не шаги

Claude может исследовать кодовую базу самостоятельно. Скажите ему что вы хотите и почему, и позвольте ему разобраться, где.

❌ «Откройте userService.ts, найдите функцию validate, добавьте проверку на null на строке 42.»

✅ «Пользователи без электронной почты вызывают сбой на этапе валидации. Сделайте так, чтобы это обрабатывалось корректно, и добавьте тест.»

2. Дайте ему ошибку дословно

Вставьте полный трассировочный стек вместо его резюме. Точное имя файла, номер строки и сообщение — это то, что позволяет Claude быстро найти правильное место.

3. Определите масштаб больших задач с помощью режима плана сначала

Для всего, что касается более чем пары файлов, нажмите Shift+Tab дважды, чтобы перейти в режим плана (первое нажатие входит в acceptEdits) и спросите:

«Спланируйте, как вы добавили бы ограничение скорости к публичному API. Не меняйте ничего пока.»

Проверьте план, отрегулируйте его в разговоре, затем переключите режимы и скажите «выполни шаг 1.» Это ловит неправильные понимания до того, как они превратятся в diff из двенадцати файлов.

4. Указывайте на файлы, когда вы их уже знаете

Claude может самостоятельно искать в кодовой базе, но если вы уже знаете соответствующий файл, скажите об этом — это быстрее и использует меньше токенов. Используйте @ для ссылки на пути, например @src/auth/login.ts.

5. Скажите, как выглядит «готово»

Примеры включают «тесты проходят», «соответствует стилю других обработчиков» или «нет новых зависимостей.» Указание критериев приёмки заранее более эффективно, чем несколько раундов пересмотра.

6. Одна задача на разговор; /clear между ними

Длинные сессии накапливают шум. Когда вы переходите от «исправить ошибку входа» к «рефакторить модуль выставления счётов», запустите /clear и начните заново. Ваш CLAUDE.md переносит долговечный контекст вперёд, поэтому история чата не должна.

7. Исправляйте это как коллегу, а не поисковую систему

Если первый ответ неправильный, вам не нужно переформулировать весь запрос. Просто скажите, что не так — например, «Это меняет публичный API; сохраните сигнатуру той же.» Claude сохранит всё остальное и отрегулирует только эту точку.


Краткая справка

Хотите…

Сделайте это

Создать начальный CLAUDE.md

/init

Посмотреть, какую память использует Claude

/memory

Добавить правило во время сессии

Откройте /memory, или попросите Claude «запомнить» правило

Начать заново, но сохранить память проекта

/clear

Ссылка на конкретный файл в подсказке

@path/to/file

Нашли ответ на свой вопрос?