Веду эти разборы публично. В канале каждый день - инструменты, рабочие промпты и провалы вайб-кодинга, на которые я налетел сам. Подпишись там, где тебе удобнее:
Зачем нужен CLAUDE.md и почему Claude забывает проект без него?
Открываешь Claude Code во вторник, объясняешь: «я веду такой-то проект, инструменты такие, не делай вот этого». Работает.
В четверг тот же чат уже закрылся - и ты повторяешь всё заново. В субботу - снова, в понедельник - ещё раз.
Так выглядит работа с агентом без CLAUDE.md: каждое новое окно - пустой стажёр, которому ты повторяешь одно и то же. У меня на такой разогрев уходило 5-10 минут текста на каждую сессию. Промпты получались длинные - весь контекст приходилось тащить руками. И всё равно результат был генеричный: агент не видел мою аудиторию, мою экономику, мои принципы.
Это не проблема плохой памяти модели. Это архитектура. Claude Code специально стартует с чистого контекста в каждой сессии - иначе разные проекты на одном компьютере путались бы между собой. CLAUDE.md - механизм, через который ты сам говоришь агенту, что грузить.
С живым CLAUDE.md разогрев пропадает. Все правила, которые ты повторял в каждом чате, лежат в одном файле и автоматически попадают в начало каждой сессии. Промпт становится коротким: «сделай X», а не «я веду проект Y, инструменты Z, не делай A и B, и кстати помни ещё про C».
Дальше уходят повторяющиеся ошибки. Boris Cherny, создатель Claude Code, в своей домашней странице описывает это коротко: Anytime we see Claude do something incorrectly we add it to the CLAUDE.md, so Claude knows not to do it next time.
И третий слой - агент перестаёт писать в вакууме. Через CLAUDE.md я роутю Claude к папкам с контекстом: куда смотреть за информацией про аудиторию, куда за ценой, куда за брендингом. Без этого роутинга агент пишет «качественные решения», не зная моей экономики, и они получаются абстрактными, шаблонными, «как у всех».
Что такое CLAUDE.md и в каком порядке Claude его читает?
Anthropic в официальной документации описывает CLAUDE.md так: CLAUDE.md files are markdown files that give Claude persistent instructions for a project, your personal workflow, or your entire organization. You write these files in plain text; Claude reads them at the start of every session.
Четыре места, где Claude Code ищет CLAUDE.md, по возрастанию приоритета:
| Уровень | Где лежит | Зачем |
|---|---|---|
| Корпоративный | /Library/Application Support/ClaudeCode/CLAUDE.md на Mac, /etc/claude-code/CLAUDE.md на Linux | Правила, которые админ компании раскатывает на всю команду через MDM. Тебе как одиночке не нужно. |
| Пользовательский | ~/.claude/CLAUDE.md | Личные правила, которые работают во всех твоих проектах. «Всегда отвечай на русском», «не используй длинное тире». |
| Проектный | ./CLAUDE.md в корне проекта или ./.claude/CLAUDE.md | Правила конкретного проекта. Инструменты, структура папок, бизнес-логика. Этот файл коммитится в git. |
| Локальный | ./CLAUDE.local.md | Твои личные заметки по этому проекту, которые не должны попасть в git. Например, временные эксперименты или личные предпочтения, не нужные команде. |
Все четыре файла грузятся в контекст одновременно. Если правила противоречат - Anthropic в документации пишет прямо: какое сработает, неизвестно, Claude может выбрать одно из них произвольно. Поэтому проще держать всё критичное в проектном CLAUDE.md и не плодить дубли.
Имя файла строго регистр-чувствительное. CLAUDE.md заглавными - Claude его прочитает. claude.md или Claude.md - не прочитает. Та же история с CLAUDE.local.md. Это типовая ошибка у людей, которые впервые настраивают Claude Code: создал файл, написал инструкции, удивился что не работает - а имя в нижнем регистре.
Есть одна техническая деталь, про которую почти никто не пишет, но она объясняет много странного поведения. CLAUDE.md content is delivered as a user message after the system prompt, not as part of the system prompt itself. Claude reads it and tries to follow it, but there's no guarantee of strict compliance.
Перевожу: CLAUDE.md - не «системный промпт» в строгом смысле. Это первое сообщение от пользователя, которое Claude видит. Поэтому правила в нём - сильное пожелание, а не закон. Если правило очень важно и должно выполняться всегда без исключений - его лучше реализовывать через hooks (детерминированные команды, которые запускаются автоматически), а не через текст в CLAUDE.md. Про границу hooks vs CLAUDE.md разбираю ниже.
Как написать минимальный CLAUDE.md за 5 минут (готовый шаблон)?
Ниже шаблон, который я обкатал на десятках своих проектов. Он держит файл в районе 80-120 строк - этот диапазон Anthropic называет в документации (верхний потолок 200), и независимые гайды Bijit Ghosh, Alex Opalic, Jose Parreño García целятся в схожий порядок (50-150 строк). На нём агент даёт максимальную адекватность.
# [НАЗВАНИЕ ПРОЕКТА] - навигация по проекту
Этот документ - карта проекта. Читай его в начале каждой сессии,
чтобы понимать, где что лежит и как с этим работать.
## Что это за проект
**[НАЗВАНИЕ]** - [одно предложение: что это и для кого].
[1-2 предложения: какую задачу решает, как именно].
Подробности - в `business/INDEX.md`.
## Порядок чтения в начале любой сессии
1. `ai-clone/INDEX.md` - кто я и как думаю
2. `business/INDEX.md` - что мы делаем (продукт, аудитория, экономика)
3. `CLAUDE.md` (этот файл) - правила репо, инструменты, навигация
4. Зона задачи: нужный файл из `business/`, `plans/<актуальный план>`,
`mastery/<область>` или папка фичи в коде
Принцип: слой 1 (клон) - раньше слоя 2 (бизнес) не случайно.
Сначала **кто** думает, потом **о чём**.
## Структура репозитория
[НАЗВАНИЕ]/
├── CLAUDE.md ← этот файл, навигация
├── ai-clone/ ← цифровая проекция тебя (как думаешь, что ценишь)
│ └── INDEX.md
├── business/ ← второй мозг бизнеса
│ ├── INDEX.md
│ ├── audience/ ← портрет клиента
│ ├── products/ ← продукты, цены
│ ├── goals/ ← цели, метрики
│ └── economics/ ← unit-экономика, выручка
├── plans/ ← технические планы (один план = одна функция)
├── retrospectives/ ← рефлексии после каждой сессии
└── (код проекта)
### Где что искать
| Что нужно | Куда смотреть |
|---|---|
| Зачем делаем проект, для кого | `business/INDEX.md` |
| Целевой клиент, боли, желания | `business/audience/` |
| Продукт, тарифы, цены | `business/products/` |
| Цели и метрики | `business/goals/` |
| Экономика | `business/economics/` |
| Технические планы | `plans/` |
## Инструменты
[ВСТАВЬ ИНСТРУМЕНТЫ - например: Next.js 14, TypeScript, Tailwind CSS, Prisma + PostgreSQL].
## Правила репо
1. Никогда не хардкодить динамические данные (цены, даты, цифры) -
всё через файлы `business/` и маркер LIVE.
2. Не публиковать без явной команды от меня.
3. Перед `git push` - запускать `npm run build` и проверять, что
собирается без ошибок и предупреждений.
4. `git add` поимённо. Никогда `git add .` или `git add -A`.
5. `.env` не читать целиком. Для проверки переменной -
`grep "^VAR=" .env`.
## Большая фича = план в `plans/`
Любая задача дольше часа оформляется планом в папке `plans/`:
1. Имя файла: `YYYY-MM-DD-название-функции.md`.
2. План делится на фазы. У каждой фазы статус `[ ]` или `[x]`.
3. В конце плана - итог: реализован целиком или нет, что осталось.
## Цикл в конце каждой фичи
После завершения каждой фичи прогони 5 ходов:
1. Найди ошибки → докажи примером → исправь.
2. Что упустили (граничные случаи, проверка входных данных, обработка ошибок).
3. Это реальная проблема нашего проекта? Сверь с `business/` и `plans/`.
4. Свежий взгляд - перечитай diff, как будто видишь впервые.
5. Security review. Особенно: персональные данные + материалы третьих лиц.
## Рефлексия в конце сессии
В `retrospectives/YYYY-MM-DD_краткое-название.md` запиши:
1. Какая задача была.
2. Как решали.
3. Решили - да / нет / частично.
4. Что можно было лучше.
5. Что узнал нового о пользователе или проекте.
## Язык
Всегда отвечай на русском. Только дефис, не длинное тире.Чтобы Claude заполнил этот шаблон под твой проект автоматически, дай ему такой промпт. Он сам прочитает контекст и заполнит поля в квадратных скобках:
Создай в корне проекта файл CLAUDE.md по этому шаблону:
[ВСТАВЬ ШАБЛОН ЦЕЛИКОМ ИЗ ТЕКСТА ВЫШЕ]
Действуй так:
Прочитай ai-clone/INDEX.md и business/INDEX.md, чтобы понять контекст проекта и меня как автора.
Заполни в шаблоне все поля в квадратных скобках на основе того, что найдёшь в этих папках.
Если каких-то данных не хватает - задай мне уточняющие вопросы по одному, с 3-4 вариантами ответа.
Проверь, что итоговый CLAUDE.md не больше 200 строк. Если больше - сократи воду, но не удаляй разделы про план, рефлексию, правила репо.
Покажи мне итоговый файл и спроси, что доработать.
Всегда отвечай на русском.Если у тебя ещё нет папок ai-clone/ и business/ - не страшно. Claude задаст уточняющие вопросы и соберёт минимальный CLAUDE.md под то, что есть в проекте. Папки заведёшь позже, когда поймёшь, что туда складывать.
Какие 6 правил делают CLAUDE.md живым?
Правило 1. Держи под 200 строк
Anthropic в официальной документации пишет коротко: Target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.
Длинный CLAUDE.md убивает себя двумя путями. Первый - сжигает токены. Файл в 800 строк русского текста подгружается в каждое окно и съедает несколько тысяч токенов из твоего бюджета на каждую сессию. На подписке Pro с дневным лимитом это сокращает количество доступных сессий заметно. Второй - модель начинает игнорировать правила. The practical limit for a high-signal CLAUDE.md is 80 to 120 lines.
После 200 строк Anthropic в документации прямо предупреждает: адекватность модели падает, агент начинает «не слышать» твои правила. Это не реклама и не маркетинг - это техническая граница.
Если уже разогнался до 300-500 строк - не паникуй, разнеси по папкам. Детальные правила про, например, дизайн-систему - в business/assets/brand-guidelines.md. CLAUDE.md тогда ссылается одной строкой: «При работе с UI - сверяться с business/assets/brand-guidelines.md». Принцип роутинга: CLAUDE.md - оглавление, не книга.
Правило 2. Заканчивай каждую сессию рефлексией
В CLAUDE.md прописываешь: «в конце каждой сессии запиши, что сделал и что узнал, в файл retrospectives/YYYY-MM-DD_*.md». После этой строки Claude сам начинает каждую сессию завершать рефлексией - тебе не надо просить.
Зачем рефлексия:
- Через две недели открываешь старый retrospective и помнишь, почему пошёл именно по такому пути.
- Когда возвращаешься к проекту через месяц, у тебя готовая карта последних решений.
- Если работаешь с командой - партнёр читает retrospective и за 2 минуты понимает текущее состояние, без созвона.
Правило 3. Коммит после каждой завершённой задачи
У меня в CLAUDE.md прописано: «после каждой завершённой задачи делай git commit с осмысленным сообщением». Claude сам начинает разбивать работу на атомарные коммиты.
Это даёт две вещи. Первое - если что-то сломалось, ты откатываешься на одну операцию назад, не на «всё, что я делал сегодня». Второе - история коммитов превращается в журнал работы, по которому видно, что менялось и в каком порядке.
Правило 4. Всегда сверяйся с папкой business/
При любой задаче, которая касается клиентов, продукта или текстов - агент должен прежде всего открыть business/INDEX.md и нужный файл оттуда. У меня в CLAUDE.md это прописано явно: «при работе с UI или текстами - сначала смотри business/audience/avatar.md и business/assets/brand-guidelines.md».
Без этого правила Claude пишет тексты «в общем стиле качественного сайта». С ним - в твоём стиле, под твоего клиента, с твоими стоп-словами.
Правило 5. После каждой ошибки агента - дописываешь правило
Это главное правило, на которое держится живой CLAUDE.md. Boris Cherny формулирует его так же: каждый раз, когда Claude делает что-то не так, ты дописываешь одну строку в CLAUDE.md, и больше Claude эту ошибку не делает.
Примеры из моего собственного CLAUDE.md, которые появились после конкретных ошибок:
- «Никогда не коммитить чужие WIP-файлы через
git add .- стейджить поимённо». - «Перед push в
mainпроверятьgit log origin/main..main --oneline- если непусто, не пушить». - «Не выдумывать значения - брать из
.envили из кода. Особенно URL, юзернеймы, токены».
Каждая из этих строк - след от конкретной аварии. Кто-то агент один раз закоммитил незаконченную ветку партнёра. Один раз я зацепил чужие незапушенные коммиты. Один раз агент сочинил URL, которого нет. Каждая ошибка превращается в строку правила, и тот же выстрел в ногу не повторяется.
Правило 6. Безопасность - в .claude/settings.json, не в CLAUDE.md
В CLAUDE.md ты пишешь «не трогай .env», но это пожелание - Claude может его нарушить, потому что CLAUDE.md грузится как пользовательское сообщение, не как закон. Для критичной безопасности есть файл .claude/settings.json, через который ты можешь жёстко запретить агенту определённые команды.
Запрещённый список, который я ставлю на каждый новый проект:
rm -rf(удаление любых файлов рекурсивно).- Чтение
.envцеликом (Read .env). export+curlв одной команде (это паттерн утечки секретов наружу).git push --forceбез явного согласования.
Граница простая: правило в CLAUDE.md - совет, агент может нарушить. Правило в settings.json - блокировка, агент физически не сможет выполнить. Критичную безопасность держи в settings.json, всё остальное в CLAUDE.md.
CLAUDE.md - это фундамент одного из трёх китов вайб-кодинга по-взрослому, Второго мозга. Сам по себе он закрывает «куда смотреть Claude за контекстом». Но чтобы Claude перестал галлюцинировать совсем - нужны ещё два: ИИ-клон тебя (как ты думаешь и решаешь) и Контекст-инжиниринг (Plan Mode, /compact, Skills). На практикуме за 3 эфира собираешь все три кита под свой проект - получаешь надёжного агента, а не «помощника с галлюцинациями».
Как устроен CLAUDE.md действующего бизнеса (анатомия 280 строк)?
В большинстве примеров CLAUDE.md в интернете - технические шаблоны для разработчиков. «Используй TypeScript», «не пиши тесты больше 50 строк». Для предпринимателя такой CLAUDE.md бесполезен - он не покрывает бизнес-сторону.
Ниже скелет, по которому собран мой рабочий CLAUDE.md. Конкретные правила и пути убрал - они отражают мою внутрянку. Но структура и логика разделов переносится на любой проект: подставляешь свои реалии и получаешь рабочий файл.
1. Краткое описание проекта (15 строк). Что делаем, кто аудитория, какие продукты. Не пересказ маркетингового сайта - выжимка для агента, чтобы он понимал «куда мы».
2. ИИ-клон (10 строк). Указатель на папку ai-clone/ - цифровую проекцию моего мышления. Тон, ценности, принципы, стоп-слова. Когда Claude пишет текст «от меня» - он сначала читает эту папку, чтобы голос совпадал.
3. Структура репозитория (20 строк). Дерево с комментариями: где код, где бизнес-контекст, где планы, где рефлексии. Без этой карты Claude каждый раз ищет файлы вслепую.
4. Таблица «Где что искать» (25 строк). Роутинг «вопрос → файл». Например, для агентства недвижимости это могло бы выглядеть как «нужны условия по ипотеке → business/products/mortgage.md», «нужен tone-of-voice для постов → business/assets/voice.md». Подставляешь свои файлы. Эта таблица - сердце CLAUDE.md. Без неё агент гадает, в каком файле лежит ответ. С ней - идёт прямо к источнику.
5. Ключевые принципы проекта (40 строк, 10-15 пунктов). Это место копится медленнее всего и стоит дороже всего. Каждый пункт - след от конкретной ошибки. Скажем, для интернет-магазина это могли бы быть «никогда не хардкодить цены и сроки доставки», «не публиковать товар без явной команды», «перед публикацией карточки сверять стиль с бренд-словарём». Эта секция и есть «конституция проекта».
6. Операционное планирование (20 строк). Триггер-таблица «фраза пользователя → действие». Например, «когда я говорю "план на неделю" - открой ops/monthly.md и создай файл недели». Это превращает Claude в операционного ассистента, который понимает контекст команд.
7. Инструменты (5 строк). Технологии. Коротко, без воды.
8. Публикация (15 строк). Пошаговый алгоритм публикации изменений в продакшен. Какие команды, в каком порядке, что проверять. Раньше я каждый раз объяснял заново. Сейчас Claude знает.
9-12. Безопасность (35 строк). Четыре отдельных подраздела: правила работы с .env, доступ к продовой базе, безопасные команды для демонстрации (скринкасты, стримы, скриншоты - чтобы случайно не засветить токены), правила ротации секретов.
13. Папка plans/ (10 строк). Канон планов. Имя файла, структура фаз, что писать в итоговом блоке.
14. Папка retrospectives/ (5 строк). Канон рефлексий. Шаблон, имя файла, что должно быть внутри.
15. Живые данные из БД (15 строк). Правило про метку «свежих данных»: когда в файле помечено, что цифры должны быть актуальными - агент идёт за ними в источник, не использует старые. Это снимает риск, что Claude будет тащить вчерашние цифры.
16. Язык (3 строки). «Всегда отвечай на русском. Только дефис, не длинное тире.»
Итого около 280 строк. Чуть выше anthropic-ского рекомендованного потолка, но я держу - потому что часть строк это таблицы, которые в токенах считаются дешевле обычного текста.
Структура, которая у меня получилась за год работы - не догма. Скелет такой: описание (1-2 раздела), структура и роутинг (2-3 раздела), правила/принципы (1 большой раздел), операционные процедуры (2-3 раздела, специфичные для твоего бизнеса), мелочи (язык, контакты). Под свой бизнес наполняешь специфичными деталями. Главное правило: каждый раздел должен отвечать на вопрос «без этого Claude сделал бы ошибку?». Если нет - убираешь.
Что делает команда /init и почему её недостаточно?
Anthropic в документации описывает команду так: Run /init to generate a starting CLAUDE.md automatically. Claude analyzes your codebase and creates a file with build commands, test instructions, and project conventions it discovers.
Что /init делает хорошо:
- Распознаёт, инструменты по
package.json,Cargo.toml,pyproject.toml. - Прописывает команды сборки и запуска тестов.
- Подхватывает конвенции из существующих файлов (
.eslintrc,.prettierrc). - Замечает уже существующие
AGENTS.mdили.cursorrulesи встраивает релевантные части.
Что /init не сделает:
- Не узнает, кто твой клиент.
- Не пропишет твои стоп-слова в текстах.
- Не поставит правила про ошибки агента (потому что ошибок ещё не было).
- Не сделает таблицу «где что искать» под твою бизнес-структуру.
Поэтому правильный сценарий такой:
Запусти /init в Claude Code
Получишь стартовый CLAUDE.md на 30-50 строк со инструментами и командами. Это техническая основа.Накати поверх шаблон из этой статьи
Из секции «Минимальный CLAUDE.md за 5 минут». Добавь разделы про навигацию, роутинг, принципы.Заполни поля в квадратных скобках
Дай Claude промпт «прочитай мой проект и заполни шаблон». Если папокbusiness/иai-clone/ещё нет - Claude задаст уточняющие вопросы.Прогони стресс-тест
Скажи Claude «прочитай мой CLAUDE.md, найди 10 двусмысленностей, из-за которых ты как агент можешь понять неправильно». Получишь список правок.Дальше - живи с файлом
После каждой ошибки агента дописывай строку. Через месяц у тебя живой CLAUDE.md под твой бизнес.
Промпт для четвёртого шага:
У меня есть CLAUDE.md. Завтра я буду собирать по нему фичу.
Твоя задача - стресс-тест. Найди 10 причин, из-за которых мы потенциально облажаемся:
где в CLAUDE.md двусмысленности, которые ты как агент можешь понять неправильно
где есть пробелы, из-за которых решения придётся выдумывать
где правила противоречат сами себе
где я переоцениваю объём одного дня
где недооцениваю (это даже хуже)
Не стесняйся. Критикуй жёстко. Я хочу найти эти причины сейчас, а не в проде.
В конце дай список конкретных правок: что и как поменять, чтобы этих причин не было.CLAUDE.md vs AGENTS.md vs MEMORY.md: кто кого читает в 2026?
| Файл | Кто пишет | Кто читает | Когда грузится |
|---|---|---|---|
| CLAUDE.md | Ты вручную | Claude Code (нативно) | В начале каждой сессии |
| AGENTS.md | Ты вручную | Codex CLI, Cursor, GitHub Copilot CLI, Gemini CLI | В начале каждой сессии (у этих агентов) |
| MEMORY.md | Claude Code сам | Claude Code (нативно) | В начале каждой сессии, первые 200 строк (или 25 KB, что меньше) |
Главный вопрос, на который путаются новички: читает ли Claude Code файл Claude Code reads CLAUDE.md, not AGENTS.md. If your repository already uses AGENTS.md for other coding agents, create a CLAUDE.md that imports it so both tools read the same instructions without duplicating them.AGENTS.md? Anthropic отвечает чётко:
То есть автоматического запасного варианта нет. Чтобы Claude увидел AGENTS.md - надо явно прописать в CLAUDE.md:
@AGENTS.md
## Claude Code
Дополнительные правила для Claude Code, которые не нужны другим агентам.Этот синтаксис @filename - импорт другого файла. Claude его прочитает и подгрузит в контекст вместе с CLAUDE.md.
Когда нужен AGENTS.md. Если ты работаешь параллельно в Claude Code и в Codex CLI / Cursor / Copilot - заводишь AGENTS.md как единый источник правды, в CLAUDE.md делаешь @AGENTS.md и добавляешь поверх специфичные для Claude правила. Если работаешь только в Claude Code - AGENTS.md тебе не нужен, оставайся с одним CLAUDE.md.
Что такое MEMORY.md. С недавнего обновления Claude Code сам автоматически ведёт заметки про тебя в файле ~/.claude/projects/<имя-проекта>/memory/MEMORY.md. Туда попадают разговорные привычки («пользователь предпочитает короткие ответы»), повторяющиеся фразы («запретил эмодзи в коде»), наблюдения за поведением («работает на macOS, использует zsh»).
Это отдельная система памяти, не CLAUDE.md. Ты её не пишешь руками - Claude пишет сам, на основе общения. Если в MEMORY.md появилось что-то, что должно стать правилом - переноси в CLAUDE.md. Если в MEMORY.md появилось что-то лишнее или ошибочное - можешь удалить вручную, файл текстовый.
Чтобы посмотреть, что сейчас грузится в начало сессии - в Claude Code набери /memory. Покажет содержимое CLAUDE.md, MEMORY.md и других подгружаемых файлов. Полезно, когда Claude ведёт себя странно: открываешь /memory, ищешь, какое правило могло выстрелить.
Какой размер CLAUDE.md правильный и почему 1000 строк убьёт контекст?
В каждом окне Claude Code загружает в контекст несколько слоёв: системный промпт от Anthropic (по разным оценкам - десятки тысяч токенов), твой CLAUDE.md, импортированные через @ файлы, MEMORY.md, история текущего чата, тело файлов которые Claude открывает. Всё это вместе должно влезть в контекст модели (200K токенов у Sonnet, 1M у Opus).
Чем больше CLAUDE.md - тем меньше места для актуальной работы. Файл на 1000 строк это примерно 8 000 токенов, повторяющихся в каждой сессии. На Pro-подписке (по моему опыту - около 10-12 «тяжёлых» промптов в день) это режет твой ресурс на четверть.
Но проблема не только в деньгах. У моделей есть наблюдаемое свойство: первые 150-200 инструкций в контексте выполняются надёжно, дальше начинается «гниение контекста» (context rot) - правила в тексте есть, но агент перестаёт их выполнять. Эффект тем сильнее, чем длиннее контекст. Длинный CLAUDE.md эту проблему усиливает - правила, которые ты считал важными, начинают молча игнорироваться.
Bloated CLAUDE.md files cause Claude to ignore your actual instructions.
Поэтому правило размера такое:
- 80-120 строк - оптимум. Это диапазон, который рекомендуют независимые авторы Bijit Ghosh, Alex Opalic, Jose Parreño García. Файл умещается на 2-3 экрана, читается за минуту глазами, агент выполняет 90%+ правил.
- 150-200 строк - предел. Anthropic называет 200 как «target under». Файл всё ещё работает, но требует ревизии каждые пару недель.
- 200-300 строк - тревожная зона. Claude Code начинает показывать предупреждение в стартовом сообщении. Половина правил молча игнорируется.
- 400+ строк - функционально мёртвый файл. Агент его «видит», но «не слышит». Резать.
Если CLAUDE.md разросся - не делай рефакторинг руками. Дай Claude промпт: «прочитай CLAUDE.md, оцени каждую строку по принципу «если убрать эту строку, агент сделает ошибку?», верни список строк, которые можно убрать без потери, с обоснованием». Удалит то, что объективно не работает.
Anthropic в документации даёт прямой тест: For each line, ask: "Would removing this cause Claude to make mistakes?" If not, cut it.
Применяй на каждой строке. Если ответ - «всё равно бы сделал правильно» - убирай. CLAUDE.md не место для документации, истории решений, философии. Только для тех правил, без которых агент облажается.
Какие 7 ошибок делают CLAUDE.md мёртвым?
Ошибка 1. «Будь хорошим инженером»
Самая частая ошибка. В CLAUDE.md пишут общие пожелания: «пиши чистый код», «используй лучшие практики», «думай как senior engineer».
Это слова, которые ничего не значат. Claude и так пишет «чистый код» в общем смысле. Эти строки занимают место в контексте и не влияют ни на одно решение. Bijit Ghosh формулирует жёстко: If you removed this line, would Claude do something wrong? If not, cut it.
Замена: вместо «пиши чистый код» - «используй 2 пробела для отступов», «не используй any в TypeScript», «функции не длиннее 30 строк». Конкретно, проверяемо.
Ошибка 2. Дубли того, что Claude и так знает
Описание стандартных конвенций языка («в JavaScript функции - это first-class citizens», «в TypeScript есть строгая типизация»). Объяснения, как работают npm/git/docker.
Claude всё это знает с тренировки. Дубль в CLAUDE.md ничего не добавляет, только режет твой контекст.
Ошибка 3. Длинные пошаговые инструкции внутри CLAUDE.md
Длинные инструкции «как развернуть проект», «как написать миграцию БД», «как настроить новый компонент». Десятки строк step-by-step.
Это не место для длинных пошаговых инструкций. Это место для правил-однострочников. Длинные инструкции - в skills/ (отдельный механизм Claude Code, грузится on-demand) или в docs/. В CLAUDE.md - ссылка одной строкой: «При создании новой миграции - открой docs/migrations.md».
Ошибка 4. Правила, которые уже проверяет автоматический анализатор кода
«Используй точки с запятой», «не оставляй неиспользованные импорты», «не используй var». Всё это ловит ESLint, Prettier, Biome - линтеры (инструменты автоматической проверки кода).
Линтер - детерминированный: запустился, нашёл ошибку, поправил. Правило в CLAUDE.md - вероятностное, агент может забыть. Дубль не нужен - проще настроить линтер.
Ошибка 5. Секреты в CLAUDE.md
Видел: пароли тестовых аккаунтов, токены sandbox API, ссылки на admin-панели с авторизацией. Всё это лежит в файле, который коммитится в git и попадает в контекст модели от Anthropic.
Никогда. Секреты - в .env, который в .gitignore. В CLAUDE.md максимум - правило «не читай .env целиком, для конкретной переменной - grep».
Ошибка 6. Файл-помойка на 500+ строк, который никто не чистил полгода
CLAUDE.md разросся, дублирует половину docs/, противоречит сам себе в нескольких местах, никто не помнит, что там. Агент начинает игнорировать большую часть. Команда жалуется, что «Claude не выполняет инструкции», и добавляет ещё пунктов, делая хуже.
Признаки запущенного CLAUDE.md: больше 300 строк, есть повторяющиеся правила в разных секциях, есть устаревшие ссылки на файлы, которых уже нет, есть «исторические» примечания типа «в 2024 мы решили вот так, потом передумали».
Лечение: раз в две недели запускать Claude на ревизию по тесту Anthropic «если убрать эту строку - агент сделает ошибку?». Удалить всё, на что ответ «нет».
Ошибка 7. CLAUDE.md создан и забыт
Это противоположная ошибка предыдущей. Файл собрали один раз, два месяца назад, больше не трогали. За это время сменился инструменты, добавились новые папки, нашлись новые ошибки агента. CLAUDE.md ничего из этого не знает, потому что его никто не дописывал.
Признак: ты повторяешь одно и то же правило в каждой сессии. «Не делай X», «не трогай Y», «помни про Z». Если повторяешь больше двух раз - правило должно жить в CLAUDE.md, а не у тебя в голове.
Как сделать CLAUDE.md самообучающимся через правило «обнови в конце сессии»?
В моём CLAUDE.md есть короткий блок:
## Самообучение
В конце каждой сессии проверь:
- узнал ли я что-то новое о пользователе или о работе с ним?
- нарушил ли я какое-то правило, которое теперь надо зафиксировать?
Если да - создай или обнови файл в `ai-clone/feedback/` по формату:
Rule (правило одной строкой) → Why (почему появилось)
→ How to apply (когда срабатывает).
Я не пишу правила руками - я говорю «не так, потому что вот так»,
а ты оформляешь это в файл.После того, как этот блок появился в CLAUDE.md, Claude в конце каждой сессии сам спрашивает: «было ли что-то новое, что стоит зафиксировать?». Если было - предлагает черновик правила, я уточняю, файл создаётся.
Через два месяца такой работы в папке ai-clone/feedback/ у меня лежит больше двух десятков файлов - правила, выученные через конкретные ошибки. Каждый файл - одна страница, формат Rule → Why → How. Папка стала «второй памятью», в которой записаны мои индивидуальные предпочтения и табу.
Это то, что Дэн Шиппер из издания every.to называет «compounding engineering» - сложные проценты в инженерии. Каждая ошибка не повторяется, потому что превращается в правило, а правила накапливаются и усиливают друг друга. Через полгода Claude знает мой проект лучше, чем я сам помню после месячного перерыва.
Сам Boris Cherny, который вёл разработку Claude Code в Anthropic, в публичном разборе своего рабочего файла говорит то же самое - каждую ошибку Claude они с командой превращают в правило в их собственном CLAUDE.md. Это не маркетинговая фраза - это так и работает.
Как добавить в CLAUDE.md юр. правила, маркетинг и операционку?
У большинства команд CLAUDE.md - чисто технический документ. Инструменты, команды сборки, конвенции кода. Это рабочее, но это треть пользы.
Когда CLAUDE.md ведёт предприниматель, в него имеет смысл добавить бизнес-разделы. Три важных:
Юр. правила (для регулируемых рынков)
Если ты публикуешь тексты в регулируемой отрасли (финансы, медицина, реклама лекарств, детские товары) - стоп-слова имеют юридический вес, и им место в CLAUDE.md как явному правилу. Не в голове, не в скриншоте у редактора - в файле, который агент видит каждую сессию.
Пример для финтех-проекта без банковской лицензии:
🚨 КРИТИЧНО - запрет финансовой лексики. В клиентских материалах не используем: «вклад», «депозит», «гарантированная доходность», «инвестиционный продукт». Используем: «накопительный счёт», «ожидаемая доходность», «продукт с переменной ставкой». Причина - требования ЦБ к рекламе финуслуг.
Этот блок в CLAUDE.md делает простую вещь: каждый раз, когда ты просишь Claude написать клиентский текст, агент сам прогоняет его через эти запреты. Без правила запрещённые слова всплывают в каждой третьей рассылке. С ним - забываешь, что они существуют.
То же самое работает для:
- Медицинских проектов (запрет обещаний «лечит», «вылечивает»).
- Рекламы лекарств (запрет «самый эффективный», обязательные предупреждения).
- Любых регулируемых отраслей со своими правилами рекламы.
Маркетинговый стиль и формат текстов
Если ты постоянно публикуешь тексты (соцсети, рассылки, сайты) - формат стоит зафиксировать одним абзацем в CLAUDE.md. Пример того, как такое правило мог бы оформить блогер или агентство, ведущее канал в мессенджере:
При написании постов в канал - сверяться со
style/posts.md. Использовать допустимые маркеры разметки канала, без «опасных» спецсимволов. CTA в конце - с UTM-меткой по конвенцииutm_source=<канал>&utm_medium=<тип>&utm_campaign=<слаг>.
Раньше Claude писал посты «в общем стиле маркетингового сайта». Сейчас - в твоём формате, с твоими UTM, без палева ИИ-копирайтера.
Операционные привычки
Триггер-таблицы. Когда ты говоришь конкретную фразу, агент знает, какие файлы открыть и какие действия сделать. Пример того, как это могло бы выглядеть для команды, которая ведёт планирование по неделям:
«План на неделю» → открой
ops/monthly.md, создай файлYYYY-WNN.mdв той же папке, перенеси задачи изops/backlog.mdпод нужные дни. «Что в бэклоге?» → прочитайops/backlog.md, покажи списком. «Закрой неделю» → заполни секцию «Итог недели» в файле текущей недели.
После добавления таких таблиц Claude превращается из «помощника, который пишет код» в «оператора», который знает рутину твоего бизнеса. Каждый понедельник я говорю «давай спланируем неделю» - и Claude сам открывает нужные файлы, читает месячные цели, предлагает разбивку.
Бизнес-расширение CLAUDE.md имеет смысл, когда у тебя уже есть папка business/ с реальным контекстом - аудиторией, продуктами, целями. Если папки нет - сначала собери business/, потом добавляй ссылки на неё в CLAUDE.md. Иначе будут «висящие» инструкции в пустоту.
Как проверить свой CLAUDE.md по чек-листу из 12 пунктов за 5 минут?
- Размер. Файл меньше 200 строк?
- Имя. Точно
CLAUDE.mdзаглавными буквами, неclaude.md? - Расположение. В корне проекта или в
./.claude/CLAUDE.md? - Описание проекта. В первых 5 строках понятно, что это за проект и для кого?
- Инструменты. Технологии перечислены явно, без воды?
- Структура. Есть схема репозитория с пояснениями?
- Роутинг. Есть таблица «вопрос → файл», где искать ответы?
- Принципы. Есть раздел с правилами, начинающимися с «никогда» и «всегда»?
- Конкретность. Каждое правило проверяемо? («Используй 2 пробела», не «пиши красиво».)
- Самообновление. Прописано правило «в конце сессии проверь, что добавить»?
- Рефлексия. Прописано правило «запиши итог сессии в
retrospectives/»? - Безопасность. Критичные запреты (
.env,rm -rf) дублированы в.claude/settings.json?
Если «нет» больше пяти - открой Claude и дай промпт:
Прочитай мой CLAUDE.md и сверь его с чек-листом ниже. По каждому пункту скажи: да / нет / частично, и что конкретно поправить.
Чек-лист:
Размер меньше 200 строк
Описание проекта в первых 5 строках
Инструменты перечислены явно
Есть схема структуры репозитория
Есть таблица «вопрос → файл»
Есть раздел принципов с правилами
Каждое правило конкретно и проверяемо
Прописано правило «обнови в конце сессии»
Прописано правило «рефлексия в конце сессии»
Критичные запреты есть в .claude/settings.json
Нет дублей одного правила в разных секциях
Нет «висящих» ссылок на файлы, которых уже нет
После аудита - дай список конкретных правок, которые сделают файл живым.Что использовать после CLAUDE.md: Plan Mode, Skills, sub-agents?
CLAUDE.md - это фундамент. Когда он работает, поверх него заводятся три механизма Claude Code, которые усиливают друг друга.
Plan Mode. Режим, в котором Claude сначала составляет план изменений, ждёт твоего одобрения, и только потом начинает делать. Включается клавишей Shift+Tab или командой /plan. Снимает основную боль вайб-кодинга: «попросил Claude поправить одну вещь, он переписал половину проекта». В Plan Mode такого не случится - ты видишь план до того, как агент тронет файлы.
Skills. Отдельные .md-файлы в папке .claude/skills/, в которых лежит знание для конкретного типа задач. Например, скилл «как написать миграцию БД» содержит конкретный алгоритм, шаблон, примеры. В CLAUDE.md этого знания нет - оно слишком объёмное. Но когда Claude встречает задачу «напиши миграцию» - он сам подгружает соответствующий скилл и работает по нему.
Sub-agents. Когда задача требует много контекста (например, ревью большой фичи), Claude может запустить отдельный sub-agent в собственном чистом контексте. Sub-agent сделает работу, вернёт результат, и его контекст не будет загрязнять твой основной чат.
Все три механизма используют CLAUDE.md как точку входа - они читают его в начале своей работы, чтобы понять контекст проекта. Поэтому без живого CLAUDE.md эти штуки тоже работают плохо. Сначала фундамент, потом надстройка.
Следующий шаг. Создай в корне проекта файл CLAUDE.md, скопируй шаблон из начала статьи, заполни поля в квадратных скобках через промпт-помощник. Дальше - живи с файлом: каждая ошибка агента превращается в одну новую строку. Через две-три недели CLAUDE.md перестаёт быть «документом, который мы написали и забыли», и становится тем, к чему Claude реально обращается каждую сессию.
Если хочешь собрать вокруг CLAUDE.md полный каркас - папку business/ со вторым мозгом, папку ai-clone/ с цифровой проекцией тебя, базовые скиллы, настроенный Plan Mode - это мы за 3 дня делаем на практикуме по смысло-кодингу. С готовыми инструкциями, эфирами, разборами твоего проекта.
Источники
- Anthropic - Claude Code Memory - официальная документация про CLAUDE.md, MEMORY.md и иерархию загрузки
- Anthropic - Best Practices - правила написания эффективного CLAUDE.md, тест «would removing this cause Claude to make mistakes?»
- Anthropic Support - Give Claude Context - саппортовский гайд про работу с контекстом
- How Boris Uses Claude Code - сам Boris Cherny, создатель Claude Code, описывает свою рабочую систему
- The Complete Guide to CLAUDE.md - Bijit Ghosh - системный гайд: пять обязательных секций, размер 80-120 строк, типовые ошибки
- Stop Bloating Your CLAUDE.md - Alex Opalic - прогрессивное раскрытие, как не раздувать файл
- Claude Code Memory Explained - Jose Parreño García - разделение personality vs coordination
- Practicum по смысло-кодингу - трёхдневная сборка каркаса CLAUDE.md,
business/иai-clone/под твой проект
Полная схема по вайб-кодингу за вечер: ИИ-клон + Второй мозг + Контекст-инжиниринг. 3 эфира по 2 часа, записи остаются у тебя.

