Jarred Sumner, Claude ഉപയോഗിച്ചുള്ള ഒരു adversarial-review വർക്ക്ഫ്ലോ വഴി Bun runtime-നെ Zig-ൽ നിന്ന് Rust-ലേക്ക് മാറ്റി എഴുതി. അദ്ദേഹം പത്ത് ലക്ഷത്തിലധികം വരികൾ കോഡ് 6,778 കമ്മറ്റുകളിലൂടെ പായിക്കുകയും 16,000 കംപൈലർ എററുകൾ പരിഹരിക്കുകയും ചെയ്തു. ഈ ശ്രമത്തിൽ 50 Claude Code വർക്ക്ഫ്ലോകൾ പ്രവർത്തിപ്പിക്കുകയും, ഒരേസമയം 64 Claude ഏജന്റുകൾ ഉപയോഗിക്കുകയും ചെയ്തു. വലിയ ഭാഷാ മാറ്റങ്ങൾക്കായി (language migrations) ഉപയോഗിക്കാവുന്ന ഒരു പുനരാവിഷ്കരിക്കാവുന്ന പ്ലേബുക്ക് (playbook) ഇതിലൂടെ ലഭിച്ചു.
എന്തുകൊണ്ടാണ് ഈ പുനരാവിഷ്കരണം പ്രധാനമാകുന്നത്
പഴയ കോഡുകളുമായോ (legacy code) അല്ലെങ്കിൽ തന്ത്രപരമായ ഭാഷാ മാറ്റങ്ങളുമായോ (strategic language move) പോരാടുന്ന ഏതൊരു പ്രോജക്റ്റിനും, അവ്യക്തമായ വാഗ്ദാനങ്ങൾക്ക് പകരം "Sumner Method" ഒരു കൃത്യമായ മാതൃക വാഗ്ദാനം ചെയ്യുന്നു.
AI-യെ ഒരു പകരക്കാരന് പകരം ഒരു പങ്കാളിയാക്കിയ വർക്ക്ഫ്ലോ
Sumner-ന്റെ പ്രക്രിയ വളരെ കൃത്യമായി ചുറ്റിക്കറങ്ങുന്നു:
- ടാസ്ക് അസൈൻമെന്റ് (Task assignment) – ഒരു ഏജന്റ് കൃത്യമായ ഒരു മൈഗ്രേഷൻ ടാസ്ക് സ്വീകരിക്കുന്നു.
- ഇംപ്ലിമെന്റേഷൻ (Implementation) – രണ്ടാമത്തെ ഏജന്റ് Rust കോഡ് എഴുതുന്നു.
- അഡ്വേഴ്സേറിയൽ റിവ്യൂ (Adversarial review) – മൂന്നാമത്തെ ഏജന്റ് കോഡ് തെറ്റാണെന്ന് സങ്കൽപ്പിക്കുകയും, സോഴ്സ് ഫയലുകളും ടെസ്റ്റുകളും ഉപയോഗിച്ച് ഓരോ വാദവും തെറ്റാണെന്ന് തെളിയിക്കാൻ ശ്രമിക്കുകയും ചെയ്യുന്നു.
- ഫിക്സുകൾ (Fixes) – ഇംപ്ലിമെന്റേഷൻ ഏജന്റ് റിവ്യൂവറുടെ കണ്ടെത്തലുകൾ ഉൾക്കൊള്ളുന്നു.
- ഓട്ടോമേറ്റഡ് ഗേറ്റുകൾ (Automated gates) – കംപൈലർ, ടെസ്റ്റ് സ്യൂട്ട്, സ്റ്റാറ്റിക്-അനാലിസിസ് പരിശോധനകൾ എന്നിവ മാറ്റങ്ങൾ ശരിയാണെന്ന് ഉറപ്പാക്കുന്നു.
ഇതിലെ നിർണ്ണായക നിയമം വേർതിരിക്കൽ (separation) ആണ്. എഴുതുന്നയാൾ റിവ്യൂവറുടെ യുക്തി കാണുന്നില്ല, റിവ്യൂവർ എഴുതുന്നയാളുടെ ഉദ്ദേശ്യം അറിയുന്നതുമില്ല. പക്ഷപാതം ഒഴിവാക്കുന്നതിലൂടെ, വെറുതെ ഒരു "looks good" എന്ന് പറഞ്ഞ് ഒപ്പിടുന്നതിന് പകരം ഒളിഞ്ഞിരിക്കുന്ന ബഗുകൾ കണ്ടെത്താൻ സിസ്റ്റം റിവ്യൂവറെ നിർബന്ധിക്കുന്നു.
Rust-ന്റെ മെഷീൻ-ചെക്കബിൾ ഫീഡ്ബാക്ക് ആയിരക്കണക്കിന് മനുഷ്യർക്ക് വായിക്കാവുന്ന എററുകളെ കൈകാര്യം ചെയ്യാവുന്ന ഒരു ക്യൂവായി മാറ്റുന്നു. ഓരോ കംപൈലർ എററും, borrow-checker പരാജയവും, അല്ലെങ്കിൽ Clippy മുന്നറിയിപ്പും അഡ്വേഴ്സേറിയൽ റിവ്യൂവർക്ക് നേരിട്ട് ലക്ഷ്യം വെക്കാവുന്ന ഒരു വർക്ക് ഐറ്റമായി മാറുന്നു.
എട്ട് ഘട്ടങ്ങളുള്ള പ്ലേബുക്ക്
Sumner ഈ വർക്ക്ഫ്ലോയെ എട്ട് ഘട്ടങ്ങളായി ചുരുക്കി. ഓരോ ഘട്ടത്തിനും അതിന്റേതായ ടാസ്ക് ക്യൂ, പൂർത്തിയാക്കിയതിന്റെ നിർവചനം (definition of done), റിവ്യൂ പ്രോംപ്റ്റുകൾ, ഓട്ടോമേറ്റഡ് ഗേറ്റുകൾ എന്നിവയുണ്ട്:
- Phase A – ഫാക്ട് എക്സ്ട്രാക്ഷനും ഗൈഡ് തയ്യാറാക്കലും (Fact extraction & guide authoring) – ആർക്കിടെക്ചറൽ വിവരങ്ങൾ ശേഖരിക്കുകയും ഒരു മൈഗ്രേഷൻ ഗൈഡ് തയ്യാറാക്കുകയും ചെയ്യുന്നു.
- Phase B – മെക്കാനിക്കൽ ഫയൽ ട്രാൻസ്ലേഷൻ (Mechanical file translation) – Zig ഫയലുകളെ Rust സ്കെലിറ്റനുകളാക്കി മാറ്റുന്നു.
- Phase C – കംപൈൽ-എറർ പരിഹരണം (Compile-error remediation) – ട്രാൻസ്ലേഷൻ സമയത്ത് ഉണ്ടായ 16,000 കംപൈലർ എററുകൾ പരിഹരിക്കുന്നു.
- Phase D – റൺടൈം-ബിഹേവിയർ മാച്ചിംഗ് (Runtime-behavior matching) – Rust ഔട്ട്പുട്ട് Zig-ന്റെ പ്രവർത്തനത്തിന് സമാനമാണെന്ന് ഉറപ്പാക്കുന്നു.
- Phase E – ടെസ്റ്റ് സ്യൂട്ട് പൂർത്തീകരണം (Test suite completion) – നിലവിലുള്ള എല്ലാ ടെസ്റ്റുകളും പാസ് ചെയ്യുന്നു.
- Phase F – പെർഫോമൻസ് വീണ്ടെടുക്കൽ (Performance recovery) – പുനരാവിഷ്കരണത്തിലൂടെ ഉണ്ടായേക്കാവുന്ന വേഗതക്കുറവ് നീക്കം ചെയ്യുന്നു.
- Phase G – കോഡ് ക്വാളിറ്റി പോളിഷിംഗ് (Code-quality polishing) – ഇഡിയോമാറ്റിക് Rust പാറ്റേണുകൾ പ്രയോഗിക്കുകയും വായനാസുഖത്തിനായി റീഫാക്ടർ ചെയ്യുകയും ചെയ്യുന്നു.
- Phase H – സെക്യൂരിറ്റി ഹാർഡനിംഗ് (Security hardening) – unsafe ഓഡിറ്റുകൾ നടത്തുകയും കണ്ടെത്തിയ സുരക്ഷാ വീഴ്ചകൾ പരിഹരിക്കുകയും ചെയ്യുന്നു.
ഓരോ ഘട്ടവും അടുത്തതിലേക്ക് നയിക്കുന്നു, ഇത് ഒരു ഘട്ടവും വിട്ടുപോകാതെയും പിഴവുകൾ (regressions) നേരത്തെ തന്നെ കണ്ടെത്താനും സഹായിക്കുന്നു.
പ്ലേബുക്ക് എവിടെ കാണാം
Sumner എല്ലാ ടെംപ്ലേറ്റുകളും പ്രോംപ്റ്റുകളും ഘട്ട നിർവചനങ്ങളും 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. തുടർച്ചയായ ചർച്ചകൾക്കായി ഒരു ടെലിഗ്രാം കമ്മ്യൂണിറ്റി https://t.me/GyaanSetuAi എന്ന വിലാസത്തിൽ ലഭ്യമാണ്.
