Jarred Sumner نے Claude سے چلنے والے ایک adversarial-review ورک فلو کے ذریعے Bun runtime کو Zig سے Rust میں دوبارہ لکھنے کا کام مکمل کیا۔ انہوں نے 6,778 commits کے ذریعے دس لاکھ سے زیادہ لائنیں کوڈ کے ذریعے آگے بڑھائیں اور 16,000 compiler errors کو ختم کیا۔ اس کوشش میں 50 Claude Code workflows چلائے گئے، جس میں ایک وقت میں 64 Claude agents تک کا استعمال ہوا، اور بڑے پیمانے پر زبان کی منتقلی (language migrations) کے لیے ایک قابلِ اعادہ (reproducible) طریقہ کار (playbook) چھوڑا گیا۔
یہ دوبارہ لکھنا کیوں اہم ہے
کسی بھی ایسے پروجیکٹ کے لیے جو پرانے کوڈ (legacy code) یا زبان کی تبدیلی کے لیے جدوجہد کر رہا ہو، "Sumner Method" ایک مبہم وعدے کے بجائے ایک ٹھوس ٹیمپلیٹ فراہم کرتا ہے۔
وہ ورک فلو جس نے AI کو متبادل کے بجائے ایک ساتھی بنا دیا
Sumner کا عمل ایک تنگ لوپ (tight loop) میں چلتا ہے:
- Task assignment – ایک ایجنٹ کو منتقلی کا ایک ٹھوس کام سونپا جاتا ہے۔
- Implementation – دوسرا ایجنٹ Rust کوڈ لکھتا ہے۔
- Adversarial review – تیسرا ایجنٹ یہ فرض کرتا ہے کہ کوڈ غلط ہے، وہ فرق (diff) کا باریک بینی سے جائزہ لیتا ہے، اور سورس فائلوں اور ٹیسٹ کا استعمال کرتے ہوئے ہر دعوے کو غلط ثابت کرنے کی کوشش کرتا ہے۔
- Fixes – امپلیمنٹیشن ایجنٹ ریویو کرنے والے کے نتائج کو شامل کرتا ہے۔
- Automated gates – کمپائلر، ٹیسٹ سویٹ، اور static-analysis چیک تبدیلیوں کی تصدیق کرتے ہیں۔
اہم اصول تفریق (separation) ہے۔ لکھنے والا کبھی ریویو کرنے والے کی منطق نہیں دیکھتا، اور ریویو کرنے والا کبھی لکھنے والے کا مقصد نہیں دیکھتا۔ تعصب (bias) کو ختم کر کے، یہ سسٹم ریویو کرنے والے کو محض "ٹھیک ہے" کہہ کر دستخط کرنے کے بجائے چھپے ہوئے بگ (bugs) تلاش کرنے پر مجبور کرتا ہے۔
Rust کا مشین کے ذریعے چیک کیا جانے والا فیڈ بیک ہزاروں ممکنہ انسانی طور پر پڑھنے کے قابل غلطیوں کو ایک قابلِ انتظام قطار میں بدل دیتا ہے۔ ہر کمپائلر ایرر، borrow-checker کی ناکامی، یا Clippy وارننگ ایک ایسا کام بن جاتی ہے جسے adversarial reviewer براہ راست نشانہ بنا سکتا ہے۔
آٹھ مراحل پر مشتمل طریقہ کار (playbook)
Sumner نے اس ورک فلو کو آٹھ تسلسل وار مراحل میں تقسیم کیا، جن میں سے ہر ایک کا اپنا ٹاسک کیو (task queue)، کام مکمل ہونے کی تعریف (definition of done)، ریویو پرامپٹس (review prompts)، اور خودکار گیٹس (automated gates) ہیں:
- Phase A – Fact extraction & guide authoring – آرکیٹیکچرل حقائق جمع کرنا اور منتقلی کی گائیڈ تیار کرنا۔
- Phase B – Mechanical file translation – Zig فائلوں کو Rust skeletons میں تبدیل کرنا۔
- 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 – اصطلاحی (idiomatic) Rust پیٹرنز کا اطلاق کرنا اور پڑھنے میں آسانی کے لیے ریفیکٹر کرنا۔
- Phase H – Security hardening – unsafe audits چلانا اور دریافت ہونے والی کسی بھی کمزوری (vulnerabilities) کو دور کرنا۔
ہر مرحلہ اگلے مرحلے کی بنیاد بنتا ہے، جس سے یہ یقینی بنایا جاتا ہے کہ کوئی بھی قدم چھوٹ نہ جائے اور ریگریشنز (regressions) کا جلد پتہ چل جائے۔
طریقہ کار (playbook) کہاں سے ملے گا
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۔
