AmigaОбучение ИИ
Модуль 2 · Рабочий процесс · урок 7 из 13

Ревью кода с Claude Code

10 мин чтения▶ есть видеоверсия

Ревью — одна из задач, где агент полезен сразу, без настройки. Он не устаёт к сороковому файлу, не пропускает необработанный null из вежливости и умеет прочитать весь diff, а не только те места, куда упал взгляд. Но у ревью агентом есть свои особенности: он склонен находить замечания, даже когда их нет, и слабо отличает важное от вкусового. В этом уроке — как получать от него пользу и не утонуть в шуме.

Ревью своих изменений

Самый простой сценарий — перед коммитом. Вы поработали, изменения лежат в рабочем дереве. /diff покажет их целиком, включая правки, которые внёс агент. Дальше:

text
проверь мои изменения и предложи улучшения

Это работает, но лучше сузить запрос. Документация советует давать ревьюеру критерии: что считать находкой, а что нет.

text
проверь diff на корректность: обработка ошибок, краевые случаи,
гонки. стиль и именование не комментируй. для каждой находки —
файл, строка, почему это проблема.

Для Python-бэкенда стоит добавить: «проверь, что новые эндпоинты покрыты тестами и что миграция обратима». Для Flutter: «проверь, что виджеты не пересобираются лишний раз и что состояние не течёт при уходе с экрана». Чем конкретнее критерии, тем меньше мусора в ответе.

Встроенная команда /code-review

В Claude Code есть готовый навык ревью. Команда /code-review (синоним /review) проверяет текущий diff на ошибки корректности и возможности упрощения. Ей можно передать номер PR, имя ветки или путь — тогда она проверит их вместо рабочего дерева. Уровень тщательности задаётся словом: low и medium дают меньше находок с высокой уверенностью, high и выше — шире охват, включая сомнительные. Флаг --fix применяет найденное к рабочему дереву, --comment оставляет замечания в PR.

text
/code-review high
/code-review 1432 --comment

Важная деталь: ревью выполняется в отдельном субагенте с чистым контекстом. Ревьюер видит только diff и критерии, а не рассуждения, которые привели к изменению. Это принципиально: агент, который только что написал код, склонен считать его правильным. Свежий контекст такой предвзятости не имеет.

Рядом есть /security-review — проверка diff на уязвимости: инъекции, утечки секретов, небезопасная обработка данных. Для проектов, где ходят персональные данные или платежи, стоит запускать её перед каждым PR.

Ревью того, что написал агент

Если агент реализовал фичу, не стоит принимать результат на слово. Документация называет это «разрыв между доверием и проверкой»: реализация выглядит правдоподобно, но не обрабатывает краевые случаи. Два способа закрыть разрыв.

Первый — проверочный субагент против плана:

text
используй субагента, чтобы проверить diff экспорта в CSV против PLAN.md.
убедись, что каждое требование реализовано, для перечисленных краевых
случаев есть тесты, и ничего за пределами задачи не изменилось.
сообщай о пробелах, а не о стилистических предпочтениях.

Субагент вернёт список пробелов прямо в сессию, и агент сможет исправить их и перепроверить без вашего участия в пересылке замечаний.

Второй — две сессии, «писатель» и «ревьюер». В одном терминале агент пишет реализацию, во втором — свежая сессия получает запрос «проверь реализацию ограничителя запросов в @src/middleware/rateLimiter.ts, найди краевые случаи, гонки и несоответствия существующим middleware». Ответ второй сессии вы вставляете в первую: «вот замечания ревью, исправь». Свежий контекст здесь работает так же, как субагент, но вы видите обе стороны.

Документация предупреждает: ревьюер, которого попросили найти пробелы, обычно их находит, даже если работа хорошая. Погоня за каждой находкой ведёт к переусложнению: лишние абстракции, защитный код, тесты на невозможные случаи. Просите сообщать только о том, что влияет на корректность или требования, а остальное считайте необязательным.

Ревью чужого PR

Для чужого кода агент особенно полезен как первый читатель. Если установлен gh, можно работать прямо с PR:

text
прочитай PR #1432 через gh, объясни, что он меняет и зачем.
потом проверь: есть ли изменения, не описанные в заголовке PR,
и есть ли места, где поведение старого API сломано.

Агент подтянет описание, diff и комментарии. Хороший первый вопрос — «что здесь изменилось на самом деле?» — часто расходится с описанием PR, и это уже находка. Дальше можно попросить сформулировать замечания в виде комментариев к строкам и оставить их через gh — но перед отправкой прочитайте: комментарии уходят от вашего имени.

Если вместо GitHub у команды GitLab, тот же сценарий работает через glab. Без CLI агент может обращаться к API напрямую, но без авторизации быстро упрётся в лимиты.

Ревью в CI

Неинтерактивный режим позволяет встроить ревью в конвейер:

bash
git diff main --name-only | claude -p "проверь эти файлы на проблемы с безопасностью"

Для полноценной автоматизации — комментарии в PR при каждом пуше, разбор упавших проверок — есть готовые интеграции с GitHub Actions и GitLab CI/CD, а также GitHub Code Review, который делает автоматическое ревью каждого PR. Их настройка описана в документации; для вводного курса достаточно знать, что они существуют и что для них нужен отдельный доступ.

Пользовательский ревьюер

Если у команды есть устойчивые критерии ревью, их можно оформить в субагента и хранить в репозитории. Файл .claude/agents/security-reviewer.md из документации:

markdown
---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---
You are a senior security engineer. Review code for:
- Injection vulnerabilities (SQL, XSS, command injection)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure data handling

Provide specific line references and suggested fixes.

