مواد پر جائیں
9 اگست 2026 · انجینئرنگ

بلڈز خود کی تصدیق کیسے کرتے ہیں

یہ مضمون اشاعت کے وقت پروڈکٹ کو بیان کرتا ہے۔ موجودہ صلاحیات کے لیے AI Builder اور Agent Teams دیکھیں۔

بلڈز خود کی تصدیق کیسے کرتے ہیں

0:00 — ایک بلڈ مکمل ہوتا ہے۔ ایجنٹ کہتا ہے کہ یہ ہو گیا، جو کوڈ لکھے جانے کے بارے میں دعویٰ ہے، نہ کہ یہ کام کرتا ہے یا نہیں۔ AI بلڈر کے ہر صارف نے کبھی نہ کبھی ان دونوں دعووں کے درمیان فرق محسوس کیا ہے: پریویو کھلتا ہے، تیسرا بٹن کلک ہوتا ہے، کچھ نہیں ہوتا۔ میں نے ایک ڈیمو روم کو عین اسی لمحے خاموش ہوتے دیکھا ہے۔ تو کسی انسان کے دیکھنے سے پہلے، بلڈ چھ منٹ جیسے وقت تک اپنے آپ سے بحث کرنے والی زنجیر سے گزرتا ہے۔ یہ اصل میں کیسا نظر آتا ہے، ایک ایسے بلڈ کے ذریعے ٹریس کیا گیا جسے ہم نے غلط سمت جاتے اور پھر درست ہوتے دیکھا۔

0:02 — کوڈ ریویو شروع ہوتا ہے۔ وہی ایجنٹ نہیں جس نے کوڈ لکھا اپنا ہوم ورک دوبارہ پڑھتا ہے — ایک الگ ایجنٹ، مختلف پرامپٹ، بلڈ کے پاس ہونے میں کوئی داؤ نہیں۔ یہ علیحدگی اس سے زیادہ اہم ہے جتنی لگتی ہے۔ جس ایجنٹ نے دوپہر 2:14 پر فیصلہ کیا کہ ایرر ہینڈلنگ کے بغیر فیچ کال ٹھیک ہے، وہ 2:15 پر بھی یہی سوچے گا اگر آپ اس سے اپنا کام چیک کرنے کو کہیں۔ ایک نئے ریویور کو یہ بتانا کہ "جو ٹوٹا ہوا ہے وہ ڈھونڈیں، فائل کا حوالہ دیں" ٹھیک اس ناراض سینئر انجینئر کی طرح برتاؤ کرتا ہے جسے آپ واقعی اس ڈیوٹی پر چاہتے ہیں۔ ماضی کے ایک بلڈ میں اس نے ایک کارٹ ٹوٹل پکڑا جو خاموشی سے کبھی اپڈیٹ نہیں ہوتا تھا — `updateTotal` `Cart.jsx` میں متعین تھا مگر کبھی کوانٹیٹی-چینج ہینڈلر سے منسلک نہیں ہوا، اس لیے فنکشن موجود تھا اور محض کبھی چلتا نہیں تھا۔ یہی وہ زمرہ ہے جس کے لیے کوڈ ریویو ہے: وہ چیزیں جن پر کمپائلر کندھے اچکا دیتا ہے۔

0:04 — سیکیورٹی آڈٹ۔ جتنا لگتا ہے اس سے تنگ، جان بوجھ کر — یہ پین ٹیسٹ نہیں، بلکہ ان چند غلطیوں کی تلاش ہے جو اصل میں AI-تیار کردہ کوڈ میں سامنے آتی ہیں۔ اسٹرنگ-کونکیٹینیٹڈ SQL۔ صرف کلائنٹ سائیڈ کی توثیق پر بھروسہ کرنا جیسے وہی سب کچھ ہو۔ اور خاص چیز: ایک ہارڈ کوڈڈ API کلید، کیونکہ فیچر لکھنے والے ایجنٹ کے سامنے کوئی انوائرمنٹ-ویری ایبل کنونشن نہیں تھا اور اس نے وہی چیز اپنائی جو کام کرتی تھی۔ ہم اسے اتنی بار دیکھتے ہیں کہ اب حیرانی کی بات نہیں رہی۔

