Как настроить проект в Claude Code: структура папок и контекст
Хороший проект в Claude Code держится на двух вещах: правильной структуре папок и грамотном контексте в CLAUDE.md. Настроишь это один раз — и Claude перестаёт «забывать» проект, переспрашивать и жечь токены впустую. Ниже — полный разбор: как устроена память Claude Code, что писать в CLAUDE.md (с готовым шаблоном), как разложить папку .claude/ с правилами, навыками и агентами, как управлять контекстом и вести проект изо дня в день. В конце — рабочий пример с нуля и как на этом фундаменте собрать свой первый продукт без лица.
- Как работает память Claude Code и почему он «забывает» проект без настройки
- Что писать в CLAUDE.md, а что туда класть нельзя — с готовым шаблоном
- Как устроена папка
.claude/: правила, навыки, агенты, команды — с примерами - Контекст-инжиниринг: как держать Claude точным и не жечь токены
- Рабочий пример настройки проекта с нуля + 7 типичных ошибок и как их чинить
- Как на готовом проекте собрать свой первый продукт без лица
Почему без настройки Claude «тупит» и жжёт токены
Claude Code не помнит твой проект между сессиями. Каждый раз, когда ты открываешь папку и запускаешь claude, он начинает с чистого листа и собирает понимание проекта заново — из того, что видит вокруг и что ты ему скармливаешь в диалоге.
Если проект не настроен, дальше происходит предсказуемое. Claude гадает, где что лежит, и читает лишние файлы, чтобы сориентироваться. Переспрашивает очевидное. Принимает решения вразрез с твоими договорённостями — потому что он про них не знает. Пишет в стиле, который не совпадает с остальным кодом. И повторяет то, что вы уже обсуждали вчера, потому что «вчера» для него не существует.
Каждое такое действие — это сожжённые токены и ответ мимо цели. На реальном проекте это легко превращается в десятки лишних минут и тысячи токенов за сессию. Сравни два сценария:
| Без настройки | С настройкой |
|---|---|
| Claude читает полпроекта, чтобы понять структуру | Открывает CLAUDE.md и сразу видит карту |
| Переспрашивает про стек и команды | Знает стек и команды из карты |
| Делает в своём стиле, ломает договорённости | Работает по твоим правилам |
| Контекст забит лишним → дороже и хуже | В контексте только нужное → точнее и дешевле |
Настройка убирает всё это одним движением: ты один раз даёшь Claude карту проекта и правила, и дальше он работает по ним, а не догадывается.
Правильно настроенный проект — это разница между «ассистентом, который знает твой проект» и «стажёром, которому каждое утро объясняешь всё заново». Первый экономит часы и токены, второй — сжигает и то и другое.
Как устроена память Claude Code: три уровня
Чтобы настройка была осмысленной, надо понять, откуда Claude вообще берёт «память». Файлы CLAUDE.md работают на трёх уровнях, и Claude подгружает их все, от общего к частному:
| Уровень | Где лежит | Для чего |
|---|---|---|
| Глобальный | ~/.claude/CLAUDE.md | Твои привычки и правила для ВСЕХ проектов (стиль ответов, язык, общие принципы) |
| Проектный | ./CLAUDE.md в корне | Всё про конкретный проект — стек, карта, правила. Главный файл, его коммитят в репозиторий |
| Локальный | ./CLAUDE.local.md | Личные заметки по проекту, которые не нужны команде (в .gitignore) |
| Вложенный | CLAUDE.md в подпапке | Правила для конкретного модуля — подхватываются, когда работаешь внутри него |
Принцип простой: чем ближе файл к тому, над чем ты работаешь, тем он приоритетнее. Глобальный задаёт общие привычки, проектный уточняет их под проект, вложенный — под модуль. Это как слои: общий фон → проект → конкретная папка.
В глобальный ~/.claude/CLAUDE.md вынеси то, что верно всегда (например, «отвечай на русском, код комментируй по делу»). Всё про конкретный проект — в проектный CLAUDE.md. Не дублируй: если правило уже в глобальном, в проектном его повторять не нужно.
Пример глобального ~/.claude/CLAUDE.md — твои привычки на все проекты сразу:
# Общие правила (для всех проектов)
- Отвечай на русском, по делу, без воды.
- Перед крупным изменением — сначала покажи план.
- Комментируй код там, где логика неочевидна.
- Не добавляй зависимости и не удаляй файлы без спроса.
Главный принцип: одна корневая папка + CLAUDE.md как карта
Базовое правило структуры: всё, что относится к проекту, лежит в одной корневой папке. Фронтенд, бэкенд, документация, рабочие заметки, ассеты — всё вместе, под одним корнем. Так Claude видит проект целиком, а не кусками, и связи между частями для него очевидны.
В корне этой папки лежит CLAUDE.md. Ключевая мысль, которую важно усвоить сразу, иначе файл превратится в свалку:
Не нужно описывать каждую функцию. Нужно объяснить Claude: что это за проект, какой стек, где что лежит, по каким правилам работать и какие команды запускать. Карта местности, по которой он сам найдёт нужную улицу — а не пересказ каждого дома.
CLAUDE.md: что писать (с готовым шаблоном)
Не нужно сидеть полдня. 80–150 строк закрывают почти всю пользу. Вот рабочая структура файла, которую можно скопировать и адаптировать:
# Проект: [название]
## Что это
Коротко: что за продукт, для кого, на какой стадии.
Пример: «Лендинг для цифрового продукта, цель — заявки, стадия MVP».
## Стек
Языки, фреймворки, БД, ключевые библиотеки и версии.
## Структура
- /src — код приложения
- /docs — документация и рабочие заметки
- /assets — картинки и медиа
- .claude/ — правила, навыки, агенты
## Команды
- запуск: npm run dev
- сборка: npm run build
- тесты: npm test
- деплой: ./deploy.sh
## Правила
- Пиши в существующем стиле кода, не переписывай чужое без нужды.
- Перед крупным изменением — сначала покажи план.
- Не трогай файлы в /legacy и /vendor.
- Все тексты — на русском, без канцелярита.
## Чего избегать
- Не добавляй зависимости без спроса.
- Не коммить секреты и ключи.
Принцип отбора простой — в CLAUDE.md идёт только то, что нужно каждую сессию. Всё остальное живёт в файлах, на которые ты при необходимости сошлёшься.
| Класть в CLAUDE.md | НЕ класть |
|---|---|
| Что за проект и стек | Полную документацию API |
| Карту папок («где что») | Длинные куски кода |
| Команды запуска/тестов/деплоя | Историю изменений и решений |
| Базовые проверяемые правила | Секреты, ключи, пароли |
| Чего точно не делать | «Воду»: «пиши хороший код» |
Не хочешь писать руками — Claude соберёт черновик сам. В проекте есть команда /init: он просканирует папку и предложит CLAUDE.md. Либо дай прямой промпт и поправь результат:
Под разные типы проектов акценты смещаются: для сайта/лендинга важны команды сборки и деплоя, для бота — где лежат сценарии и как запускать локально, для контент-проекта — где шаблоны и в каком голосе писать. Но костяк один.
Папка .claude: rules, skills, agents, commands
Когда проект растёт, один CLAUDE.md становится тесным. Тогда в дело вступает папка .claude/ — «мозг» настройки рядом с проектом. Минимальная разумная структура выглядит так:
проект/
├── CLAUDE.md # карта проекта (читается всегда)
├── .claude/
│ ├── settings.json # настройки и разрешения
│ ├── rules/ # детальные правила по доменам
│ ├── skills/ # повторяемые навыки-процессы
│ ├── agents/ # субагенты под отдельные задачи
│ └── commands/ # свои слэш-команды
├── src/ # код приложения
├── docs/ # документация и заметки
└── assets/ # картинки, медиа
Разберём каждую часть с примером.
rules/ — детальные правила по доменам
Когда правил становится много, разбей их по областям, чтобы CLAUDE.md не раздувался. Например, .claude/rules/frontend.md:
# Правила фронтенда
- Компоненты — функциональные, без классов.
- Стили — только через CSS-переменные из theme.css.
- Никаких инлайн-стилей в JSX.
- Все тексты — через словарь локализации, не хардкодить.
Claude подхватит эти правила, когда работает с фронтендом, и не будет держать их в контексте, пока возится с бэкендом.
skills/ — повторяемые навыки
Если ты третий раз объясняешь одно и то же («собери лендинг по нашему стандарту»), оформи это как навык: .claude/skills/landing/SKILL.md. Внутри — короткое описание и процесс:
---
name: landing
description: Собрать лендинг по нашему стандарту
---
# Навык: лендинг
Когда просят «собрать лендинг»:
1. Уточни оффер, аудиторию и одно целевое действие.
2. Структура: хук → выгоды → как работает → отзывы → FAQ → CTA.
3. Тёмная тема, акцент оранжевый, шрифт Inter.
4. Тексты — в голосе из /docs/voice.md, без воды.
5. Один экран = одна мысль, CTA повторить 2–3 раза.
Дальше говоришь «сделай лендинг» — Claude применяет навык, а не выслушивает инструкцию заново.
agents/ — субагенты под задачи
Субагент — это отдельный «работник» со своим контекстом и набором инструментов под узкую задачу: ревьюер кода, тестировщик, исследователь. Главная польза — он не засоряет твой основной контекст: уходит, делает своё, возвращает результат. Заводится файлом в .claude/agents/ с описанием роли и инструментов. Пример .claude/agents/reviewer.md:
---
name: reviewer
description: Ревью изменений перед коммитом
tools: Read, Grep
---
Ты — придирчивый ревьюер. Проверь изменения на баги, дублирование и
нарушение правил из CLAUDE.md. Выдай список проблем по приоритету.
Сам ничего не правь — только укажи, что и где.
commands/ — свои слэш-команды
Часто повторяемое действие можно повесить на свою команду. Кладёшь .claude/commands/deploy.md с инструкцией — и вызываешь её как /deploy. Удобно для рутины: проверка перед коммитом, сборка релиза, генерация отчёта. Пример .claude/commands/check.md (вызов — /check):
Прогони перед коммитом: линтер, тесты, поиск console.log и TODO
в изменённых файлах. Покажи сводку: что прошло, что упало.
Сам ничего не коммить — только отчёт.
Начинай с одного CLAUDE.md. Папку .claude/ наполняй по мере боли: раздулся файл → выноси в rules/; повторяешь инструкцию → делай skill; задача сложная и засоряет диалог → заводи agent. Не строй всё это заранее — усложнять раньше времени так же вредно, как не настраивать вовсе.
Что когда использовать: сравнение
Чтобы не путаться, держи в голове простую таблицу — какой инструмент под какую задачу:
| Инструмент | Что это | Когда использовать |
|---|---|---|
CLAUDE.md | Карта и базовые правила | Всегда. Основа проекта |
rules/ | Детальные правила по доменам | Когда правил много и они разные для разных частей |
skills/ | Переиспользуемый процесс | Когда повторяешь одну и ту же инструкцию |
agents/ | Отдельный агент со своим контекстом | Под узкую задачу (ревью, тесты), чтобы не засорять диалог |
commands/ | Своя слэш-команда | Под повторяемое действие-рутину |
Если коротко: CLAUDE.md — это «кто мы и где что», rules — «как делать», skills — «делай вот так по шагам», agents — «сходи сделай отдельно», commands — «запусти рутину».
Контекст-инжиниринг: окно, /context, /compact
Контекст — это всё, что Claude «держит в голове» в текущей сессии: подгруженные CLAUDE.md, открытые и упомянутые файлы, история диалога. У контекста есть предел — контекстное окно. И вот неочевидное: чем оно забитее, тем хуже и дороже работает модель. Лишнее не помогает, а размывает внимание и жжёт токены.
Поэтому контекстом управляют, а не сваливают в него всё подряд. Базовый набор приёмов:
- Опирайся на CLAUDE.md, а не на пересказ. Не объясняй проект заново в чате — это уже в карте.
- Подключай файлы точечно через
@. Нужно поправить модуль — дай ссылку@src/app.js, а не «прочитай весь проект». Связанное Claude дочитает сам. - Смотри загрузку через
/context. Команда показывает, чем забито окно. Если видишь мусор — пора чистить. - Сжимай длинные сессии через
/compact. Claude свернёт историю в краткую выжимку, освободив окно, но сохранив суть. - Начинай новую задачу с
/clear. Закончил одно — очисти контекст, чтобы старое не мешало следующему. - Большие данные — в файл, а не в чат. Длинный лог, таблицу, документ положи файлом и сошлись на него.
Если нужен внешний контекст (база знаний, документация, данные из другого сервиса) — это подключается через MCP-серверы. Они дают Claude доступ к источнику по запросу, не забивая окно постоянно. Но это отдельная тема для следующего гайда.
В окне должно быть ровно то, что нужно для текущей задачи — не больше. Раздутый контекст не делает Claude умнее, он делает его рассеяннее и дороже.
Рабочий процесс и Plan Mode
Настройка — не разовое действие, а привычка вести проект. Вот цикл, который держит всё в порядке и экономит нервы:
- Сложные задачи начинай с плана (Plan Mode). Прежде чем Claude тронет код, попроси сначала план — что и в каком порядке он изменит. Проверил, согласовал — запускаешь. Так не приходится откатывать сделанное.
- Иди маленькими итерациями. Одна задача — один понятный шаг. Большие расплывчатые задачи Claude выполняет хуже и дороже, и их тяжелее проверять.
- Проверяй на каждом шаге. Не копи десять изменений, чтобы потом разбираться в каше. Сделал — посмотрел — дальше.
- Обновляй CLAUDE.md, когда что-то меняется. Поменялся стек, добавилась команда, появилось правило — внеси сразу. Устаревшая карта вреднее, чем её отсутствие: Claude уверенно делает по неправде.
- Выноси повторяющееся. Третий раз объясняешь одно и то же — заведи правило или навык.
Рабочий пример: настраиваем проект с нуля
Соберём всё вместе на конкретном сценарии: ты хочешь сделать лендинг для своего цифрового продукта. Вот как выглядит правильный старт, по шагам:
- Создай одну корневую папку и открой её в Claude Code:
claudeиз этой папки. Всё про лендинг будет жить здесь. - Запусти
/initили дай промпт на генерацию CLAUDE.md. Получишь черновик карты — поправь под себя: цель (заявки), стек (например, чистый HTML/CSS), команды. - Опиши правила, которые важны: «тёмная тема, акцент оранжевый», «тексты — в моём голосе, примеры в /docs/voice.md», «не подключать тяжёлые библиотеки».
- Положи опору в файлы: примеры твоих текстов, описание продукта, референсы — в
/docs/. В CLAUDE.md только сошлись на них. - Работай через план. «Сначала структура страницы и план секций» → проверил → «теперь свёрстай первый экран» → проверил. Итерациями.
- Повторяемое — в навык. Если будешь делать ещё лендинги, оформи процесс как
skill, чтобы следующий собрать вдвое быстрее.
Час такой настройки экономит десятки часов потом: Claude перестаёт переспрашивать и выдаёт ровно то, что нужно, в твоём стиле. А главное — у тебя получается не разовый результат, а воспроизводимый процесс, который можно применять снова.
Разрешения и безопасность
Claude Code умеет запускать команды и менять файлы — поэтому стоит сразу очертить границы. Это делается в .claude/settings.json: что разрешено без спроса, а что требует подтверждения.
- Разрешай рутину — чтение файлов, безопасные команды (тесты, линтер), чтобы не подтверждать каждый шаг.
- Держи под подтверждением опасное — удаление, деплой, установку зависимостей, отправку наружу.
- Никогда не клади секреты в CLAUDE.md и не давай доступ к ключам «на всякий случай». Что не нужно — то не подключаем.
В .claude/settings.json это задаётся явно — что разрешено без вопросов, а что под запретом:
{
"permissions": {
"allow": ["Read", "Bash(npm test)", "Bash(npm run *)"],
"deny": ["Bash(rm -rf *)", "Bash(git push *)"]
}
}
Разрешай то, что не страшно откатить, и проси подтверждение на то, что трудно отменить. Это снимает 90% рисков и при этом не превращает работу в бесконечные «да/нет».
Хуки: автоматизация на событиях
Хуки — это команды, которые Claude Code запускает автоматически на определённые события: перед изменением файла, после команды, при старте сессии. Польза в том, чтобы не держать рутину в голове и не полагаться на то, что Claude «не забудет» — событие наступило, команда выполнилась.
Настраиваются в settings.json. Частый пример — автоматически форматировать код после каждой правки:
{
"hooks": {
"PostToolUse": [
{ "matcher": "Edit|Write", "command": "npm run format" }
]
}
}
Так же можно прогонять линтер после изменений, подтягивать свежие данные при старте сессии или логировать действия. Но не увлекайся на старте: заводи хук под конкретную повторяющуюся рутину, а не «на всякий случай» — иначе настройка превращается в кашу, в которой сам потом не разберёшься.
7 ошибок, которые ломают проект в Claude Code
- CLAUDE.md-простыня. Файл на 500 строк с документацией внутри. Claude тонет в нём так же, как и ты. Чинится: оставь карту, детали вынеси в
rules/и файлы. - Нет карты репозитория. Не написал, где что лежит — Claude ищет вслепую и жжёт токены на чтение лишнего. Чинится: добавь блок «Структура» одной строкой на папку.
- Дублирование контекста. Одно и то же в CLAUDE.md, в чате и в файлах. Claude получает противоречия. Чинится: один факт — одно место.
- Правила-«вода». «Пиши хороший код» бесполезно. Чинится: делай правила проверяемыми: «не меняй публичные API без пометки», «тесты обязательны».
- Карту не обновляют. Проект ушёл вперёд, CLAUDE.md остался — Claude уверенно делает по устаревшему. Чинится: правишь проект — правь карту в тот же заход.
- Грузят всё в контекст. «Прочитай весь проект» на каждую мелочь. Чинится: точечные ссылки через
@+/clearмежду задачами. - Работают без плана. Большая задача сразу «в бой» — и потом долгий откат. Чинится: Plan Mode на всё крупное.
Зачем всё это — или почему ты вайбкодишь в пустоту
Теперь честный вопрос, который мало кто себе задаёт. Ты научился настраивать проект, освоил Claude Code, собрал бота или лендинг. А дальше что?
У большинства — ничего. Проект лежит в папке. Ты потратил вечера, освоил реально крутой навык — и не заработал на нём ни рубля. Это и есть вайбкодинг в пустоту: ты кодишь, оно работает, тебе нравится — но денег это не приносит, потому что ты собираешь игрушки для себя, а не продукт для рынка.
«Умею собирать на ИИ» и «зарабатываю на ИИ» — это две разные вселенные, и между ними пропасть. Освоить инструмент легко, его осваивают тысячи. Превратить навык в актив, который приносит деньги, — почти никто. Не потому что сложно, а потому что об этом не думают: остаются на стадии «прикольно получилось».
Вся суть в одном развороте: вайбкодинг — это не цель, а инструмент. Цель — не код, а продукт, который продаётся. И всё, что ты настроил выше, ценно ровно тем, что на этом «станке» ты за вечер собираешь не игрушку, а продаваемую вещь: лендинг с оффером, бота-продавца, мини-сервис по подписке.
И вот тут появляется самое сильное направление — цифровой продукт без лица. Ты упаковываешь то, что научился собирать, в продукт, который продаётся много раз: без блога, без съёмок, без тебя в кадре. Лендинг, оффер, приём оплаты — собирается тем же Claude за тот же вечер. Один раз собрал — продаётся в фоне, пока ты делаешь следующий.
Я зарабатываю не на том, что вайбкожу. Я зарабатываю на продуктах, собранных вайбкодингом. Настроенный проект, про который весь этот гайд, — это первый кирпич. Без него ты просто кодишь в стол. С ним — собираешь актив.
Разница между «балуюсь ИИ по вечерам» и «ИИ кормит» — не в навыке. Навык у тебя уже будет. Разница в том, доведёшь ли ты дело до продукта и до первой продажи. Большинство не доводит. Те, кто доводит, — забирают рынок, пока остальные показывают друг другу скриншоты «смотрите, что я закодил».
Дальше у тебя два пути — и оба ведут к своему продукту. Разница в скорости и в том, сколько шишек набьёшь.
Разбираться по крупицам
- Месяцами собирать процесс по гайдам
- Самому искать, что и как продавать
- Дойти реально, но дольше и через ошибки
Собрать за 3 вечера на практикуме
- Настраиваем Claude под твой продукт
- Собираем продукт без лица по шагам
- Доводим до лендинга и первой продажи
Частые вопросы
Нужен ли CLAUDE.md для маленького проекта?
Да. Даже 10 строк с описанием проекта, стека и правил заметно повышают качество ответов и экономят токены. Для маленького проекта хватает одного короткого CLAUDE.md в корне.
Какого размера должен быть CLAUDE.md?
Оптимально 80–200 строк. Это карта, а не документация. Когда файл разрастается — выноси правила по доменам в .claude/rules/, а повторяющиеся инструкции в .claude/skills/.
Чем .claude/rules отличается от CLAUDE.md?
CLAUDE.md — общая карта и базовые правила, читается всегда. В .claude/rules/ выносят детальные правила по доменам, чтобы не раздувать основной файл и подгружать их по необходимости.
Чем skill отличается от subagent?
Skill — переиспользуемая инструкция-процесс, которую Claude применяет в текущем диалоге. Subagent — отдельный агент со своим контекстом и инструментами под узкую задачу (ревью, тесты), который не засоряет основной контекст.
Как Claude Code понимает структуру проекта?
Он читает CLAUDE.md при запуске и ориентируется по карте папок, а конкретные файлы открывает по ссылке или по необходимости. Поэтому карта важнее подробной документации.
Как не жечь токены?
Держи CLAUDE.md коротким, не дублируй контекст, подключай файлы точечно через @, чисти контекст между задачами через /clear и сжимай длинные сессии через /compact.
Нужно ли уметь программировать?
Базовое понимание структуры файлов помогает, но писать код руками не обязательно. Правильно настроенный проект позволяет собирать лендинги, ботов и сервисы, формулируя задачи словами.
Хочешь собрать на этом свой первый продукт?
На практикуме за 3 вечера настраиваем Claude под тебя, собираем цифровой продукт без лица и доводим до лендинга и первой продажи. Онлайн, запись навсегда.
Пройти практикум за 2 000 ₽Была статья полезной?
Матвей Абрамов