Гібридний AI-код-рев'ю: Claude Opus 4.8 + Codex у циклі
Tech
AI
Claude Opus 4.8
Codex
GPT-5.5

Гібридний AI-код-рев'ю: Claude Opus 4.8 + Codex у циклі

Дві передові моделі в циклі: Claude Opus 4.8 пише кожне виправлення, Codex перевіряє його через мій AI-міст, а реальна збірка голосує. 39 виправлень у продакшені, жодного вручну.

Uygar DuzgunUUygar Duzgun
Jun 20, 2026
Оновлено 24 черв. 2026 р.
7 min read

Існує категорія робіт, де один AI-агент тихо зазнає невдачі: великі багатокрокові очищення, де одна хибна припущення накопичується через десятки змін. Моя відповідь — гібридний AI-код-рев'ю — дві різні передові моделі в циклі, одна будує, інша перевіряє — і минулого тижня це перетворило брудний прототип SwiftUI на проект без жодних блокерів для App Store за один день, без того, щоб я написав хоча б рядок коду.

Двома моделями були Claude Opus 4.8 як інженер і Codex (GPT-5.5) як рецензент, які передавали кожне завдання через мій AI-міст, доки воно не пройшло реальну збірку. На мій досвід, ця настройка гібридного AI-код-рев'ю стабільно перевершує будь-яку модель, що працює окремо, і цей запуск став найяснішим доказом цього. Ось точно, як це працювало.

Почніть з плану, а не з відчуття

Ви не доручаєте агенту "зроби це готовим до продакшену". Саме так ви отримуєте впевнену нісенітницю.

