প্রকল্প সম্পর্কে

Handoff হলো একটি এজেন্ট স্কিল যা এমন রিপোজিটরির জন্য তৈরি করা হয়েছে যেখানে একই কাজ একাধিক AI-এজেন্ট সেশনের মাধ্যমে সম্পন্ন করা হয়। এর মূল সমস্যাটি হলো: তালিকার একটি আনচেকড কাজ মানেই যে সেটি অসম্পূর্ণ, তা নয়; কারণ অন্য কোনো এজেন্ট সেটি বাস্তবায়ন করে থাকতে পারে, কোনো কমিট সেটি পূরণ করে থাকতে পারে, প্রয়োজনীয়তা পরিবর্তিত হতে পারে অথবা অন্য কেউ সংশ্লিষ্ট ফাইলগুলোর মালিকানা ধরে রাখতে পারে। এই স্কিলটি একটি shared লেজার ফাইল, HANDOFF.md এবং রিপোজিটরির প্রমাণ যেমন Git history, বর্তমান কোড, টেস্ট এবং মালিকানার তথ্যের সমন্বয়ে সিদ্ধান্ত নেয় যে আসলে কোন কাজগুলো বাকি আছে। এর রেকর্ড করা ওয়ার্কফ্লো-তে ছয়টি ধাপ রয়েছে। Preflight একটি সেশন নাম দাবি করে এবং একটি ভার্সনড স্ন্যাপশট থেকে প্রতিটি খোলা লেজার এন্ট্রি, তার ধাপসমূহ, সম্প্রতি শেষ হওয়া এন্ট্রির সারাংশ, স্ট্রাকচার এরর এবং Git স্টেট রিটার্ন করে। Intake প্রতিটি অনুরোধকে একটি তারিখযুক্ত টাস্ক এন্ট্রিতে রূপান্তর করে, যেখানে আলাদা In progress এবং Completed চেকবক্স, ধাপসমূহ, ভেরিফিকেশন এবং একটি স্ট্যাটাস লাইন থাকে। একটি প্রগ্রেসিভ অডিট পরবর্তী লেজার এন্ট্রি, কমিট, বর্তমান সোর্স, লাইভ মালিকানা এবং পুরনো এন্ট্রির চেকবক্সগুলো বিশ্লেষণ করে এবং কার্যকর স্কোপকে Complete, Partially complete, Superseded, Unfinished অথবা Unknown হিসেবে শ্রেণিবদ্ধ করে; এটি ইতিহাস সংরক্ষণের জন্য মুছে ফেলার পরিবর্তে অ্যানোটেশন যোগ করে। Ownership resolution যাচাই করে যে নতুন কাজ শুরু করার আগে যোগ্য কাজগুলো শেষ করা উচিত নাকি বর্তমান মালিকের কাছে রাখা উচিত, যদি না ব্যবহারকারী ইতিমধ্যে স্পষ্ট নির্দেশনা দিয়ে থাকেন। Safe writes নিশ্চিত করে যে যখন একাধিক পিয়ার একই ট্রি-তে লিখতে পারে, তখন আপডেটগুলো একটি লকড compare-and-swap-এর মাধ্যমে পরিচালিত হয়। সবশেষে, এজেন্ট স্পষ্ট পাথগুলো স্টেজ করে, ভেরিফিকেশন এবং কমিট আইডেন্টিফায়ার রেকর্ড করে এবং এমন একটি স্টেট রেখে যায় যেখান থেকে পরবর্তী এজেন্ট কাজ শুরু করতে পারে। লেজার এন্ট্রিগুলোতে একজন মালিকের লেবেল, একটি ঐচ্ছিক harness ফিল্ড (যা Claude Code, Codex, Cursor এবং VS Code-এর জন্য অটো-ডিটেক্ট করা হয় এবং এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে পরিবর্তন করা যায়), স্টেট বক্স, চেক করা এবং আনচেক করা ধাপ, একটি স্ট্যাটাস লাইন এবং পরবর্তী পদক্ষেপ রেকর্ড করা হয়। সম্পন্ন হওয়া কাজগুলোর উভয় বক্স চেক করা থাকে যাতে লেজারটি ইতিহাস হিসেবে পড়া যায়। সেশনগুলো একশটি পৌরাণিক চরিত্রের তালিকা থেকে নাম গ্রহণ করে, যা আগে আসা ভিত্তিতে প্রদান করা হয় এবং লেজারে ইতিমধ্যে উপস্থিত কোনো মালিকের নামের সাথে দ্বিরুপি হয় না। প্রজেক্টটি একটি স্ট্যান্ডার্ড-লাইব্রেরি Python CLI প্রদান করে যাতে এজেন্ট এবং টাস্কের জন্য একটি লাইভ curses ড্যাশবোর্ড রয়েছে। এটি সম্পন্ন বনাম মোট টাস্ক, ইন-প্রগ্রেস এবং পেন্ডিং কাউন্ট, ধাপের অগ্রগতি এবং যেখানে রেকর্ড করা আছে সেখানে প্রতিটি মালিকের ব্যবহৃত harness প্রদর্শন করে। এটি প্লেইন-টেক্সট স্ন্যাপশট মোড, রিড-অনলি মোড অথবা একটি PATH লঞ্চারের মাধ্যমে চলতে পারে যা বর্তমান ভার্সন-পিনড ইনস্টলেশন রেজলভ করে। ড্যাশবোর্ডটি একটি টাস্ক কাট করে অন্য মালিকের কাছে পেস্ট করার সুবিধা দেয়, যা মালিকের লেবেল পুনরায় লেখে এবং একই লকের অধীনে মুভটি রেকর্ড করে। একটি স্ট্যাটাস-বার স্ক্রিপ্ট এক লাইনের প্রগ্রেস রো প্রিন্ট করে এবং এটি Claude Code, Grok CLI এবং Kimi Code স্ট্যাটাস লাইনের সাথে কাজ করে বলে নথিভুক্ত করা হয়েছে, সাথে Codex এবং অন্যান্য CLI-এর জন্য একটি tmux র‍্যাপার রয়েছে। একটি লোকাল এজেন্ট চ্যানেল একটি gitignored SQLite ফাইলে মেসেজ এবং একনলেজমেন্ট সংরক্ষণ করে যা একটি চেকআউটের মধ্যে সীমাবদ্ধ থাকে, এতে কোনো ডেমন বা সকেট নেই। এজেন্টরা প্রশ্ন পাঠাতে পারে, উত্তর দিতে পারে, প্রাপ্যতা রিপোর্ট করতে পারে, তাদের অসম্পূর্ণ বাকেট রিলিজ করতে পারে, লিজের রিনিউয়াল ডেডলাইন ঘোষণা করতে পারে এবং চ্যালেঞ্জ/অটেস্ট নন্স এক্সচেঞ্জ ব্যবহার করে দেখাতে পারে যে অন্য এজেন্ট রেসপনসিভ। ইনস্টলেশনটি মার্কেটপ্লেস থেকে Claude Code প্লাগইন, Cursor মার্কেটপ্লেস ইমপোর্ট অথবা অন্যান্য হোস্টের জন্য npx skills add-এর মাধ্যমে করা যায়; README-তে উল্লেখ করা হয়েছে যে Git, রিপোজিটরি রিড/এডিট অ্যাক্সেসসহ একজন এজেন্ট এবং Python 3.9+ প্রয়োজন, কোনো API key, হোস্ট করা সার্ভিস বা থার্ড-পার্টি Python প্যাকেজের প্রয়োজন নেই। একমাত্র ফিচার যা মেশিনের বাইরে যায় তা হলো একটি অপ্ট-ইন ssh publish ধাপ, যা কনফিগারেশন ফাইল না থাকা পর্যন্ত নিষ্ক্রিয় থাকে। পাঁচটি স্ল্যাশ কমান্ড ইনিশিয়ালাইজিং, ভিউয়িং, স্ট্যাটাস, কন্টিনিউয়িং এবং লেজার পার্জিং কভার করে এবং README-তে curses ড্যাশবোর্ড এবং স্ট্যাটাস-বার ফাস্ট পাথের জন্য উইন্ডোজের সীমাবদ্ধতার কথা উল্লেখ করা হয়েছে।