⚡ Claude Code

Rejudge: независимое ревью кода тремя моделями и судьёй

Михаил ИванинМихаил Иванин11 августа 2026 г.7 мин чтения
Rejudge: независимое ревью кода тремя моделями и судьёй
✈️
Свежие гайды и обзоры выходят в моём Telegram первыми
Подписаться →

Rejudge: независимое ревью кода тремя моделями и судьёй

Rejudge - это CLI-утилита, которая отдаёт один запрос трём разным ИИ-моделям в изолированных сессиях, а четвёртая модель-судья читает все три отчёта и выдаёт один сводный вердикт по багам, уязвимостям и рискам. Ставится через npm install -g rejudge, работает с Anthropic, OpenAI, Gemini, OpenRouter и OpenCode. Смысл простой: одна модель прощает свои же ошибки, три независимых - уже нет. Репозиторий - github.com/syabro/rejudge, лицензия MIT, 87 звёзд на 11 августа 2026.

Что делает Rejudge за 30 секунд

Ты отдаёшь в командную строку вопрос: "проверь эту миграцию на лок", "найди уязвимости в auth.ts", "нужен ли откат для этого диффа". Rejudge запускает три ревьюера параллельно, каждый в своей сессии, ни один не видит, что делают остальные. Ревьюеры получают только read-only доступ: read, grep, find, ls, git_diff, web_search. Дальше подключается судья - он читает три отчёта, задаёт уточнения через ask_panel там, где ревьюеры разошлись, и пишет один финальный ответ в stdout. Прогресс и run ID уходят в stderr, поэтому можно спокойно редиректить результат в файл.

Почему одна модель не ловит свои же баги

Есть четыре способа проверить код, который написал ИИ-агент. Автор Rejudge раскладывает их в README, и это ядро всей идеи.

  1. Та же сессия, та же модель. Агент перечитывает свой код. Он уже решил, что этот код правильный, повторное чтение решение не меняет.
  2. Новая сессия, та же модель. Контекст чистый, а модель нет. Те же данные обучения, те же привычки - принимает те же ошибки, что и сам бы написал.
  3. Другая модель, своя сессия. Другая модель ловит реальные баги. Но у тебя две противоречивые оценки, и решать, кто прав, всё равно тебе.
  4. Rejudge: три модели и судья. Все три получают вопрос одновременно, работают в изоляции. Судья сводит отчёты. Если все три подсветили одну проблему - три независимые проверки согласны. Если разошлись - судья решает, а не ты.

Моё правило после недели с тулом: одиночный Claude Code ловит очевидные регрессии, а расхождения между Sonnet, GPT-5 и Gemini на одном и том же файле - это карта тонких мест, где ты один бы не остановился.

Как это работает внутри

Rejudge устроен как оркестратор поверх Pi (нативная среда для AI-агентов). Одна npm-команда даёт три способа запуска: сам rejudge в терминале, нативный tool внутри Pi и Agent Skill для сторонних кодинг-агентов через Skills CLI. Ревьюеры не могут писать в файлы и запускать shell по умолчанию. Судья вообще не видит рабочую директорию - только три отчёта и возможность задать ревьюерам уточняющий вопрос.

Конфиг лежит в ~/.config/rejudge/config.json (или .rejudge/config.json в корне проекта - локальный перекрывает глобальный). В нём ты называешь минимум двух ревьюеров и одного судью, каждой модели ставишь уровень рассуждения: minimal, low, medium, high, xhigh. Чем выше - тем длиннее и глубже проверка.

Важный флаг - rejudge --resume <run-id> "...". Он открывает те же сессии с новым вопросом. Первый новый ход уходит только судье, ревьюеров он подключает через ask_panel, если надо. То есть можно вернуться к прогону через час и уточнить: "а что с планом отката?".

Установка за пять минут

Нужен Node.js 22.19.0 или новее и ключи хотя бы к одному провайдеру.

npm install -g rejudge

Если ты пользуешься не Pi, а Claude Code, Codex, Cursor или чем-то ещё, добавь скиллы, чтобы твой агент мог вызывать Rejudge:

npx skills add syabro/rejudge -g -y

Потом создай конфиг:

mkdir -p ~/.config/rejudge && cat > ~/.config/rejudge/config.json <<'EOF'
{
  "reviewers": [
    "anthropic/claude-sonnet-4-6@high",
    "openai/gpt-5@high",
    "google/gemini-2.5-pro@high"
  ],
  "judge": "anthropic/claude-opus-4-7@high"
}
EOF

Это пример - подставь модели, к которым у тебя есть доступ. Экспортируй ключ провайдера в ту же сессию, где будешь запускать rejudge:

export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
export GEMINI_API_KEY=...

Проверь, что работает, на любом вопросе про свой репо:

cd my-project
rejudge "перечисли два самых опасных места в коде"

Готовый запрос для Claude Code

Если хочешь, чтобы Claude Code сам поставил Rejudge, настроил конфиг и прогнал ревью на текущей ветке - вставь в Claude Code такой запрос:

