کسی AI کوڈ اسسٹنٹ سے کہیں کہ کسی انجانی سروس میں بگ ٹھیک کرے، اور دیکھیں وہ پہلے کیا کرتا ہے: پڑھنا شروع کر دیتا ہے۔ ایک فائل کھولتا ہے، پھر دوسری، پھر کسی فنکشن کے نام کو grep کرتا ہے اور چار مزید فائلیں کھول لیتا ہے۔ ہر چکر میں ٹوکن اور وقت خرچ ہوتا ہے، اور ایجنٹ پھر بھی آدھی آنکھ بند کر کے ترمیم تک پہنچتا ہے — کوڈبیس کو سمجھنے کے بجائے بس نمونے لے کر۔
Codna اس ترتیب کو الٹ دیتا ہے۔ یہ پوری ریپوزیٹری کو اس سے پہلے پڑھ لیتا ہے جب ایجنٹ ایک لائن بھی لکھے، اور پورے پروجیکٹ کا ایک ساختی نقشہ ملی سیکنڈوں میں تیار کر لیتا ہے۔ ایجنٹ آپ کا کوڈ پڑھتے ہیں۔ Codna اسے سمجھتا ہے۔
AI کوڈ اسسٹنٹ اندھا کیوں پڑھتا ہے
ایک بڑی ریپوزیٹری محض متن کا فولڈر نہیں ہوتی۔ یہ ایک گراف ہے — imports، call sites، type definitions، اور ان خاموش روایات کا، جو ایک ٹیم نے برسوں میں جمع کی ہوتی ہیں۔ جب کوئی AI کوڈنگ ایجنٹ اس گراف میں فائل بہ فائل داخل ہوتا ہے، تو وہ دوہری قیمت چکاتا ہے: ایک بار ان ٹوکنوں میں جو پہلے دیکھی گئی چیزیں دوبارہ پڑھنے میں صرف ہوتے ہیں، اور ایک بار ان غلطیوں میں جو اس لیے ہوتی ہیں کہ اس نے وہ حصہ کبھی دیکھا ہی نہیں جو اصل میں اہم تھا۔
ناکامی شاذ و نادر ہی ڈرامائی ہوتی ہے۔ ایجنٹ علامت پر پٹی باندھ دیتا ہے اور تین ڈائریکٹریاں دور موجود مشترکہ helper سے چوک جاتا ہے۔ وہ ایک ایسی utility دوبارہ بنا دیتا ہے جو پہلے سے موجود ہے۔ وہ ایک signature بدل دیتا ہے اور آگے موجود سات callers کو نظرانداز کر جاتا ہے۔ یہ استدلال کی ناکامیاں نہیں ہیں۔ یہ سیاق و سباق کی ناکامیاں ہیں — ماڈل کو کبھی اتنا کوڈبیس دکھایا ہی نہیں گیا کہ وہ بہتر جان سکتا۔
زیادہ تر بری AI ترامیم استدلال کی غلطیاں نہیں ہوتیں۔ وہ غائب سیاق و سباق کی غلطیاں ہوتی ہیں۔
معمول کا حل یہ ہے کہ مزید متن بھیجا جائے: prompt کو فائلوں سے بھر دو اور امید رکھو کہ متعلقہ سطریں کہیں نہ کہیں موجود ہوں گی۔ یہ ایک مسئلے کو دوسرے سے بدل دیتا ہے۔ context windows بھر جاتی ہیں، لاگت بڑھتی ہے، اور وہ signal جس کی ایجنٹ کو اصل ضرورت ہے، غیر ضروری چیزوں کے نیچے دب جاتا ہے۔
پہلے نقشہ، پھر عمل
Codna کا بنیادی نکتہ یہ ہے کہ کوڈبیس کو سمجھنا اور اسے ترمیم کرنا دو الگ کام ہیں، اور انہیں دو الگ انجنوں پر چلنا چاہیے۔ mapping انجن مہنگا ساختی کام ایک بار کرتا ہے اور اسے تازہ رکھتا ہے۔ coding ایجنٹ لکھنے کا کام کرتا ہے، اور پڑھنے کی فہرست کے بجائے درست سیاق و سباق لے کر پہنچتا ہے۔
یہ mapping صفر ٹوکن میں ہوتی ہے۔ Codna ریپوزیٹری کو static analysis سے index کرتا ہے، نہ کہ source code کو کسی language model سے گزار کر، اس لیے دس لاکھ سطروں کے پروجیکٹ کا نقشہ بنانے اور تازہ کرنے میں inference کا کوئی خرچ نہیں آتا۔ ماڈل کا بجٹ وہاں صرف ہوتا ہے جہاں وہ کام آتا ہے — خود تبدیلی پر، نہ کہ ہر session میں پروجیکٹ کو سر سے دریافت کرنے پر۔
نتیجہ ایک ایسا AI-powered coding assistant ہے جو کوڈبیس کے سیاق و سباق کو بنیادی ڈھانچے کی طرح برتتا ہے۔ نقشہ ہمیشہ موجود ہے، ہمیشہ تازہ ہے، اور ایجنٹ کو ضرورت پڑنے سے ایک لمحہ پہلے قابلِ استفسار ہے۔
سمجھو۔ ٹھیک کرو۔ ارتقا کرو۔
اس loop کے چار مراحل ہیں، اور یہ ہر بار ایجنٹ کے کام پر لگنے پر ترتیب سے چلتے ہیں۔
پہلے، Codna ریپو کا نقشہ بناتا ہے — پروجیکٹ کو files، symbols، dependencies، اور call graphs کے ساختی index میں parse کرتا ہے۔ دوسرے، وہ اس نقشے کو سمجھتا ہے، یہ حل کرتے ہوئے کہ حصے آپس میں کیسے جڑے ہیں تاکہ کسی ایک فنکشن کے بارے میں query اسے call کرنے والے اور اس پر منحصر کوڈ کو بھی جانے۔ تیسرے، جب کوئی task آتا ہے، Codna سیاق و سباق بازیاب کرتا ہے — کوڈبیس کا بالکل وہی حصہ نکالتا ہے جسے تبدیلی چھوتی ہے، اور کچھ نہیں۔ چوتھے، وہ ایجنٹ کی رہنمائی کرتا ہے، وہ مرکوز سیاق و سباق سونپتے ہوئے تاکہ coding ایجنٹ اسی آگاہی کے ساتھ ترمیم کرے جو ایک سینئر انجینئر اپنے ذہن میں رکھتا ہے۔
سمجھو۔ ٹھیک کرو۔ ارتقا کرو۔ یہ نام سوچ کر رکھا گیا ہے۔ سمجھنا ٹھیک کرنے سے پہلے آتا ہے کیونکہ سمجھ کے بغیر ٹھیک کرنا ایک اندازہ ہے، اور ارتقا — refactors، migrations، وقت کے ساتھ کسی نظام کی بتدریج بہتری — تبھی محفوظ ہے جب ہر تبدیلی پورے کی بنیاد پر ہو۔
درست سیاق و سباق کیا بدلتا ہے
جب ایجنٹ اندھا پڑھنا بند کر دیتا ہے، تو فرق demo میں نہیں، کام میں نظر آتا ہے۔
- ترامیم صحیح جگہ لگتی ہیں کیونکہ ایجنٹ اس فنکشن کے ہر caller کو دیکھ سکتا ہے جسے وہ چھو رہا ہے
- ٹوکن خرچ کم ہوتا ہے کیونکہ ماڈل ہر بار فائلیں دوبارہ پڑھنے میں ادائیگی نہیں کرتا
- Refactors محفوظ تر ہو جاتے ہیں، کیونکہ نقشہ کسی تبدیلی کا پورا blast radius ship ہونے سے پہلے سامنے لے آتا ہے
- کسی انجانی ریپو سے واقفیت اندازوں کا کھیل نہیں رہتی — ڈھانچہ پہلے سے نقشہ بند ہے
یہی وہ لکیر ہے جو AI coding ایجنٹ اور حقیقی code intelligence کے درمیان ہے۔ ایک اتنا پڑھتا ہے جتنا وہ afford کر سکتا ہے۔ دوسرا شروع کرنے سے پہلے جانتا ہے کہ کیا پڑھنا ہے۔ AI code assistant tools میں یہ فرق ایک مختصر آزمائش میں آسانی سے نظرانداز ہو جاتا ہے اور کام کی ایک سہ ماہی میں نظرانداز کرنا ناممکن ہو جاتا ہے — یہی وہ چیز ہے جو ایک ہوشیار autocomplete کو اس کوڈبیس کے لیے بہترین AI code assistant سے الگ کرتی ہے جسے آپ کو واقعی maintain کرنا ہے۔
انہی ریپوز کے لیے جو آپ کے پاس پہلے سے ہیں
Codna حقیقی پروجیکٹوں پر چلتا ہے — بڑے، پرتدار، جزوی طور پر غیر دستاویزی پروجیکٹوں پر، نہ کہ tutorial کی صاف ستھری مثالوں پر۔ یہ ان coding ایجنٹوں کے ساتھ کام کرتا ہے جو ٹیمیں پہلے سے استعمال کرتی ہیں، بشمول VS Code کے لیے AI code assistant کے طور پر، تاکہ نقشہ ان tools کو آگاہ کرے جن تک developers پہنچتے ہیں، نہ کہ انہیں بدل دے۔ مقصد کبھی ایک اور window شامل کرنا نہیں تھا۔ مقصد یہ تھا کہ آپ کی موجودہ window میں موجود ایجنٹ پہلے سے جانتا ہو کہ وہ کہاں ہے۔
جیسے جیسے نظام بڑھتے ہیں، کوڈ پڑھنے اور اسے سمجھنے کے درمیان خلا صرف وسیع ہوتا ہے، اور وہ assistants جو اسے پاٹیں گے وہی ہوں گے جو عمل سے پہلے نقشہ بناتے ہیں۔ Codna live ہے، اور یہ اسی مستقبل کے لیے بنا ہے — جہاں کوڈبیس کو سمجھنا آپ کے tools کا پہلا کام ہو، آخری نہیں۔