Jarred Sumner aliongoza mchakato wa mapitio ya upinzani (adversarial-review workflow) unaoendeshwa na Claude ili kuandika upya Bun runtime kutoka Zig kwenda Rust. Alituma zaidi ya milioni moja ya mistari ya kodi kupitia commit 6,778 na kutatua makosa 16,000 ya compiler. Jitihada hizo zilitekeleza workflow 50 za Claude Code, zilifikia kilele cha mawakala (agents) 64 wa Claude wanaofanya kazi kwa wakati mmoja, na kuacha mwongozo unaoweza kurudiwa kwa uhamiaji mkubwa wa lugha za programu.

Kwa nini uandishi upya huu ni muhimu

Kwa mradi wowote unaokabiliana na legacy code au mabadiliko ya kimkakati ya lugha, "Sumner Method" inatoa kielelezo madhubuti badala ya ahadi isiyo na uwazi.

Mchakato ulioubadilisha AI kuwa mshirika, si mbadala

Mchakato wa Sumner unajirudia kwa ukaribu:

  1. Uagizaji kazi – wakala anapokea kazi mahususi ya uhamiaji.
  2. Utekelezaji – wakala wa pili anaandika kodi ya Rust.
  3. Mapitio ya upinzani – wakala wa tatu anachukulia kuwa kodi hiyo ni makosa, anakagua mabadiliko (diff), na kujaribu kuthibitisha kila dai kuwa si la kweli kwa kutumia faili za chanzo na majaribio.
  4. Marekebisho – wakala wa utekelezaji anajumuisha matokeo ya mhakiki.
  5. Vizingiti vya kiotomatiki – compiler, seti ya majaribio, na ukaguzi wa static-analysis vinathibitisha mabadiliko.

Kanuni muhimu ni utengano. Mwandishi haoni kamwe mantiki ya mhakiki, na mhakiki haoni kamwe nia ya mwandishi. Kwa kuondoa upendeleo, mfumo unamlazimu mhakiki kutafuta hitilafu zilizojificha badala ya kutoa kibali cha juu juu cha "inaonekana vizuri".

Maoni ya Rust yanayoweza kukaguliwa na mashine yanageuza maelfu ya makosa yanayoweza kusomwa na binadamu kuwa foleni inayoweza kudhibitiwa. Kila compiler error, kushindwa kwa borrow-checker, au onyo la Clippy inakuwa kazi ambayo mhakiki wa upinzani anaweza kuilenga moja kwa moja.

Mwongozo wa awamu nane

Sumner alifupisha mchakato huo katika awamu nane zinazofuatana, kila moja ikiwa na foleni yake ya kazi, ufafanuzi wa kukamilika, maelekezo ya mapitio, na vizingiti vya kiotomatiki:

  • Awamu A – Uchoraji wa ukweli na uandishi wa mwongozo – Kukusanya ukweli wa usanifu na kuandaa mwongozo wa uhamiaji.
  • Awamu B – Tafsiri ya faili ya kimekanika – Kubadilisha faili za Zig kuwa mifumo ya Rust (skeletons).
  • Awamu C – Utatuzi wa makosa ya compiler – Kutatua makosa 16,000 ya compiler yaliyoandikwa wakati wa tafsiri.
  • Awamu D – Uwiano wa tabia ya runtime – Kuhakikisha kuwa matokeo ya Rust yanafanana na tabia ya Zig.
  • Awamu E – Ukamilishaji wa seti ya majaribio – Kupita kila jaribio lililopo.
  • Awamu F – Urejeshaji wa utendaji – Kuondoa ucheleweshaji wowote ulioletwa na uandishi upya.
  • Awamu G – Usafishaji wa ubora wa kodi – Kutumia mifumo ya idiomatic Rust na kufanya refactor kwa ajili ya urahisi wa kusoma.
  • Awamu H – Kuimarisha usalama – Kufanya ukaguzi wa unsafe na kushughulikia udhaifu wowote uliogunduliwa.

Kila awamu inajenga awamu inayofuata, ikihakikisha hakuna hatua inayopitwa na kwamba kurudi nyuma (regressions) kunagunduliwa mapema.

Unapoweza kupata mwongozo huu

Sumner ametoa wazi (open-sourced) seti kamili ya kielelezo, maelekezo, na ufafanuzi wa awamu kwenye https://github.com/Lumafy/sumner-method. Makala ya ziada inafafanua uhamiaji wa Bun kwa undani: https://dev.to/lumafy/the-sumner-method-what-buns-ai-assisted-zig-rust-rewrite-teaches-about-large-migrations-2gpo. Jumuiya ya Telegram kwa ajili ya majadiliano yanayoendelea ipo kwenye https://t.me/GyaanSetuAi.