منصوبے کے بارے میں

Handoff ایک ایجنٹ اسکل ہے جس کا مقصد ایسی ریپوزٹریز ہیں جہاں ایک ہی کام کو کئی AI-agent سیشنز میں اٹھایا جاتا ہے۔ اس کا بنیادی مسئلہ یہ ہے کہ لسٹ میں موجود ایک غیر چیک شدہ ٹاسک ضروری نہیں کہ ادھورا ہو، کیونکہ ہو سکتا ہے کسی دوسرے ایجنٹ نے اسے نافذ کر دیا ہو، کسی commit نے اسے پورا کر دیا ہو، ضرورت تبدیل ہو گئی ہو، یا متاثرہ فائلوں کی ملکیت اب کسی اور کے پاس ہو۔ یہ اسکل ایک مشترکہ لیجر فائل، HANDOFF.md، اور ریپوزٹری کے شواہد جیسے Git history، موجودہ کوڈ، ٹیسٹ اور ملکیت (ownership) کا استعمال کرتے ہوئے یہ فیصلہ کرتا ہے کہ اصل میں کیا باقی ہے۔ ریکارڈ شدہ ورک فلو کے چھ مراحل ہیں۔ Preflight ایک سیشن نام حاصل کرتا ہے اور ایک ورژن شدہ اسنیپ شاٹ سے ہر اوپن لیجر انٹری، اس کے اقدامات، حالیہ مکمل شدہ اندراجات کا خلاصہ، ساخت کی غلطیاں اور Git اسٹیٹ واپس کرتا ہے۔ Intake ہر درخواست کو ایک تاریخ شدہ ٹاسک انٹری میں تبدیل کرتا ہے جس میں الگ الگ In progress اور Completed چیک باکسز، اقدامات، تصدیق اور ایک اسٹیٹس لائن ہوتی ہے۔ ایک progressive audit بعد کے لیجر اندراجات، commits، موجودہ سورس، لائیو ملکیت اور پرانی انٹری کے چیک باکسز کا جائزہ لیتا ہے، پھر مؤثر دائرہ کار کو Complete، Partially complete، Superseded، Unfinished یا Unknown کے طور پر درجہ بند کرتا ہے، اور تاریخ کو محفوظ رکھنے کے لیے حذف کرنے کے بجائے نوٹ شامل کرتا ہے۔ Ownership resolution یہ پوچھتا ہے کہ آیا نئے ٹاسک کے شروع ہونے سے پہلے اہل کام کو مکمل کیا جانا چاہیے یا اسے موجودہ مالک کے پاس چھوڑ دیا جائے، جب تک کہ صارف نے پہلے سے واضح ترتیب نہ دی ہو۔ Safe writes اپ ڈیٹس کو ایک لاکڈ compare-and-swap کے ذریعے بھیجتے ہیں جب ساتھی ایک ہی ٹری (tree) میں لکھ رہے ہوں۔ آخر میں، ایجنٹ واضح راستوں کو اسٹیج کرتا ہے، تصدیق اور commit identifiers ریکارڈ کرتا ہے، اور ایسی حالت چھوڑتا ہے جہاں سے اگلا ایجنٹ کام جاری رکھ سکے۔ لیجر اندراجات ایک مالک کا لیبل، ایک اختیاری harness فیلڈ (جو Claude Code، Codex، Cursor اور VS Code کے لیے خودکار طور پر ڈیٹیکٹ ہوتا ہے، اور انوائرمنٹ ویری ایبل کے ذریعے تبدیل کیا جا سکتا ہے)، اسٹیٹ باکسز، چیک شدہ اور غیر چیک شدہ اقدامات، ایک اسٹیٹس لائن اور اگلا عمل ریکارڈ کرتے ہیں۔ مکمل شدہ ٹاسک دونوں باکسز کو چیک شدہ رکھتے ہیں تاکہ لیجر تاریخ کے طور پر پڑھا جا سکے۔ سیشنز سو اساطیری شخصیات کی فہرست سے نام حاصل کرتے ہیں، جو پہلے آنے والوں کو دیے جاتے ہیں اور لیجر میں پہلے سے موجود کسی مالک کی نقل نہیں کرتے۔ پروجیکٹ ایک اسٹینڈرڈ لائبریری Python CLI کے ساتھ آتا ہے جس میں ایجنٹس اور ٹاسکس کے لیے ایک لائیو curses ڈیش بورڈ ہے، جو مکمل شدہ بمقابلہ کل ٹاسکس، ان-پروگریس اور پینڈنگ گنتی، اقدامات کی پیشرفت اور جہاں ریکارڈ ہو، ہر مالک کے استعمال کردہ harness کو دکھاتا ہے۔ یہ سادہ ٹیکسٹ اسنیپ شاٹ موڈ، ریڈ-اونلی موڈ، یا ایک PATH لانچر کے پیچھے بھی چل سکتا ہے جو موجودہ ورژن-پینڈ انسٹال کو حل کرتا ہے۔ ڈیش بورڈ ایک ٹاسک کو کاٹ کر دوسرے مالک پر پیسٹ کرنے کی حمایت کرتا ہے، جو مالک کے لیبل کو دوبارہ لکھتا ہے اور اسی لاک کے تحت نقل کو ریکارڈ کرتا ہے۔ ایک اسٹیٹس بار اسکرپٹ ایک لائن کی پیشرفت کی قطار پرنٹ کرتا ہے اور اسے Claude Code، Grok CLI اور Kimi Code اسٹیٹس لائنز کے ساتھ کام کرنے کے طور پر دستاویز کیا گیا ہے، جس میں Codex اور دیگر CLIs کے لیے ایک tmux ریپر موجود ہے۔ ایک مقامی ایجنٹ چینل پیغامات اور اعترافات کو ایک gitignored SQLite فائل میں محفوظ کرتا ہے جو ایک چیک آؤٹ تک محدود ہوتا ہے، جس میں کوئی daemon یا socket نہیں ہوتا۔ ایجنٹس سوالات بھیج سکتے ہیں، جواب دے سکتے ہیں، دستیابی کی رپورٹ کر سکتے ہیں، اپنی ادھوری بالٹی (bucket) ریلیز کر سکتے ہیں، لیز پر تجدید کی ڈیڈ لائن کا اعلان کر سکتے ہیں، اور یہ دکھانے کے لیے challenge/attest nonce تبادلے کا استعمال کر سکتے ہیں کہ دوسرا ایجنٹ جواب دے رہا ہے۔ انسٹالیشن ایک مارکیٹ پلیس سے Claude Code پلگ ان، Cursor مارکیٹ پلیس امپورٹ، یا دیگر ہوسٹس کے لیے npx skills add کے ذریعے پیش کی جاتی ہے؛ README بتاتا ہے کہ Git، ریپوزٹری ریڈ/ایڈٹ رسائی کے ساتھ ایک ایجنٹ، اور Python 3.9+ ضروری ہیں، جس میں کوئی API key، ہوسٹڈ سروس یا تھرڈ پارٹی پائتھون پیکیج نہیں ہے۔ واحد فیچر جو مشین سے باہر جاتا ہے وہ ایک opt-in ssh publish مرحلہ ہے جو تب تک غیر فعال رہتا ہے جب تک کہ کنفیگریشن فائل موجود نہ ہو۔ پانچ slash کمانڈز لیجر کو شروع کرنے، دیکھنے، اسٹیٹس، جاری رکھنے اور صاف کرنے (purging) کا احاطہ کرتی ہیں، اور README curses ڈیش بورڈ اور اسٹیٹس بار فاسٹ پاتھ کے لیے Windows کی حدود کا ذکر کرتا ہے۔