AIDive

Я удалил CLAUDE.md на реальном репо. Вот что сломалось

AIDive · Опубликовано

Кодинг-агенты

Удалено, замерено, сломалось одно правило

Удалить CLAUDE.md значит убрать файл с инструкциями, который Claude Code читает в начале каждого разговора. Борис Черни, создатель Claude Code, сказал со сцены: удаляйте его каждые полгода. Двадцать два видео повторили это за семь недель. Ни одно из них не открыло ни один репозиторий.

Эта статья делает то, чего не сделали видео: берёт одно реальное приложение со 177-строчным CLAUDE.md, тремя skills, четырьмя командами и одним hook, прогоняет пять повседневных задач с файлом и без него, и считает результат. После сорока четырёх прогонов сломалось ровно одно правило. Файл стоил токенов на каждой задаче, но всегда по-разному, и одну его строку не смог выполнить никто.

Клип дословно и две фразы, которые не его

Клип взят из выступления Бориса Черни на YC Startup School, записанного на следующий день после релиза Opus 5. Его слова: каждые шесть месяцев удаляйте свой CLAUDE.md, удаляйте свои skills, удаляйте свои hooks. Посмотрите, что сделает модель — это может вас удивить. Для Opus 5, говорит он, Anthropic действительно рекомендует попробовать это: модели могут больше не понадобиться все эти инструкции.

Тридцатью секундами раньше звучит оговорка, которую никто не цитирует. Anthropic не удаляет всю кодовую базу. Она удаляет многое, и называет это аблацией. Письменная расшифровка сохраняет эту фразу полностью и сегодня. Восемьдесят процентов системного промпта Claude Code ушли именно так: удалить всё, возвращать по строчке, замерять каждую строку.

Двух фраз, которые реакционные видео вложили ему в уста, в выступлении нет. «Контекст, цели и определение готовности» не встречается нигде; ближе всего он подходит к формулировке «задача, ограничители, критерии выхода». «Шестьдесят четыре агента переписывают Bun» — тоже не его цифра: это число Джарреда Самнера из поста про Bun. Черни говорит про одиннадцать дней, а когда его просят назвать количество агентов, называет тысячи — предположительно.

Двадцать два видео за семь недель процитировали клип. Ни одно не провело тест. Поэтому эта статья делает то, что он действительно описал: удалить, возвращать по кусочку, замерять.

Инструмент: аблация, а не удаление

Аблация убирает по одному элементу конфигурации за раз и замеряет эффект, вместо того чтобы удалить всё сразу и гадать. CLAUDE.md читается в начале каждого разговора и заново на каждом ходе; skills загружаются только при вызове. Именно эта разница и была замерена.

Anthropic поставляет переключатель для удаления: обычный флаг, та же переменная, которую Черни называет со сцены. Репозиторий — это моё реальное приложение: 177 строк инструкций, три skills, четыре команды и один hook, срабатывающий на каждый поиск.

Параметр Значение
Повседневные задачи 5 (новый компонент, правка, рефакторинг, изменение стора, архитектурный вопрос)
Конфигурации 5 (полная, без файла, без skills, без hook, без ничего)
Модель одна, зафиксирована
Окружение пустая конфигурационная директория, свежий клон перед каждым прогоном
Прогоны 44
Стоимость $39

Каждый прогон оценивался одинаково, на одном и том же клоне, скриптом, а не вручную. Что считается сломанным: собственные правила репозитория (импорты, типы, дизайн-токены, переводы), плюс typecheck и lint.

Единственный инструмент, созданный для такой аблации, Caliper, ablации skills и MCP-серверы, но никогда не трогает файл; замену CLAUDE.md делали вручную. Ограничения, названные один раз: один репозиторий, одна модель, два прогона на ячейку, без расшифровки. Первый же результат задал тон: задача на рефакторинг вернулась идентичной — шестьдесят четыре цента с файлом и шестьдесят три без него.

Что сломалось: одно правило, на новых файлах

Сломавшееся правило — это правило интернационализации, в собственных словах файла: всегда добавляй и английский, и французский, никогда не хардкодь строку, которую видит пользователь. На задаче с новым компонентом, с файлом, все четыре прогона записали файл перевода. Без него три прогона из четырёх захардкодили заголовок. Одна и та же задача, тот же репозиторий, та же модель, тот же промпт.

Новый компонент Записал файл перевода
С CLAUDE.md 4 из 4
Без CLAUDE.md 1 из 4

Задача на правку показывает другую половину картины. Все конфигурации справились правильно, даже без ничего, потому что соседний код учит этому сам: у каждого компонента рядом с редактируемым уже есть файл перевода. Всё остальное устояло во всех сорока четырёх прогонах: алиас импорта, type вместо interface, дизайн-токены, паттерн стора. Код показывает это сам, файл лишь повторяет.

Статья ETH Zurich замерила то же самое на 138 реальных задачах. Её вывод: файлы контекста не улучшают успех и обходятся примерно на двадцать процентов дороже, при этом модель действительно следует инструкциям. Одна оговорка: один прогон без файла всё же записал файл перевода. Правило не невозможно выполнить без файла, оно ненадёжно. Сломалось одно правило — то самое, которому не смог научить код. И прогон, пропустивший эту работу, оказался ещё и самым дешёвым.

Во что обходится файл, по задачам

Токенная цена CLAUDE.md — это разница в прочитанных токенах между прогоном с файлом и тем же прогоном без него.

