مواد پر جائیں

موڈز

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

بالکل چار موڈز ہیں: chat، review، plan، orchestrate۔ خود enum کوئی پالیسی نہیں رکھتا۔ موڈ جو کچھ بھی ضمانت دیتا ہے، وہ ایک بار صلاحیتوں کے پروفائل میں بیان ہوتا ہے، اور نفاذ کی ہر پرت اُسی سے اخذ کرتی ہے:

  1. ٹول سطح — اُس موڈ میں کون سے ٹولز سرے سے موجود ہیں، جو ایک زیادہ سے زیادہ منظوری ٹیئر، ایک اجازت فہرست، ایک انکار فہرست اور مسترد اثر کلاسز کے ایک مجموعے کی صورت میں بیان کی جاتی ہے۔
  2. لازمی آؤٹ پٹ فعل — کچھ بھی حوالے کرنے کے لیے رن کو کس چیز کی کال کرنی ہوتی ہے۔
  3. انکار شدہ اثر کلاسز — جن سے اقدام گارڈ سرے سے انکار کر دیتا ہے۔
  4. worktree کی حالت — کیا worktree میں لکھا جا سکتا ہے۔ یہ ٹول سطح سے تبدیلی کرنے والے ٹولز نکال کر نافذ کی جاتی ہے، اور یہی چیز اسے ہر ہوسٹ پر قائم رکھتی ہے۔ جہاں ہوسٹ کے پاس OS سینڈ باکس ہوتا ہے، وہی حالت فائل سسٹم کے لکھنے کے قواعد بھی تراشتی ہے — ایک ریڈ اونلی موڈ worktree کو ریڈ اونلی ماؤنٹ کرتا ہے — مگر یہ ضمانت کی ایک دوسری نقل ہے، وہ نہیں جو اصل کام کر رہی ہے۔
  5. سسٹم پرامپٹ بلاک — ایک جنریٹ شدہ صلاحیتوں کی تمہید جو اصل میں تشکیل پانے والی ٹول فہرست سے اخذ کی جاتی ہے، اس کے ساتھ ہاتھ سے لکھی ہدایات۔

نفاذ کی ہر پرت اُسی ایک پروفائل سے اخذ کرتی ہے، اس لیے ٹول سطح، گارڈ، worktree کی حالت اور پرامپٹ آپس میں متصادم نہیں ہو سکتے۔

ڈیفالٹ اور واحد موڈ جس پر کوئی اضافی پابندی نہیں: ایگزیکیوشن ٹیئر تک مکمل ٹول سطح، ایک قابلِ تحریر worktree، کوئی انکار شدہ اثر کلاس نہیں اور کوئی تکمیل کا معاہدہ نہیں۔ اسے عمل درآمد، بگ فکسز، کوڈ بیس سے متعلق سوالات اور ہر عارضی کام کے لیے استعمال کریں۔

لیبل پر دھیان دیں: کمپوزر میں یہ موڈ “ایجنٹ” کے طور پر دکھایا جاتا ہے، “چیٹ” کے طور پر نہیں۔

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

پلان گفتگو میں ایک مختصر قطار کی صورت میں ظاہر ہوتا ہے اور اُس کے ساتھ والے ٹیب میں Plan Studio کھولتا ہے۔ اس کی منظوری گراف کو ایک آرکیسٹریشن میں کمپائل کرتی ہے، پیدا شدہ کام چلاتی ہے اور تصنیف کرنے والے اسپیس کو واپس ایجنٹ موڈ میں لے آتی ہے۔

اگر پلان موڈ کا رن کبھی submit_plan کال کیے بغیر ختم ہو جائے، تو لوپ پہلے ایک دھکا لگاتا ہے جو بتاتا ہے کہ جب تک وہ کال کامیاب نہ ہو، پلان وجود نہیں رکھتا۔ یہ دھکا واضح طور پر ایک ایماندار “یہاں کوئی پلان درکار نہیں” خروج کی اجازت دیتا ہے، کیونکہ پلان موڈ اسپیس کی ایک ترتیب ہے اور اس کے اندر پوچھا گیا ایک معمولی سوال کسی بےبنیاد پلان کا پابند نہیں ہونا چاہیے۔

باہر نکلنے کا ایک دوسرا، الگ راستہ بھی ہے: exit_plan_mode۔ یہ ایک سخت منظوری گیٹ ہے، کوئی آؤٹ پٹ فعل نہیں — جو ایجنٹ submit_plan کے بجائے اسے کال کرے، اس نے کچھ بھی حوالے نہیں کیا۔ پہلی کال ایک پائیدار plan_exit منظوری کھولتی ہے اور pending واپس کرتی ہے، اور اسپیس ریڈ اونلی ہی رہتا ہے؛ دہرائی گئی کالیں دوسرا گیٹ کھولنے کے بجائے pending ہی رہتی ہیں۔ منظوری ملنے کے بعد ہی کوئی اگلی کال اسپیس کو چیٹ پر منتقل کرتی ہے۔ مسترد ہونے پر ایجنٹ ایک نظرثانی شدہ پلان کے لیے نئی درخواست کھول سکتا ہے۔

