RADAR پر واپس

یہ کیسے کام کرتی ہے

RADAR کیسے کام کرتی ہے۔

ڈویلپرز کے لیے ایک تکنیکی جائزہ۔ RADAR کوڈنگ ایجنٹس کو چلاتی ہے اور کسی کام کو صرف تب بند کرتی ہے جب وہ اس کام کا قبولیتی ٹیسٹ خود دوبارہ چلا لے۔ ایجنٹ کا “ہو گیا” ایک دعویٰ ہے؛ دوبارہ چلانا ثبوت ہے۔

01 لوپ

ہر کام کے لیے ایک ہی لوپ۔

ہر کام اسی لوپ سے گزرتا ہے، اور ہر قدم صرف تب چلتا ہے جب اس سے پہلے والا قدم پاس ہو چکا ہو۔

  1. 01 · کھولنا کام اور قبولیتی ٹیسٹ کام شروع ہونے سے پہلے لکھا جاتا ہے
  2. 02 · لیز ایک مالک، اپنا worktree lease اور fence token
  3. 03 · کام ایجنٹ کام کرتا ہے پروجیکٹ کی اپنی کاپی میں
  4. 04 · دعویٰ ایجنٹ کہتا ہے ہو گیا نتیجہ نہیں، دعوے کے طور پر درج
  5. 05 · تصدیق RADAR ٹیسٹ دوبارہ چلاتی ہے موجودہ revision پر
  6. اگر پاس ہو بند ثبوت لیجر میں محفوظ رہتا ہے
  7. اگر فیل ہو · 3 میں سے کوشش n دوبارہ کھلا، ناکامی منسلک وہی ایجنٹ قدم 03 سے دوبارہ کوشش کرتا ہے
  8. 3 کوششوں کے بعد دوسرا ایجنٹ کام سنبھالتا ہے مزید 3 کوششوں تک، قدم 03 سے
  9. مزید 3 کے بعد کام آپ کا انتظار کرتا ہے لیجر مزید کوششوں سے انکار کرتا ہے
شکل 1 · کام کا لوپ۔ دعویٰ دوبارہ چلانے تک لے جاتا ہے، کبھی سیدھا بند ہونے تک نہیں۔
کھولنا
کام اپنے ہدف اور دوبارہ چلائی جا سکنے والی قبولیتی کمانڈ کے ساتھ کھولا جاتا ہے۔ کام کھلتے وقت کمانڈ کو چلائے بغیر جانچا جاتا ہے: جو معیار لکھے ہوئے طریقے سے چل نہ سکے وہ اسی وقت رد ہو جاتا ہے، آخر میں جا کر پتا نہیں چلتا۔
لیز
ایک وقت میں ایک ہی مالک کام اپنے پاس رکھتا ہے، ایک lease اور fence token کے ذریعے۔ پرانے مالک کی طرف سے کی گئی تحریر رد کر دی جاتی ہے۔
کام
ایجنٹ اپنے git worktree میں، اپنی branch پر کام کرتا ہے۔
دعویٰ
ایجنٹ کی یہ رپورٹ کہ کام ہو گیا ہے، دعوے کے طور پر درج ہوتی ہے۔ دعویٰ کام کو بند نہیں کرتا۔
تصدیق
RADAR قبولیتی کمانڈ خود چلاتی ہے، کام کی موجودہ revision پر۔ ایجنٹ کی اپنی رپورٹ پڑھی جاتی ہے، لیکن وہ ثبوت نہیں ہے۔
بند کرنا یا دوبارہ کھولنا
پاس ہونے پر کام بند ہو سکتا ہے، اور تصدیق کا ریکارڈ اس کے ثبوت کے طور پر محفوظ رہتا ہے۔ ناکامی کام کو دوبارہ کھول دیتی ہے اور ناکامی کو اس کے ساتھ منسلک کر دیا جاتا ہے۔
حدود
ورکر کی تین کوششیں، پھر کسی دوسرے ایجنٹ کی طرف سے تین بار کام سنبھالنا۔ اس کے بعد لیجر مزید کوششوں سے انکار کر دیتا ہے اور کام آپ کا انتظار کرتا ہے۔ ماڈل، سیشن یا مشین بدلنے سے گنتی صفر نہیں ہوتی، اور ہر دوبارہ کوشش کو بتانا ہوتا ہے کہ کیا بدلا۔

