Инициализация проекта: использование /init для генерации CLAUDE.md
📚 Навигация по серии: В предыдущей статье 11 · Веб-версия и облако мы вышли за рамки терминала и научились использовать Claude Code в браузере и облачных средах. В этой статье мы вернемся к локальной работе и обсудим самую важную привычку — первое действие в новом проекте: ввод
/init. Это позволяет Claude самостоятельно просканировать кодовую базу и создать документацию проекта. Следующая статья: 13 · Структура проекта.
Друзья, давайте сначала разберем одну типичную ошибку.
Когда я только начал пользоваться Claude Code, я взял Node.js бэкенд, оставшийся от коллеги, и сразу начал писать код, не запустив /init. В первый раз я спросил «как запустить тесты», и Claude пошел читать package.json, чтобы ответить; через двадцать минут, в новой сессии, я задал тот же вопрос, и он снова пошел искать с нуля; после обеда, когда мы решали другую задачу, он в третий раз переспросил: «Вы используете npm или pnpm?».
В этот момент это начало сильно раздражать — и проблема не в том, что он глупый, а в том, что я не дал ему «инструкцию к проекту», поэтому каждый раз ему приходилось изучать всё заново. Как только вы привыкаете начинать работу в новом проекте с /init, все эти повторения исчезают: Claude один раз анализирует проект, записывает результаты в файл CLAUDE.md, и после этого каждая новая сессия стартует с готовым контекстом, избавляя от необходимости объяснять всё заново.
Проще говоря, команда /init делает одну важную вещь: меняет подход с «Claude каждый раз заново изучает проект» на «изучает один раз и запоминает надолго». В этой статье мы разберем, как это работает, как выглядит сгенерированный файл и сколько времени это экономит.
Прочитав эту статью, вы получите:
- Понимание ключевой проблемы, которую решает
/init: от «постоянного изучения с нуля» к «однократному созданию долгосрочной памяти». - Простую пошаговую инструкцию: запуск
claudeв корне проекта и ввод/init. - Понимание внутренних процессов: как Claude сканирует структуру, определяет стек технологий и создает черновик
CLAUDE.md. - Разбор типичной структуры
CLAUDE.mdи назначения каждого блока. - Важное осознание:
/init— это только начало, черновик требует ручной доработки (подробно об этом в статье 18).
01 Зачем нужен /init: Проблема «амнезии» Claude
Сразу к выводу: Claude Code в начале каждой новой сессии страдает от «амнезии» — он не помнит, о чем вы говорили в прошлый раз.
Это не баг, так задумано архитектурно. В официальной документации сказано предельно ясно:
Каждая сессия Claude Code начинается с чистого контекстного окна.
Аналогия: Каждый день на работу выходит новый стажер. Стажер очень способный, но у него есть один недостаток — то, чему вы научили его сегодня, завтра придется объяснять новому человеку. Вы говорите ему: «Мы используем pnpm, а не npm», «Тесты лежат в папке tests/», «Перед коммитом запускай lint». На следующий день приходит новый стажер, и вам приходится повторять всё заново.
Именно это и происходит, если у вас нет файла CLAUDE.md. Ошибки в работе с Node-проектом, о которых я упоминал, возникли именно из-за этого — у Claude нет встроенной долговременной памяти между сессиями.
Так что же делать? Официально предусмотрены два механизма передачи знаний между сессиями, но в этой статье мы рассмотрим только первый:
| Механизм | Кто пишет | Что содержит |
|---|---|---|
| Файл CLAUDE.md | Вы (но /init может создать черновик) | Инструкции и правила: архитектура, команды сборки, соглашения |
| Автоматическая память (Auto Memory) | Сам Claude | Накопленный опыт, заметки по отладке |
Обратите внимание на жесткое ограничение 자동 памяти: в каждую сессию загружается только первые 200 строк или 25 КБ, всё остальное не попадает в контекст. Поэтому полагаться только на автоматическую память нельзя, CLAUDE.md — это основной инструмент.
CLAUDE.md (файл памяти проекта) — это вводное руководство для вашего «сменяемого стажера». Вы пишите его заранее, кладете в папку проекта, и каждый раз, начиная работу, Claude сначала читает этот файл и мгновенно «вспоминает», как устроен проект.
Команда /init — это то, что позволяет вам сгенерировать первый черновик этого руководства одним нажатием.
💡 Краткий итог: Каждую сессию Claude начинает с «амнезией».
CLAUDE.md— это носитель памяти между сессиями, а/initпомогает автоматически сгенерировать его первоначальный черновик.
02 Что такое /init: Claude сам пишет руководство к себе
/init — это встроенная слэш-команда (slash command, команда, начинающаяся со знака / в поле ввода) Claude Code.
Вкратце, она делает следующее: Claude самостоятельно сканирует ваш проект и генерирует черновик CLAUDE.md, адаптированный специально под этот проект.
Официальная документация очень точно описывает этот процесс:
Запустите
/initдля автоматической генерации начального файлаCLAUDE.md. Claude проанализирует вашу кодовую базу и создаст файл, содержащий команды для сборки, инструкции по тестированию и найденные соглашения по проекту.
Аналогия: Попросить нового сотрудника самого написать себе вводное руководство. Обычно руководство пишет старший разработчик. Но /init переворачивает этот процесс — вы просите «новичка» изучить проект самому и записать всё, что он узнал (технологии, структуру папок, скрипты запуска), в документ. Затем вы просто проверяете, насколько правильно он всё понял.
Практическая польза такого подхода огромна: Claude может самостоятельно собрать все объективные данные о проекте (стек, структуру каталогов, доступные скрипты), и вам не придется тратить на это время. Сэкономленное время можно потратить на добавление тех вещей, которые невозможно извлечь автоматически (например, правила именования веток в вашей команде).
Когда стоит использовать /init? Вот несколько типичных ситуаций:
- Вы беретесь за проект, который оставил другой разработчик — вы сами еще не разобрались в нем, и это отличный повод дать Claude просканировать его и создать основу для изучения.
- В вашем собственном проекте еще нет
CLAUDE.md— вы работали без него, настало время это исправить. - Вы клонировали опенсорсный проект и хотите внести изменения — сначала запускаете
/init, чтобы получить «карту» проекта, а затем приступаете к работе.
💡 Краткий итог:
/initзаставляет Claude самостоятельно изучить проект и собрать объективные данные в черновикCLAUDE.md— это экономит ваши силы на сборе технической информации, позволяя сосредоточиться на добавлении негласных правил.
03 Как использовать: Перейти в папку, запустить, выполнить команду
Процесс настолько прост, что кажется тривиальным — запустите claude, введите /init в поле ввода, и готово.
Шаг первый: Запустите Claude Code в корневой директории проекта.
Это самый важный момент — обязательно перейдите (с помощью cd) в корень вашего проекта перед запуском, не запускайте программу на Рабочем столе или в домашнем каталоге. Как уже упоминалось в статье 07: где вы запустили Claude, там он и организует свое рабочее пространство, читая файлы именно оттуда. Если запустить /init в домашней папке, он будет анализировать кучу ваших личных файлов, что не имеет никакого смысла.
cd /path/to/your-project
claudeШаг второй: Введите /init в поле ввода и нажмите Enter.
/initВот и всё. Дальше вам ничего не нужно делать, Claude всё выполнит сам — без вашего вмешательства он проанализирует проект и выдаст результат.
Что именно происходит «за кадром»? Вот как выглядит типичный процесс:

