Baton

Coordena agentes de codificação em um projeto local compartilhado, com propriedade de tarefas, reivindicação de arquivos, checkpoints Git, transferência de contexto, revisão independente e recuperação. Use quando o usuário solicitar colaboração entre agentes como Codex, Claude Code ou Antigravity.

O que é Baton?

Baton é uma skill projetada para coordenar múltiplos agentes de codificação (como Codex, Claude Code ou Antigravity) trabalhando em um mesmo projeto local. Ela funciona como um livro-razão de tarefas autoritativo, gerenciando a propriedade de tarefas, reivindicação e liberação de arquivos, checkpoints Git, transferência de contexto entre agentes e revisão independente de código. A skill não opera como um daemon em segundo plano nem detecta limites de uso do modelo; ela depende de comandos explícitos do usuário ou do agente, geralmente acionados via chat (ex.: `/baton handover TASK-01 to pc1-codex`). O suporte inclui ações como iniciar um projeto, adicionar tarefas com dependências, reivindicar tarefas com branches Git, criar checkpoints, transferir tarefas entre agentes com contexto completo, finalizar tarefas com verificações de projeto, submeter revisões, reverter ou recuperar trabalho, e mesclar ou liberar releases. A skill é útil para fluxos de trabalho colaborativos onde agentes precisam alternar tarefas sem conflitos, garantindo rastreabilidade e recuperação em caso de falhas. Ela requer Python 3.10+ e Git, e deve ser executada explicitamente pelo usuário ou agente hospedeiro.

Funciona com✓Claude Code✓Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/Harshit1garg1/Baton/tree/HEAD/skills/baton

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Baton faz?

Use o mecanismo Python integrado como livro-razão de tarefas local autoritativo. Execute comandos explicitamente; esta skill não inicia um daemon, detecta limites de uso do modelo ou contata outros agentes automaticamente.

Interpretar ações de chat

Normalmente, os usuários invocam esta skill no chat, como /baton handover TASK-01 to pc1-codex, $baton continue TASK-01 ou /baton:baton status, dependendo do host. Interprete as palavras restantes como uma solicitação de ação e execute o comando do mecanismo correspondente para o usuário. Estas são solicitações para esta skill, não comandos registrados separados ou comandos de terminal.

Ação solicitadaAção do mecanismo
initInicializar se necessário; inspecionar o projeto; InitFresh apenas para um novo quadro.
joinJoinExisting.
status, tasks, packet TASKStatus, Tasks, WebPacket.
add TASK "Título" with files ...AddTask, com dependências quando fornecidas.
start TASK, claim TASKSilentHandshake; use --git-branch para trabalho Git e uma árvore de trabalho isolada quando solicitado. Em seguida, implemente apenas se o usuário pediu implementação.
checkpoint TASK with message ...Checkpoint; adicione --push apenas dentro da autorização de upload do usuário.
progress TASK to 60 percentUpdateProgress, com um valor de progresso verdadeiro e notas.
handover TASK to AGENT, handoff TASK to AGENTAtomicHandoff; inclua o prompt atual, as alterações e o trabalho restante da conversa.
continue TASK, resume TASKCheckOrContinue; atue em sua decisão de propriedade antes de editar.
done TASKExecutar verificações relevantes do projeto, depois Done quando a implementação estiver pronta.
review TASKInspecionar as alterações fixadas e verificações relevantes como um agente diferente, depois SubmitReview.
reopen TASK, merge TASK, release TAG, revert TASK, recover TAGReopenTask, MergeTask, ReleaseTag, RevertTask, RecoverTag respectivamente.
release files ... from TASKReleaseFiles para as reivindicações especificadas.
resolve recoveryResolveRecovery; reter trabalho não resolvido e seu diário se recusado.
abandon recoveryResolveRecovery --abandon-recovery apenas quando o abandono for explicitamente solicitado. Relatar reparos restantes.
selftestSelfTest.
reset workspaceResetWorkspace --confirm-reset apenas para uma reinicialização explícita autorizada pelo líder.

Resolva IDs e caminhos de tarefas a partir da solicitação e do quadro atual. Pergunte por informações genuinamente faltantes, como a chave de um novo projeto ou uma identidade de colaborador ambígua. Sempre passe explicitamente o ID do colaborador desta conversa para ações do mecanismo que exigem identidade; outro agente pode ter alterado o ID salvo da sessão local compartilhada. Respeite autorizações anteriores na conversa. MergeTask e ReleaseTag tentam upload remoto, portanto não os use contra um remoto configurado quando a solicitação do usuário proíbe upload.

Configurar um projeto

Requisitos: Python 3.10+ e Git. Selecione um interpretador Python 3 disponível (python3, python ou py -3 no Windows); não assuma que o alias python3 do Windows funciona.

Antes do primeiro comando do mecanismo em um projeto, localize o scripts/bootstrap.py desta skill e execute-o com o interpretador escolhido e --project <caminho-absoluto-do-projeto>. Ele copia o mecanismo integrado para .collab/collab_engine.py e adiciona /.collab/ ao .gitignore do projeto. Ele não inicializa o livro-razão nem substitui um mecanismo existente diferente. Resolva uma atualização separadamente se ele recusar.

Os comandos abaixo são executados a partir da raiz do projeto. Substitua python3 pelo interpretador selecionado quando necessário. Para tarefas com suporte Git, primeiro verifique se o projeto é um repositório Git com um commit base e uma identidade Git configurada. Use seu branch base real com --base-branch <branch> quando não for main.

