Claude Code: работа с coding-агентом6. Большие задачи: спека и тикеты
Стандарты кода: место им в review
Засчитывается, когда отвечены все вопросы квиза
Третий раз за неделю агент кладёт вспомогательный файл в папку, где каждый файл становится публичным маршрутом. Вы снова пишете в чат: «Сколько можно, не клади сюда утилиты!» Агент извиняется, исправляет — и в следующей сессии делает то же самое. Он не помнит упрёков: каждая сессия начинается заново.
Зачем это нужно
Правило, которое живёт только в вашей голове или в прошлом чате, для агента не существует. Его нужно где-то записать. Вопрос — где: в CLAUDE.md, в промпте или в ревью. От ответа зависит, сколько контекста оно стоит и в какой момент сработает.
Как это устроено
Три уровня проверок. Перед тем как код попадёт в main, его проверяют три слоя:
| Уровень | Что ловит | Цена |
|---|---|---|
| Automated checks: linter, typecheck, тесты | механические ошибки | почти бесплатно |
| Automated review: агент читает diff | то, что требует суждения | токены |
| Human review | всё остальное | ваше внимание |
Автоматические проверки детерминированы: один и тот же код даёт тот же результат. Но тесты доказывают только то, что в них утверждается. Суждение — «этот тест проверяет не то», «имя непонятное» — даёт ревью. Автоматическое ревью не заменяет человеческое, а облегчает его: агент уже прошёл по diff и сделал первый проход.
Почему стандарты — в ревью. У агента-реализатора три задачи в одном окне: исследовать код, написать файлы, отладить. У агента-ревьюера нет ни одной: файлы ему передали, менять почти ничего не нужно, тесты уже прогнаны. Свободного контекста у него больше, а отвлекающих задач меньше. Значит, ему и проверять соответствие вашим правилам.
CLAUDE.md для этого подходит хуже: он загружается в начале каждой сессии и тратит контекст, даже когда правило к задаче не относится. Документация Claude Code советует держать там только то, что нужно в каждой сессии.
CODING_STANDARDS.md. В учебном проекте skill /code-review на одном из шагов ищет в репозитории всё, что описывает, как писать код: CODING_STANDARDS.md, CONTRIBUTING.md. Ось Standards сверяет diff с найденным. Файл может начаться с одной строки и расти по одному правилу:
All files in `./app/routes` are exposed publicly as routes.
Do not put test files or utility files there.
Context menu items always include a leading icon from `lucide-react`.
Каждая строка появляется одинаково: вы заметили, что агент сделал глупость, и записали правило. Поскольку файл читается только на ревью, его размер не так важен, как размер CLAUDE.md.
Даже без файла ось Standards не пустая: skill несёт базовый набор code smells из книги Мартина Фаулера «Refactoring» — Feature Envy, Shotgun Surgery, Mysterious Name и другие. Ваш файл ложится поверх и переопределяет базу: если проект явно разрешает то, что база посчитала бы запахом, замечание снимается.
Практика
В Cadence создайте CODING_STANDARDS.md в корне репозитория с одним правилом, которое агент уже нарушал при вас. Затем выполните ревью последних изменений:
/code-review
Найдите в отчёте раздел Standards и проверьте, сослался ли ревьюер на ваше правило. Если нарушений нет, добавьте правило, которое заведомо нарушено в текущем diff, и запустите ещё раз.
Подводные камни
/review— не ваш skill. Project skillcode-reviewзаменяет встроенный bundled skill/code-review, но не его алиас:/reviewзапустит встроенное ревью, которое вашCODING_STANDARDS.mdможет не учитывать.- Правило для linter-а. Если правило проверяется механически — форматирование, порядок импортов, — ему место в linter-е: там оно бесплатно и детерминировано.
- Правило в чате. Упрёк в сессии исчезает вместе с сессией. Не ругайте агента — запишите правило в файл.
Вывод: заметили, что агент снова делает не так, — допишите строку в CODING_STANDARDS.md, и ревью поймает это в следующий раз.
Проверь себя
Агент снова и снова нарушает одно соглашение проекта, которое linter проверить не может. Куда записать правило?
CODING_STANDARDS.md
, чтобы его поймало ревью
CLAUDE.md
, чтобы реализатор читал его каждый раз
CLAUDE.md
тратит контекст в каждой сессии, даже когда правило не нужно, а правило в промпте приходится помнить вам.
Чем automated check отличается от automated review?
В репозитории нет CODING_STANDARDS.md. С чем работает ось Standards в /code-review учебного проекта?
CLAUDE.md
Вы добавили правило в CODING_STANDARDS.md и набрали /review. Ревью правило проигнорировало. Вероятная причина?
CLAUDE.md
/review
— алиас встроенного ревью, а не вашего project skill
/clear
code-review
заменяет встроенную команду
/code-review
, но не её алиас
/review
. Вызывайте свой skill по его имени.
Источники
- Anthropic, Extend Claude with skills — «Resolve skills that share a name»
- Anthropic, How Claude remembers your project — когда загружается
CLAUDE.mdи что в нём держать - Anthropic, Commands —
/code-review,/review - По мотивам AI Coding Crash Course, AI Hero: «Enforcing Your Coding Standards»
Текст подготовлен с помощью LLM и может содержать неточности.