TL;DR
- На реальном репозитории с CLAUDE.md в 177 строк, 3 skills и 1 хуком удаление всего сломало ровно одно правило, и только в одной ситуации: правило i18n для совершенно нового файла. Все остальные соглашения сохранились, потому что окружающий код уже их показывал.
- Файл стоил 4-14% прочитанных токенов на задачах, где результат был идентичным, примерно один доллар из десяти. Громкая экономия в 32% почти целиком держится на одной задаче, где файл заставлял модель делать больше работы.
- Skills и хук не стоили ничего измеримого: skills загружаются при вызове, и ни один не вызывался, а хук добавляет одно предложение.
- Обзор архитектуры на 82 строки ничего не дал на вопрос об архитектуре: шесть ответов, все верные, с файлом и без него.
- «Удалить» словами самой Anthropic значит провести абляцию и перейти к progressive disclosure, а не стереть. Оставьте правила, которым код научить не может, остальное вынесите в rules-файлы и skills, а непреложные требования превратите в хуки.
- Два прогона на конфигурацию это нижняя граница, а не вердикт: отклонения по задаче меньше 15% лежат в пределах шума между прогонами.
Что показывают измерения
Доклад, на который все реагируют, говорит две вещи, и вторую обычно теряют. Борис Черни подтверждает со сцены, что Claude Code удалил 80% системного промпта, и описывает метод: удалить системный промпт целиком, затем возвращать его строка за строкой, измеряя влияние каждой s2. Фрагмент «every 6 months» находится на 00:06:58-00:07:05, и формулировка там «really do recommend», а не «strongly recommend» s1. Двух фраз, которые ему часто приписывают, в докладе нет: «context, goals and a definition of done» (ближайшая настоящая фраза на 15:22: «describe the task, the guardrails, the exit criteria») и «64 agents». Он говорит «eleven days», а на вопрос о числе агентов отвечает «I'm not sure» s2. Цифра 64 относится к посту о переписывании Bun: «64 Claudes running for 11 days», около $165,000 по тарифам API, 9 миллиардов некэшированных входных токенов, 690 миллионов выходных и 72 миллиарда чтений кэшированных входных токенов s14.
Измеримым всё это делает механизм загрузки. CLAUDE.md и rules-файлы подставляются на каждом ходу; skills загружаются только при вызове. В документации по памяти есть и рекомендация по размеру, которую все пересказывают: «target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.» s4. Письменная версия совета от Anthropic называет центральный CLAUDE.md в репозитории мифом и отсылает к progressive disclosure и auto-memory s3.
Единственное контролируемое исследование до нашего это статья ETH про AGENTS.md: 138 задач в 12 репозиториях и вывод «providing context files does not generally improve task success rates, while increasing inference cost by over 20% on average». Файлы, написанные разработчиками, в среднем на 7% лучше сгенерированных LLM, а инструкции с названием конкретных инструментов действительно помогают s5.
Ещё два факта о том, что лежит в таких файлах и как их читают. По 28,721 репозиторию и 165,063 файлам у медианного файла инструкций 50 элементов содержимого, из которых настоящих директив 12; по формулировке автора, лишь 27% файла делают то, что вы думаете s8. В контролируемом эксперименте с двумя действительно конфликтующими инструкциями перенос одного правила из начала файла в конец меняет частоту его выполнения примерно на 90 пунктов, от почти никогда до почти всегда s9. Тот же издатель проводит границу, которой следует наш эксперимент: абляция это не удаление, а хуки это принуждение, они не устаревают с обновлением модели s7.
Два неформальных ориентира совпали с нашим результатом. CLAUDE.md в 1,000 строк против урезанной версии примерно в 20 строк на тех же GitHub-задачах с той же моделью: архитектура держалась, внутренние правила ломались s6. Комментатор, перенесший всё в progressive disclosure, сообщает, что автозагружаемый контекст упал с ~35k до ~4.5k токенов за сессию без потери знаний s11. Для оценки абляции skills есть инструмент: --ablate в caliper охватывает skills и MCP-серверы, а compare показывает долю успехов, токены и время; подмена CLAUDE.md остаётся ручной s16.
Измерения
Протокол: один приватный репозиторий Expo / React Native (1,021 отслеживаемый файл), CLAUDE.md на 177 строк, 7,243 символа, около 1,800 токенов, 3 skills, 4 slash-команды, 1 хук PreToolUse. Модель зафиксирована как claude-opus-5 для каждого прогона, Claude Code 2.1.278, headless claude -p, --max-turns 40, каталог пользовательской конфигурации пуст, без MCP, перед каждым прогоном свежий клон. Пять повседневных задач (новый компонент, правка компонента, рефакторинг общих хелперов, сохранение поля стора, объяснение пути данных), абляция по одному элементу. 44 прогона, $38.97 по тарифам API, 92 минуты времени агента. Оценка: внутренние правила репозитория на добавленных строках, tsc --noEmit, eslint, ответы оценивались вручную.
Качество, что сломалось:
| конфигурация | прогонов с правками | нарушений правил | новых ошибок tsc | ошибок eslint |
|---|---|---|---|---|
| A полная | 8 | 0 | 0 | 0 |
| B без CLAUDE.md | 8 | 1 (новый заголовок захардкожен, нет .content.ts) |
0 | 0 |
| C без skills | 4 | 0 | 0 | 0 |
| D без хука | 4 | 0 | 0 | 0 |
| E ничего | 8 | 2 (заголовок захардкожен дважды, нет .content.ts) |
0 | 0 |
Стоимость прогона, среднее по прогонам конфигурации (токены = чтения кэша, контекст, перечитываемый на каждом ходу):
| конфигурация | прогонов | $ / прогон | ходов / прогон | прочитано токенов / прогон |
|---|---|---|---|---|
| A полная | 10 | 0.95 | 25.6 | 829k |
| B без CLAUDE.md | 10 | 0.74 | 21.9 | 568k |
| C без skills | 5 | 0.96 | 28.2 | 819k |
| D без хука | 5 | 0.96 | 27.8 | 851k |
| E ничего | 10 | 0.85 | 25.7 | 655k |
По задачам, от A к B (среднее по 2 прогонам):
| задача | A $ | B $ | стоимость | прочитано токенов |
|---|---|---|---|---|
| T1 новый компонент | 1.72 | 0.96 | -44% | -61% |
| T2 правка компонента | 1.49 | 1.26 | -15% | -15% |
| T3 рефакторинг | 0.64 | 0.63 | -1% | -5% |
| T4 стор | 0.57 | 0.53 | -6% | -4% |
| T5 вопрос | 0.34 | 0.31 | -9% | -14% |
| все 10 прогонов | 9.51 | 7.40 | -22% | -32% |
Как читать таблицы. Без CLAUDE.md в 3 из 4 прогонов с новым компонентом заголовок был записан обычной строкой; с ним все 4 создали .content.ts с EN и FR. В задаче правки каждая конфигурация, даже E, положила новую строку в .content.ts: соглашение несли соседние файлы. Всё остальное выдержало все 44 прогона: 0 относительных импортов, type вместо interface в шести правках файла типов, дизайн-токены в каждом диффе, 0 hex-цветов, никаких barrel-файлов. Одну инструкцию не смог выполнить никто: файл требует импортировать theme из @design-tokens, но такого алиаса в tsconfig.json нет; ни один прогон ни в одной конфигурации его не использовал, 1,800 токенов читаются впустую в каждой сессии. Экономия в T1 это более дешёвый прогон, делающий меньше работы. Разброс между прогонами больше большинства эффектов конфигурации: T1 с полной конфигурацией стоил $2.11, затем $1.33. Контроль с графом кода на 333 MB дал цифры полной конфигурации ($1.59 против $1.72 на T1, $0.38 против $0.34 на T5): блок графа и хук ничего измеримого не изменили.
Сделайте в понедельник
- Посчитайте свой CLAUDE.md: строки, символы и число строк, которые действительно директивы (Always, Never, Use, Prefer). Остальное это контекст, который модель перечитывает на каждом ходу.
- Для каждого раздела выберите одно соглашение и проверьте, показывает ли его соседний файл. Если три файла в папке следуют правилу, строка кандидат на удаление.
- Найдите то одно правило, которому код не научит на совершенно новом файле (i18n, телеметрия, лицензионные заголовки, обязательный шаг регистрации). Оставьте его, сформулируйте одной строкой и поставьте ближе к началу.
- Проверьте каждый путь импорта и каждую команду, которые называет ваш файл. Мёртвый алиас или переименованный скрипт это инструкция, которую никто не может выполнить.
- Вынесите длинные обзоры архитектуры и инструкции по настройке в rules-файл или skill, загружаемый по требованию, и сравните автозагружаемый контекст до и после.
- Превратите две-три непреложные вещи в хук или правило линтера. Принуждение не зависит от того, прочитает ли модель абзац.
- Прогоните две самые частые задачи дважды с файлом и дважды без, на зафиксированной модели, и посмотрите токены и дифф. Два прогона подсказывают, куда смотреть, а не что заключить.
Читать дальше
- Сам доклад, ради метода, а не цитаты: удалить, затем возвращать строка за строкой s2.
- Полный набор результатов статьи, включая вывод, что файлы от разработчиков на 7% лучше сгенерированных и что названия инструментов помогают s5.
- Положение правила как переменная: разброс в ~90 пунктов и то, как модель молча разрешает конфликтующие инструкции s9.
- Анатомия файла инструкций по 30k репозиториев: 50 элементов, 12 директив и что такое остальные 38 s8.
- Руководство HumanLayer по написанию хорошего CLAUDE.md и ветка, которая с ним спорит s10.
- Ветка «MUST use agent, ignored 80% of the time»: аргумент за хуки там, где проза не работает s12.
- Ветка «Claude Code now ignores everything», полезная, чтобы отличить дрейф модели от конфликта инструкций s13.
- caliper, чтобы оценивать абляции skills и MCP по доле успехов, токенам и времени s16.
Источники
- Boris Cherny: We Cut 80% of Claude Code's Prompt, Y Combinator. Зачем читать: первичная цитата с оговоркой, которую вырезают клипы.
- Transcript of the talk, Y Combinator. Зачем читать: текст с поиском, чтобы проверить, что было сказано, а что нет.
- The new rules of context engineering for Claude 5 generation models, Anthropic. Зачем читать: письменная версия совета, progressive disclosure вместо центрального файла.
- Memory docs: CLAUDE.md and rules files, Claude Code docs. Зачем читать: что грузится на каждом ходу, что по требованию, и рекомендация в 200 строк.
- Evaluating AGENTS.md, arXiv. Зачем читать: единственное контролируемое измерение файлов контекста до этого.
- Should you delete your CLAUDE.md every 6 months?, Modern Creator. Зачем читать: неформальное сравнение 1,000 и 20 строк, где картина поломок совпадает с нашей.
- Opus 5: delete your CLAUDE.md?, reporails. Зачем читать: абляция против удаления и почему хуки переживают обновление модели.
- The State of AI Instruction Quality: 30k-repo analysis, reporails. Зачем читать: что на самом деле лежит в медианном файле инструкций.
- Opus 5: the cost of instruction conflicts, reporails. Зачем читать: контролируемый эксперимент о положении правила.
- Writing a good CLAUDE.md, HN thread, Hacker News. Зачем читать: практики спорят о том, что должно быть в файле.
- Anthropic says keep CLAUDE.md under 200 lines, r/ClaudeCode. Зачем читать: комментарий «было ~35k, стало ~4.5k».
- CLAUDE.md says MUST use agent, Claude ignores it, r/ClaudeCode. Зачем читать: конкретный случай, когда текстовые инструкции не работают.
- Claude Code now ignores everything, r/ClaudeCode. Зачем читать: отчёты о симптомах за ощущением «что-то изменилось».
- Rewriting Bun in Rust, Simon Willison. Зачем читать: откуда взялись цифры про 64 агента и $165,000.
- caliper, GitHub. Зачем читать: тестовая обвязка для абляций skills и MCP.
FAQ
Стоит ли удалять мой CLAUDE.md?
Не вслепую. На нашем репозитории единственной потерей было одно правило для новых файлов; всё, что код и так показывал, держалось без файла. Проводите абляцию по одному разделу и оставляйте то, что меняет результат.
Почему файл сэкономил 32% токенов, если стоил лишь 4-14%?
Потому что итог определяет задача с новым компонентом, где файл заставил модель написать второй файл на двух языках. Более дешёвый прогон просто делал меньше. На задачах с идентичным результатом экономия составила 4-14%.
Стоят ли skills и хуки токены на каждом ходу?
Skills загружаются только при вызове, поэтому невызванный skill ничего не стоит; хук добавляет одно предложение. Удаление обоих не изменило ни одной цифры в наших прогонах. На каждом ходу перечитываются rules-файлы и CLAUDE.md.
Достаточно ли двух прогонов на конфигурацию?
Нет. Два прогона находят эффект, но не измеряют его. Наша полная конфигурация на одной задаче стоила $2.11, затем $1.33, так что отклонения по задаче меньше 15% лежат в пределах шума.
AIDive