خود پلان موڈ سے نکلنے کے لیے کمپوزر کا ڈراپ ڈاؤن بدلیں (یا Shift+Tab)۔ exit_plan_mode کا فیصلہ decide_approval MCP ٹول سے ہوتا ہے۔ ان باکس کی “ایجنٹ منظوری” قطاریں ایک الگ چیز ہیں: چلتے ایجنٹ کی طرف سے فی باری تصدیقی پرامپٹس۔

ریویو موڈ PR ریویو کے لیے ہے۔ یہ worktree کو ریڈ اونلی بناتا ہے، ٹول سطح کو ایگزیکیوشن ٹیئر سے نیچے محدود کرتا ہے اور ریویو، ٹکٹنگ اور مواصلاتی ٹولز کی ایک چنی ہوئی اجازت فہرست لاگو کرتا ہے۔ کسی pull request کے لیے کھولا گیا اسپیس خود بخود ریویو موڈ میں بنتا ہے۔

ایجنٹ کا آؤٹ پٹ ساختیافته نتائج ہوتے ہیں — ریویو نوڈز — اور جب ریویو حتمی شکل لے لے تو ایک فیصلہ۔ ایک نوڈ میں ایک قسم (bug، suggestion، recommendation، question، یا ticket)، P0 (ریلیز روکتا ہے) سے P3 (بونس) تک ایک ترجیح، ایک خود تشخیص کردہ اعتماد، ایک اختیاری اینکر (فائل کے ساتھ ایک لائن رینج؛ ریپو بھر کے نوٹس میں کوئی نہیں ہوتا) اور ایک لائف سائیکل حالت ہوتی ہے جو اُس وقت open سے consensusReady پر پہنچتی ہے جب کوئی ہم مرتبہ — کبھی خود مصنف نہیں — اُس کی تصدیق کرے۔ وہ نتیجہ جس کی ترجیح یا اعتماد غائب ہو یا حد سے باہر ہو، فیصلے کو آلودہ کرنے کے بجائے پڑھنے کی حد پر ہی گرا دیا جاتا ہے۔

یہ فیصلہ ship، hold یا block ہوتا ہے اور اس میں شامل فی محور نتائج اسے صرف زیادہ سخت ہی بناتے ہیں: کوئی گیٹڈ محور جو ناکام ہو block لازم کر دیتا ہے اور کوئی گیٹڈ محور جو چل ہی نہ سکا کم از کم hold لازم کرتا ہے۔ ثبوت کی عدم موجودگی کبھی کسی گیٹ کو سبز نہیں کرتی۔

پلان اور آرکیسٹریٹ کے برعکس، ریویو پر کوئی تکمیل کا معاہدہ نہیں ہوتا۔ نتائج add_review_node کے ذریعے جمع ہوتے اور finalize_review سے شائع ہوتے ہیں، اور دونوں کو صفر بار کال کرنا بھی جائز ہے — ریویو موڈ میں چل رہا کوئی پائپ لائن ایجنٹ وہاں اس کے بجائے کوئی ٹکٹ مکمل کرنے آیا ہو سکتا ہے۔

آرکیسٹریٹ — ریڈ اونلی، ایک ٹیم تجویز کرتا ہے

سیکشن کا عنوان “آرکیسٹریٹ — ریڈ اونلی، ایک ٹیم تجویز کرتا ہے”

آرکیسٹریٹ موڈ ایک ہدف کو پوری ٹیم کے پلان میں بدل دیتا ہے۔ پلان موڈ کی طرح یہ بھی ریڈ اونلی ہے اور فائلیں نہیں لکھ سکتا؛ تحقیق کی سطح کے اوپر اس کے پاس ایک ہی مراعات یافتہ فعل propose_orchestration ہے، جو ایک ساختی تجویز جاری کرتا ہے: کردار، ایک ذیلی ٹکٹ درخت، ایک ترکیبی قدم اور ایک بجٹ۔ پرامپٹ صرف سطح پر موجود ٹولز کے نام لیتا ہے، اس لیے ماڈل اُن بھرتیوں یا ٹکٹ کاموں کو بیان کرنے میں باریاں ضائع نہیں کرتا جنہیں وہ کال ہی نہیں کر سکتا۔

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

