Jarred Sumner memacu aliran kerja semakan adversarial yang dikuasakan oleh Claude untuk menulis semula runtime Bun daripada Zig kepada Rust. Beliau telah menghantar lebih daripada sejuta baris kod melalui 6,778 komit dan menyelesaikan 16,000 ralat pengkompil. Usaha tersebut menjalankan 50 aliran kerja Claude Code, mencapai kemuncak pada 64 ejen Claude serentak, dan meninggalkan buku panduan yang boleh dihasilkan semula untuk migrasi bahasa yang besar.

Mengapa penulisan semula ini penting

Bagi mana-mana projek yang bergelut dengan kod legasi atau peralihan bahasa yang strategik, "Kaedah Sumner" menawarkan templat yang konkrit berbanding janji yang samar-samar.

Aliran kerja yang menjadikan AI sebagai rakan kongsi, bukan pengganti

Proses Sumner berputar secara rapat:

  1. Penugasan tugas – satu ejen menerima tugas migrasi yang konkrit.
  2. Pelaksanaan – ejen kedua menulis kod Rust.
  3. Semakan adversarial – ejen ketiga mengandaikan kod tersebut salah, meneliti perbezaan (diff), dan cuba membuktikan setiap dakwaan adalah salah menggunakan fail sumber dan ujian.
  4. Pembaikan – ejen pelaksanaan menyatukan penemuan penyemak.
  5. Pintu automatik (Automated gates) – pengkompil, set ujian, dan semakan analisis statik mengesahkan perubahan tersebut.

Peraturan yang penting ialah pengasingan. Penulis tidak pernah melihat alasan penyemak, dan penyemak tidak pernah melihat niat penulis. Dengan menghapuskan bias, sistem ini memaksa penyemak untuk mencari pepijat tersembunyi dan bukannya sekadar memberikan pengesahan "kelihatan baik" yang tidak teliti.

Maklum balas Rust yang boleh disemak oleh mesin menukarkan beribu-ribu ralat berpotensi yang boleh dibaca manusia kepada barisan tugasan yang boleh diuruskan. Setiap ralat pengkompil, kegagalan borrow-checker, atau amaran Clippy menjadi item kerja yang boleh disasarkan secara langsung oleh penyemak adversarial.

Buku panduan lapan fasa

Sumner meringkaskan aliran kerja tersebut kepada lapan fasa berturutan, setiap satunya mempunyai barisan tugasan, definisi selesai (definition of done), prom semakan, dan pintu automatik yang tersendiri:

  • Fasa A – Pengekstrakan fakta & penulisan panduan – Mengumpul fakta seni bina dan menghasilkan panduan migrasi.
  • Fasa B – Terjemahan fail mekanikal – Menukar fail Zig kepada rangka (skeleton) Rust.
  • Fasa C – Pemulihan ralat pengkompil – Menyelesaikan 16,000 ralat pengkompil yang direkodkan semasa terjemahan.
  • Fasa D – Padanan tingkah laku runtime – Mengesahkan bahawa output Rust mencerminkan tingkah laku Zig.
  • Fasa E – Penyelesaian set ujian – Melepasi setiap ujian sedia ada.
  • Fasa F – Pemulihan prestasi – Menghapuskan sebarang kelembapan yang disebabkan oleh penulisan semula.
  • Fasa G – Pemolesan kualiti kod – Mengaplikasikan corak Rust yang idiomatik dan melakukan penstrukturan semula (refactor) untuk kebolehbacaan.
  • Fasa H – Pengukuhan keselamatan – Menjalankan audit 'unsafe' dan menangani sebarang kerentanan yang ditemui.

Setiap fasa menyumbang kepada fasa seterusnya, memastikan tiada langkah yang tertinggal dan regresi dikesan lebih awal.

Di mana untuk mencari buku panduan ini

Sumner telah menjadikan set lengkap templat, prom, dan definisi fasa sebagai sumber terbuka di https://github.com/Lumafy/sumner-method. Artikel sampingan menerangkan migrasi Bun secara terperinci: https://dev.to/lumafy/the-sumner-method-what-buns-ai-assisted-zig-rust-rewrite-teaches-about-large-migrations-2gpo. Komuniti Telegram untuk perbincangan berterusan boleh didapati di https://t.me/GyaanSetuAi.