↓Перейти к содержанию

Как профессионально ревьюить код от AI?

·506 слов·3 минуты
Ревью кода от AI-агентов в терминале

Проблема

AI сейчас генерирует просто тонну кода. Намного больше, чем я реально успеваю прочитать.

В обычный день у меня параллельно работают от 3 до 5 агентов (как я с ними работаю, писал в статье про Agentic Mode). И каждый заканчивает работу диффом, который мне надо проверить.

Писать код стало дешево. Ревьюить - нет.

Так что мне понадобился способ ревьюить весь этот код удобнее.

Последние три месяца я каждый день пользуюсь для этого одним инструментом. Он называется tuicr.

Что такое tuicr?

tuicr - open-source инструмент для код-ревью в терминале, написан на Rust. Работает с локальными изменениями и с пулл-реквестами на GitHub.

Комментарии оставляешь прямо на диффе, а агент получает их нумерованным списком: у каждого указан файл и строка. Больше не нужно копировать код в чат руками.

Он не идеален. Минусы и пару альтернатив покажу в конце.

Главная идея

./tuicr-sample.webp

Идея простая: ревью живет там же, где и агенты. В терминале.

Я прохожу по диффу, оставляю несколько комментариев и жму y (или :export). Все ревью попадает в буфер обмена, и я вставляю его обратно агенту. Вот и весь цикл.

А когда ревьюю пулл-реквест на GitHub, :submit публикует те же комментарии как настоящее ревью PR, прямо на строках.

Главные фичи и плюсы

  1. Навигация как в Vim: прыжки между измененными файлами, ханками и твоими комментариями. Если удобнее, можно и мышкой.
  2. Можно ревьюить несколько ревизий сразу.
  3. Текущий файл открывается в редакторе прямо из tuicr.
  4. Гибкие комментарии: на весь файл, на диапазон строк или на одну строку.
  5. Файлы и ханки можно отмечать как просмотренные, и tuicr помнит это между сессиями. Если агент снова поменял файл, отметка снимается, так что новые изменения я не пропускаю.
  6. Типы комментариев: помечаю комментарий как issue, и в экспорте агент видит, что это "must fix before merge". Типы задаются в конфиге, можно добавить свои.

Минусы

  1. Комментарии в пулл-реквестах GitHub не синхронизируются: tuicr умеет только публиковать их, в одну сторону.
  2. Нет подсветки изменений на уровне слов, как в delta.
  3. Иногда tuicr не синхронизируется с актуальной ревизией, или не получается открыть его так, чтобы он сам подхватил изменения в текущей ревизии.
  4. Не переключается на темную тему на лету. Системную тему он смотрит только при запуске, так что приходится перезапускать (да, для меня это все еще важно 🙂).

Совет: если tuicr игнорирует системную тему, убери theme из конфига и задай theme_dark / theme_light.

Лучший ли это выбор сейчас?

Если ты живешь в терминале, думаю, да.

Если большую часть дня сидишь в Neovim, все немного иначе. review.nvim дает тот же цикл прямо в редакторе: комментарии на диффе, экспорт в markdown для агента. Его, кстати, вдохновил как раз tuicr.

Для пулл-реквестов на GitHub есть octo.nvim. Но это два плагина под две задачи, а tuicr делает обе в одном месте.

В Emacs для локального ревью я использую reviewer.el. Он добавляет заметки в любой буфер, включая дифф, и собирает их в org-документ, который можно отдать агенту.

А вот для пулл-реквестов на GitHub удобного решения в Emacs я пока не нашел.

Альтернативы

Есть и другие инструменты для ревью кода от AI-агентов. Автор tuicr собрал сравнение:

https://github.com/agavra/tuicr#how-it-compares

Но, честно говоря, почти все из этого в tuicr работает лучше.