Разбор термина · сентябрь 2026
CLAUDE.md после Opus 5: почему длинные инструкции мешают
Официальный документ Anthropic про Claude Opus 5 говорит прямо: из системных инструкций Claude Code убрали больше 80% явных правил, и качество на тестах кодинга не просело ни на процент. Если твой CLAUDE.md растёт уже полгода и несёт список из полусотни «никогда» - вопрос не праздный: часть списка написана под модель, которая работает иначе, чем та, что читает файл сегодня
Быстрый ответ на практике: открой свой CLAUDE.md и построчно раздели его на два списка. Первый - команды и факты, которые не зависят от модели вообще: как запускать тесты, где лежат файлы, какой стек в проекте. Второй - стилевые запреты вида «никогда не делай X»: они и есть кандидат на сокращение. Дальше в статье разбираю, почему это работает именно так, и показываю свой прогон с короткой и длинной версией одной и той же памятки
Если файла ещё нет и ты заводишь его впервые - в отдельном гайде разобран скелет памятки на шесть блоков с примером и живой проверкой. Эта статья - продолжение того разбора для тех, у кого файл уже есть и накопил лишнее. Больше материалов про Claude Code и вайбкодинг собраны в разделе гайдов по теме
С выходом Opus 5 и Fable 5 Anthropic убрала больше 80% явных запретов из внутренних инструкций Claude Code, заменив их суждением модели по контексту. Твой собственный CLAUDE.md эта смена не отменяет, но часть строк в нём - те самые жёсткие «никогда», написанные под прошлое поколение - теперь скорее мешают, чем помогают. Открой свой файл и найди правила-вкусовщину без цены ошибки: их можно сократить до одной фразы или убрать
Что именно изменилось с приходом Claude 5
До Opus 5 системные инструкции Claude Code держали десятки явных запретов на конкретные ситуации. Разбор изменений системного промпта приводит пример до и после: было правило «default to writing no comments. Never write multi-paragraph docstrings» - жёсткий запрет без исключений. Стало «write code that reads like the surrounding code: match its comment density, naming, and idiom» - одна фраза, которая просит модель смотреть на код вокруг и подстраиваться, а не следовать списку «нельзя»
Таблица: было и стало в системных инструкциях
Разбор изменений называет четыре пары «было / стало», и все четыре - об одном и том же сдвиге: меньше явного текста, больше суждения по контексту
| Было (модели прошлого поколения) | Стало (Claude 5) |
|---|---|
| Жёсткие явные запреты («никогда не пиши X») | Модель сама подбирает стиль по контексту вокруг |
| Длинные списки граничных случаев в примерах | Несколько канонических примеров без перечисления всех исключений |
| Вся инструкция сразу в системном промпте | Прогрессивное раскрытие - подробности только по запросу задачи |
| Дублирование правил в нескольких местах | Правило живёт в одном месте, остальные на него ссылаются |
Таблица прокручивается вбок →
Практический вывод из этой таблицы для твоего CLAUDE.md: если файл писался под старое поколение и с тех пор не пересматривался, часть строк в нём соответствует именно левой колонке - и тихо отнимает контекст, вместо того чтобы помогать
80 с лишним процентов правил ушло именно из системного промпта самого Claude Code, а не из пользовательских CLAUDE.md - это разные слои контекста, и цифру часто путают, приписывая её твоему собственному файлу
Почему жёсткое правило начинает мешать
Причина замены простая: модели прошлого поколения хуже читали контекст задачи целиком, и явный запрет страховал от очевидных ошибок. Opus 5 и Fable 5 читают контекст лучше, и жёсткое правило начинает не помогать, а мешать - модель тратит часть решения на согласование запрета с остальными условиями задачи, вместо того чтобы просто выбрать лучший вариант
Смена подхода не ограничена одним файлом. Тот же принцип «меньше явного, больше контекста» лежит в основе того, как Claude Code вообще собирает память проекта из нескольких источников: CLAUDE.md - только один слой, рядом с ним работают скиллы, подагенты и хуки - каждый подгружается тогда, когда действительно нужен, а не лежит в контексте постоянно
Официальная справка Claude Code формулирует тот же принцип для твоего собственного CLAUDE.md, и эта формулировка не новая - она была в силе и до Opus 5, но с новой моделью стала работать заметнее:
«The more specific and concise your instructions, the more consistently Claude follows them»
Anthropic, справка Claude Code, раздел про память, обращение 05.09.2026
Конкретность и краткость - не два разных совета, а один. Правило «отступ 2 пробела» конкретное и короткое одновременно. Правило «пиши аккуратный, читаемый и поддерживаемый код, избегай излишней сложности, следи за стилем» длинное и при этом расплывчатое - оно не говорит, что именно проверить
Что резать в своём файле, а что оставить как есть
Не всё в CLAUDE.md устарело одинаково. Смена подхода касается ОДНОЙ категории правил, вторая живёт без изменений, а третья вообще не должна была быть в файле
Категория 1: стилевые запреты «на всякий случай»
Это правила вида «никогда не используй var», «никогда не пиши TODO», «никогда не оставляй console.log» - десятки мелких вкусовых ограничений, которые писались с расчётом закрыть все возможные отклонения сразу. Именно этот тип правил Anthropic убрала из своих внутренних инструкций на 80%, и именно этот тип у тебя в файле - главный кандидат на сокращение или объединение в одну фразу вроде «пиши код в стиле остального проекта»
Категория 2: факты и команды, которые не выводятся из кода сами
Как запускать тесты (npm test, а не «протестируй»), где лежат файлы API (src/api/handlers/, а не «держи файлы организованными»), какое имя у продакшн-ветки. Официальная справка прямо называет это ядром содержимого файла и даёт два примера конкретности: «Use 2-space indentation» вместо «Format code properly», «Run npm test before committing» вместо «Test your changes». Эта категория не устаревает с новой моделью - модель любого поколения не может вывести название твоей команды запуска тестов из воздуха
Категория 3: правила с высокой ценой ошибки
Правила, где цена ошибки высокая настолько, что просьбы словами вообще недостаточно - удаление файлов, доступ к секретам, необратимые команды. Для них в Claude Code есть отдельный механизм - хуки, которые останавливают действие независимо от того, что решила модель. Файл настроек, где эти хуки прописываются, называется settings.json, и он же управляет доступом через MCP-серверы, если ты их подключаешь. Такое правило в принципе не место текстом в памятке - оно с самого начала должно было жить отдельным механическим запретом
Таблица: как быстро отличить категорию
| Категория | Признак | Что делать после Opus 5 |
|---|---|---|
| 1. Стилевой запрет | Нарушение не ломает сборку или тесты | Сократить до одной фразы или убрать, доверив выбор модели |
| 2. Факт-команда | Модель не может вывести это из кода сама | Оставить без изменений - категория не устаревает |
| 3. Цена ошибки высокая | Нарушение необратимо (удаление, утечка секрета) | Вынести из текста памятки в отдельный механический запрет (хук) |
Таблица прокручивается вбок →
Проверить границу между категориями 1 и 2 просто: если правило можно нарушить с любым исходом кроме «программа не запустится» - это стиль. Если нарушение ломает сборку или тесты - это факт, трогать не нужно
Один практический побочный эффект от роста файла назван в самой справке отдельно: чем длиннее CLAUDE.md, тем больше в нём противоречий, которые накапливаются со временем незаметно. Anthropic формулирует последствие прямо: «if two rules contradict each other, Claude may pick one arbitrarily» - при конфликте модель выбирает произвольно, независимо от того, старая она или новая. Это отдельный довод резать список: не только ради краткости самой по себе, а чтобы противоречия не множились
Риск в другую сторону: слишком короткий файл тоже не решение {#riск-korotkiy}
Резать список - не значит стремиться к нулю строк. Официальный постмортем одной из регрессий Claude Code (апрель 2026) разбирает ровно обратный случай: правку системного промпта, которая ДОЛЖНА была снизить многословие ответов, но плохо сочеталась с остальными инструкциями и в итоге просадила качество кода - патч откатили через несколько дней
Что показывает этот случай для твоего файла
Вывод не «сокращать вредно», а точнее: дело не в длине самой по себе, а в СОГЛАСОВАННОСТИ того, что осталось, с остальным контекстом задачи. Слишком резкое урезание, которое выбрасывает нужный факт-команду вместе со стилевым мусором, ломает работу так же, как раздутый список из полусотни «никогда» - механизм один и тот же: модели приходится тратить решение на согласование неполного или противоречивого контекста вместо самой задачи
| Ошибка | Симптом | Причина |
|---|---|---|
| Файл слишком длинный, полон стилевых запретов | Формальный, буквальный код вместо естественного решения | Модель согласовывает решение с десятками правил одновременно |
| Файл урезан резко, без разбора по категориям | Модель заново переспрашивает факты проекта каждую сессию | Вместе со стилем выброшены команды и пути, которые модель не выводит сама |
| В файле противоречащие друг другу строки | Непредсказуемое поведение от сессии к сессии | При конфликте модель выбирает между правилами произвольно |
Таблица прокручивается вбок →
Свой прогон: короткая памятка против длинной
Проверил это не в теории, а на своей же машине. Взял две изолированные тестовые папки, в каждую положил свой CLAUDE.md, дал одному и тому же инструменту одну и ту же задачу дважды. Прогон делал через интерфейс командной строки - тот же способ, которым Claude Code обычно и запускается, только без диалога, одной командой на весь ответ
Короткая памятка несла два правила:
- Комментарии в коде пиши только если логика неочевидна
- Отступ 2 пробела
Длинная памятка несла двадцать правил, все в форме «никогда» - про комментарии, отступы, именование переменных, кавычки, импорты и коммиты. Полный список сохранён в записи прогона
Одна задача, два файла правил: 05.09.2026
Короткая памятка (2 правила)
- функция суммы массива - через reduce, одна строка тела
- функция-палиндром - обычное объявление function, без лишних точек с запятой
Длинная памятка (20 правил «никогда»)
- функция суммы массива - цикл for с отдельной переменной-накопителем вместо reduce
- функция-палиндром - const и стрелочная функция, точка с запятой на каждой строке
Обе версии рабочие, но с длинным списком запретов модель выбрала более формальный, буквальный стиль вместо естественного идиоматичного решения
Длинная памятка не сломала результат - обе функции работают правильно. Дело в СТИЛЕ выбора: с двумя правилами модель взяла самое простое решение задачи. С двадцатью запретами она перешла на подчёркнуто формальный код - будто бы часть внимания ушла не на задачу, а на то, чтобы ни одно из двадцати «никогда» не нарушить буквой. Ту же механику подтверждает и более серьёзный случай: официальный разбор одной из регрессий Claude Code (апрель 2026) называет причиной падения качества именно то, что правка системных инструкций плохо СОЧЕТАЛАСЬ с остальными условиями задачи - согласование конфликтующих требований отъедает ресурс модели вне зависимости от того, длинный файл или короткий
Прогнал две разные задачи на каждой из двух памяток, итого 4 запуска одним и тем же инструментом в один день: обе функции в обоих файлах сработали без единой ошибки, а разница легла ровно в выбор конструкции языка, что и записано выше
Повторить у себя: заведи пустую тестовую папку, положи внутрь CLAUDE.md с одним конкретным правилом, дай задачу, которая может это правило задеть. Потом перепиши файл в длинный список смежных запретов и повтори ту же задачу. Разница в стиле ответа обычно видна уже на второй попытке
Если хочешь видеть, что конкретно загрузила модель перед ответом, работая не в разовом режиме командной строки, а в обычной беседе - это отдельная область настроек проекта, где собраны все файлы, которые Claude Code подхватывает автоматически. Там же становится видно, где заканчивается CLAUDE.md и начинается авто-память: это разные механизмы с разными правилами загрузки, и путать их - частая причина, почему «правило вроде было, а не сработало»
Что оставить в файле по итогам разбора
По итогам прогона и разбора официальных источников порядок действий с существующим CLAUDE.md такой:
- Пройтись по файлу построчно и пометить каждую строку одной из двух категорий - факт-команда или стилевой запрет
- Стилевые запреты без явной цены ошибки (не сломают сборку, не потеряют данные) объединить в одну фразу или убрать вовсе, доверив выбор модели
- Факты и команды оставить как есть - это не тот слой, который устарел
- Противоречащие друг другу строки, если они накопились за месяцы правок, вычистить: конфликт вредит одинаково при любой длине файла
- Правило, которое обязано сработать без исключений - удаление файлов, доступ к секретам - не текстом в памятке, а отдельным механическим запретом на уровне настроек инструмента, потому что памятка в любом случае остаётся контекстом, а не жёсткой блокировкой
- Многошаговую процедуру, которая раньше жила абзацем в памятке, вынести в отдельный скилл: скилл загружается только когда действительно нужен, а не занимает место в каждой беседе
Одно уточнение про модель, на которой проверяешь: описанный принцип «конкретнее и короче - лучше» относится к семейству Claude 5 в целом, не только к Opus. На быстрой модели вроде Sonnet эффект от длинного списка запретов проявляется так же - в own-run выше обе задачи прогонялись именно на ней, не на топовой модели специально, чтобы показать, что дело не в мощности модели, а в самом принципе чтения инструкций
Это не значит «выброси файл» - CLAUDE.md как формат никуда не делся и продолжает решать свою задачу, разобранную в отдельном гайде про каркас проекта. Меняется не факт существования файла, а то, каким РОДОМ правил его наполняют после смены поколения моделей: было - копить запреты про запас, стало - оставлять только то, что модель не выведет сама
Более широкая картина, куда входит CLAUDE.md лишь одним слоем из шести, разобрана в гайде про контекст-инжиниринг - там же показано, как слои системных инструкций, памятки, структуры проекта, авто-памяти, скиллов и истории сессии работают связкой, а не по отдельности
Источники
- Anthropic, справка Claude Code, раздел про память - формулировка про конкретность и краткость, норма объёма, поведение при противоречиях, описание CLAUDE.md как контекста. Обращение 05.09.2026
- code.claude.com/docs/en/memory - страница целиком, обращение 05.09.2026
- Developers Digest, разбор изменений системного промпта Claude Code для Opus 5 и Fable 5 - цифра 80%, примеры правил до и после. Обращение 05.09.2026
- www.developersdigest.tech/blog/claude-5-context-engineering-rules-hn-analysis - страница целиком, обращение 05.09.2026
- Anthropic: карточка Claude Fable 5 и Mythos 5 - официальный анонс поколения Claude 5, к которому относится смена подхода. Обращение 05.09.2026
- Anthropic: Claude Code best practices - официальные рекомендации по ведению CLAUDE.md. Обращение 05.09.2026
- AI Tools Review, разбор нового подхода к промптингу Opus 5 - формулировка «give Claude judgement» вместо накопления запретов. Обращение 05.09.2026
- aitoolsreview.co.uk/insights/how-to-prompt-claude-opus-5 - страница целиком, обращение 05.09.2026
- VentureBeat, разбор постмортема регрессии Claude Code (апрель 2026) - причина деградации от несогласованной правки системного промпта. Обращение 05.09.2026
- venturebeat.com/technology/mystery-solved-anthropic-reveals-changes-to-claudes-harnesses-and-operating-instructions-likely-caused-degradation - страница целиком, обращение 05.09.2026
- Собственный прогон 05.09.2026: две изолированные тестовые папки,
claude --print --model sonnet, одна и та же задача с короткой и длинной памяткой. Запись прогона сохранена целиком
Памятка: что резать в CLAUDE.md после Opus 5
Пять пунктов, по которым видно, что файл пересмотрен, а не просто существует
Сохрани себе
- Каждая строка помечена: факт-команда или стилевой запрет
- Стилевые запреты без цены ошибки объединены в одну фразу или убраны
- Факты и команды (тесты, пути, стек) остались без изменений
- Противоречащие друг другу строки из разных правок вычищены
- Правило с ценой ошибки (удаление, доступ к секретам) вынесено в отдельный механический запрет, а не только в текст памятки
Продолжение
Свой прогон я показываю целиком, не пересказом
Сокращённый файл - это только вход. Дальше вопрос в том, как вообще устроен твой проект: что Claude должен вывести сам из структуры папок, а что без записи потеряется через неделю. Если хочешь разобрать это на своём проекте, а не на абстрактном примере из статьи - три дня ИИ-Лагеря именно про это
Частые вопросы
Нужно ли переписывать CLAUDE.md полностью после каждого обновления модели
Нет. Разбор построчный, а не полное переписывание: часть файла (команды, пути, факты проекта) не зависит от модели вообще. Пересматривать стоит только стилевые запреты, и то не при каждом релизе, а когда объём файла заметно вырос
Значит ли это, что жёсткие правила больше не работают вообще
Нет. Официальная справка описывает CLAUDE.md как контекст, а не жёсткую настройку, и это было верно и до Opus 5. Разница не в том, что правило перестало работать, а в том, что для того же результата новой модели нужно меньше явных запретов - лишние теперь скорее отвлекают, чем помогают
У меня короткий файл, 30 строк - мне это вообще актуально
Да, в меньшей степени. Правило про конкретность и отсутствие противоречий работает при любой длине. Разница проявляется заметнее на файлах, которые росли месяцами и накопили десятки частных запретов. Как раскладывать проект по папкам, чтобы памятке было меньше что описывать, разобрано в гайде про каркас проекта
Где посмотреть полный список того, что грузится в контекст
Команда /context внутри Claude Code показывает раздел «Memory files» - список всех файлов памяти, которые реально загрузились в текущую сессию. Если файла в списке нет, значит правило из него модель физически не видит, вне зависимости от того, длинное оно или короткое. Полная карта того, из каких источников вообще собирается контекст, разобрана в гайде про контекст-инжиниринг
Как быстро проверить, мешает ли конкретное правило
Дай задачу, которую это правило может задеть, дважды - один раз с правилом в файле, один раз без него. Если результат отличается только тем, что правило соблюдено, а не тем, что решение стало хуже - правило можно оставить компактным. Если с правилом решение становится многословнее без выигрыша в надёжности - это кандидат на сокращение
Правило про 200 строк из старого гайда по CLAUDE.md всё ещё в силе
Да, справка Claude Code продолжает называть этот ориентир: «target under 200 lines per CLAUDE.md file». Разница в деталях - актуальная версия справки говорит, что файл длиннее не обрывается насильно (грузится целиком до 4 МиБ), но короче он всё равно слушается лучше. Полный скелет из шести блоков для файла с нуля - в отдельном гайде про CLAUDE.md
Авто-память тоже нужно сокращать по этому принципу
Отчасти да. У авто-памяти свой лимит загрузки - первые 200 строк входного файла или 25 КБ, что наступит раньше, и она физически не даст себе разрастись бесконечно. Но внутри этого лимита тот же принцип работает: конкретные записи полезнее общих наблюдений, а устаревшие заметки лучше убирать, а не копить