Задача Меньше токенов прочитано без файла
Новый компонент 61%
Правка 15%
Рефакторинг 5%
Изменение стора 4%
Архитектурный вопрос 14%
По десяти прогонам 32% токенов, 22% денег

Тридцать два процента — это число, которое вынесло бы в заголовок любое из видео, и оно неверное. Основная экономия приходится на прогон, который не записал файл перевода: он дешевле, потому что сделал меньше. Там, где результат был идентичен, файл стоил от четырёх до четырнадцати процентов. Это его реальная цена, и двадцать процентов из статьи ETH Zurich лежат ровно между этими двумя числами.

Сам механизм — это примерно 1800 токенов, читаемых заново на каждом ходе. Skills, hook и граф знаний не дали ничего измеримого, ни при наличии, ни при отсутствии. Шум больше, чем большая часть этого эффекта: одна и та же задача с одним и тем же файлом стоила $2.11 на одном прогоне и $1.33 на другом. Два прогона упёрлись в лимит хода, один с файлом, один без. Так что файл стоит понемногу везде и окупает себя один раз — если только он ещё и не врёт.

Строки, которые врали

Лгущая строка — это инструкция, которую модель не может выполнить или которая ничего не меняет. Строка, которую я анонсировал в начале: импортируй тему из алиаса design-tokens. Такого алиаса не существует: конфигурация TypeScript задаёт только один префикс, а в папке токенов нет файла темы. Каждый прогон, с файлом или без, делал то же, что делают соседние файлы — одну и ту же строку импорта все сорок четыре раза.

В файле восемьдесят два строки обзора архитектуры. Один и тот же вопрос, шесть ответов: все шесть нашли одни и те же девять файлов, от бэкенда до экрана, в одном и том же порядке, с обзором и без него. Один блок указывает на граф знаний, которого в клоне нет; при наличии графа вопрос стоил столько же.

Показатель Значение
Правило Anthropic по размеру до 200 строк
Этот файл 177 строк
Медианный файл в датасете reporails на 30 тысяч репозиториев 50 пунктов, 12 директив
Директивных строк в этом файле 24 из 177

Позиция решает, какое из двух противоречащих правил победит, и модель никогда об этом не сообщает — около девяноста процентов в тесте одного вендора. Обзор архитектуры может помочь на задаче, которую здесь не прогоняли: один пробный вопрос, один ответ. Итого три вида строк: та, что заслужила своё место, те, которым учит код, и те, что врут.

Оставить, перенести, удалить: короткий список

Три стопки, и замер за каждой.

Стопка Что туда попадает Замер
Оставить Правило, которое не показывает код 6 строк, спасшие 4 прогона
Перенести Обзор архитектуры и команды 107 строк без измеримого выигрыша
Удалить Строки, которые врут, и строки, которые уже показывает дерево файлов 44 идентичных прогона

Оставить то, в чём модель ошиблась дважды — это и есть собственный критерий Anthropic для файла. Перенести обзор и команды в дерево файлов, загружаемых по необходимости; июльский пост Anthropic называет центральный репозиторий мифом. Hooks остаются: гейт не устаревает от того, что модель стала лучше. Убрать текст, который она переросла, оставить гейт.

Файл после чистки: около семидесяти строк, плюс шесть строк, доказавших свою пользу. Это и есть метод Черни, прочитанный целиком: удалить, возвращать по строчке, замерять. Один репозиторий, одна модель, два прогона на ячейку; ваши стопки будут другими, метод — нет. Удаление стоило одного правила и сэкономило немного. Найти лгущие строки — вот в чём была победа.

Источники

Частые вопросы

Стоит ли удалять CLAUDE.md, как сказал Борис Черни?
Не вслепую. Выступление Черни описывает аблацию: удалить файл, возвращать по строчке и замерять каждую строку. На реальном файле в 177 строк удаление сломало одно правило за 44 прогона и сэкономило немного; победой стало обнаружение лгущих строк.
Что ломается при удалении CLAUDE.md?
В этом репозитории — одно правило: всегда добавлять и английский, и французский перевод. Без файла три прогона из четырёх захардкодили заголовок на задаче с новым компонентом. Все остальные правила устояли, потому что соседний код уже показывает их.
Сколько токенов стоит CLAUDE.md?
Около 1800 токенов, читаемых заново на каждом ходе. По задачам это давало от 4% до 61% меньше прочитанных токенов без файла; там, где результат был идентичен, файл стоил от 4% до 14%, что совпадает со средними 20% из статьи ETH Zurich.
Что должно оставаться в CLAUDE.md?
Правила, которым не учит код — это и есть собственный критерий Anthropic: оставлять то, в чём модель ошиблась дважды. Обзоры и списки команд перенести в файлы, загружаемые по необходимости, удалить инструкции, указывающие на несуществующее, и оставить hooks, потому что гейт не устаревает по мере улучшения модели.
Улучшают ли файлы контекста, такие как CLAUDE.md или AGENTS.md, работу кодинг-агентов?
Статья ETH Zurich на 138 реальных задачах обнаружила, что файлы контекста не повышают успех и увеличивают стоимость инференса в среднем более чем на 20%, хотя модель действительно следует инструкциям. Этот замер на одном репозитории показал похожий диапазон.
Что такое аблация применительно к Claude Code?
Удаление по одному элементу конфигурации за раз, при зафиксированной модели и свежем клоне на каждый прогон, с замером эффекта. Anthropic использовала этот метод, чтобы сократить 80% системного промпта Claude Code; здесь он прошёл через пять конфигураций: полная, без файла, без skills, без hook, без ничего.

Похожие видео