Files
dotfiles/agents/.agents/skills/cross-review/references/launch-codex.md
T
ddadminandClaude Opus 5.5 158075e059 feat(skills): добавлен скилл cross-review для ревью моделью другого семейства
- Зачем: два плейбука оркестрации разошлись, а из них на практике нужно
  только независимое ревью моделью другого семейства.
- Что: линзы для ревьюера (по задаче, по коду, форма и вкус, вычитание,
  план), общий мандат и перепроверка; разбор находок остаётся у автора.
  Механика запуска вынесена в адаптеры: T3 Code, codex exec, claude -p.
  Следующие круги ревью идут продолжением сессии того же ревьюера.
  Старые плейбуки пока не удалены.
- Проверка: запуск, запись отчёта и продолжение сессии прогнаны на
  codex-cli 0.163.0, Claude Code 2.1.302 и в T3 Code; два круга
  ревью скилла (gpt-6.1-sol, gpt-6-astra), находки исправлены; ссылки
  и YAML проверены скриптом.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 16:03:50 +02:00

6.2 KiB
Raw Blame History

Запуск Codex из командной строки

Для автора, у которого есть shell и установлен codex. Проверено на codex-cli 0.163.0 (Linux, 2026-10-17): первый запуск, продолжение по id, запись отчёта в обменный каталог.

Перед первым запуском

На новой машине и после обновления Codex проверь, что команды внутри песочницы вообще выполняются:

codex sandbox -c 'sandbox_mode="workspace-write"' -- sh -c 'echo SANDBOX_OK'

На Linux отказ вида bwrap: ... Failed RTM_NEWADDR обычно значит, что AppArmor запрещает непривилегированные user namespaces. Это настройка машины, а не ревью: сообщи пользователю и сошлись на требования песочницы. Работающий веб-поиск о песочнице ничего не говорит.

Первый запуск

# D — обменный каталог с готовым brief.md, S — каталог скилла
cat "$D/brief.md" "$S/prompts/mandate.md" "$S/prompts/lens-code.md" \
  > "$D/prompt.md"

set -o pipefail
cat "$D/prompt.md" | codex exec --json --strict-config --approve-for-me \
  --add-dir "$D" -m <model> -c 'model_reasoning_effort="<effort>"' \
  -o "$D/final.md" - > "$D/log.jsonl" 2> "$D/err.txt"
  • Промпт — каналом через stdin (cat … | codex exec … -): так он доходит в любой среде. Поток событий и ошибки — в файлы; в свой контекст читай только final.md и отчёт REPORT.
  • --approve-for-me даёт песочницу workspace-write и сам одобряет выход за неё: сеть, docker, команды вне каталога. Вместе с -s он не принимается. Шире — danger-full-access — ревьюеру не нужно.
  • --add-dir "$D" разрешает запись отчёта в обменный каталог.
  • Модель и глубину задавай явно. Иначе они берутся из ~/.codex/config.toml и зависят от последней интерактивной сессии пользователя. На 2026-10 для ревью кода обычно лучше всего подходит gpt-6.1-sol с глубиной high. gpt-6-astra с xhigh сильнее и заметно дороже: бери её по просьбе пользователя или когда ошибка особенно дорога. Названия моделей быстро устаревают: при сомнении спроси пользователя.
  • --strict-config останавливает запуск при неизвестном ключе -c. Без него опечатка молча заменяется настройкой по умолчанию.

Ожидание

Ревью идёт от нескольких минут до получаса. Запускай команду фоном средствами своей среды: в Claude Code — Bash с run_in_background, без & внутри команды; среда разбудит тебя по завершении.

  • id сессии — в первой строке лога: head -1 "$D/log.jsonl" | jq -r .thread_id. Сохрани его сразу: по нему идут перепроверка и спасение, если процесс умер.
  • Признак жизни — рост log.jsonl. Долгая сборка или тесты внутри песочницы событий не пишут, поэтому застывший лог — повод посмотреть, а не приговор.
  • Вердикт без находок проверь по логу: работа это или отписка. grep -c '"command_execution"' "$D/log.jsonl" — число выполненных команд. Голое APPROVED при нуле команд перезапускай.

Затраты

Токены по каждому ходу пишутся в лог: jq -c 'select(.type=="turn.completed") | .usage' "$D/log.jsonl". Стоимости в выводе нет.

Следующие круги

Узкая перепроверка или полный проход по новой версии — продолжением той же сессии. Что положить в поручение — в разделе «Следующие круги» SKILL.md.

cat "$D/recheck-prompt.md" | codex exec resume --json --strict-config \
  -m <model> -c 'model_reasoning_effort="<effort>"' \
  -o "$D/recheck-final.md" <thread-id> - \
  > "$D/recheck-log.jsonl" 2> "$D/recheck-err.txt"
  • Только по явному id. --last подхватит последнюю сессию, а при нескольких ревьюерах это может быть чужая.
  • Песочница и доступ к $D принадлежат сессии и сохраняются; ключей -s, --approve-for-me и --add-dir у resume нет.
  • Модель и глубину повтори явно — те же, что при первом запуске: иначе подставятся значения из конфига, а смена глубины внутри сессии сбрасывает кэш.

Особенности ревьюеров Codex

  • Мандат и формат отчёта держат надёжно.
  • Бывает, требуют исправлений сверх цели задачи; в других прогонах все починки выходили соразмерными. Проверяй соразмерность как обычно.
  • Хорошо ловят уровень требований: недостающие критерии, наблюдаемость, «формально отчитаться можно».