Поставь Rejudge (github.com/syabro/rejudge) глобально через npm, 
проверь версию Node (>=22.19). Создай ~/.config/rejudge/config.json 
на три ревьюера (Sonnet, GPT-5, Gemini 2.5 Pro) и судью Opus, 
все на @high. Ключи возьми из моих env-переменных, если их нет - 
остановись и покажи мне, что экспортировать. 
Потом запусти: git diff main | rejudge "code review, найди баги, 
уязвимости и риски отката, выдай план правок по приоритету". 
Вывод сохрани в review.md, run ID покажи в терминале.

Это ровно то, ради чего Rejudge и появился как Skill - агент вызывает независимого ревьюера, а не сам себя перечитывает.

Что реально ловит, а что нет

Автор в README пишет честно: "finished run is not a correct run". Успешный прогон значит, что ревьюеры и судья дошли до конца, не больше. Ошибки трёх независимых моделей всё равно могут совпасть на одном сценарии. Rejudge не обещает правильности, не считает совпадение истиной и не имеет измеренного преимущества над одной сильной моделью на всех задачах.

Мой практический вывод: тул хорошо работает на диффах и точечных вопросах ("нужен ли лок этой миграции", "безопасно ли хранить токен так", "что сломает откат"), плохо - на "проверь весь репо" без формулировки. Чем уже вопрос, тем плотнее отчёт судьи.

Ещё полезная штука: флаг --unsafe (он же --full) даёт ревьюерам edit, write, bash в твоей среде. Это не песочница. Использовать только если ты сознательно хочешь, чтобы ревьюер поправил файлы и что-то запустил. Судья при этом всё равно ограничен ask_panel.

Сколько это стоит и что важно знать про приватность

Сам Rejudge бесплатный (MIT). Платишь ты провайдерам моделей. Один свежий прогон - это минимум по одному вызову на ревьюера плюс один на судью. Плюс tool-циклы, ретраи и уточнения через ask_panel. У Rejudge нет лимита расходов, счёт и rate limits приходят от моделей, которые ты выбрал.

Автор упоминает, что сам пользуется OpenCode Go за 10 долларов в месяц - там миксом идут разные модели.

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

Сессии пишутся на диск в ${TMPDIR}/rejudge/runs/<run-id>/ - там сам запрос, сообщения моделей и вызовы инструментов. Файлы живут около 24 часов и чистятся best-effort только при следующем прогоне.

FAQ

Работает ли Rejudge из России? Сам npm-пакет ставится без обхода блокировок. Дальше упирается в доступ к провайдерам моделей: Anthropic и OpenAI напрямую заблокированы, придётся идти через OpenRouter или локальные роутеры. Gemini у Google открыт условно. С OpenRouter конфигом Rejudge стартует за пять минут.

Можно ли обойтись только Claude? Технически можно указать три инстанса Claude разных моделей (Opus, Sonnet, Haiku) как ревьюеров. Но идея тула в разнообразии обучения - смешивай провайдеров, иначе получишь "новую сессию той же модели" из уровня II.

Заменит ли Rejudge код-ревью человека? Нет. Ловит очевидные баги, миграции без блокировок, торчащие токены. Не ловит бизнес-логику, договорённости команды, стиль код-базы. Это второй мозг, не первый.

Что делать, если провайдер вернул ошибку? Rejudge пишет причину в последнюю строку stderr - там будет API key, authentication, credentials или unauthorized. Проверь ключ в текущей shell-сессии, лимиты провайдера и сеть.

Можно ли пропустить одну модель, если провайдер тормозит? В базовой конфигурации нет. Минимум два ревьюера. Если один провайдер регулярно падает - убери его из config.json и оставь двух рабочих.

Вывод

Rejudge - это одна маленькая идея, доведённая до продакшн-CLI: код-ревью силами трёх независимых моделей + судья, который сводит разногласия. Ставится одной npm-командой, стоит столько, сколько твои токены у провайдеров, встаёт поверх любого агента через Skills. Внутри - никакой магии: три read-only сессии, изоляция, аск-панель судьи, готовый отчёт в stdout.

Самая частая ошибка - ждать от него оценки "безопасно/небезопасно" на весь репо. Rejudge полезен ровно на узких вопросах: диффы, миграции, конкретный файл, конкретный риск. Дальше сам решаешь, что делать с вердиктом.

Что дальше

Если хочешь собрать такую систему у себя - у меня есть курс по вайбкодингу и работе с нейросетями в клубе Мандарин Лаб: mandarinedu.ru. Первые уроки открыты бесплатно.

Если нужно внедрить ИИ в бизнес - процессы, агентов, автоматизацию под вашу задачу - пишите мне напрямую: t.me/Philigranchik. Разберу задачу и скажу, что реально автоматизируется, а что нет.

Бесплатный первый урок

Хочешь собрать это сам - с нуля до первого клиента?

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

Смотреть первый урок →
Михаил Иванин
Об авторе

Вайбкодер-разработчик и маркетолог с 9-летним опытом, основатель «Мандарин Лаб». Собирает на ИИ то, за что раньше платили подрядчикам сотни тысяч: CRM, ботов, автоматизации, монтаж. Одну из систем строил под агентство недвижимости с базой в 400 000 лидов. Теперь учит этому с нуля - как за вечер собрать свой инструмент через Claude Code и зарабатывать на нейросетях.

Telegram @mike_cmo →Кто такой Михаил Иванин →
#rejudge#ии ревью кода#claude code#code review#мульти-агентное ревью#npm#cli