
Как урезать файл инструкций для Claude
Anthropic удалил больше 80% системного промпта Claude Code. Качество не упало. Ориентир из документации: меньше 200 строк на файл. Длиннее - выедает контекст и хуже соблюдается.
Содержание10 глав
- 011. Понять, почему длинный файл стал мешать
- 022. Замерить, что у тебя сейчас
- 033. Разделить содержимое на «режем» и «оставляем»
- 044. Поменять запреты на принципы
- 055. Вынести процедуры в скиллы и правила по путям
- 066. Отдать память самому Claude
- 077. Три чистки, которые не дают ничего
- 088. Прогнать файл одной командой
- 099. Проверить себя через неделю
- 10Ссылки одним списком
Что вырезать, что оставить обязательно, какая чистка не даёт ничего и как разобрать файл одной командой вместо вечера ручной работы.
1. Понять, почему длинный файл стал мешать
Anthropic удалил больше 80% системного промпта Claude Code для моделей уровня Opus 5 и Fable 5 - и не потерял ничего на собственных оценках по коду. Причина в том, что инструмент оказался переограничен: системный промпт, скиллы, файл проекта и запрос пользователя повторяли и противоречили друг другу, и модель тратила усилия на разведение правил до того, как бралась за задачу.
Полезно держать в голове все шесть сдвигов, а не только те, что на слуху:
- Прочитал первоисточник целиком: новые правила работы с контекстом
- Принял мысль: объём инструкций перестал быть плюсом сам по себе
- Понял, что чистка - это не «убрать лишнее», а «убрать спорящее»
2. Замерить, что у тебя сейчас
Сначала цифры, потом ножницы. Ориентир из документации: меньше 200 строк на один CLAUDE.md. Файлы длиннее съедают контекст и хуже соблюдаются.
wc -l CLAUDE.md .claude/CLAUDE.md
wc -l .claude/rules/*.md
Дальше внутри сессии посмотри, что реально грузится на старте: команда /context показывает раздел Memory files и строку Skills - размер списка скиллов после применения бюджета, то есть ровно столько, сколько получает модель.
- Посчитал строки во всех файлах инструкций, включая вложенные и .claude/rules/
- Запустил /context и выписал, что грузится на старте: разбор стартового контекста
- Проверил, что файл вообще подхватился: если его нет в Memory files, модель его не видит
- Записал стартовые цифры, чтобы через неделю сравнить
3. Разделить содержимое на «режем» и «оставляем»
Главный критерий один: вырезаем всё, что модель выведет из проекта сама. Оставляем только то, чего в файлах не написано.
- Прошёл файл сверху вниз и напротив каждого блока поставил «выведет сам» или «не выведет»
- Всё «выведет сам» вынес в отдельный черновик и удалил из файла
- Оставшееся переписал конкретно: «отступ 2 пробела» вместо «форматируй аккуратно»
- Проверил вложенные файлы в подпапках - там обычно копится то же самое
4. Поменять запреты на принципы
Список «нельзя» заставляет модель угадывать границы. Одна строка про принцип работает лучше и занимает меньше. Живой пример - как это переписали у себя:
Промт 15 строк · 194 знака
было: По умолчанию не пиши комментариев.
Никогда не пиши многоабзацных описаний.
стало: Пиши код так, как написан код вокруг:
та же плотность комментариев, те же имена и обороты.- Нашёл в файле все формулировки «никогда», «ни в коем случае», «запрещено»
- Для каждой ответил на вопрос: какой принцип за этим стоит на самом деле
- Заменил список запретов одной строкой про принцип
- Оставил жёсткий запрет только там, где цена ошибки высокая и принцип не спасает
5. Вынести процедуры в скиллы и правила по путям
Файл инструкций грузится в начале каждой сессии целиком. Тело скилла - только когда скилл используется, поэтому длинный справочный материал в скилле почти ничего не стоит, пока он не понадобился. Признак того, что кусок пора выносить: это не факт, а многошаговая процедура, либо это касается только одной части проекта.
Правила, привязанные к путям. В .claude/rules/ лежат тематические файлы. С фронтматтером paths правило подгружается, только когда идёт работа с подходящими файлами:
Промт 28 строк · 117 знаков
--- paths: - "src/api/**/*.ts" --- # Правила для API - Любая ручка валидирует вход - Ошибки отдаём в одном формате
- Выписал из файла все многошаговые процедуры и завёл под каждую скилл: как устроены скиллы
- Инструкции, касающиеся одной части проекта, унёс в .claude/rules/ с полем paths
- Сократил описания скиллов: ключевой сценарий в первом предложении
- Удалил скиллы, которыми не пользовался ни разу - они занимают место в списке
6. Отдать память самому Claude
Автоматическая память включена по умолчанию: модель сама записывает то, что пригодится в следующий раз - команды сборки, найденные закономерности, твои поправки. Хранится по проекту, в ~/.claude/projects/<project>/memory/. В начале каждой сессии подгружаются первые 200 строк или 25 КБ файла MEMORY.md, что наступит раньше; остальные заметки лежат отдельными файлами и читаются по необходимости.
- Открыл /memory, посмотрел, что уже накопилось, и убрал устаревшее: как устроена память
- Перенёс из файла инструкций всё, что относится к «выученному», а не к «договорённостям»
- Держу MEMORY.md как оглавление: одна строка на пункт, подробности - в отдельных файлах
- Проверил, что автопамять не выключена настройкой autoMemoryEnabled
7. Три чистки, которые не дают ничего
- Проверил, не разложил ли я файл на импорты, думая, что этим экономлю контекст
- Нашёл противоречащие друг другу правила в разных файлах и снял конфликт - иначе модель выберет одно произвольно
- Обязательные к исполнению вещи перевёл в хуки: как их ставить
- В монорепозитории отключил чужие файлы через claudeMdExcludes
8. Прогнать файл одной командой
Разбирать вручную не обязательно. Проверка /doctor (второе имя - /checkup) предлагает урезать файл сама: режет то, что модель выведет из проекта - структуру папок, списки зависимостей, обзоры архитектуры, - и сохраняет подводные камни, причины решений и договорённости, отличающиеся от поведения по умолчанию.
/doctor
Она же показывает неиспользуемые скиллы, серверы и расширения вместе с их ценой в контексте, медленные хуки, дубли между локальным и общим файлом инструкций и оценку стоимости списка скиллов. Ничего не меняется молча: сначала отчёт, потом вопрос про подтверждение. Разбор файла требует Claude Code версии 2.1.206 или новее.
- Обновил Claude Code и запустил /doctor: описание всех команд
- Прочитал отчёт целиком и подтвердил только то, с чем согласен
- Отдельно посмотрел раздел про неиспользуемые скиллы и расширения
- Сравнил длину файла до и после - записал новую цифру
9. Проверить себя через неделю
- Файл уложился в 200 строк - или я честно понимаю, почему у меня исключение
- Какие поправки я повторял вслух больше двух раз - их место в файле, а не в чате
- Что из вырезанного пришлось вернуть: значит, модель это не выводила сама
- Стало ли меньше ответов «не по инструкции» - это и есть главный замер
- Раз в месяц перечитываю файл и убираю то, что уже неправда
Ссылки одним списком
- Новые правила работы с контекстом - первоисточник, все шесть сдвигов
- Память проекта - ориентир 200 строк, автопамять, импорты
- Команды - что именно делает /doctor
- Скиллы - загрузка по требованию и бюджет списка
- Контекстное окно - что грузится на старте сессии
- Хуки - когда правило обязано выполняться всегда


