مواد پر جائیں

ریویوور ایجنٹس بھیجیں

یہ گائیڈ دکھاتی ہے کہ pull requests کے ریویو کے لیے ریویوور ایجنٹس کیسے بھیجے جائیں۔

  1. PR کھولیں اور اس کا جائزہ ٹیب کھولیں
  2. ⋯ اوور فلو مینو کھولیں اور AI سے پوچھیں چنیں

یہ پہلے سے فراہم کردہ pr_review پائپ لائن شروع کرتا ہے، جو PR کا ریویو اسپیس کھولتا ہے اور ورک اسپیس کی ریویو سطح کے لیے ریویوورز بھیجتا ہے — بطور ڈیفالٹ تین (پہلے سے فراہم کردہ qa، architect اور engineer ایجنٹس) — پھر لیڈ ایجنٹ سے انہیں یکجا کراتا ہے۔ اس راستے پر آپ رولز منتخب نہیں کرتے۔ یہ کنٹرول رکھنے کے لیے کہ کون سے رولز چلیں اور ہر ایک کون سی فائلیں دیکھے، نیچے دیا گیا MCP ٹول یا پائپ لائن مرحلہ استعمال کریں۔

اسے کسی موجودہ ریویو اسپیس کے اندر سے کال کریں:

dispatch_reviewers(
space_id: "...",
workspace_id: "...",
reviewers: [
{role: "reviewer"},
{role: "security", scope: "src/auth/**"}
]
)

space_id، workspace_id اور reviewers تینوں لازمی ہیں۔ ہر ریویوور اسپیک میں ایک role ہوتا ہے، ساتھ ایک اختیاری فائل-گلوب scope اور ایک prompt_override جو ڈیفالٹ بریف کی جگہ لے لیتا ہے۔ ایک اختیاری concurrency (1–8) متوازی ڈسپیچز کو محدود کرتا ہے؛ نہ دینے پر ورک اسپیس کی review_concurrency سیٹنگ لاگو ہوتی ہے (ڈیفالٹ 3، جو ترتیبات → ورک اسپیس → عام پر سیٹ ہوتی ہے)۔

ٹول فوراً dispatched اور unmatched فہرستوں کے ساتھ واپس آ جاتا ہے۔ ہر ڈسپیچ شدہ ریویوور اسپیس میں بطور شریک شامل ہوتا ہے، ایک سسٹم پیغام سے اعلان ہوتا ہے اور اپنے بریف کے ساتھ ڈسپیچ کیا جاتا ہے۔ نتائج اسی اسپیس میں review_node پیغامات کے طور پر پہنچتے ہیں۔

ترتیبات → ورک اسپیس → پائپ لائن ٹیمپلیٹس کھولیں، کوئی ٹیمپلیٹ کھولیں، پھر:

  1. پیلیٹ سے ایک Reviewer (prompt) نوڈ شامل کریں
  2. وہ ایجنٹ منتخب کریں جسے ڈسپیچ کرنا ہے اور ریویوور پرامپٹ لکھیں، اپ اسٹریم آؤٹ پٹس کے لیے {{key}} پلیس ہولڈرز استعمال کرتے ہوئے (مثلاً {{repo_local_path}}، {{pr_number}})
  3. آؤٹ پٹ کلید سیٹ کریں (ڈیفالٹ reviewer_findings) تاکہ آگے کے مراحل نتائج پڑھ سکیں

مرحلہ ایجنٹ کو ڈسپیچ کرتا ہے اور اس رن کے مکمل ہونے تک معطل رہتا ہے۔ پھر انجن رن کے submit_output پے لوڈ کو نوڈ کی آؤٹ پٹ کلید کے تحت پائپ لائن اسٹیٹ میں شامل کر لیتا ہے۔ (پیلیٹ کی تفصیل اب بھی کہتی ہے کہ مرحلہ کسی complete_task کال کا انتظار کرتا ہے — وہ ٹول موجود نہیں؛ اس عبارت کو نظر انداز کریں۔)

پھیلاؤ کے لیے کئی ریویوور نوڈز کو ایک ہی اپ اسٹریم مرحلے سے جوڑیں، پھر ان کے آؤٹ پٹس کو Consolidate (join) نوڈ سے یکجا کریں۔

