Джарред Самнер (Jarred Sumner) реализовал рабочий процесс на базе Claude с использованием состязательного рецензирования, чтобы переписать среду выполнения Bun с Zig на Rust. Он прогнал более миллиона строк кода через 6 778 коммитов и исправил 16 000 ошибок компилятора. В ходе работы было запущено 50 рабочих процессов Claude Code, одновременно работало до 64 агентов Claude, и в итоге было создано воспроизводимое руководство (playbook) для масштабных миграций между языками программирования.
Почему этот рерайт важен
Для любого проекта, который борется с устаревшим кодом или планирует стратегический переход на другой язык, «метод Самнера» предлагает конкретный шаблон вместо расплывчатых обещаний.
Рабочий процесс, превративший ИИ в партнера, а не в замену
Процесс Самнера работает по замкнутому циклу:
- Постановка задачи — агент получает конкретную задачу по миграции.
- Реализация — второй агент пишет код на Rust.
- Состязательное рецензирование — третий агент исходит из предположения, что код неверен, изучает diff и пытается опровергнуть каждое утверждение, используя исходные файлы и тесты.
- Исправления — агент-реализатор учитывает замечания рецензента.
- Автоматизированные проверки (gates) — компилятор, набор тестов и инструменты статического анализа проверяют изменения.
Ключевое правило — разделение. Автор кода никогда не видит рассуждений рецензента, а рецензент не знает о намерениях автора. Устраняя предвзятость, система заставляет рецензента искать скрытые баги, а не давать поверхностное одобрение в духе «выглядит хорошо».
Проверяемая машиной обратная связь Rust превращает тысячи потенциально читаемых человеком ошибок в управляемую очередь. Каждая ошибка компилятора, сбой borrow-checker или предупреждение Clippy становятся рабочими задачами, на которых может сосредоточиться состязательный рецензент.
Восьмифазное руководство (playbook)
Самнер структурировал рабочий процесс в восемь последовательных фаз, каждая из которых имеет свою очередь задач, критерии готовности (definition of done), промпты для рецензирования и автоматизированные проверки:
- Фаза A — Извлечение фактов и написание руководства — сбор архитектурных фактов и создание руководства по миграции.
- Фаза B — Механический перевод файлов — преобразование файлов Zig в заготовки (skeletons) на 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.