02 لیجر

ایک ریکارڈ جس میں ہر ایجنٹ لکھتا ہے۔

ہر ایجنٹ کاموں کا ایک ہی لیجر پڑھتا اور اس میں لکھتا ہے: ایک مقامی SQLite فائل۔ یہی واحد ریکارڈ ہے کہ ہر کام کس کے پاس ہے، کیا دعویٰ کیا گیا اور ٹیسٹ نے کیا دکھایا۔

کام
ہدف اور قبولیتی کمانڈ، جو کام شروع ہونے سے پہلے لکھے جاتے ہیں۔
ملکیت
ہر کام کا موجودہ مالک، اس کے lease اور fence token کے ساتھ۔
کوششیں
ہر کام کے لیے گنی جاتی ہیں، تمام ایجنٹس، ماڈلز اور مشینوں کو ملا کر۔
دعوے
ایجنٹ کی یہ رپورٹ کہ کام ہو گیا ہے، نتائج سے الگ رکھی جاتی ہے۔
تصدیق کے ریکارڈ
قبولیتی ٹیسٹ کا ہر رن، اس commit اور working tree سے بندھا ہوا جس پر وہ چلا۔
تبدیلیاں
قبولیتی کمانڈ میں تبدیلی پرانے اور نئے ورژن کے ساتھ درج ہوتی ہے؛ override بھی درج ہوتا ہے۔

یادداشت

فیصلے اور سبق Markdown نوٹس ہیں جن کا ایک ماخذ اور ایک دائرہ ہوتا ہے۔ ایک مقامی انڈیکس انہیں آف لائن تلاش کرتا ہے، اور ایک hook متعلقہ نوٹس کو ایجنٹ کے عمل کرنے سے پہلے اس کے سامنے رکھ دیتا ہے۔ چونکہ نوٹس سادہ Markdown ہیں، آپ انہیں Obsidian میں کھول سکتے ہیں۔

03 علیحدگی

ہر کوشش اپنی الگ کاپی میں۔

  • ہر کوشش اپنے git worktree میں، اپنی branch پر کام کرتی ہے۔ دو ورکرز کبھی ایک tree شیئر نہیں کرتے۔
  • ورکر اپنی قبولیتی کمانڈ دوبارہ نہیں لکھ سکتا۔ صرف مینیجر اسے بدل سکتا ہے، اور وہ بھی کام بند ہونے سے پہلے؛ ہر تبدیلی پرانا اور نیا ورژن محفوظ رکھتی ہے۔
  • کام آپ کی main branch تک صرف تصدیق پاس ہونے کے بعد پہنچتا ہے، اور merge کے بعد قبولیتی کمانڈ ایک بار پھر چلتی ہے۔
  • force-push ہر رول کے لیے رد کیا جاتا ہے۔
  • یہ قواعد کوڈ کے طور پر چلتے ہیں، ماڈل کو کال کرنے سے پہلے اور بعد میں۔ یہ prompt نہیں ہیں، اس لیے ایجنٹ باتوں کے ذریعے ان سے بچ کر نہیں نکل سکتا۔

04 ایجنٹس

وہ ایجنٹس جو آپ پہلے سے استعمال کرتے ہیں۔

RADAR، Claude Code، Codex CLI، OMP اور Hermes Agent کو آپ کے کمپیوٹر پر یا آپ کے اپنے Linux سرورز پر چلاتی ہے۔ یہ ان کی جگہ نہیں لیتی: کام اب بھی وہی کرتے ہیں۔

  • Claude Code
  • Codex CLI
  • OMP
  • Hermes Agent
ایک معاہدہ
وہی قواعد، وہی لیجر، وہی تصدیقی گیٹ اور کوششوں کی وہی حدیں چاروں پر لاگو ہوتی ہیں۔
مینیجر
جس ایجنٹ سے آپ بات کرتے ہیں وہی انتظام کرتا ہے: کام کھولتا ہے، انہیں ورکرز کے حوالے کرتا ہے اور کسی کام کو صرف کامیاب تصدیقی ریکارڈ کے ساتھ بند کرتا ہے۔
ورکرز
ورکرز کام اپنے اپنے worktrees میں کرتے ہیں۔ وہ کام بند نہیں کر سکتے اور اپنی قبولیتی کمانڈ نہیں بدل سکتے۔

