Coordina multipli agenti AI CLI (Kimi, Claude, Gemini, OpenAI, ecc.) che lavorano contemporaneamente sullo stesso progetto e mantiene una memoria collettiva (wiki) di tutte le sessioni passate. Usa questa skill SEMPRE quando lavori in parallelo con altre AI CLI, quando devi salvare lo stato di una sessione condivisa, quando vuoi evitare sovrascritture su file toccati da altri agenti, quando devi chiedere "questo lavoro è già stato fatto? questo bug si è già visto?", o quando l'utente parla di "multi-tap", "registry agenti", "coordination", "lock file", "handoff condiviso", "wiki delle sessioni", "chi sta lavorando su cosa" o "evitare che le AI si pestino i piedi".
72
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
tests/conftest.py con una fixture che isola AGENT_REGISTRY_LOCK_DIR e AGENT_REGISTRY_PATH in tmp_path per ogni testconftest.py un helper che esegue un comando del manager in un processo separato che termina, restituendo exit code e stdouttests/test_lock_cross_process.py: un secondo agente non può acquisire un lock valido preso da un processo terminato — riproduce il furto del lockstale_owner, e corsa di N processi su uno stale con un solo vincitoreAGENT_REGISTRY_LOCK_DIR rispettato e directory creata se assentetests/test_registry_concurrency.py: N processi registrano N sessioni simultaneamente, tutte devono sopravvivere — riproduce la perdita di registrazionifinish rilascia i lock della sessione e lascia intatti quelli altruitests/test_registry_manager.py: aggiornamento parziale, sessione inesistente non creata implicitamente, escaping di | e a capo anche nelle liste, AGENT_REGISTRY_PATH rispettatoscripts/lock_manager.pyGENERATED FROM SPEC e risolvere LOCK_DIR a ogni chiamata via AGENT_REGISTRY_LOCK_DIRos.path.realpath, con il path reale scritto dentro il file di lockflock a serializzare la sola sezione critica; rimuovere _OPEN_LOCK_FDS. Il lock file non viene mai cancellato: il rilascio ne azzera il contenuto
(revisione in corso d'opera: l'approccio O_EXCL + os.link() previsto in design.md è stato scartato — vedi 4.4)st_ino/st_mtime_ns prima e dopo NON chiude la finestra, perché unlink agisce sul nome e non sull'inode — non esiste "cancella solo se è ancora quello che ho letto". design.md aggiornato di conseguenza)heartbeat e release_lock owner-only, con la verifica dell'owner e l'azione nella stessa sezione criticais_locked non cancella più i lock stale: si limita a riportarliscripts/registry_manager.pyGENERATED FROM SPEC e risolvere il path a ogni chiamataregistry.lock dedicato e mai rinominato, con un context manager che tiene flock per l'intera sezione criticaregister_session, update_session, unregister_session, add_handoff_reftempfile + os.replace, con fsync prima del replaceupdate_session segnala l'assenza della sessione invece di crearla o tacereunregister_session rilascia i lock della sessione, saltando quelli di cui non è owner| e a capo in ogni cella, incluse quelle derivate da listetests/test_registry_protocol.py: presenza nel registry nuovo, sopravvivenza agli aggiornamenti, parse non alterato, ripristino dopo manomissionetemplates/registry-template.md al blocco canonico, con un test che impedisca la divergenza fra template e codicescripts/webapp/main.py funzioni ancora dopo il cambio di serializzazioneSKILL.md: path indipendenti dall'installazione, natura advisory dei lock, avvertenza su filesystem sincronizzati/di rete, rimozione del riferimento a references/registry-schema.yaml inesistentebash scripts/verify.sh: link [@test], ownership dei target e suite tutti verdifile:riga.claude
commands
.tessl-plugin
docker
openspec
changes
2026-07-22-dockerize-sandbox
agent-registry-sync-setup-wizard
archive
2026-07-16-fix-cross-process-coordination
schemas
spec-as-source
templates
scripts
templates
tests
docker
notifier