0:07 — لنکس اور SEO۔ غیر شاندار، اور یہ وہ چیزیں پکڑتا ہے جن پر کوئی توجہ نہیں دیتا جب تک کوئی کسٹمر توجہ نہ دے: ایک نیو لنک جو /pricing کی طرف اشارہ کرتا ہے جب صفحہ اصل میں /price، ایک سائٹ میپ اندراج جو کسی 404 صفحے کی طرف اشارہ کرتا ہے، ایک میٹا ڈسکرپشن جس میں اب بھی ٹیمپلیٹ کی جگہ رکھنے والا متن موجود ہے۔ ان میں سے کوئی چیز بلڈ کو نہیں توڑتی۔ لیکن یہ سب خاموشی سے اس چیز کو نقصان پہنچاتی ہیں جس کے لیے ہمارے زیادہ تر صارفین نے سائٹ بنائی — یعنی نظر آنا، اور کلک ہونا۔

0:09 — رسائی۔ یہ ایک خودکار axe-core پاس ہے، مکمل دستی آڈٹ نہیں، اور یہ ایماندار رہنا ضروری ہے کہ یہ تبادلہ کیا خریدتا ہے۔ axe-core کنٹراسٹ ریشوز، غائب alt ٹیکسٹ، بغیر لیبل کے فارم ان پٹس، ٹیب-آرڈر ٹریپس پکڑتا ہے — میکینیکل تہہ، مکمل WCAG ریویو کے تقریباً 30-40% کے برابر۔ یہ ایسے اسکرین ریڈر تجربے کو نہیں پکڑے گا جو تکنیکی طور پر مطابق ہو مگر استعمال میں واقعی الجھا دینے والا ہو۔ ہم نے صرف خودکار انتخاب کیا کیونکہ یہ سیکنڈوں میں چلتا ہے اور یہاں سے زیادہ تر جو شپ ہوتا ہے وہ مارکیٹنگ سائٹس اور چھوٹے ٹولز ہیں، اس قسم کی ایپلیکیشن نہیں جہاں جزوی آڈٹ کسی کے لیے حقیقی خطرہ ہو۔

0:11 — مطابقت۔ یہ تہہ یہ نہیں پوچھ رہی کہ "کیا یہ اچھا ہے"، بلکہ یہ کہ "کیا یہ اس سے میل کھاتا ہے جس کا وعدہ کیا گیا تھا۔" منصوبے میں چار صفحات کا وعدہ تھا، بلڈ نے تین شپ کیے — مطابقت وہ ہے جو اسے نوٹس کرتی ہے۔ منصوبے میں کام کرنے والا کانٹیکٹ فارم کا وعدہ تھا، جو شپ ہوا وہ بغیر سبمٹ ایکشن کے فارم ہے — وہی تہہ، وہی گرفت۔ یہ صارف کے لیے سب سے زیادہ براہ راست جوابدہ چیک ہے، کیونکہ یہ صارف کی بیان کردہ نیت کے خلاف ناپتی ہے، معیار کے کسی مجرد تصور کے خلاف نہیں۔

0:13 — براؤزر کے اندر چیک، اور یہاں ہمارا بلڈ اصل میں ٹوٹا۔ یہ تہہ سب سے مشکل ہے دھوکہ دینا کیونکہ یہ کوڈ نہیں پڑھتی، یہ ایک حقیقی براؤزر چلاتی ہے — کلکس، ٹائپنگ، انتظار، چیک کرنا کہ DOM اسی طرح تبدیل ہوا جیسا ہونا چاہیے تھا۔ سوالیہ بلڈ ایک آئیڈل گیم تھا، اور گیمز کو یہاں ایک اضافی پاس ملتا ہے کیونکہ گیم پکسل-پرفیکٹ رینڈر ہو سکتا ہے اور پھر بھی ناقابل کھیل — اسکور ڈسپلے بے عیب نظر آ سکتا ہے جبکہ اسکورنگ لاجک سے مکمل طور پر منقطع ہو۔ ویریفائر نے اسے کھیلا۔ اسکور ٹھیک اپڈیٹ ہوا۔ آڈیو نے کوئی آواز نہیں کی۔

تین راؤنڈز، پھر ایک اضافہ

