✻ Claude Code по-русски
🎧 Аудиокурс

#Память проекта в CLAUDE.md

Начальный уровень · Урок 5 из 5 · около 20 минут · Нужно: Первое изменение: от запроса до коммита · Сверено с Claude Code v2.1.285 (stable) 05.10.2026

#Цель

К концу урока вы сможете создать CLAUDE.md проекта и показать, что новая сессия ему следует.

#Что понадобится

#Идея

Каждая сессия начинается со свежего окна контекста, так что вам приходится снова и снова объяснять привычки проекта. Это решает файл CLAUDE.md в корне проекта: Claude Code читает его в начале каждой сессии (How Claude remembers your project).

Сессия читает CLAUDE.md при старте, поэтому после изменения файла начните новую сессию, чтобы наверняка использовать изменение.

#Разбор примера

  1. Запустите claude в своей копии для практики и выполните:
/init

Claude прочитает код и напишет CLAUDE.md с найденными командами и соглашениями. Одобрите файл, если он спросит. Во втором терминале прочитайте его командой cat CLAUDE.md. 2. Откройте CLAUDE.md в редакторе или наберите /memory и выберите Project instructions — ./CLAUDE.md в этой папке. Не выбирайте пользовательский файл в ~/.claude/: он действует на все ваши проекты (View and edit with /memory). Терминальный редактор вроде Vim занимает терминал, пока вы не сохраните файл и не выйдете.

В копии для практики /init может описать и собственные файлы курса: checks/, capstone/ и .github/. Удалите то, что сказано о них и об npm run check, включая любое правило о том, чтобы не работать в main: оно относится к репозиторию шаблона, а не к вашей копии. Остальные команды оставьте, включая npm test, наличие которого проверяет итоговый проект.

Затем добавьте правило, которое проявляется в файлах, чтобы было видно, следует ли ему сессия. Поместите его под заголовок ## Conventions, а если /init его не написал, добавьте этот заголовок в конец файла:

- Every new source file starts with the line `// Part of linkcheck.`

Во втором терминале сохраните точную строку правила для проверки:

echo '// Part of linkcheck.' > .practice/b-5-rule.txt

Windows: '// Part of linkcheck.' | Set-Content .practice/b-5-rule.txt 3. Сохраните CLAUDE.md и закоммитьте его во втором терминале:

git add CLAUDE.md
git commit -m "Add project instructions for Claude Code"
  1. Наберите /exit, затем начните новую сессию командой claude, чтобы она загрузила CLAUDE.md с вашим правилом. Наберите /context all и найдите CLAUDE.md в разделе Memory files: сессия его загрузила. Обычный /context может свернуть этот список, а all его разворачивает (Commands).
  2. Попросите изменение, создающее новый файл:
Add src/stats.js with a function countLinks(markdown) that returns how many links findLinks finds. Add a test in test/stats.test.js, run the tests and commit.

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

head -1 src/stats.js
git rev-parse HEAD > .practice/b-5-commit.txt
git status

Windows: вместо head -1 используйте Get-Content src/stats.js -TotalCount 1.

Первая строка должна быть // Part of linkcheck., хотя в этой сессии вы об этом не просили. git status должен показать nothing to commit, working tree clean. Если он показывает src/stats.js, Claude ещё не закоммитил: попросите его закоммитить и снова сохраните коммит.

#Ваша очередь

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

  1. Откройте CLAUDE.md и замените правило из примера новым:
- Every new source file starts with the line `// linkcheck source.`
  1. Во втором терминале сохраните точную строку нового правила: echo '// linkcheck source.' > .practice/b-5-rule.txt (Windows: '// linkcheck source.' | Set-Content .practice/b-5-rule.txt).
  2. Закоммитьте там CLAUDE.md.
  3. Выйдите, начните новую сессию и проверьте, что /context all перечисляет CLAUDE.md в разделе Memory files.
  4. Попросите новый файл с тестом и дайте Claude закоммитить:
Add src/external.js with a function countExternal(markdown) that returns how many of the links findLinks finds are external, according to isExternal. Add a test in test/external.test.js, run the tests and commit.
  1. Как на шаге 6 примера, проверьте первую строку src/external.js, сохраните коммит в .practice/b-5-commit.txt и выполните git status.

В своём репозитории начните с /init; если в нём уже есть CLAUDE.md, /init предложит улучшения, а не перезапишет его. Запишите правило в стиле комментариев своего языка, например # Part of my-project., сохраните эту точную строку в .practice/b-5-rule.txt на шаге 2 и попросите небольшой новый файл. Если в репозитории есть AGENTS.md, поставьте @AGENTS.md первой строкой CLAUDE.md: по умолчанию, как только CLAUDE.md существует, Claude читает его вместо AGENTS.md (AGENTS.md).

#Проверка

Урок пройден, когда выполнено всё это:

Запустите npm run check -- b-5 в своей копии для практики. Если работаете в своём репозитории, запустите вместо этого npm run check -- b-5 --dir <your repo> из копии для практики.

Если CLAUDE.md не закоммичен, выполните git add CLAUDE.md и закоммитьте его. Если новый файл не начинается с правила, начните новую сессию и выполните /context all. Если CLAUDE.md нет в разделе Memory files, сессия его не видит: запустите claude в папке, где лежит CLAUDE.md. Если он там есть, Claude прочитал правило, но не выполнил его. В обоих случаях попросите сессию создать другой новый файл, например src/summary.js с тестом, и закоммитить его. Затем сохраните этот коммит командой git rev-parse HEAD > .practice/b-5-commit.txt и снова запустите проверку. Исправление старого файла на месте не поможет, потому что проверка читает только файлы, которые добавляет коммит.

#Что дальше


Источники: How Claude remembers your project · Commands · Best practices · Automate actions with hooks

← Как удержать сессию в рамках · Оглавление Начального уровня · Итоговый проект Начального уровня → · Тема: Память и контекст · Застряли на уроке?