Skip to content

Инициализация проекта: использование /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 в домашней папке, он будет анализировать кучу ваших личных файлов, что не имеет никакого смысла.

bash
cd /path/to/your-project
claude

Шаг второй: Введите /init в поле ввода и нажмите Enter.

text
/init

Вот и всё. Дальше вам ничего не нужно делать, Claude всё выполнит сам — без вашего вмешательства он проанализирует проект и выдаст результат.

Что именно происходит «за кадром»? Вот как выглядит типичный процесс:

Пятиэтапный процесс инициализации через /init

Весь процесс выстраивается в такую цепочку: Запуск 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 адаптирует под ваш проект, но типичный вид такой):

markdown
# Название проекта

## Обзор проекта
Краткое описание того, для чего нужен проект и каковы его основные функции.

## Стек технологий
- 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)

bash
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 в директории проекта

bash
claude

Ожидаемый результат: Откроется экран приветствия с полем ввода внизу. Убедитесь, что терминал находится в директории init-demo.

Шаг третий: Выполнение /init

В поле ввода напечатайте:

text
/init

Ожидаемый результат: Пойдет прокрутка экрана — вы увидите, что Claude читает package.json и index.js, анализирует проект и сохраняет файл. Поскольку в проекте всего два файла, это займет от пары секунд до нескольких десятков секунд. По завершении он сообщит, что CLAUDE.md сгенерирован.

Шаг четвертый: Проверка файла CLAUDE.md

Выйдите из Claude (введите exit или нажмите Ctrl+D) и посмотрите файл в терминале:

bash
cat CLAUDE.md

(Пользователи Windows PowerShell используют type CLAUDE.md)

Ожидаемый результат: В терминале появится текст в формате Markdown, в котором как минимум должно быть название проекта init-demo, стек технологий Node.js / JavaScript, а команда test (echo test ok) должна быть распознана как «запуск тестов». Если вы всё это видите — значит, /init отработал успешно, он понял ваш маленький проект и задокументировал его.

Шаг пятый (необязательно): Проверка «памяти» Claude

Снова запустите claude и спросите:

text
Какая команда используется для запуска тестов в этом проекте?

Ожидаемый результат: Он сразу же назовет команду, не обращаясь к файлу 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. Для чего они нужны и как выглядят? В следующей статье мы наведем порядок в структуре файлов проекта.


Рекомендуется к прочтению