Об этом проекте

Handoff — это навык агента, предназначенный для репозиториев, в которых одна и та же работа выполняется в течение нескольких сессий ИИ-агентов. Постановка проблемы: задача, оставшаяся непроверенной в списке, не обязательно является незавершенной, так как другой агент мог ее реализовать, коммит мог ее удовлетворить, требования могли измениться или файлы все еще могут принадлежать кому-то другому. Навык использует общий файл реестра HANDOFF.md вместе с доказательствами из репозитория, такими как история Git, текущий код, тесты и владение, чтобы определить, что на самом деле остается невыполненным. Записанный рабочий процесс состоит из шести этапов. 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, а также имеет tmux-обертку для Codex и других CLI. Локальный канал агентов хранит сообщения и подтверждения в файле SQLite, добавленном в .gitignore и ограниченном одним чекаутом, без демона или сокета. Агенты могут отправлять вопросы, отвечать, сообщать о доступности, освобождать свой список незавершенных задач, объявлять срок продления аренды и использовать обмен nonce (challenge/attest), чтобы показать, что другой агент доступен. Установка предлагается в виде плагина Claude Code из маркетплейса, импорта из маркетплейса Cursor или через npx skills add для других хостов; в README указано, что требуются Git, агент с доступом на чтение/редактирование репозитория и Python 3.9+, при этом не требуются API-ключи, хостинг-сервисы или сторонние пакеты Python. Единственная функция, выходящая за пределы машины, — это опциональный шаг ssh publish, который остается неактивным до появления конфигурационного файла. Пять слэш-команд охватывают инициализацию, просмотр, статус, продолжение и очистку реестра, а в README отмечены ограничения Windows для дашборда curses и быстрого пути строки состояния.