Тому я почав з плану. Я попросив Claude клонувати репозиторій (iOS-додаток для дитячої пам'яті під назвою Kiddays), прочитати *всю* кодову базу за допомогою паралельних суб-агентів і створити аудит готовності до продакшену: 39 конкретних пунктів — 9 жорстких блокерів для App Store, решта — високої та середньої критичності. Кожен пункт мав файл, рядок, оцінку зусиль і запропоноване виправлення.

Цей аудит став `PRODUCTION_READINESS.md` — markdown-чеклістом з коробками `- [ ]`, відсортованими спочатку блокери. Один файл — єдине джерело істини. Кожне завдання в ньому було малим, конкретним і *перевірним*. Останнє слово важливе: якщо ви не можете поставити галочку і довести це, це не завдання, це бажання.

Цикл гібридного AI-код-рев'ю, крок за кроком

Я запускав усе це в самостійному циклі (режим /loop у Claude Code). Кожна ітерація обробляла одне завдання або тісний кластер пов'язаних завдань і завжди дотримувалася одного й того самого ритму.

П'ятикроковий ритм

Claude Opus 4.8 читає реальні файли та проектує виправлення. Не з пам'яті — спочатку він відкриває фактичний код.
Він передає дизайн [Codex](https://github.com/openai/codex) для незалежної думки через мій міст для AI-парного рецензування — open-source навичку ai-collab-bridge — через передачу через CLI:

bash codex exec --sandbox read-only -o /tmp/answer.txt <<'PROMPT' Pair-reviewing a fix for this SwiftUI app. Here are the files... Recommend the idiomatic iOS 17 approach, flag pitfalls, validate the diff. PROMPT

Вони обмінюються думками. Codex пропонує ідіоматичний підхід, вказує, що зламається, і валідує (або спростовує) план. Claude реалізує, адаптується до зворотного зв'язку та заперечує там, де не згоден.
Реальна збірка є арбітром. Кожне завдання завершується зеленим `xcodebuild`, або воно не вважається завершеним. Ніяких "має компілюватися".
Поставте галочку, оновіть чекліст, перейдіть до наступного.

Потім цикл запускається знову і знову, протягом годин, без нагляду. Весь сенс гібридного AI-код-рев'ю в тому, що цей цикл працює без мого нянькування — саме збірка, а не моя увага, контролює кожен крок.

Чому дві моделі кращі за одну

Рекомендовано для вас

Магія не в жодній моделі окремо — обидві чудові, і я вже писав про те, як Claude Opus 4.8 переміг Codex на моїй власній кодовій базі. Магія в тому, що у них різні сліпі зони, і рецензент, який не писав код, не має его, вкладеного в diff.

Моменти, які виправдали налаштування

Кілька реальних моментів з цього запуску:

Міграція Keychain. Переміщення токенів автентифікації з plaintext `UserDefaults` виглядає тривіальним. Codex відзначив, що наївна заміна тихо зламає реактивність SwiftUI, і наполягав на сховищі `@Observable`,Injected через середовище. Claude побудував саме це. Жодного зламаного UI виходу з системи.
Обробка помилок. У мене було ~20 місць, де помилки бази даних проковтувалися за допомогою `try?`. Першим інстинктом Claude були сповіщення на рівні кожного view. Codex аргументував на користь єдиного корневого презентера помилок — одна поверхня сповіщення, кожне збереження маршрутизується через неї. Чистіше, і саме ця версія була випущена.
StoreKit 2, версіонування схеми SwiftData та перевірки захисту файлів на диску. Усі специфічні для iOS-17 мінні поля, де друга думка врятувала від тонкої помилки — саме те, що проходить швидке читання і провалюється в реальних умовах.
Рекомендовано для вас

Це різниця між формальним затвердженням і рецензуванням. Codex спростовував речі; Claude інтегрував хороші спростування та захищав решту. Diff став кращим на межі між двома моделями, які не мають спільного мозку — що й є всією суттю керованих агентських робочих процесів: структуровані передачі кращі, ніж одна модель, що говорить сама з собою.

Чесна частина: агенти зависають, тому створіть сторожа

Двічі CLI Codex зависав на мені — не на мисленні, а під час завершення роботи, коли його фонові MCP-сервери не закривалися чисто. Я відстежив перше зависання самостійно до MCP bootstrap, після того як процес сидів мертвим хвилинами. У циклі без нагляду одне зависання зупиняє все.

Виправленням став жорсткий сторож: таймер вбивства навколо кожної консультації плюс повне вимкнення MCP для виклику (`-c mcp_servers={}`), щоб не було нічого, на чому можна було б зависнути. Цикл виявляв зависання, вбивав процес-зомбі, забирав відповідь, яка вже була записана, і продовжував роботу. "Ніщо не застрягає" — це не просто приємна опція в автономній роботі — це вся гра.

Результат

39 з 39 пунктів виконано. Усі 9 блокерів для App Store усунено.
Чиста збірка з нуля (`xcodebuild clean build`, exit 0) в кінці — не просто інкрементальна зелена збірка.
13 нових файлів. Реальне сховище Keychain, реальні покупки StoreKit 2, реальний запис голосу, реальні локальні сповіщення, запис батьківської згоди GDPR-K, версіонування схеми, шов для звітування про збої.
Фейк став реальним або чесно видаленим. Фейковий перемикач "преміум" став реальним потоком підписки. Фейкова кнопка Google та фейкові запрошення для сім'ї — які генерували фіктивні дані — були видалені, а юридичний текст переписано, щоб припинити обіцяти бекенд, якого ще не існує.

Залишилася лише робота, яку жодна модель не може зробити за вас: створити продукти внутрішньододаткових покупок у App Store Connect, розгорнути реальний бекенд, отримати підпис юриста на політиці конфіденційності. Кожен з них позначений у чеклісті з точною вказівкою того, що потрібно.

Метод і джерела

Це розповідь з перших рук про один реальний запуск на моїй власній кодовій базі Kiddays. Рецензентом був Codex CLI (GPT-5.5); передача між моделями використовувала мою open-source навичку ai-collab-bridge. Рішення, специфічні для iOS, перевірялися проти власної документації Apple щодо StoreKit, SwiftData та захисту файлів — і, що важливіше, кожна зміна була підтверджена чистою збіркою `xcodebuild` з нуля, перш ніж я вважав її завершеною. Я не повідомляю про те, що стверджували моделі; я повідомляю про те, що скомпілювалося.

Висновок: команда, а не асистент

У проектах, де я покладався на гібридне AI-код-рев'ю, розблокуванням ніколи не було "знайти одну модель, яка робить усе". Це був стек:

план, перетворений на чекліст, який можна відмітити,
Claude Opus 4.8 для побудови кожного завдання,
Codex для рецензування без особистої зацікавленості,
міст для їх з'єднання через чисту передачу CLI,
збірка, яка отримує фінальний голос,
та /loop для запуску, доки список не стане порожнім.

Одна модель, що пише код, — це асистент. Дві моделі, які рецензують одна одну проти збірки, яка може сказати "ні", починають виглядати як команда — і в цьому запуску ця команда випустила 39 виправлень для продакшену, поки я спостерігав.