Разбор термина · сентябрь 2026

CLAUDE.md после Opus 5: почему длинные инструкции мешают

Экран с двумя колонками: слева длинный список правил «никогда» для CLAUDE.md, справа короткое правило по существу

Официальный документ 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 Code, раздел про скиллы - обращение 05.09.2026

Смена подхода не ограничена одним файлом. Тот же принцип «меньше явного, больше контекста» лежит в основе того, как 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 Code: справка по хукам, жизненный цикл события и обработчики
Официальная документация Claude Code, справка по хукам - обращение 05.09.2026

Один практический побочный эффект от роста файла назван в самой справке отдельно: чем длиннее 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 КБ, что наступит раньше, и она физически не даст себе разрастись бесконечно. Но внутри этого лимита тот же принцип работает: конкретные записи полезнее общих наблюдений, а устаревшие заметки лучше убирать, а не копить