Весь процесс выстраивается в такую цепочку: Запуск claude в директории проекта → Ввод /init → Claude сканирует структуру и определяет технологии → Сохраняет черновик CLAUDE.md → Вы вручную корректируете и дополняете его. Первые четыре шага выполняются автоматически, а последний, «ручная доработка», — это ключ к превращению черновика в отличное руководство (об этом подробнее в статье 18).
В официальной документации это называется «анализ кодовой базы». На практике это означает сканирование следующих типов файлов:
- Файлы зависимостей:
package.json(Node),requirements.txt(Python),pom.xml(Java) и т.д. — используются для определения стека технологий и доступных команд. - Существующая документация:
READMEи подобные файлы — чтобы понять, какова цель проекта. - Файлы конфигурации и структура папок — чтобы понять, как организован проект и где находятся точки входа.
⚠️ Важная деталь, которую легко упустить: Если в проекте уже есть файл
CLAUDE.md, команда/initне будет грубо перезаписывать его. Официальная документация гласит: в таком случае Claude предложит улучшения, а не перезапишет файл. Я как-то запустил/initв проекте с уже готовым файлом и испугался, что он всё сотрет, но Claude просто предложил несколько дополнительных пунктов, не изменив ни строчки оригинального текста. Это очень продуманное решение.
💡 Краткий итог: Перейдите в корень проекта через
cd, запуститеclaude, введите/init, и оставьте остальное программе. ЕслиCLAUDE.mdуже существует, команда предложит улучшения, а не перезапишет его.
04 Как выглядит результат: Разбор черновика CLAUDE.md
После выполнения /init в корне вашего проекта появится файл CLAUDE.md. Откройте его, и вы увидите четко структурированный Markdown-документ.
Аналогия: Стандартное руководство по проекту. Это не просто список случайных фактов, это структурированный документ: о чем проект, какие технологии используются, как организованы каталоги, какие команды запускать и какие есть соглашения. Любой новый разработчик (в том числе и Claude после «амнезии» в новой сессии) сразу поймет, как устроен проект, просто взглянув на этот документ.
Обычно сгенерированный файл содержит следующие разделы (конкретные поля Claude адаптирует под ваш проект, но типичный вид такой):
# Название проекта
## Обзор проекта
Краткое описание того, для чего нужен проект и каковы его основные функции.
## Стек технологий
- Frontend: React + TypeScript
- Backend: Node.js + Express
- Database: PostgreSQL
## Структура каталогов
- `src/components/` - Компоненты React
- `src/api/` - API слой
- `tests/` - Файлы тестов
## Часто используемые команды
- Запуск dev-сервера: `pnpm dev`
- Запуск тестов: `pnpm test`
- Проверка кода: `pnpm lint`
## Соглашения по разработке
- Использование строгого режима TypeScript (strict)
- Перед коммитом запускать `pnpm test`Давайте разберем ценность каждого раздела — это именно то, что Claude раньше постоянно переспрашивал:
| Раздел | Содержание | От каких повторений избавляет |
|---|---|---|
| Обзор проекта | Цели и основные функции | Не нужно объяснять «что это за проект» |
| Стек технологий | Используемые фреймворки, языки, БД | Не нужно отвечать «это React или Vue?» |
| Структура каталогов | Назначение ключевых папок, точки входа | Не нужно искать «где лежит код API» |
| Часто используемые команды | Команды для запуска, тестирования, проверки | Не нужно каждый раз смотреть в package.json |
| Соглашения по разработке | Правила проекта (например, строгий режим) | Не нужно напоминать «обязательно включай строгий режим» |
Видите? Те самые вопросы из начала статьи («как запустить тесты», «npm или pnpm») полностью закрываются разделами «Часто используемые команды» и «Стек технологий». Если это руководство лежит в проекте, Claude читает его на старте, и эти диалоги больше не повторяются.
Что касается местоположения файла — официально рекомендуется сохранять его как ./CLAUDE.md (или ./.claude/CLAUDE.md) в корне проекта. Команда /init по умолчанию размещает его правильно, поэтому вам не нужно беспокоиться о путях. О более глубоких уровнях (как комбинируются пользовательские и проектные настройки) мы поговорим в статье 18.
💡 Краткий итог: Сгенерированный
CLAUDE.mdделится на блоки: обзор, стек, структура, команды, соглашения. Каждый из них устраняет целый пласт повторяющихся вопросов./initсам размещает файл в нужном месте.
05 Важное понимание: /init — это начало, а не конец
Это самое главное, что нужно запомнить из этой статьи: /init создает черновик, а не финальную версию.
Почему требуется ручная доработка? Потому что есть вещи, которые Claude не может узнать, даже если просканирует всю кодовую базу — их просто нет в коде, они существуют только в головах разработчиков команды.
Вот несколько примеров того, что Claude никогда не сможет угадать:
- Соглашения об именовании веток: В вашей команде принято использовать
feature/xxxиfix/xxx. Где это написано? Нигде. Claude не сможет это узнать. - Процесс развертывания (деплоя): Деплой происходит автоматически при слиянии в
mainили требует нажатия кнопки? Из кода это часто неочевидно. - Правила Code Review: «PR должны одобрить два человека», «Изменения ядра сначала обсуждаются в режиме Plan» — это негласные командные договоренности.
- Бизнес-контекст: Почему этот модуль спроектирован именно так, и какие участки кода лучше не трогать — эти «почему» знаете только вы.
Правильный подход — это итеративное улучшение, а не создание файла один раз и навсегда.
Мой опыт работы с тем самым Node-проектом из начала статьи был плохим примером: я запустил /init и решил, что на этом всё. В результате в раздел «Часто используемые команды» не попал кастомный скрипт деплоя (потому что он лежал в папке scripts/ и не был прописан в package.json), и Claude, естественно, его не нашел. Мне пришлось вручную добавить в CLAUDE.md строку «Для деплоя используй ./scripts/deploy.sh», и только тогда руководство стало полным. Поэтому правильная привычка: после выполнения /init сразу же прочитайте файл и вручную добавьте жесткие правила, которые сканер не смог найти.
Сравните правильный и неправильный подход:
| ❌ Неправильно | ✅ Правильно |
|---|---|
Запустить /init и использовать как финальный документ | Запустить /init, прочитать и рассматривать как черновик для доработки |
| Ожидать, что Claude найдет все командные соглашения | Вручную добавить негласные правила (ветки, деплой, ревью) |
| Сгенерировать один раз и больше не менять | Постоянно обновлять файл по мере развития проекта, удаляя устаревшее |
Запомните это разделение: /init быстро извлекает объективные факты (в этом ИИ силен), а вы добавляете субъективные соглашения и бизнес-контекст (это знаете только вы). Только совместными усилиями можно создать действительно полезный CLAUDE.md.
О том, «как превратить этот черновик в краткое и эффективное руководство» (например, как выстроить иерархию, как использовать ссылки для разбивки, как поддерживать файл в актуальном состоянии) — мы поговорим в 18 статье, «Руководство по CLAUDE.md». В этой статье ваша задача — просто создать этот файл, а уже потом мы будем учиться писать его правильно.
💡 Краткий итог:
/initизвлекает только объективные факты; командные соглашения, процессы деплоя и другие неявные правила нужно добавлять вручную. Документ считается готовым только после вашей проверки.
06 Практика: Запуск /init в минимальном проекте
Хватит теории. Давайте создадим минимальный проект из пары файлов и полностью прогоним процесс /init, чтобы убедиться, что он действительно генерирует CLAUDE.md. Вам не нужны сложные окружения, просто повторяйте команды.
Шаг первый: Создание минимального проекта (Mac / Linux)
mkdir init-demo
cd init-demo
echo '{"name": "init-demo", "scripts": {"test": "echo test ok"}}' > package.json
echo 'console.log("hello from init-demo");' > index.jsПользователи Windows PowerShell: команды mkdir init-demo и cd init-demo те же, а файлы package.json и index.js можно создать в Блокноте и вставить туда текст из одинарных кавычек.
Ожидаемый результат: В папке init-demo находятся два файла: package.json и index.js. Выполнив команду ls (или dir в Windows), вы их увидите.
Шаг второй: Запуск Claude Code в директории проекта
claudeОжидаемый результат: Откроется экран приветствия с полем ввода внизу. Убедитесь, что терминал находится в директории init-demo.
Шаг третий: Выполнение /init
В поле ввода напечатайте:
/initОжидаемый результат: Пойдет прокрутка экрана — вы увидите, что Claude читает package.json и index.js, анализирует проект и сохраняет файл. Поскольку в проекте всего два файла, это займет от пары секунд до нескольких десятков секунд. По завершении он сообщит, что CLAUDE.md сгенерирован.
Шаг четвертый: Проверка файла CLAUDE.md
Выйдите из Claude (введите exit или нажмите Ctrl+D) и посмотрите файл в терминале:
cat CLAUDE.md(Пользователи Windows PowerShell используют type CLAUDE.md)
Ожидаемый результат: В терминале появится текст в формате Markdown, в котором как минимум должно быть название проекта init-demo, стек технологий Node.js / JavaScript, а команда test (echo test ok) должна быть распознана как «запуск тестов». Если вы всё это видите — значит, /init отработал успешно, он понял ваш маленький проект и задокументировал его.
Шаг пятый (необязательно): Проверка «памяти» Claude
Снова запустите claude и спросите:
Какая команда используется для запуска тестов в этом проекте?Ожидаемый результат: Он сразу же назовет команду, не обращаясь к файлу package.json, потому что ответ уже есть в файле CLAUDE.md, который он прочитал при запуске. В этот момент вы своими глазами убедитесь, что проблема «амнезии» решена.
⚠️ Небольшое примечание: В реальных проектах файлов намного больше, и команда
/initбудет работать дольше, чем на этом демо — просто подождите. И не забудьте главное правило из 5 раздела — прочитайте результат и добавьте вручную те ограничения, которые Claude не смог найти.
💡 Краткий итог: Создайте микропроект из двух файлов, запустите
/initвclaude, выйдете и проверьтеcat CLAUDE.md, чтобы увидеть результат. Задайте вопрос про тестирование, чтобы убедиться, что «амнезия» исчезла.
07 Заключение
В этой статье мы разобрали одно простое, но важное действие: в новом проекте первым делом запустите /init, чтобы Claude сам создал черновик проектной документации.
Давайте еще раз повторим ключевые выводы:
| Аспект | Суть |
|---|---|
| Какую проблему решает | Claude каждый раз всё забывает. CLAUDE.md — это его «внешняя память» |
| Что такое /init | Команда для автоматического анализа проекта и генерации CLAUDE.md |
| Как использовать | cd в корень проекта → запуск claude → ввод /init |
| Что делает команда | Сканирует структуру, определяет стек, извлекает команды и сохраняет в файл |
| Структура документа | Обзор, стек, структура каталогов, команды, соглашения |
| Ключевой момент | Черновик — это не финальная версия. Правила команды нужно добавлять вручную |
Теперь вы должны уметь: зайдя в любой проект, запустить claude в корневой директории и ввести /init, чтобы получить готовый CLAUDE.md. Понимать, какие блоки содержит сгенерированный файл, и осознавать, что объективные данные собирает Claude, а субъективные соглашения добавляете вы. С этого момента Claude перестанет быть «постоянным новичком» с амнезией, а станет опытным помощником, изучившим правила вашего проекта с самого старта.
Следующая статья 13 · Структура проекта — после запуска /init вы увидели раздел «Структура каталогов», созданный Claude. Но помимо CLAUDE.md, в проекте есть папка .claude/, файл settings.json, пользовательские команды, настройки MCP и множество других файлов, специфичных для Claude Code. Для чего они нужны и как выглядят? В следующей статье мы наведем порядок в структуре файлов проекта.