y83 code / справочник

Ревью правок

Ревью — это отдельная проверка вашего кода специальным ревьюером: он читает изменения и пишет отчёт о рисках, регрессиях и недостающих тестах, но ничего не правит.

раздел
Чат с агентом (Codex)
пунктов возможностей
50
источник
docs/codex/review.md

Запустить проверку можно из меню треда двумя способами: полный мастер с выбором, что именно смотреть, и быстрый пункт, который сразу берёт все незакоммиченные правки.

Шапка мастера

Мастер открывается отдельным полноэкранным окном, и шапка у него такая же, как у служебных экранов агента.

  • Слева в шапке стоит стрелка назад — она закрывает мастер, ничего не отправляя.
  • В первой строке шапки написано codex@review и дальше стоит мигающий курсор, как в командной строке.
  • Во второй строке шапки написано report · inline in this thread. Это подсказка о том, что вы получите отчёт и в каком диалоге.

Два входа в ревью

В меню треда есть два пункта, оба про ревью, и отличаются они степенью настройки:

  • Review changes открывает мастер проверки. В нём вы выбираете, что именно ревьюер должен прочитать, и только потом запускаете проверку.
  • Review uncommitted запускает проверку сразу. Мастер при этом не открывается, а отчёт приходит в этот же диалог.
  • Быстрый пункт закрывает меню треда и сразу отправляет задачу ревьюеру, поэтому после тапа вы возвращаетесь в переписку и ждёте отчёт.
  • Быстрый пункт проверяет только незакоммиченные правки. Ни ветку, ни один коммит через него выбрать нельзя, для этого нужен мастер.

Что именно проверять

Мастер спрашивает главное: что ревьюер должен прочитать. Вариантов ровно четыре, и выбранный отмечен бирюзовой рамкой, поэтому видно сразу, на чём остановились.

  • Uncommitted changes — всё, что ещё не закоммичено. Сюда входят и подготовленные изменения, и обычные правки, и новые файлы, которые репозиторий ещё не следит. Такую проверку обычно делают перед коммитом.
  • Branch vs base — коммиты вашей ветки, которых нет в базовой ветке. Это ровно то, что попадёт в запрос на слияние, когда вы откроете его в гит-хостинге.
  • Single commit — изменения, которые внёс один конкретный коммит. Нужен, когда вы смотрите чужую правку или хотите разобрать один коммит из своей истории.
  • Custom instructions — свободная формулировка задачи. Сюда можно написать что угодно: посмотреть один файл, оценить решение или план миграции.

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

Поле аргумента

Под списком карточек появляется поле, и то, что в нём спрашивают, зависит от выбранной цели:

  • Для Branch vs base поле подписано Base branch и ждёт имя базовой ветки, обычно это main. Поле однострочное.
  • Для Single commit поле подписано Commit SHA и ждёт идентификатор коммита, например короткий a1b2c3d. Поле однострочное.
  • Для Custom instructions поле подписано Instructions и ждёт ваш текст задачи. Поле выше в три строки, потому что формулировка обычно длинная.
  • Для Uncommitted changes поля нет вообще: незакоммиченные правки и так известны ревьюеру, спрашивать у вас нечего.

Проверка аргумента

Пока поле пустое или в нём ошибка, кнопка запуска не нажимается. Что именно считается ошибкой, зависит от цели:

  • Для ветки имя обязательно, иначе проверять нечего.
  • Для инструкций текст обязателен по той же причине.
  • Для коммита требуется идентификатор от 7 до 40 символов. Короткая запись вроде a1b2c3d подходит, полный сорокасимвольный тоже.
  • Для коммита допустимы только цифры и латинские буквы от a до f. Любой другой символ приложение считает опечаткой.
  • Пока вы не начали печатать, ошибка не показывается. Подсказка о неправильном значении появляется только после первого символа, чтобы пустое поле не выглядело сломанным.
  • Красным подсвечивается только само поле, а не весь экран.

Куда придёт отчёт

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

  • В разделе // where есть ровно одна карточка: This thread (inline). Она всегда выделена бирюзовой рамкой и не нажимается, потому что выбрать другой вариант нельзя.
  • Отчёт приходит в переписку как ответ ревьюера и ничем не отличается от обычного сообщения агента.
  • Если не хотите смешивать отчёт с текущей работой, откройте новый диалог и запускайте ревью уже в нём. Отдельный тред специально под ревью приложение не создаёт.

Превью запроса

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

  • Формат строки всегда такой: сначала слово review, затем выбранная цель, затем слово inline, всё это разделено точкой с пробелом.
  • Для незакоммиченных правок строка выглядит как review · uncommitted · inline.
  • Для ветки в неё подставляется её имя, например review · branch main · inline.
  • Для коммита в неё подставляется идентификатор, например review · commit a1b2c3d · inline.
  • Для произвольных инструкций в строке стоит слово custom, а сам текст задачи туда не попадает.
  • Строка обновляется сразу, как только вы меняете карточку или правите поле, так что она всегда показывает текущий выбор.
  • Строка только показывает ваш выбор: запустить ревью по её тексту нельзя, для этого есть кнопка внизу.

Запуск ревью

Внизу экрана две кнопки, слева отмена, справа запуск, и запускающая занимает всю оставшуюся ширину:

  • Кнопка Start review отправляет задачу ревьюеру и закрывает мастер.
  • Кнопка Start review не нажимается, пока не заполнено поле, которое требует выбранная цель.
  • Кнопка Cancel просто закрывает мастер без запуска, ничего не отправляя.
  • После запуска появляется уведомление. Если запрос принят, в переписке мелькает Review started.
  • Если ответа от движка не пришло, появляется уведомление Server rejected the review request, и разбираться приходится с журналом работы.
  • Пока идёт сама проверка, мастер уже закрыт, поэтому дождаться отчёта нужно в переписке, а отменить проверку на этом экране нельзя.

Технические данные

ПараметрЗначение
Способов открыть ревью2 пункта меню треда
Вариантов цели проверки4
Выбор места для отчётаодин, всегда текущий диалог
Длина идентификатора коммитаот 7 до 40 символов
Допустимые символы идентификатора коммитацифры и латинские буквы от a до f
Высота поля инструкций3 строки
Высота остальных полей1 строка
Порядок слов в превьюreview, затем цель, затем inline
Подпись экрана в шапкеcodex@review
Вторая строка шапкиreport · inline in this thread
Текст уведомления об успешном запускеReview started
Текст уведомления об отказеServer rejected the review request

Что агент умеет

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

Ограничения

  • Ревьюер не правит файлы: он только читает изменения и пишет отчёт, поэтому исправления после проверки остаются на вас.
  • Отчёт всегда приходит в тот же диалог, откуда запущено ревью, а отдельный тред для разбора приложение не создаёт. Чтобы не смешивать отчёт с работой, начните новый диалог заранее.
  • Пункт Review uncommitted не задаёт вопросов: он всегда проверяет незакоммиченные правки, и выбрать ветку или коммит через него нельзя.
  • Отменить уже запущенную проверку на этом экране нельзя: мастер закрывается сразу, а сама проверка идёт в переписке.
  • Если диалог ещё не создан, нажатие на Start review не делает ничего, и уведомления об этом тоже не будет.
  • Проверка идентификатора коммита строгая: строка короче 7 символов или с посторонними символами не принимается, даже если такой коммит существует.
  • Превью в мастере показывает только вид цели, поэтому текст вашей свободной формулировки в нём не виден.

Источник: docs/codex/review.md. Страница собрана из документации проекта при сборке сайта — без пересказа.