Estabelecer propriedade antes de editar

  1. Execute Status. Junte-se ao espaço de trabalho inicializado com um ID de colaborador distinto; obtenha a chave do projeto através do contexto local autorizado do usuário. Para um novo espaço de trabalho, use InitFresh com o líder escolhido e uma chave de projeto. Mantenha a chave e a sessão local fora do Git.
  2. Adicione uma tarefa com seus caminhos de arquivo pretendidos e dependências, se ela não existir.
  3. Execute SilentHandshake antes de editar. Um BUSY_REDIRECT é uma recusa em reivindicar essa tarefa; escolha uma alternativa elegível. Use --use-worktree para tarefas simultâneas com suporte de branch que compartilham o mesmo projeto.
  4. Faça checkpoint do progresso significativo. Ao transferir propriedade, use AtomicHandoff; o agente receptor executa CheckOrContinue. Um agente que fez handoff deve respeitar SKIP_ALREADY_HANDED_OFF.
  5. Execute Done quando a implementação estiver pronta, então peça a um agente diferente para revisar o commit fixado. Uma revisão genuína significa inspecionar as alterações e verificações relevantes antes de submeter o veredito.

Respeite o escopo do usuário e a autorização existente para commits, uploads, merges e releases. A aprovação de um par não autoriza por si só a publicação externa. Não envie mensagens para outros agentes ou pessoas sem autorização; registros de handoff podem ser consumidos pelo próximo agente quando ele executar.

Comandos do mecanismo

Prefixe cada linha com python3 .collab/collab_engine.py --local-path .. Forneça um --collaborator-id <agente> estável quando aplicável.

AçãoArgumentos e comportamento
InitFresh--project-key <chave> --collaborator-id <líder>; recusa um livro-razão existente.
JoinExisting--project-key <chave> --collaborator-id <agente> --device-cluster-id <cluster> --same-device true para colaboração no mesmo PC.
Status / TasksInspecionar propriedade, progresso e entrega. Status aceita --render-format CLI ou Markdown.
AddTask--task-id T1 --task-title "Implementar funcionalidade" --files src/feature.py; opcional --depends-on T0.
SilentHandshake--task-id T1 --collaborator-id <proprietário> --git-branch; opcional --use-worktree.
Checkpoint--task-id T1 --collaborator-id <proprietário> --commit-message "checkpoint: progresso significativo"; opcional --push. Comita arquivos atualmente pertencentes.
ReleaseFiles--task-id T1 --collaborator-id <proprietário> --files <caminhos> para liberação intencional de reivindicação.
AtomicHandoff--task-id T1 --collaborator-id <proprietário> --target-agent-id <receptor> --reason "Continuar implementação"; adicione contexto com --last-prompt, --changes-summary, --remaining-todo; opcional --push.
CheckOrContinue--task-id T1 --collaborator-id <agente>; carregar o handoff ou respeitar a proteção de pular-retomada.
Done--task-id T1 --collaborator-id <proprietário>; fixa o trabalho limpo para revisão; opcional --push.
SubmitReview--task-id T1 --collaborator-id <revisor> --review-verdict APPROVED|CHANGES_REQUESTED --review-notes "Conclusões"; auto-revisão é bloqueada.
ReopenTask--task-id T1 --collaborator-id <proprietário-ou-líder> para revisar trabalho pendente ou revertido.
MergeTask--task-id T1 --collaborator-id <agente> --squash; tenta um push. Use --use-worktree para preservar o checkout compartilhado de outra tarefa; --reapply reaplica explicitamente o trabalho revertido.
ReleaseTag--tag v1.0.0 --tag-message "Marco aceito" --collaborator-id <agente>; marca o branch base verificado e tenta upload.
RevertTask--task-id T1 --collaborator-id <agente>; cria um commit de desfazer; opcional --push e --use-worktree.
RecoverTag--tag v1.0.0 --recovery-branch recover/v1.0.0 para criar um branch a partir de um marco.
ResolveRecoveryResolver somente após o checkout afetado ser reparado. --abandon-recovery arquiva explicitamente o diário e lista reparos manuais; não realiza esses reparos.
SelfTestExecutar a suíte de 42 estágios do mecanismo em fixtures descartáveis.

Para uma tarefa com suporte de branch usando uma árvore de trabalho, edite e execute verificações do projeto dentro do worktreePath registrado da tarefa.

Limites e recuperação

  • Reivindicações são verificações cooperativas no nível do mecanismo; editores e comandos Git arbitrários podem contorná-las. IDs de colaborador são rótulos, não identidades autenticadas.
  • O quadro de um PC é a autoridade local. PCs separados usam branches e sincronização Git; réplicas de quadro sincronizadas não fornecem um bloqueio distribuído. Não trate uma pasta de drive como um livro-razão transacional compartilhado.
  • --backup-path <pasta-local-sincronizada> escreve um snapshot unidirecional do quadro. O cliente de sincronização lida com upload para a nuvem; o mecanismo não tem adaptador nativo de API para Drive, OneDrive ou TeraBox.
  • A aprovação de revisão marca a tarefa como concluída e libera suas reivindicações; merge/entrega verificado é uma operação separada. Relate DELIVERY: COMPLETE apenas quando o mecanismo verificar o push remoto; mantenha LOCAL_ONLY ou INCOMPLETE quando retornado.
  • Se a recuperação relatar UNRESOLVED, preserve o diário e os arquivos locais. Inspecione o checkout nomeado, salve edições relevantes e tente novamente após a limpeza. Não use o abandono como substituto para preservar arquivos.
  • ResetWorkspace arquiva o quadro e requer identidade de líder mais --confirm-reset; use-o apenas quando a reinicialização do espaço de trabalho estiver dentro da solicitação do usuário.

A skill requer um agente de codificação com acesso ao sistema de arquivos e shell. Use a invocação real da skill do host; /baton não é um comando de terminal ou API de chatbot universalmente registrado.

Habilidades Relacionadas