Запустить проверку можно из меню треда двумя способами: полный мастер с выбором, что именно смотреть, и быстрый пункт, который сразу берёт все незакоммиченные правки.
Шапка мастера
Мастер открывается отдельным полноэкранным окном, и шапка у него такая же, как у служебных экранов агента.
- Слева в шапке стоит стрелка назад — она закрывает мастер, ничего не отправляя.
- В первой строке шапки написано 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 символов или с посторонними символами не принимается, даже если такой коммит существует.
- Превью в мастере показывает только вид цели, поэтому текст вашей свободной формулировки в нём не виден.