05 پہلے لوکل

پہلے لوکل۔

RADAR کو نہ اکاؤنٹ درکار ہے نہ کلاؤڈ۔

آپ کی مشین پر
لیجر، یادداشت کے نوٹس، worktrees اور ہر تصدیقی رن، آپ کے کمپیوٹر پر یا آپ کے اپنے Linux سرورز پر۔
نیٹ ورک درکار
آپ کے ایجنٹس، جو آج کی طرح اپنے فراہم کنندگان سے بات کرتے ہیں۔ باقی ہر بیرونی سروس اختیاری ہے اور تب تک بند رہتی ہے جب تک آپ اسے آن نہ کریں۔
ضروریات
Windows یا Linux (macOS ابھی سپورٹ نہیں کیا جاتا)، Python 3.12 یا اس سے نیا، اور Git۔ RADAR صرف Python کی اسٹینڈرڈ لائبریری استعمال کرتی ہے۔
لاگت
اس کا اپنا کوئی بل نہیں۔ ایجنٹس وہی اکاؤنٹس استعمال کرتے رہتے ہیں جن سے آپ نے انہیں سائن اِن کیا ہے۔ کوئی ادائیگی والی API صرف تب استعمال ہوتی ہے جب آپ فراہم کنندہ اور بجٹ کا تعین کریں۔
انسٹالیشن
اپنے کوڈنگ ایجنٹ کو ریپوزٹری کا لنک دیں اور کہیں “اسے انسٹال کرو”۔ وہ آپ کا کمپیوٹر جانچتا ہے، جو کچھ موجود نہ ہو اسے انسٹال کرنے سے پہلے پوچھتا ہے، RADAR کو ایک ورچوئل انوائرمنٹ میں انسٹال کرتا ہے اور بتاتا ہے کہ radar init اور radar doctor کیا کہتے ہیں۔

06 کمانڈز

کمانڈز کی ایک مختصر فہرست۔

وہ کمانڈز جو آپ سب سے پہلے استعمال کریں گے۔ پلیس ہولڈرز زاویہ دار بریکٹس میں ہیں۔

کمانڈیہ کیا کرتی ہے
radar init RADAR کی ہوم ڈائریکٹری اور لیجر سیٹ اپ کرتی ہے۔
radar doctor انسٹالیشن کی جانچ کرتی ہے اور ایسی ہر اختیاری سروس کو فہرست میں دکھاتی ہے جو ترتیب نہیں دی گئی۔
radar task new --project P --goal "…" --accept "<command>" کسی کام کو اس کی قبولیتی کمانڈ کے ساتھ کھولتی ہے۔
radar dispatch <task> کام کسی ایجنٹ کے حوالے کرتی ہے، جو اپنے worktree میں کام کرتا ہے۔
radar status پورا نظام دکھاتی ہے۔
radar verify <task> موجودہ revision پر قبولیتی کمانڈ دوبارہ چلاتی ہے۔
radar task done <task> --evidence "<verification report>" کام بند کرتی ہے۔ تصدیق پاس ہونے تک رد ہوتی ہے۔
radar collect مکمل شدہ کام جمع کرتی ہے۔
radar integrate تصدیق شدہ کام کو main میں merge کرتی ہے۔
radar stop کام روک کر ایک طرف رکھتی ہے اور STOP لگاتی ہے۔
radar go STOP ہٹاتی ہے اور بتاتی ہے کہ کیا جاری رہ سکتا ہے۔
radar memory search --local "<words>" یادداشت کے نوٹس آف لائن تلاش کرتی ہے۔
radar uiradar web کاک پٹ کو ٹرمینل یا براؤزر میں کھولتی ہے۔
radar help --all ہر کمانڈ کی فہرست دیتی ہے۔ radar <command> -h تفصیلات دیتی ہے۔

07 یہ کیا نہیں کرتی

RADAR کیا نہیں کرتی۔

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

08 صورتحال

ابتدائی رسائی میں

ابھی ابتدائی رسائی۔ عوامی اجرا پر اوپن سورس۔

RADAR ابتدائی رسائی میں ہے۔ عوامی اجرا پر اسے Apache-2.0 لائسنس کے تحت اوپن سورس کے طور پر شائع کیا جائے گا۔ شامل ہونے کے لیے ہمیں لکھیں۔