Джаред Самнер реалізував робочий процес на основі Claude із використанням методу суперницького рецензування (adversarial review), щоб переписати середовище виконання Bun з Zig на Rust. Він провів понад мільйон рядків коду через 6 778 комітів і усунув 16 000 помилок компілятора. У межах цього проєкту було запущено 50 робочих процесів Claude Code, пікова кількість одночасних агентів Claude досягала 64, і було створено відтворюваний план дій для масштабних міграцій мов програмування.
Чому це переписування має значення
Для будь-якого проєкту, що бореться із застарілим кодом або здійснює стратегічний перехід на іншу мову, «Метод Самнера» пропонує конкретний шаблон замість розпливчастих обіцянок.
Робочий процес, який перетворив ШІ на партнера, а не на заміну
Процес Самнера працює за замкненим циклом:
- Постановка завдання — агент отримує конкретне завдання з міграції.
- Реалізація — другий агент пише код на Rust.
- Суперницьке рецензування — третій агент припускає, що код є помилковим, ретельно перевіряє diff і намагається спростувати кожне твердження, використовуючи вихідні файли та тести.
- Виправлення — агент-реалізатор вносить зміни на основі знахідок рецензента.
- Автоматизовані перевірки — компілятор, набір тестів і перевірки статичного аналізу підтверджують правильність змін.
Ключове правило — розділення. Автор коду ніколи не бачить аргументації рецензента, а рецензент ніколи не бачить намірів автора. Усуваючи упередженість, система змушує рецензента шукати приховані баги замість того, щоб давати формальне схвалення «виглядає добре».
Зворотний зв'язок від Rust, який можна перевірити автоматично, перетворює тисячі потенційних помилок, зрозумілих людині, на керовану чергу. Кожна помилка компілятора, збій borrow-checker або попередження Clippy стають робочими завданнями, на які суперницький рецензент може спрямувати свої зусилля безпосередньо.
План дій із восьми етапів
Самнер структурував робочий процес у вісім послідовних етапів, кожен з яких має власну чергу завдань, критерії готовності (definition of done), промпти для рецензування та автоматизовані перевірки:
- Етап A — Вилучення фактів та створення посібника — збір архітектурних фактів та створення посібника з міграції.
- Етап B — Механічне перекладання файлів — перетворення файлів Zig у скелети Rust.
- Етап C — Усунення помилок компіляції — вирішення 16 000 помилок компілятора, зафіксованих під час перекладання.
- Етап D — Узгодження поведінки під час виконання — перевірка того, що результат роботи Rust дзеркально відображає поведінку Zig.
- Етап E — Завершення набору тестів — проходження кожного існуючого тесту.
- Етап F — Відновлення продуктивності — усунення будь-якого сповільнення, спричиненого переписуванням.
- Етап G — Полірування якості коду — застосування ідіоматичних патернів Rust та рефакторинг для покращення читабельності.
- Етап H — Посилення безпеки — проведення аудитів unsafe-коду та усунення будь-яких виявлених вразливостей.
Кожен етап переходить у наступний, гарантуючи, що жоден крок не буде пропущений, а регресії будуть виявлені на ранніх етапах.
Де знайти план дій
Самнер зробив відкритим повний набір шаблонів, промптів і визначень етапів за посиланням https://github.com/Lumafy/sumner-method. Супутня стаття детально описує міграцію Bun: https://dev.to/lumafy/the-sumner-method-what-buns-ai-assisted-zig-rust-rewrite-teaches-about-large-migrations-2gpo. Спільнота в Telegram для подальшого обговорення доступна за адресою https://t.me/GyaanSetuAi.
