Память и контекст: разбор
Память Claude Code: CLAUDE.md, команда /init и шорткат #
CLAUDE.md — файл, который Claude Code читает прежде, чем тронет ваш код. Разбираем весь цикл по скриншотам: генерация через /init, одна строка от руки, чтобы новые файлы ложились куда надо, и сохранение правил прямо в сессии через #.

Иллюстрированный разбор из 16 шагов — примерно 6 минут чтения. Каждый шаг ссылается на точный момент исходного видео.
Коротко
При первом заходе Claude Code в проект выполните /init. Он перечислит репозиторий, прочитает package.json, tsconfig и README, запишет в корень структурированный CLAUDE.md и спросит разрешение перед сохранением. Дальше этот файл попадает в контекст каждой сессии — поэтому Claude «знает» ваши скрипты, стек и где лежит нужная папка. Добавить правило, не выходя из чата, можно, начав сообщение с #; Claude спросит, куда его писать: в память проекта (./CLAUDE.md), локальную память проекта (./CLAUDE.local.md) или пользовательскую память (~/.claude/CLAUDE.md). Команда /memory открывает любой из трёх файлов в редакторе. Главное, на чём настаивает видео: файл памяти, который перечитывают, не врёт; тот, который забросили, — начинает.
Об исходном видео
Страница повторяет урок №2 курса Net Ninja по Claude Code и шаг за шагом воспроизводит его работу с CLAUDE.md.
Скриншоты — кадры из видео с указанием автора; текст написан нами. Шаги сверены с видео в сентябре 2026 года.
Генерируем CLAUDE.md через /init
Одна команда, одно чтение всего репозитория, один файл в корне проекта.
- 1
Вызовите /init в корне проекта
Откройте Claude Code в папке с package.json и наберите /init. Строка автодополнения прямо описывает задачу — “Initialize a new CLAUDE.md file with codebase documentation”, — и тот же совет стоит первым в приветственной подсказке. Делайте это до первой задачи по функционалу: по логике видео /init — то, что делают при заходе Claude Code в проект, а не то, что догоняют потом.

/init — ровно из того же списка подсказок на приветственном экране.Смотреть с 0:40 - 2
Смотрите, как он читает репозиторий по пунктам
Claude сам составляет себе список дел и идёт по нему: изучить структуру репозитория и ключевые файлы, разобрать package.json и конфигурацию сборки, посмотреть архитектуру исходников, проверить готовую документацию, создать CLAUDE.md с выводами. Ниже прокруткой идут реальные вызовы инструментов — List() по папке проекта, Read(package.json), Search(pattern: “README*”), Read(tsconfig.json), — а выполненные пункты зачёркиваются. Задача долгая; именно список прогресса делает её читаемой.

Пять запланированных шагов, один уже вычеркнут.Смотреть с 1:28 - 3
Подтверждение до первой записи на диск
Закончив сканирование, Claude показывает черновик и спрашивает “Do you want to create this CLAUDE.md?” с тремя ответами: Yes, “Yes, and don't ask again this session” и “No, and tell Claude what to do differently”. Третий вариант стоит воспринять всерьёз — это самая дешёвая точка во всём процессе, чтобы сказать «пропусти раздел про стили, сделай упор на слой данных». После Yes CLAUDE.md появляется в проводнике в корне проекта как новый неотслеживаемый файл.

Пока вы не выбрали вариант, на диске ничего не меняется.Смотреть с 1:52
Что /init действительно написал
Сгенерированный файл — это пересказ кодовой базы словами самого Claude: команды, стек, папки и выведенные им соглашения.
- 4
Верх файла: назначение, затем команды
Первая строка объясняет, зачем файл нужен — “This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository”, — и сразу идёт полезное. В Development Commands перечислены все скрипты из package.json: npm run dev на Turbopack, build, start, lint, test и test:ui. Этот раздел мешает Claude изобретать команду, которой не существует, и посмотреть на него стоит первым делом после /init.

Имена скриптов — уже верные.Смотреть с 3:25 - 5
Архитектура, стек и дерево папок
Architecture Overview описывает проект одной фразой — блог-приложение на Next.js 15 по паттернам App Router. Key Technologies перечисляет стек с причиной присутствия каждой части: Next.js 15 с App Router и Turbopack, React 19 с TypeScript, Tailwind CSS v4 с CSS-переменными для тем, Vitest в окружении JSDOM, DOMPurify для санитизации, GraphQL к headless CMS. Дальше Project Structure рисует дерево src ascii-схемой, и почти у каждой строки есть комментарий.

