Plan-tango: как я перестал гонять план между Claude Code и Codex руками
Plan-tango — мой open-source плагин для Claude Code: автоматический cross-review плана разработки в схеме Claude Code vs Codex. Claude пишет план, Codex его ревьюит, Claude правит — и так по цепочке, пока тот не сойдётся. Лицензия MIT, репозиторий — github.com/egsok/plan-tango. Дальше — история, как я к нему пришёл, по состоянию на май 2026.
Codex стабильно находит в моих планах разработки вещи, которые Claude в своём же плане не видит. Я заметил это в первые несколько дней после покупки GPT Pro — и с тех пор стараюсь не садиться писать код, пока план не пройдёт хотя бы один раунд cross-review.
GPT Pro я брал ради Pro-модели — про неё много хорошего слышал в чатах. Codex в комплекте был приятным бонусом, плюс в мае OpenAI давали двойные лимиты на Codex для Pro-подписок. К моему удивлению, пока самым полезным и часто используемым сценарием стал cross-review планов разработки. Берёшь готовый PLAN.md, который Claude Code пишет в фазе планирования, кидаешь в Codex, просишь: «найди дыры, не пиши код». Получаешь список замечаний, несёшь обратно в Claude Code. Смыть и повторить.
Почему вторая модель находит то, чего автор плана не видит (LLM-as-judge на практике)
Если думать просто — это известный паттерн LLM-as-judge: одна модель оценивает выход другой. Даже свежая Claude-сессия на ту же модель уже что-то находит: часть багов плана живёт в самом плане, а не в текущем контексте, и любая свежая пара глаз их увидит. Но cross-model — заметно мощнее. У Codex другие фокусы внимания, другая интуиция про edge-кейсы, другие опасения. Если Claude писал план на оптимистичной волне («сейчас быстренько добавим вот этот хук»), Codex как правило настроения автора не разделяет.
Похожий по духу подход я уже описывал на примере параллельного Deep Research через три нейросети — там, правда, механика другая: не writer-critic, а сравнение независимых поисковых выдач, которые совпадают процентов на 20%. Но общая логика «одна модель — слишком узкий канал для важной задачи» та же.
Категории находок, по моим ощущениям, повторяются: недооценённые edge-кейсы, неаккуратные предположения о библиотечном API, места, где сам Claude в плане честно написал «возможно, понадобится отдельный шаг», — а к финалу плана этот шаг куда-то исчез.
Чего я не ожидал: ревьюер хочет переписать план в код
Один план я как-то гонял аж 15 итераций… И в один момент я вчитался поглубже в то, что Codex пишет в очередном review. И поймал не очень приятное.
Если спрашивать LLM «что не так с этим планом?», она по дефолту дрейфует в сторону «давай я просто перепишу твой план так, как он должен выглядеть». И «как он должен выглядеть» в её представлении — план максимально близкий к коду. Псевдокод, готовые блоки кода прямо в плане, иногда детальные пошаговые инструкции уровня «и вот эту проверку добавь сюда». По мере итераций план сжимается из «вот примерный маршрут и три развилки, где надо подумать» до «вот построчная спецификация, агенту-исполнителю остаётся только распарсить».
Звучит как улучшение — пока не задумаешься, что это значит дальше.
Дальше писать код пойдёт другой агент. Если план уже превратился в построчный псевдокод — у этого агента не осталось пространства для решений. Микро-выборы, которые он мог бы сделать с учётом контекста кода, за него уже сделал ревьюер плана, у которого этого контекста на момент критики не было.
Какое-то время я добавлял ручной промпт «не превращай в код, оставляй решения за writer-агентом» и переклеивал его в Codex каждую итерацию. Работает, но это становится отдельным ритуалом. На третьей-четвёртой итерации забываешь — и план снова дрейфует в псевдокод.
Что сломалось окончательно: вкладки
С одним проектом всё ещё терпимо. С двумя — становится трудно. С тремя — никак.
Каждый план обычно сходится через 4–6 раундов. Но эти раунды не идут подряд: между ними отвлекаешься на другие проекты, созвоны, обед. Параллельно идёт несколько таких петель plan↔review на разной стадии. И у Codex в интерфейсе рядом с сообщениями нет времени отправки.
Через час перерыва открываешь VS Code и не помнишь: уже скопировал последний фидбек Codex в Claude или ещё нет? Версия плана у тебя в Claude — это уже после прошлой итерации Codex или до?
Эта возня со вкладками — главная боль ручного режима. Стало понятно: проще автоматизировать.
Откуда взялся plan-tango
Идея напрашивалась сама: пусть Claude Code сам дёргает Codex по команде. Не я переключаю вкладки, а агент.
Официальный Codex-плагин для Claude Code — полезная штука, но насколько я понимаю, review плана с автоматическими итерациями он из коробки делать не умеет. Он может выполнить за тебя задачу, может сделать code review только что написанного кода, ещё какие-то полезные вещи. Цикла «отправить план → собрать замечания → внести правки → отправить снова, и так пока не сойдётся» в нём нет.
Первую версию plan-tango я написал поверх этого плагина — просто чтобы получить нужную мне петлю. Базовые сценарии работали. А дальше я упёрся в одну штуку: я хотел гонять Codex в fast mode (priority service tier, в полтора раза быстрее обычного, но жжёт ощутимо больше лимитов). Через плагин этот параметр пробросить не получалось.
2 минуты в fast mode против трёх в обычном режиме — кажется, мелочь. Но за 4–6 итераций разница набегает. К тому же подписочный лимит ChatGPT я пока всё равно не выбираю — экономить нечего, пусть работает быстрее.
Так что я переделал plan-tango: вместо вызовов через Codex-плагин он теперь дёргает Codex CLI напрямую. Зависимостью одной стало меньше, контроля над тем, как вызывается Codex, стало больше.
Как работает plan-tango: Claude Code vs Codex в одной автоматической петле
Plan-tango живёт в одном окне Claude Code и запускается командой /plan-tango на текущем плане. Дальше петля автоматическая: Codex review → правки в плане → Codex review → правки → пока план не сойдётся (или пока не упрётся в hard cap).
Стандартно откручивается до 6 итераций, hard cap 12 — это sanity-ограничитель, Codex всегда найдёт что покритиковать, и без ограничения петля может быть бесконечной. Более того, по умолчанию плагин сейчас считает план согласованным, если нет находок уровня critical и major (minor и nit считаются проходными). Количество итераций и проходной балл легко настраиваются.
Fast mode включается флагом --fast и просто меняет скорость работы Codex — priority service tier, в полтора раза быстрее. В моём конфиге он включён всегда.
Дефолтный prompt в плагине просит ревьюера «не писать код, оставлять решения за writer-агентом». Это попытка через prompt удержать ревьюера от того самого дрейфа в псевдокод, про который я писал выше — работает в большинстве случаев, но это всё-таки prompt, не строгая гарантия. Кому не подходит — поведение настраивается.
Остальное (severity-aware auto-stop, снапшоты на каждом раунде, защита от того, что файл плана поменяют параллельно) — есть, но описывать здесь не буду. Кому интересно — в README на GitHub: github.com/egsok/plan-tango. Лицензия MIT — берите, форкайте, кастомизируйте под себя; атрибуцию только оставьте.
Reflection
Cross-model review плана — пожалуй, самая high-leverage штука, что я добавил в свой workflow за последние пару месяцев. Идея, в сущности, на полстраницы кода.
Я и так всегда предпочитал больше времени на планирование, чем потом ловить баги и переделывать. Plan-tango просто позволяет полностью отдать эту часть для задач средней сложности и не участвовать руками: сформулировал ТЗ, запустил, ушёл по делам, вернулся к готовому плану.
Сам паттерн при этом прекрасно работает и без плагина. Сначала попробуйте руками в соседнем окне. А если зайдёт — забирайте plan-tango.
★ Plan-tango
Open-source плагин для Claude Code. Лицензия MIT — берите, форкайте, кастомизируйте под себя.
Открыть на GitHub →Частые вопросы
Что такое plan-tango?
Это плагин для Claude Code, который сам гоняет план разработки между Claude и Codex по кругу: план → review → правки → review, пока тот не перестанет находить замечания. Снапшоты каждого раунда сохраняются. Open source, лицензия MIT, репозиторий — github.com/egsok/plan-tango.
Чем cross-review через Codex лучше, чем ревью самой Claude Code?
Свежая Claude-сессия тоже что-то находит — это известный паттерн LLM-as-judge: одна модель оценивает выход другой. Но cross-model заметно мощнее: у Codex другие фокусы внимания, другая интуиция про edge-кейсы. На моих планах он стабильно ловит то, что Claude в собственном плане не видит.
Нужна ли подписка GPT Pro?
Да — plan-tango дёргает Codex CLI, а он доступен с подписками ChatGPT Plus и Pro. Я взял Pro ради Pro-модели и двойных лимитов на Codex; cross-review планов оказался самым полезным сценарием. На Plus тоже должно работать, но я сам не тестировал.
Чем plan-tango отличается от официального Codex-плагина для Claude Code?
Официальный плагин может выполнить задачу или сделать code review написанного кода. Цикла «отправить план → собрать замечания → внести правки → отправить снова, пока не сойдётся» в нём нет — а это главное, что мне было нужно. Plan-tango дёргает Codex CLI напрямую и поддерживает fast mode (priority service tier).
Это про vibe coding или про spec-driven development?
Про второе. Vibe coding — когда модель пишет, как чувствует. Plan-tango — наоборот: спецификация впереди кода, и спецификацию посмотрели две независимые модели. Для задач средней сложности я могу полностью отдать планирование плагину и не участвовать руками.