À propos du projet
Handoff est une compétence d'agent destinée aux dépôts où le même travail est repris sur plusieurs sessions d'agents IA. Son énoncé du problème : une tâche non cochée dans une liste n'est pas nécessairement inachevée, car un autre agent a pu l'implémenter, un commit a pu y répondre, l'exigence a pu changer, ou quelqu'un d'autre possède toujours les fichiers concernés. La compétence utilise un fichier de registre partagé, HANDOFF.md, ainsi que des preuves du dépôt telles que l'historique Git, le code actuel, les tests et la propriété, pour décider de ce qui est réellement en suspens.
Le flux de travail enregistré comprend six étapes. Preflight revendique un nom de session et renvoie, à partir d'un instantané versionné, chaque entrée ouverte du registre avec ses étapes, un résumé des entrées récemment terminées, les erreurs de structure et l'état Git. Intake transforme chaque demande en une entrée de tâche datée avec des cases à cocher distinctes « In progress » et « Completed », des étapes, une vérification et une ligne de statut. Un audit progressif examine les entrées ultérieures du registre, les commits, la source actuelle, la propriété active et les cases à cocher de l'entrée plus ancienne, puis classifie la portée effective comme Complete, Partially complete, Superseded, Unfinished ou Unknown, en annotant plutôt qu'en supprimant afin de préserver l'historique. La résolution de propriété demande si le travail éligible doit être terminé en priorité ou laissé à son propriétaire actuel avant qu'une nouvelle tâche ne commence, à moins que l'utilisateur n'ait déjà donné un ordre explicite. Safe writes acheminent les mises à jour via un verrouillage compare-and-swap lorsque des pairs peuvent écrire dans le même arbre. Enfin, l'agent prépare des chemins explicites, enregistre la vérification et les identifiants de commit, et laisse un état à partir duquel le prochain agent peut continuer.
Les entrées du registre enregistrent un label de propriétaire, un champ harness optionnel (auto-détecté pour Claude Code, Codex, Cursor et VS Code, modifiable via une variable d'environnement), des cases d'état, des étapes cochées et non cochées, une ligne de statut et une action suivante. Les tâches terminées conservent les deux cases cochées afin que le registre serve d'historique. Les sessions choisissent des noms dans une liste de cent figures mythologiques, attribués selon le principe du premier arrivé et ne dupliquant jamais un propriétaire déjà présent dans le registre.
Le projet livre une CLI Python de bibliothèque standard avec un tableau de bord curses en direct pour les agents et les tâches, affichant les tâches terminées par rapport au total, les comptes en cours et en attente, la progression des étapes et, lorsque cela est enregistré, le harness utilisé par chaque propriétaire. Il peut également fonctionner en mode instantané texte brut, en mode lecture seule, ou via un lanceur PATH qui résout l'installation épinglée à la version actuelle. Le tableau de bord permet de couper une tâche et de la coller sur un autre propriétaire, ce qui réécrit le label du propriétaire et enregistre le déplacement sous le même verrou. Un script de barre de statut imprime une ligne de progression et est documenté comme fonctionnant avec les lignes de statut de Claude Code, Grok CLI et Kimi Code, avec un wrapper tmux pour Codex et d'autres CLI.
Un canal d'agent local stocke les messages et les accusés de réception dans un fichier SQLite gitignored limité à un seul checkout, sans démon ni socket. Les agents peuvent envoyer des questions, répondre, signaler leur disponibilité, libérer leur panier d'inachevés, déclarer une date limite de renouvellement sur un bail, et utiliser des échanges de nonce challenge/attest pour montrer qu'un autre agent est réactif. L'installation est proposée comme plugin Claude Code depuis une marketplace, un import marketplace Cursor, ou via npx skills add pour d'autres hôtes ; le README précise que Git, un agent avec accès lecture/édition au dépôt et Python 3.9+ sont requis, sans clé API, service hébergé ou package Python tiers. La seule fonctionnalité qui quitte la machine est une étape de publication ssh optionnelle qui reste inactive tant qu'un fichier de configuration n'existe pas. Cinq commandes slash couvrent l'initialisation, la visualisation, le statut, la continuation et la purge du registre, et le README note les limites de Windows pour le tableau de bord curses et le chemin rapide de la barre de statut.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.