Claude Code: работа с coding-агентом5. Как направлять агента
Прополка: три проверки для каждой строки инструкций
Засчитывается, когда отвечены все вопросы квиза
Зачем это нужно
Файлы инструкций проекта только растут. Сначала в них пять строк, через полгода — пятьсот. Добавить правило кажется дешёвым и безопасным делом. Удалить — неловко: будто говоришь, что чужая работа больше не важна. Особенно в общем файле, куда пишет вся команда.
А цена каждой строки — context load в каждом запросе (см. 5.1). Документация Claude Code советует держать каждый CLAUDE.md короче 200 строк: длинные файлы занимают больше контекста и хуже соблюдаются. Поэтому файл инструкций нужно регулярно пропалывать — проходить строку за строкой и вырезать то, что не окупается.
Как это устроено
Решать, что остаётся, помогают три проверки.
1. Единственный источник правды
Каждый факт живёт в одном авторитетном месте. Дубли появляются незаметно: правило написали в AGENTS.md, его чуть другую версию — на странице документации, или один и тот же раздел дважды попал в длинный файл из разных pull request-ов.
Дубль обходится трижды:
- Поддержка. Изменили поведение — правьте в нескольких местах.
- Context load. Одно и то же оплачивается дважды.
- Вес. Повторённое правило звучит громче остальных и заглушает то, что сказано один раз.
Если копии расходятся, агент не знает, какая живая. Документация предупреждает: из двух противоречащих инструкций Claude может выбрать любую.
Отдельный случай: дубль того, что агент прочитает сам. Таблица npm-скриптов повторяет package.json, обзор стека — README.md, объяснение архитектурного решения — комментарий в коде. Источник правды — то, что исполняется или лежит рядом с кодом. Его и оставляйте.
2. Отложения
Отложения — строки, которые когда-то были правдой. Библиотеку заменили, соглашение поменялось, баг, от которого защищало правило, исправили. Правило осталось и тянет агента в мир, которого больше нет. Вопрос к каждой строке: это всё ещё правда?
Устаревшую строку вырезайте. Если часть её ещё верна, но нужна не всегда, вынесите эту часть за указатель (см. 5.2).
3. No-op
No-op — инструкция, которая ничего не меняет в поведении агента. Либо модель и так делает это по умолчанию («пиши понятные сообщения об ошибках», «не коммить секреты»), либо строка ничего не значит в своём контексте («этот файл содержит инструкции для агента»). Строка может быть правдивой и относиться к теме, но всё равно не стоить ни токена.
Проверка — один эксперимент: удалите строку и посмотрите, изменилось ли поведение. Не изменилось — это был no-op.
Что остаётся
Остаётся то, что агент сам не узнает и без чего ошибается. Пример из Cadence: маршруты регистрируются в конфиге, а не по имени файла, и новый файл маршрута без записи в таблице маршрутов отдаёт 404. Процедуры с предсказуемым триггером — «добавляю маршрут», «пишу тест» — переезжают в skills. Короткая таблица «симптом → причина» для поломок остаётся в файле: когда что-то сломается, заранее неизвестно.
Практика
Команда /init генерирует стартовый CLAUDE.md, и обычно он получается большим: обзор проекта, список команд, дерево директорий. Возьмите такой файл в Cadence (или свой текущий) и:
- Выполните
/contextв новой сессии и запишите, сколько токенов занимают файлы инструкций. - Пометьте каждую строку: дубль, отложение, no-op или «остаётся».
- Удалите помеченное или вынесите за указатель, затем снова выполните
/contextв новой сессии.
Число должно заметно упасть. Чтобы найти кандидатов быстрее, выполните /doctor prompt-audit: Claude ищет устаревшие инструкции, ссылки на несуществующие файлы и противоречия и предлагает правки, но ничего не меняет, пока вы не попросите.
Подводные камни
- Обобщение вместо удаления. Правило про старую библиотеку переписали в «выбирай библиотеки внимательно». Получился no-op: правда обо всём и ни о чём.
- Заметки для людей в контексте. Пояснения для сопровождающих пишите в блочных HTML-комментариях
<!-- ... -->: Claude Code вырезает их изCLAUDE.mdперед загрузкой, и они не тратят токены.
Вывод: каждая оставшаяся строка должна быть правдой, не повторяться и менять поведение агента.
Проверь себя
В вашем skill есть строка «пиши подробное commit-сообщение». Вы удалили её, и сообщения остались такими же подробными. Что дальше?
AGENTS.md
, чтобы она действовала всегда
AGENTS.md
только ухудшит дело: строка станет стоить контекста в каждом запросе и по-прежнему ничего не изменит.
Одно и то же соглашение об именовании записано в AGENTS.md и другими словами на странице документации. Что сделать?
В файле инструкций есть правило, которое обходит особенность библиотеки, заменённой в прошлом квартале. Что делать с этой строкой?
В AGENTS.md есть таблица всех npm-скриптов с описаниями, и те же скрипты лежат в package.json. Что оставить?
AGENTS.md
: так агенту не нужно открывать файл
package.json
: исполняемый файл и есть источник правды
package.json
агент прочитает сам, а что делает
npm run dev
, он и так знает. Таблица в
AGENTS.md
— дубль, который оплачивается в каждом запросе и разойдётся с кодом при первом новом скрипте.
Источники
- Anthropic, How Claude remembers your project
- Anthropic, Commands
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.