Вызов: «используй субагента security-reviewer для этого diff'а». Для проекта на Bitrix в таком файле уместно перечислить типичные проблемы платформы: прямые SQL-запросы вместо ORM, вывод без экранирования, чтение параметров запроса без проверки. О том, как устроены такие файлы, — в уроке про субагентов.

Что агент не заменяет

Ревью агентом хорошо ловит локальные ошибки: необработанные исключения, несогласованность с соседним кодом, пропущенные тесты. Оно плохо ловит то, что требует знания продукта: «эта фича противоречит тому, что мы обещали заказчику», «этот эндпоинт нельзя открывать без согласования с безопасностью». Такие вещи по-прежнему проверяет человек. Правильная схема — агент первым, человек вторым, и человек тратит время на смысл, а не на поиск опечаток.

Попробуйте сами

10–15 мин на рабочем месте
  1. Перед следующим коммитом запустите /code-review и сравните находки со своим ревью. Что он нашёл, чего не заметили вы, и наоборот?
  2. Возьмите открытый PR коллеги и попросите агента через gh объяснить, что он меняет, и найти изменения, не описанные в заголовке. Не отправляйте комментарии — только сравните с тем, что нашли бы сами.
  3. Напишите для своего проекта файл .claude/agents/reviewer.md с пятью критериями, которые команда чаще всего поднимает на ревью. Прогоните его на последнем diff'е.

Коротко

  • /diff показывает изменения; /code-review (или /review) проверяет diff, PR, ветку или путь в чистом субагенте.
  • Давайте ревьюеру критерии: что считать находкой. Иначе получите шум из вкусовых замечаний.
  • Код, написанный агентом, проверяйте субагентом или второй сессией — свежий контекст не предвзят.
  • Чужой PR: через gh попросите объяснить, что изменилось на самом деле; комментарии перед отправкой читайте.
  • /security-review — для проектов с персональными данными и платежами.
  • Агент ловит локальные ошибки; смысл и продуктовые ограничения проверяет человек.

Видеоверсия

Сценарий озвучки · 515 слов, ≈ 4 мин

Ревью — задача, где агент полезен сразу. Он не устаёт к сороковому файлу и не пропускает необработанный null из вежливости. Но у ревью агентом есть особенности: он склонен находить замечания даже там, где их нет, и слабо отличает важное от вкусового. В этом ролике — как получать пользу и не утонуть в шуме.

Начнём с ревью своих изменений перед коммитом. Команда «дифф» покажет всё, что изменилось. Дальше можно написать «проверь мои изменения». Но лучше сузить: проверь на корректность, обработку ошибок, краевые случаи и гонки; стиль не комментируй; для каждой находки — файл, строка и почему это проблема. Для Python-бэкенда добавьте проверку, что эндпоинты покрыты тестами. Для Flutter — что виджеты не пересобираются лишний раз. Чем конкретнее критерии, тем меньше мусора.

В Claude Code есть готовая команда ревью — «код-ревью». Она проверяет текущий дифф на ошибки корректности. Можно передать номер pull request'а, ветку или путь. Уровень тщательности задаётся словом: низкий даёт мало находок с высокой уверенностью, высокий — широкий охват. Важная деталь: ревью выполняется в отдельном субагенте с чистым контекстом. Ревьюер видит только дифф и критерии, а не рассуждения, которые привели к коду. Агент, который только что написал код, склонен считать его правильным. Свежий контекст такой предвзятости не имеет. Рядом есть команда проверки безопасности — для проектов с персональными данными и платежами запускайте её перед каждым pull request'ом.

Отдельный случай — ревью того, что написал сам агент. Не принимайте результат на слово. Первый способ: проверочный субагент против плана. Попросите его убедиться, что каждое требование реализовано, для краевых случаев есть тесты и ничего за пределами задачи не тронуто. Второй способ: две сессии — писатель и ревьюер. В одном терминале агент пишет, во втором свежая сессия проверяет, а вы переносите замечания. Документация предупреждает: ревьюер, которого попросили найти пробелы, обычно их находит, даже если работа хорошая. Погоня за каждой находкой ведёт к лишним абстракциям и тестам на невозможные случаи. Просите сообщать только о том, что влияет на корректность.

Теперь чужой pull request. Если установлена утилита gh, агент подтянет описание, дифф и комментарии. Хороший первый вопрос: что здесь изменилось на самом деле? Ответ часто расходится с описанием, и это уже находка. Дальше можно попросить сформулировать замечания к строкам и отправить их, но перед отправкой прочитайте — комментарии уходят от вашего имени. Для GitLab то же самое работает через утилиту glab.

Ревью можно встроить в CI: неинтерактивный режим принимает список изменённых файлов на вход и возвращает отчёт. Для полной автоматизации — комментарии при каждом пуше, разбор упавших проверок — есть готовые интеграции с GitHub Actions и GitLab. Их настройка описана в документации.

Если у команды устойчивые критерии ревью, оформите их в субагента и храните в репозитории: файл в папке агентов с описанием, списком инструментов и текстом инструкции. Для проекта на Bitrix там уместно перечислить типичные проблемы платформы: прямые запросы к базе вместо ORM, вывод без экранирования, параметры запроса без проверки.

И о границах. Агент хорошо ловит локальные ошибки: необработанные исключения, несогласованность с соседним кодом, пропущенные тесты. Он плохо ловит то, что требует знания продукта: противоречие обещаниям заказчику, эндпоинт, который нельзя открывать без согласования. Это проверяет человек. Правильная схема: агент первым, человек вторым, и человек тратит время на смысл, а не на опечатки.

В следующем модуле займёмся настройкой. Начнём с файла клод-эм-дэ — памяти проекта.

Отметка хранится только в вашем браузере