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

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, и это ядро всей идеи.
- Та же сессия, та же модель. Агент перечитывает свой код. Он уже решил, что этот код правильный, повторное чтение решение не меняет.
- Новая сессия, та же модель. Контекст чистый, а модель нет. Те же данные обучения, те же привычки - принимает те же ошибки, что и сам бы написал.
- Другая модель, своя сессия. Другая модель ловит реальные баги. Но у тебя две противоречивые оценки, и решать, кто прав, всё равно тебе.
- 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. Разберу задачу и скажу, что реально автоматизируется, а что нет.

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