Схема папок — то, на что Claude опирается сильнее всего.Смотреть с 2:26 - 6
Разделы, которые мешают Claude угадывать
Styling System фиксирует, как устроены темы, Testing Setup называет конфиг Vitest и setup-файл, а Development Notes собирает мелочи, за которые приходится платить переделкой: алиас @/* для импортов из src, тёмная тема как CSS-класс на корневом элементе, обязательная санитизация контента из CMS. Ничего экзотического здесь нет. Это информация, которую Claude иначе выводил бы заново — или выводил бы неверно — в каждой сессии.

Алиасы путей и требования безопасности — один раз вместо всегда.Смотреть с 2:48
Правите файл — Claude ему следует
CLAUDE.md — обычный markdown. Строка, набранная вами вручную, весит столько же, сколько вывод /init.
- 7
Дописываем папку, которую /init не видел
В сгенерированном дереве пункта про hooks нет, поэтому Claude не знает, куда их класть. Прокрутите до Project Structure и допишите строку сами — hooks/ с комментарием “Reusable hooks”, — затем сохраните. В этом и смысл отношения к CLAUDE.md как к обычному файлу: строка от руки обладает той же властью, что и вывод /init, и это единственный способ научить проект соглашению, которого в коде пока нет.

Одна добавленная строка, курсор на ней, в вкладке — точка несохранённости.Смотреть с 4:38 - 8
Просим хук, о расположении не говорим ничего
Освободите сессию и попросите: “Can you create a hook to store the user's theme pref in, when they toggle the theme on the site? Store the value in local storage for next time. Don't use the hook anywhere yet!” Последняя фраза — отдельная привычка, которую стоит перенять: в видео отмечается, что Claude Code любит тут же подключить любой новый хук, компонент или утилиту, так что нужен только файл — скажите это прямо. А вот вопрос папки — настоящий тест.

Ни одного пути во всём запросе.Смотреть с 5:36 - 9
Claude кладёт файл туда, где сказано в памяти
План возвращается фразой “Now I'll create the useTheme hook in the hooks directory”, вызов выглядит как Write(src/hooks/useTheme.ts), а сверху открывается диалог подтверждения — “Do you want to make this edit to useTheme.ts?” — рядом с диффом нового файла. После подтверждения и папка hooks, и useTheme.ts появляются в проводнике. В запросе путь не назывался ни разу; сработала единственная строка, добавленная в CLAUDE.md.

src/hooks/useTheme.ts — в папке, которой час назад не существовало.Смотреть с 6:10
Сохраняем правило через #
Заметили, что Claude во второй раз исходит из одного и того же предположения, — начните поправку с #, и она станет памятью.
- 10
Начните правило с #, и оно запомнится
Посреди сессии возьмите соглашение, которое повторяете по десять раз, и начните сообщение с решётки: “when making new page components, always add a link to that page in the header”. Пока печатаете, Claude Code подписывает поле ввода “# to memorize” — решётка превращает сообщение из просьбы в память. Это самый способный поймать правило момент: вы ещё помните, зачем оно нужно.

Подсказка появляется, пока вы ещё печатаете.Смотреть с 6:44 - 11
Выбираем, в какой файл памяти пойдёт строка
После Enter Claude спрашивает “Where should this memory be saved?” и даёт три варианта: Project memory — кладётся в ./CLAUDE.md и попадает в git; Project memory (local) — в ./CLAUDE.local.md, который в .gitignore; User memory — в ~/.claude/CLAUDE.md. Деление идёт по аудитории, а не по теме. Память проекта версионируется, значит, там держат то, что верно для всех в репозитории: структуру папок, именование, фреймворки, тесты. Пользовательская память — ваш файл на все проекты машины: личные инструменты и стиль кода. Локальный вариант — самый неудобный, и таблица из документации ниже объясняет почему.

У одной фразы три возможных адреса.Смотреть с 7:20 - 12
Записывает и сообщает об этом
Выберите Project memory — сессия повторит правило и добавит к нему одно «Got it.». Ниже Claude Code выдаёт подсказку, которую стоит пересылать новичкам: “Want Claude to remember something? Hit # to add preferences, tools, and instructions to Claude's memory.” Фраза дописывается в тот же открытый у вас CLAUDE.md, так что любое сомнительное воспоминание проверяется одним /memory.

«Got it.» плюс встроенное напоминание, за что отвечает #.Смотреть с 9:12
Три файла памяти и как их открыть
Куда легла заметка, решает, кто её ещё увидит: команда, только этот репозиторий или все проекты на вашей машине.
- 13
Память возвращается в плане следующей задачи
Попросите о постороннем — “Can you add a new /about page with only an h2 title and a single line of lorem as content” — и Claude ответит: “I'll create a new /about page and add a link to it in the header as per your memory instruction.” В его списке дел появится второй пункт, о котором не просили: Add about page link to header navigation. Это и есть работа памяти: она загружается в контекст сессии и меняет план без напоминаний.

Два пункта плана, один — прямо из CLAUDE.md.Смотреть с 9:20 - 14
Проверяем результат в браузере
Запустите dev-сервер и откройте localhost:3000/about. Страница — это заголовок h2 и одна строка lorem, а в шапке теперь Blog, Preview, About; последняя ссылка появилась потому, что так сказано в памяти. Обратите внимание на две лишние: видео называет это привычкой Claude Code выходить за рамки запроса, и лечится тем же шорткатом # — только теперь с формулировкой «не трогай ничего вне названного файла». Такие правила тоже место в CLAUDE.md.

Ссылка About на месте. Две ненужные — тоже.Смотреть с 10:12 - 15
Что документация говорит о локальном файле
Страница memory management на docs.anthropic.com раскладывает всю карту: корпоративные политики под управлением IT, память проекта ./CLAUDE.md, разделяемая через систему контроля версий, пользовательская память ~/.claude/CLAUDE.md — для вас во всех проектах, и память проекта (local) ./CLAUDE.local.md с пометкой “(Deprecated, see below)”. Видео отмечает то же самое: локальную память убирают, вместо неё — импорт неотслеживаемых файлов из памяти проекта. На момент записи пункт в меню # ещё виден, так что читайте его как запись о совместимости, а не как рекомендацию.

Таблица, которую терминальное меню пересказывает.Смотреть с 10:40 - 16
Любой файл памяти открывается через /memory
Наберите /memory, и Claude перечислит доступное — “Memory Files: project: CLAUDE.md”, ссылку на документацию, затем “Select memory to edit” с теми же тремя областями и счётчиком, сколько воспоминаний сейчас лежит в ./CLAUDE.md. Выбор открывает файл в редакторе. Если встроенный вам не подходит, терминал подскажет задать $EDITOR или $VISUAL. Это и есть цикл обслуживания: /memory, прочитать, что накопилось, удалить устаревшее.

/memory — вместе со счётчиком памяти проекта.Смотреть с 11:24