ایڈیٹر پوشیدہ ٹرمنل کو ہر قابلِ رسائی سنک سے دوبارہ وائر کر دیتا ہے، اس لیے پہلے سے فراہم کردہ Step کے بعد شامل کیا گیا نوڈ بھی چلتا ہے۔ ایک ہی اپ اسٹریم مرحلے سے جڑے فین آؤٹ نوڈز متوازی چلتے ہیں۔

کسی ریویو پائپ لائن کو خود بخود چلانے کے لیے:

  1. ترتیبات → ورک اسپیس → پائپ لائن ٹیمپلیٹس پر ٹیمپلیٹ کھولیں
  2. نوڈ لائبریری کے ٹرگرز سیکشن سے PR شائع ہوا یا بیرونی PR کھلا کو کینوس پر گھسیٹیں (یا اسے ٹرگر شامل کریں والی گھوسٹ ٹائل سے چنیں)
  3. نیا نوڈ منتخب کریں اور اس کے انسپکٹر میں فعال آن کریں، پھر ٹیمپلیٹ فعال کریں

یہاں دو ایونٹس اہم ہیں اور وہ ایک دوسرے کی جگہ نہیں لے سکتے:

ایونٹ کب چلتا ہے پے لوڈ کلیدیں
PullRequestPublished کوئی PR Control Center کے ذریعے کھولا جائے — کمپوز سطح، یا pr_lifecycle.publish کال کرنے والا ایجنٹ pr_id, workspace_id, repo_owner, repo_name
ExternalPrDetected PR پولنگ سروس کو GitHub پر براہ راست کھلا کوئی PR ملے repo_owner, repo_name, pr_number, pr_title, author

github.com پر کھلا PR کبھی PullRequestPublished نہیں چھوڑتا، اس لیے صرف اسی ایونٹ سے جڑا ٹیمپلیٹ اسے نہیں دیکھے گا۔ یہ بھی یاد رکھیں کہ PullRequestPublished کوئی pr_number نہیں رکھتا — جس مرحلے کا اسکرپٹ یا پرامپٹ {{pr_number}} کا حوالہ دے، اسے ExternalPrDetected سے، یا کسی ایسے دستی رن سے جو یہ فراہم کرے، کھلانا ضروری ہے۔

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

dispatch_reviewers ورک اسپیس کے ہر ایجنٹ کو ہر مطلوبہ رول لیبل کے خلاف، حروفِ بڑے چھوٹے کی تمیز کے بغیر اسکور دیتا ہے:

مطابقت اسکور
رول لیبل رکھنے والی مہارت +3
رول لیبل رکھنے والا عنوان +2
رول لیبل رکھنے والا ایجنٹ نام +1

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

کسی PR کا بالکل ایک ریویو اسپیس ہوتا ہے، فی ریویوور ایک نہیں۔ یہ pr.ensureSpace کے ذریعے ایڈمپوٹینٹ انداز میں بنایا جاتا ہے، ایک ReviewSpaceAssociation کے ذریعے PR سے منسلک ہوتا ہے اور PR کے head ref کے مطابق پروویژن کیا جاتا ہے۔ ہر ڈسپیچ شدہ ریویوور اسی اسپیس میں شامل ہوتا ہے اور اپنے review_node نتائج وہیں پوسٹ کرتا ہے، اور یہی چیز نتائج کو موازنہ کے قابل بناتی ہے اور لیڈ ایجنٹ کو ان پر اتفاقِ رائے تک پہنچنے دیتی ہے۔

ہر ڈسپیچ شدہ ریویوور کو اپنا AgentRunLog ملتا ہے۔ پیش رفت یہاں دیکھیں:

  • ریویو اسپیس، جہاں نتائج لائیو آتے رہتے ہیں
  • PR کا ریویو ٹیب، جو ریویو اسٹیٹس بار اور فیصلہ دکھاتا ہے
  • آبزرویبلٹی → لائیو (/workspaces/:id/observability)، ایجنٹ روسٹر جس میں فی رن اسٹیٹس، لائیو گزرا وقت، ٹرانسکرپٹ دراز اور رن ختم کرنے کا کنٹرول ہوتا ہے۔ اس کے لیے کوئی کی بورڈ شارٹ کٹ نہیں ہے — اس تک سائیڈبار کے فوٹر سے پہنچیں۔