یہ تلاش ہمیں بگ رپورٹ کی صورت میں نہیں ملی — یہ سیدھا فکس پاس میں گئی، اور زنجیر نے دوبارہ تصدیق کی، بلڈ کے اندر تین راؤنڈ تک۔ راؤنڈ ایک: فکس نے مکسر انیشیلائزیشن کو چھوا، جو پہلے سے ٹھیک تھا، تو آڈیو خاموش رہا۔ راؤنڈ دو: ایک مختلف فکس نے ایک لوڈنگ-اسٹیٹ ایج کیس کو حل کیا جو ملحقہ نظر آتا تھا، اور — یہ توقع سے زیادہ ہوتا ہے — اصل مسئلہ حل کیے بغیر ایک چھوٹا نیا مسئلہ متعارف کروا دیا۔ راؤنڈ تین: پھر بھی خاموش، اور اس مرحلے پر عام طور پر آپ یا تو کسی حقیقی مشکل چیز کو دیکھ رہے ہوتے ہیں یا جھوٹے الارم کو، اور یہ مشکل قسم تھی۔

تو پلیٹ فارم نے خود ہی اضافہ کیا۔ اس نے ایک فالو اپ فکس رن کیو کیا جو مکمل طور پر بچی ہوئی تلاش پر مرکوز تھا، اصل بلڈ کی بجائے بلڈ کی ایک کلون پر کام کرتے ہوئے — یعنی اضافی رن ناکام ہو سکتا تھا بغیر ہمیں پہلے سے موجود کام کرنے والا ورژن کھونے کے۔ اس رن نے اصل وجہ ڈھونڈی: ایک میوٹ فلیگ جو ایک پہلے ڈیبگ پاس کے دوران سیٹ ہوئی تھی اور کبھی واپس نہیں پلٹی گئی تھی، جو پچھلے دو فکسز کے چھوئے گئے سے مکمل طور پر مختلف فائل میں موجود تھی۔ فلیگ صاف کی، دوبارہ تصدیق کی، پاس ہو گیا۔ کسی نے اس بلڈ کو تب تک نہیں دیکھا جب تک یہ پہلے ہی کام نہیں کر رہا تھا۔

آرڈرپرتپکڑ
1کوڈ ریویوٹوٹی ہوئی منطق، غیر فعال ہینڈلرز، اسٹیٹ بگز
2سیکیورٹی آڈٹانجیکشن کی سطحیں، لیک شدہ رازیں، غیر محفوظ پیٹرنز
3لنکس اور SEOٹوٹے ہوئے لنکس، غائب میٹا ڈیٹا، sitemap/robots.txt کی درستگی
4رسائی پذیریخودکار axe-core: کنٹراسٹ، لیبلز، کی بورڈ نیوی گیشن
5کنفارمنسکیا بلڈ میں وہ سب کچھ موجود ہے جس کا منصوبے نے وعدہ کیا تھا
6براؤزر کے اندر چیکبلڈ کو حقیقی طور پر چلاتا ہے — کلکس، ٹائپنگ، اس کے ردعمل کا مشاہدہ

اگلی بار میں کیا نہ کرتا

اس آئیڈل گیم کے چلنے سے چند مہینے پہلے، ہم نے پورے سسٹم کا ایک نرم ورژن آزمایا — ویریفائرز کو کسی بھی طریقے سے بیان کردہ کوئی بھی تشویش اٹھانے کی اجازت تھی۔ اس نے ایسی تلاشیں پیدا کیں جیسے "اسے ہیلپر میں نکالنے پر غور کریں" اور "یہ ویری ایبل کا نام واضح ہو سکتا ہے"، جو محنت لگتی تھیں مگر کچھ ٹھیک نہیں کرتی تھیں۔ فکس پاسز پورے راؤنڈز اصل ٹوٹی ہوئی چیز ٹھیک کرنے کی بجائے نثر چمکانے میں ضائع کرتے تھے۔ ہم نے قاعدہ سخت کیا: کسی فائل کا نام دیں، کسی ناکامی کو بیان کریں، یا کچھ نہ کہیں۔ ویریفائر آؤٹ پٹ تقریباً نصف کم ہو گیا اور جو باقی رہا وہ تقریباً سب قابلِ عمل تھا۔ اگر میں اسے صفر سے دوبارہ بناتا تو نرم ورژن مکمل طور پر چھوڑ دیتا اور سیدھا شواہد کے قاعدے پر جاتا — ہمیں یہ سبق مہنگے طریقے سے سیکھنے کی ضرورت نہیں تھی، بس ہم نے سیکھا۔