کسی موڈ کے اپنے آؤٹ پٹ فعل سے کبھی انکار نہیں ہو سکتا۔ submit_plan اور propose_orchestration ٹول سطح میں پن کر دیے جاتے ہیں اور ٹول فلٹر، منظوری گیٹ نیز اقدام گارڈ سب کو پیچھے چھوڑ کر پہلے سے منظور شدہ ہوتے ہیں، اس لیے فی اسپیس خود مختاری کا ڈائل کسی موڈ کے ڈیلیوریبل کو خاموش نہیں کر سکتا۔ ہارنس کا ask_user بھی اسی وجہ سے پن کیا گیا ہے: یہی وہ ذریعہ ہے جس سے کوئی رن آپریٹر تک پہنچتا ہے، اس لیے اسے گیٹ کرنا ایسے رن کو تعطل کا شکار کر دیتا جو کچھ پوچھنا چاہتا ہو۔ یہ ریڈ ٹیئر میں ہے، اس لیے ہر ریڈ اونلی موڈ اسے رکھتا ہے، اور یہ منظوری ریپر سے مستثنیٰ ہے — ایک پرامپٹ کے سامنے دوسرا پرامپٹ، کوئی منظوری دینے والا جڑا نہ ہونے پر بند ہو کر ناکام ہوتا ہے، جو ایجنٹ کو پوچھنے کے عمل سے محروم کر دیتا۔

ریڈ اونلی موڈز نیٹ ورک تک رسائی یا سیکرٹس سے انکار نہیں کرتے۔ ریویو، پلان اور آرکیسٹریٹ جن اثر کلاسز سے انکار کرتے ہیں وہ وہی ہیں جو دنیا بدلتی ہیں: فائل ڈیلیشن، worktree سے باہر تحریر، کمٹس، پشز، PR کی تخلیق اور اشاعت، وینڈر سنک کی تحریریں، پیکیج انسٹالز، پروسیس اسپاننگ، ورک اسپیس میں تبدیلی اور انکلوژر کنٹرول۔ نیٹ ورک سے باہر جانا اور سیکرٹ تک رسائی جان بوجھ کر اپنے ڈیفالٹس پر رہتے ہیں — تحقیق ہی تو ریڈ اونلی موڈ کا پورا مقصد ہے۔

کمپوزر کا موڈ ڈراپ ڈاؤن تین اختیار دیتا ہے: ایجنٹ (چیٹ)، پلان اور آرکیسٹریٹ۔ review صارف کے لیے قابلِ انتخاب نہیں — یہ سسٹم کی طرف سے اُس وقت مقرر ہوتا ہے جب کوئی PR ریویو اسپیس بنے، اور پائپ لائن قدموں کی طرف سے بھی۔

وہ پائپ لائن نوڈ جو اسپیس کھولتا ہے، اُس کمرے کا موڈ extras['mode'] کلید (chat، review، یا plan) سے پن کر سکتا ہے۔ یہ کلید عین مطابق ہونی چاہیے: کوئی بھی دوسری ہجے — بشمول orchestrate — خاموشی سے نظر انداز ہو جاتی ہے اور کمرے کو باڈی کا ڈیفالٹ ملتا ہے (create-space باڈی پر review)۔ ایجنٹ کا قدم ایسے کمرے میں شامل ہوتا ہے جو اُس نے نہیں بنایا اور اُس کی اجازتیں دوبارہ مقرر نہیں کرتا۔

طے کرنا خود سادہ ہے۔ ڈسپیچر اسپیس کا mode کالم پڑھتا ہے؛ بغیر اسپیس والا ڈسپیچ — ایک ون شاٹ، کوئی CLI کال، یا کسی دوسرے ورک اسپیس کا اسپیس id، جو سادہ طور پر اِس ورک اسپیس کی ڈیٹا بیس فائل میں ہے ہی نہیں — chat پر طے ہوتا ہے۔ موڈ بدلنے کا اثر اگلی باری سے ہوتا ہے۔

کسی موڈ کی ٹول سطح بلٹ اِن ہارنس بناتا اور نافذ کرتا ہے۔ یہ واحد ٹرانسپورٹ ہے جو کسی ٹول کو محض مسترد کرنے کے بجائے پوشیدہ بنا سکتا ہے، ہر کال کو چلنے سے پہلے گیٹ کر سکتا ہے اور تکمیل کے معاہدے کا مشاہدہ کر سکتا ہے۔

Claude Code ٹرانسپورٹ پر غیر چیٹ موڈ --permission-mode plan کے طور پر بھیجا جاتا ہے۔ Claude کنونشن کی بنا پر اس کا احترام کرتا ہے؛ اس کے اپنے ریڈ، رائٹ اور ایڈیٹ ٹولز آنکھوں سے اوجھل چلتے ہیں، اور شیل کمانڈز کو صرف ایک ہک جانچتا ہے جو کمانڈ لائن پڑھتا ہے۔ اُس ٹرانسپورٹ کے لیے موڈ محض رہنمائی ہے، Control Center کی کوئی حد نہیں — دیکھیں ایجنٹ ماڈل۔

اجازت فہرستیں رائٹ ٹیئر اور اُس سے اوپر کے ٹولز کو محدود کرتی ہیں۔ بلٹ اِن ہارنس کا ریڈ ٹیئر پھر بھی ایسے ٹولز تک پہنچتا ہے جن کا نام کسی فہرست میں نہیں؛ Claude Code پر، وہ ٹول جسے اجازت فہرست چھوڑ دیتی ہے، مسترد ہو جاتا ہے چاہے سرور میں موجود ہو یا نہ ہو۔