Claude Code · привычки агента
Claude Code пишет много кода: 3 исключения и фраза-фикс
Задача была на одну функцию, а Claude Code вернул файл с докстрингом, тройной проверкой типов и блоком из шести тестов. Я проверил это на собственной задаче: одна и та же просьба, сформулированная по-разному, дала разницу в объёме нового кода в 8 раз. Разбираю, почему так происходит и какой фразой это чинится
К концу статьи у тебя будет фраза, которую можно вставлять в начало запроса к Claude Code уже сегодня, понимание трёх случаев, когда её использовать нельзя, и подтверждение того же принципа прямо из официальной документации Anthropic. Если тебе только предстоит поставить сам Claude Code - вот отдельная инструкция с нуля: настройка Claude Code бесплатно: запуск с нуля
Открой свой последний запрос к Claude Code и добавь одну фразу прямо в него: минимальный дифф, без лишних тестов и проверок, только то, что просили. Сравни файл до и после - в моём собственном прогоне такая фраза сократила новый код в 8 раз на простой задаче
Почему Claude Code вообще пишет больше, чем нужно
Причина не в жадности к токенам, а в том, как агент понимает задачу без явных границ. Когда ты пишешь короткую просьбу вроде "добавь функцию вычитания", Claude Code сам додумывает, что "хороший код" обычно включает: проверку входных данных, описание функции для будущего читателя, тесты на несколько случаев. Каждое из этих решений само по себе разумное - именно так пишут код для больших проектов. Проблема в том, что агент делает этот выбор ЗА тебя, не спрашивая, нужен ли тебе сейчас именно такой уровень надёжности для черновика или прототипа
По своим наблюдениям за десятками похожих задач замечаю одно и то же: чем короче и общее формулировка, тем больше "хорошего тона" агент добавляет сам, потому что ему не на что опереться, кроме общих представлений о качественном коде
Та же логика работает и в обратную сторону: чем точнее вопрос к агенту, тем точнее ответ - у меня есть отдельный разбор именно этого на примере коротких запросов, как писать короткие промпты: 5 приёмов для ChatGPT и Claude, и более широкий разбор правил формулировки задач - как писать промпты для Claude: 6 правил вместо старых
Три причины, почему код выходит длиннее задачи
Если разложить лишний код на конкретные механизмы, а не списывать всё на "агент так устроен", получается три отдельные причины, и у каждой свой фикс
Перестраховка вместо ответа на вопрос. Агент по умолчанию решает не только "что попросили", но и "что может пойти не так", даже если вопрос об этом не стоял. Отсюда проверки типов, обработка граничных случаев и защитные условия там, где вся задача - переставить два аргумента местами
Тесты, которые никто не заказывал. Написание теста - разумная практика для рабочего кода, но агент включает её автоматически, не спрашивая, нужен ли тебе сейчас черновик или продакшен. Результат - блок из нескольких тестов на простую функцию, которую ты собирался использовать один раз и удалить
Широкая правка вместо точечной. Вместо изменения одной строки агент иногда переписывает всю функцию или добавляет соседний код "для полноты" - докстринг, комментарии, форматирование. Каждое изменение по отдельности безобидное, а вместе они превращают правку в одну строку в правку на весь файл
| Причина лишнего кода | Что делает агент по умолчанию | Что режет причину |
|---|---|---|
| Перестраховка | Добавляет проверки типов и граничных случаев без вопроса | Явно указать в запросе, что проверки не нужны |
| Тесты без запроса | Пишет unit-тесты на простую функцию сам | Фраза "без лишних тестов", если тест не нужен именно сейчас |
| Широкая правка | Переписывает функцию целиком вместо одной строки | Описать нужный результат одним предложением (см. цитату Anthropic ниже) |
Проверка на своей задаче: одна и та же просьба, два результата
Я взял простую задачу и попросил её дважды по-разному, чтобы увидеть разницу не на словах, а в реальном файле
Куда нажать: в окне Claude Code, где ты обычно пишешь задачи словами, я напечатал первую версию просьбы - "добавь функцию вычитания двух чисел с обработкой ошибок" - и дал агенту закончить работу до конца
Что увидишь: файл вырос на 48 новых строк - сама функция с описанием, тройной проверкой типов входных данных и отдельным блоком из шести тестов на разные случаи
Что это даёт: ты видишь, что получаешь по умолчанию, если не задаёшь агенту никаких рамок - полноценный код уровня рабочего проекта, даже если тебе нужен был просто черновик
Тот же термин отдельно разобран в карточке Claude для текстов: что он реально делает с контентом
Дальше я стёр результат и написал вторую версию той же по смыслу просьбы - "минимальный дифф, без лишних тестов и проверок, добавь только то, что просили: функцию вычитания двух чисел". Файл вырос всего на 6 строк - одна функция без единой лишней детали
Разница в объёме нового кода на этой конкретной задаче - в 8 раз, я замерил её сам подсчётом строк в обоих файлах после того, как Claude Code закончил каждый из двух прогонов
Восемь раз - это цифра именно моей мини-задачи в одну функцию, а не универсальный процент. На более крупной задаче в несколько файлов разница скорее всего будет меньше, но направление останется тем же: чем точнее ты описал границы того, что нужно, тем меньше решений агент принимает вместо тебя
Что делать с этим дальше, разобрано в статье 3 тарифа Claude: какой выбрать по своей задаче
Что показал файл до и после: построчный разбор
Куда нажать: я открыл оба файла рядом и построчно сверил, что именно добавилось в варианте без ограничения промпта, которого нет в минимальном варианте
Что увидишь: в файле с обычной формулировкой 48 новых строк расходятся на три блока - докстринг с описанием аргументов, тройная проверка типов входных значений и отдельный класс с шестью unit-тестами. В минимальном варианте - ровно два новых слова: имя функции и тело из одной строки
| Формулировка запроса | Новых строк в файле | Что внутри |
|---|---|---|
| «добавь функцию вычитания с обработкой ошибок» | 48 | докстринг, тройная проверка типов, класс с 6 unit-тестами |
| «минимальный дифф, без лишних тестов и проверок» | 6 | только тело функции subtract(a, b) |
Что это даёт: разница видна не в описании, а в конкретных строках файла - докстринг и тесты не появились сами по себе, их добавил агент как часть своего представления о "хорошем коде", хотя задача об этом не просила
Фраза, которая режет код: куда её вставлять
Один короткий кусок текста в начале запроса меняет всё поведение агента. Вот она целиком, готовая к использованию:
Как вставить фразу-ограничитель в свой запрос
- Скопируй фразу целиком
Минимальный дифф. Не добавляй тесты, проверки и обработку ошибок, если я не попросил об этом отдельно. Сделай только то, что описано ниже. - Вставь её первым абзацем своего запроса в то же окно Claude Code, где ты обычно пишешь задачи, перед описанием самой задачи
- Опиши саму задачу сразу после фразы, в том же сообщении и нажми Enter, как обычно
Что увидишь после отправки: Claude Code вернёт код без докстрингов, без валидации входных данных и без самостоятельно придуманных тестов - только то, что было в задаче буквально
Что это даёт: ты сам решаешь, когда тебе нужен рабочий прототип на скорую руку, а когда - код уровня продакшена, вместо того чтобы агент каждый раз выбирал самый осторожный вариант за тебя
Отдельный приём для задач, где границы объёма и так очевидны: если ты можешь описать нужное изменение одним предложением, не проси у Claude Code план действий заранее - лишний шаг планирования тоже добавляет текста, который тебе не нужен. Подробнее о том, как читать и держать под контролем объём переписки с агентом в целом - как экономить токены в Claude: рабочие приёмы и настройки, а если хочешь автоматическую прокладку, которая режет токены истории без ручных фраз - Headroom: сжатие токенов Claude Code. Обе статьи - про объём ПЕРЕПИСКИ с моделью, а фраза выше - про объём КОДА, который агент решает написать в ответ на одну задачу, это разные вещи, и работают они независимо друг от друга
Чем экономия кода отличается от экономии переписки
Эти две темы легко перепутать, потому что обе звучат как "сделать меньше", но урезают они разное
Экономия переписки - про то, сколько прошлых сообщений Claude Code держит в памяти при каждом новом запросе: чем длиннее диалог, тем больше старого текста агент перечитывает заново, и именно это решают Headroom и приёмы из статьи про экономию токенов. Экономия кода - про то, сколько НОВОГО текста агент допишет в файл в ответ на одну конкретную задачу, и это управляется формулировкой запроса, а не длиной прошлой истории
| Что режем | Чем режем | Когда НЕ трогать |
|---|---|---|
| Объём переписки (история диалога) | Headroom, ручная чистка контекста | Когда агенту ещё нужен контекст прошлых сообщений для этой же задачи |
| Объём кода на одну задачу | Фраза «минимальный дифф» в начале запроса | Деньги и платежи, публичные формы, код для других людей (см. три исключения ниже) |
Когда резать код нельзя: три исключения
Не любая задача выигрывает от минимализма - для части кода экономия опаснее лишних строк
Этот кусок вынесен в отдельный гайд Как вернуть деньги за подписку Claude: 4 пути
Деньги и платежи. Если код трогает оплату, баланс или списание средств, проверки входных данных - не лишний код, а единственная защита от того, что пользователь случайно (или намеренно) отправит поле пустым или отрицательным числом. Здесь фраза про минимальный дифф не используется вообще
Публичная форма или API, куда пишут посторонние. Обработка ошибок в местах, куда приходят данные извне - от пользователя сайта, от чужого сервиса - защищает не только код, но и весь остальной проект от падения из-за одного некорректного запроса
Код, который будет жить долго и его будут читать другие. Если это не разовый скрипт для себя, а часть проекта, который через месяц откроет другой человек (или ты сам, но забывший контекст), несколько строк описания функции экономят больше времени, чем отнимают
Если код от агента уже написан и непонятно, можно ли ему доверять - у меня есть отдельный разбор именно для такого случая, даже если сам код читать не умеешь: как проверить код от ИИ, если не умеешь читать код: 7 проверок. А если минимальный дифф всё-таки получился неудачным и хочется вернуть прошлую версию файла - для этого есть готовый порядок действий: как откатить изменения Claude Code: /rewind, git и 5 путей
Три признака, что минимальный дифф не подходит именно сейчас
- Код трогает деньги или чужие данные проверка входных значений здесь не балласт, а единственная страховка от ошибки, которая стоит дороже лишних строк
- Результат увидят и будут менять другие люди без описания функции следующий человек потратит больше времени на разбор, чем ты сэкономил на просьбе "покороче"
- Ты сам не уверен, что задача описана верно здесь помогает не резать код, а сначала попросить агента пересказать задачу своими словами, прежде чем он начнёт писать
Что говорит официальная документация Anthropic
Тот же принцип подтверждён не только сторонним разбором, но и самой компанией, которая делает Claude Code. Я открыл официальную страницу рекомендаций и нашёл там прямое подтверждение связи между чёткостью задачи и объёмом лишней работы
Режим планирования полезен, но добавляет накладные расходы. Для задач, где объём понятен и правка небольшая (вроде исправления опечатки, добавления строки в лог или переименования переменной), попроси Claude сделать это напрямую. Планирование полезнее всего, когда ты не уверен в подходе, когда правка затрагивает несколько файлов или когда ты не знаком с кодом, который меняешь. Если ты можешь описать нужный результат одним предложением - пропусти планирование
Перевод дословной цитаты с официальной страницы документации Anthropic, снятой живым запросом 05.09.2026
Здесь же стоит честно уточнить: та же документация называет проверку результата - тесты, повторный прогон, логическую сверку - самой сильной практикой работы с агентом, если тебе приходится выбрать только одну. Значит резать код правильно не значит резать вообще всё лишнее без разбора: описание функции и валидацию действительно можно убрать из черновика, а вот способ проверить, что код работает, лучше не убирать никогда, даже в самом коротком запросе
Дальше по этой теме идёт разбор Цена обучения Claude Code с нуля в 2026 году
Официальный цикл работы: Explore, Plan, Implement, Commit
Помимо цитаты про объём задачи, Anthropic отдельно описывает рекомендованный порядок работы с агентом на более крупную фичу - четыре шага: сначала изучение существующего кода (Explore), потом план изменений (Plan), потом сама реализация (Implement) и в конце фиксация результата (Commit)
Это не противоречит фразе про минимальный дифф, а дополняет её: цикл нужен, когда задача не умещается в одно предложение и трогает несколько файлов - именно та ситуация, где официальная документация советует НЕ пропускать планирование. Для мелкой правки в одну функцию, как в моём собственном прогоне выше, все четыре шага избыточны - планирование там просто добавляет текст, который никто не будет читать
Границу между "нужен план" и "план не нужен" официальная документация проводит той же фразой, что уже звучала выше в этой статье: если можешь описать нужный результат одним предложением, пропусти планирование. Это значит, что цикл из четырёх шагов и фраза про минимальный дифф - это одна и та же идея, применённая на двух разных масштабах: фраза режет объём КОДА на одну задачу, а пропуск планирования режет объём ПЕРЕПИСКИ перед тем, как агент вообще начнёт писать код
Что я не стал брать у автора приёма на веру
Прежде чем нести чужой приём читателю, я проверил его на слово, а не взял цифры донора как факт
Тесты - не всегда балласт. Официальная документация Anthropic называет проверку результата самой сильной практикой работы с агентом, а не лишним кодом, который нужно резать при любой возможности. Для мелкой правки пропустить тест разумно, но для функции с реальной логикой отказ от проверки - это обмен надёжности на короткую строку в файле
Процент экономии одного автора - не гарантия на твоей задаче. Мой собственный прогон дал разницу в 8 раз на мини-задаче в одну функцию - это больше, чем средний процент стороннего разбора на чужом наборе задач. Разброс между чужим средним и твоим конкретным случаем зависит от того, насколько чётко получилось описать задачу одним предложением
Установка стороннего инструмента - не единственный путь. Есть альтернатива без единой установки - записать правило прямо в файл CLAUDE.md своего проекта, и дальше по тексту разобрано именно это
Правило в свой файл CLAUDE.md - без установки чего-либо
Есть способ закрепить эту привычку навсегда, не ставя ни одной новой программы. Claude Code умеет читать особый файл с постоянными инструкциями о твоём проекте при каждом запуске - он называется CLAUDE.md и лежит в папке твоего проекта
Куда нажать: создай в корне своего проекта обычный текстовый файл с именем CLAUDE.md (через "File" → "New File" в окне, где работаешь с Claude Code) и вставь туда фразу про минимальный дифф из раздела выше
Что увидишь: при следующем же запросе в этом проекте Claude Code сам подхватит инструкцию из файла, без того чтобы ты каждый раз печатал её заново
Что это даёт: правило работает на весь проект сразу, а не только на одно сообщение, и тебе не нужно ничего устанавливать или подключать - только обычный текстовый файл, который уже умеет читать твой Claude Code
Этот способ не требует стороннего плагина или расширения: сам механизм персональных инструкций - часть самого Claude Code, официально описанная в документации Anthropic про постоянные инструкции проекта. Если хочешь разобраться в этом файле подробнее - что ещё в него можно положить, какой там формат и зачем нужен замок на самые важные строки - у меня есть отдельный подробный разбор: CLAUDE.md: памятка для ИИ, 4 прогона и замок на важное. А если интересно, как устроен файл CLAUDE.md у известного в индустрии практика с 210 тысячами звёзд на его открытом проекте - вот разбор простыми словами: CLAUDE.md Karpathy: 210K звёзд и 4 правила простыми словами
Помимо самого файла CLAUDE.md, у Claude Code есть и другие способы расширить поведение - готовые скиллы и подключаемые сервисы. Разница между ними и когда что использовать разобрана отдельно: плагины, скиллы и MCP в Claude Code: чем 3 сущности отличаются, а если самому захочется собрать свой скилл под конкретную задачу - вот пошаговый разбор: как сделать свой Skill в Claude за 5 шагов: живой прогон 2026
Если хочешь разобраться в истории своих сессий и восстановить старый разговор - у меня есть отдельный разбор: история сессий Claude Code: как посмотреть и восстановить разговор. А чтобы увидеть более широкую картину того, что вообще формирует ответ Claude Code помимо самого запроса - файлы проекта, память, инструменты - у меня есть карта из шести слоёв: контекст-инжиниринг: карта из 6 слоёв в Claude Code
Разница между теми, у кого Claude Code реально экономит время, и теми, кто тонет в лишнем коде и правках - это чаще всего вопрос привычек, а не таланта. Разбор на большой выборке реальных сессий - 400 000 сессий Claude Code: три привычки тех, у кого получается
Что почитать дальше про Claude Code
- Как экономить токены в Claude: рабочие приёмы и настройки - если хочешь резать не код, а объём самой переписки с моделью
- Headroom: сжатие токенов Claude Code, счёт ниже на 95% - готовая прокладка, которая делает то же самое автоматически
- История сессий Claude Code: как посмотреть и восстановить разговор - если хочешь разобраться в файлах памяти Claude Code подробнее
- Настройка Claude Code бесплатно: запуск с нуля - если Claude Code у тебя ещё не установлен
- CLAUDE.md: памятка для ИИ, 4 прогона и замок на важное - если хочешь закрепить не только фразу про минимальный дифф, но и другие правила проекта
- Как писать короткие промпты: 5 приёмов для ChatGPT и Claude - если хочешь научиться формулировать задачи короче и точнее
- Как проверить код от ИИ, если не умеешь читать код: 7 проверок - если сомневаешься, можно ли доверять готовому результату
- Как откатить изменения Claude Code: /rewind, git и 5 путей - если минимальный дифф всё-таки получился неудачным
- 400 000 сессий Claude Code: три привычки тех, у кого получается - более широкий разбор привычек продуктивной работы
- Тема: Claude Code - больше разборов про доступ, установку и настройку Claude Code
Источники
Anthropic - официальная документация, снята живым запросом 05.09.2026; собственный прогон автора на двух формулировках одной задачи, 05.09.2026; независимый источник про принцип экономии в коде, существующий задолго до любого инструмента ИИ
- Anthropic: Best practices for Claude Code - официальная документация, раздел про режим планирования и объём задачи
- Anthropic Engineering: Claude Code best practices - инженерный блог про агентный воркфлоу
- Anthropic: постоянные инструкции CLAUDE.md - официальный механизм персональных правил проекта
- Anthropic: типовые сценарии работы с Claude Code - официальная документация
- Wikipedia: You aren't gonna need it (YAGNI) - независимый источник о принципе минимализма в коде
Памятка перед следующим запросом к Claude Code
Пять строк, которые стоит держать перед глазами
Сохрани себе
- Короткая и общая просьба почти всегда получает больше кода, чем нужно - это подтверждено и официальной документацией Anthropic, и моим собственным прогоном
- Фраза "минимальный дифф, без лишних тестов и проверок" в начале запроса режет объём в разы - у меня разница составила 8 раз на простой задаче
- Три исключения, где минимализм опасен - деньги и платежи, публичные формы и код, который будут читать другие
- Проверку результата (тест, повторный прогон) резать нельзя никогда, даже в самом коротком запросе - это отдельная от объёма кода вещь
- Закрепить фразу насовсем можно файлом CLAUDE.md в своём проекте, без установки чего-либо нового
Порог входа
Фраза уже у тебя, следующий шаг - тоже бесплатный
Всё, что нужно, чтобы Claude Code перестал писать за тебя лишний код, ты только что прочитал бесплатно: рабочую фразу, три исключения и подтверждение из официальной документации. Следующий шаг - три дня разбора твоих реальных задач - тоже стоит ровно ноль
Заявка в закрытый канал, одобряю сразу. Бот сам напишет первым и покажет, как забрать три дня Лагеря. Бесплатно
Частые вопросы
Почему Claude Code добавляет тесты, если я их не просил?
Потому что без явных границ агент опирается на общее представление окачественном коде, где тесты и проверки - стандартная часть хорошей работы.Он не различает "черновик на скорую руку" и "рабочий проект" сам по себе,если ты не сказал прямо, какой из двух тебе нужен
Работает ли фраза про минимальный дифф в один клик или её нужно вставлять каждый раз?
Отдельным сообщением - каждый раз заново, в начале следующего запроса.Насовсем закрепить её можно файлом CLAUDE.md в своём проекте - тогда ClaudeCode сам подхватывает правило при каждой новой задаче в этом же проекте,без повторного набора текста
Разве меньше кода не значит менее надёжный код?
Не всегда. Официальная документация Anthropic отдельно называет проверкурезультата - тест, логическую сверку, повторный прогон - самой сильнойпрактикой работы с агентом. Резать стоит описание функции, лишнюювалидацию и придуманные агентом тесты сверх задачи, а не саму возможностьпроверить, что код работает
На сколько именно сократится код, если использовать эту фразу?
По моему собственному прогону на простой задаче в одну функцию разницасоставила 8 раз. Это цифра конкретной мини-задачи, а не гарантия для любойработы - на более крупной задаче в несколько файлов кратность скорее всегобудет меньше, но направление останется тем же
Нужно ли устанавливать что-то дополнительное, чтобы это работало?
Нет. Сама фраза вставляется прямо в обычный запрос текстом, а способзакрепить её насовсем - обычный файл CLAUDE.md, который твой Claude Codeуже умеет читать без единой установки