اس قاعدے کی ایک حقیقی قیمت ہے، اور میں اس سے انکار نہیں کروں گا: ایک مبہم مگر سچی تشویش جیسے "یہ API ڈیزائن چھ ماہ میں کسی کو نقصان پہنچائے گا" اب فرش پر گر جاتی ہے، کیونکہ ویریفائر اسے کسی ٹھوس ناکامی سے منسلک نہیں کر سکتا۔ ہم نے اس تبادلے سے سمجھوتہ کر لیا ہے۔ ایک زنجیر جو آرکیٹیکچر ریویو بھی کرے وہ ہر ایک بلڈ پر چلنے کے لیے کافی تیز نہیں، اور رفتار ہی اس بات کا اصل مقصد ہے کہ اسے خودکار طور پر چلایا جائے بجائے کسی انسان سے کروانے کے۔

اگر کوئی پوچھے تو میں چوتھا راؤنڈ شامل کرنے سے بھی گریز کروں گا۔ ہم نے راؤنڈ کی تعداد کو حقیقی بلڈز کے خلاف ٹیون کیا، اور راؤنڈ تین کے بعد اضافی فائدہ بہت تیزی سے کم ہو جاتا ہے — راؤنڈ ایک زیادہ تر قابلِ حل تلاشیں حل کرتا ہے، راؤنڈ دو زیادہ تر ان مسائل کو صاف کرتا ہے جو راؤنڈ ایک نے متعارف کروائے، اور راؤنڈ تین تک جو باقی رہتا ہے وہ یا تو واقعی مشکل ہوتا ہے یا کبھی حقیقتاً ٹوٹا ہی نہیں تھا۔ چوتھا راؤنڈ زیادہ تر اسی نتیجے کے لیے طویل انتظار خریدتا ہے۔

اس میں سے کچھ بھی مفت نہیں، اور کچھ بھی غلطی سے مبرا نہیں۔ چھ تہیں اور جتنے بھی فکس راؤنڈز درکار ہوں، ہر بلڈ میں حقیقی وقت جوڑتے ہیں — ایک منٹ سے کم میں مکمل ہونے اور کئی منٹوں میں مکمل ہونے کا فرق۔ ہمیں لگتا ہے یہ کسی بھی ایسی چیز کے لیے صحیح تبادلہ ہے جو آپ اپنے صارفین کے سامنے پیش کرنے والے ہیں، مگر "تیز" اور "تصدیق شدہ" مخالف سمتوں میں کھینچتے ہیں، اور ہم نے تصدیق شدہ کو چنا۔ ویریفائرز بھی LLMs ہیں، اس لیے وہ کبھی کبھار کسی ایسی چیز کو نشان زد کر دیتے ہیں جو اصل میں ٹوٹی ہوئی نہیں، یا کسی ٹوٹی ہوئی چیز کو چھوڑ دیتے ہیں۔ شواہد کا قاعدہ اور ملٹی-راؤنڈ لوپ اس کے خلاف تحفظات ہیں، ضمانتیں نہیں۔

آخر میں آپ کو جو ملتا ہے وہ ایک ریکارڈ ہے: کون سی تہیں چلیں، انہوں نے کیا پایا، کیا ٹھیک ہوا، اور آپ کے اپنے فیصلے کے لیے کیا چھوڑا گیا۔ وہ ریکارڈ اصل پروڈکٹ کے کوڈ سے زیادہ قریب ہے — یہ فرق ہے کسی بلڈ پر اس لیے بھروسہ کرنے میں کہ یہ مکمل نظر آتا ہے، اور اس پر بھروسہ کرنے میں کہ کسی مخالف چیز نے اسے پہلے توڑنے کی کوشش کی اور ناکام رہی۔

اور اگر پھر بھی کچھ رہ جائے؟ بلڈ کی چیٹ کو بتائیں۔ فکس پرانے کے ساتھ ایک نئے ورژن کے طور پر بنتا ہے، وہی تصدیقی زنجیر چلاتا ہے، اور آپ کسی بھی وقت واپس جا سکتے ہیں۔ یہ لوپ یہ نہیں سمجھتا کہ یہ غلطی سے مبرا ہے؛ یہ سمجھتا ہے کہ یہ ہمیشہ دوبارہ چل سکتا ہے۔
انجینئرنگ
شیئر کریںXLinkedInFacebookRedditQuoraWhatsAppTelegramای میل
← تمام پوسٹس