Client Personal Tooling (Own Workflow)
Role Solo Creator / Maintainer
Period Jun — Aug 2026 (ongoing)
Stack
Claude Code Skill Bash Ollama Cloud/Local 5 External CLI Agents GitHub CLI
fix-review — конвеєр мультиагентного рев'ю PR preview

fix-review — конвеєр мультиагентного рев'ю PR

Огляд

Внутрішній Claude Code skill, що розгортає diff пул-реквесту на три незалежні “думки” рецензентів паралельно, а потім арбітр перевіряє кожну знахідку проти реального стану репозиторію, перш ніж щось міняти — працює в продакшені на PR цього самого сайту з червня 2026.

Задача не в тому, “чи може LLM рецензувати diff” — будь-яка модель може, з таким рівнем хибних спрацьовувань, що довіряти їй сліпо — погана ідея. Справжня задача: скільки незалежних думок виправдовують автоматичну дію, і хто перевіряє перевіряючого?

Результат: 22 PR перевірено за 2 місяці, 69 окремих раундів рецензування моделями/інструментами, 81 сира знахідка — і лише 2 виявилися реальними виправленнями.


Архітектура

Триярусна каскадна архітектура fix-review

Три яруси, пробуються по черзі, кожен — повний fallback для попереднього:

  1. Ollama Cloud (основний) — три моделі паралельно, різні сімейства для незалежного рев’ю
  2. 5 зовнішніх CLI-агентів (cursor-agent, agy, omp, codex, opencode, kilo) — read-only виклики, каскадом по черзі, перший непорожній результат виграє
  3. Ollama local — повністю офлайн, останній резерв

Знахідки дедуплікуються за file:line і рахуються голосами по раундах, що відпрацювали, потім передаються Claude-арбітру, який читає реальні файли перед винесенням вердикту — кількість голосів це пріор довіри, не доказ.


Ключові інженерні рішення

Рішення Чому
Арбітр перечитує реальні файли перед вердиктом Консенсус моделей щодо знахідки не означає, що вона реальна — впіймано одностайні хибні спрацьовування (галюцинований “відсутній frontmatter” на файлах, де він був), з якими погодились усі 3 моделі
Зовнішні агенти викликаються read-only (--mode plan, --sandbox read-only, --no-tools) Ярус, що замінений цим, запускав agy --dangerously-skip-permissions і codex --dangerously-bypass-approvals-and-sandbox — повний доступ на запис/обхід дозволів для рецензента, якому потрібне лише читання
Auto-merge лише при повністю чистому прогоні “Чисто” = жодне виправлення не відкочено, немає конфліктів злиття, білд проходить — усе, що менше цього, питає користувача один раз замість здогадок
Живе наскрізне тестування перед довірою до виправлення Примусова заміна cloud-моделі на невалідну назву й реальний прогін PR крізь каскад впіймали два реальні баги, які статичний рев’ю пропустив би (нижче)

Два баги, які впіймав живий тест, а не статичний рев’ю: timeout <bash-функція> тихо провалюється, бо timeout викликає свій аргумент як зовнішній бінарник — він не може напряму викликати shell-функцію, тож диспетчеризація зовнішніх агентів потребувала обгортки bash -c. А новододаний адаптер (agy) був зареєстрований у диспетчері, але відсутній у списку export -f — він мовчки провалився б при першому реальному спрацюванні fallback-ярусу, бо ніщо не тренує ярус 2, поки ярус 1 (типовий випадок) успішний.


Результати

  • 22 PR перевірено, 19 червня — 18 серпня 2026 — реальне продакшн-використання, не демо
  • 69 окремих раундів рецензування (виклики моделі чи CLI-інструменту) на цих PR
  • 81 сира знахідка → 2 підтверджені виправлення після верифікації арбітром — розрив і є суттю: навіть одностайна згода моделей потребує перевірки проти ground truth
  • Одна реальна безпекова регресія виправлена: замінено ярус з обходом дозволів на read-only каскад, верифіковано наживо end-to-end перед злиттям
  • Архітектура еволюціонувала за 6 комітів за 2 місяці — додано model-agnostic fallback-ярус зовнішніх агентів, виведено з експлуатації застарілі моделі до відключення провайдера, виправлено мовчазну прогалину в диспетчеризації

Стек

Claude Code Skill (bash + jq + yq) · Ollama Cloud/Local · 5 зовнішніх CLI-агентів рецензування · GitHub CLI (gh) · JSONL-телеметрія