Voce acabou de subir um segundo agente Claude Code. Agora tem um problema.
O primeiro agente esta no meio de um refactoring. O segundo precisa construir uma feature que toca alguns dos mesmos arquivos. Nenhum sabe que o outro existe. Voce e o roteador, o state store e o resolvedor de conflitos, tudo ao mesmo tempo, e sua unica ferramenta e copiar e colar contexto entre janelas de terminal.
E aqui que a maioria dos desenvolvedores bate na parede com o Claude Code. Nao porque o agente programa mal. Porque nao existe um sistema dizendo a ele no que trabalhar.
O problema do copiar e colar
A maioria dos workflows com Claude Code comeca do mesmo jeito. Voce tem uma tarefa na cabeca (ou no Jira, ou numa issue do GitHub), e cola a descricao no prompt do agente. "Construa um fluxo de autenticacao." "Corrija o bug de paginacao." "Adicione suporte a modo escuro."
Para um unico agente, funciona bem. O agente tem o contexto completo, voce pode observar a saida, e sabe quando terminou porque esta olhando.
Adicione um segundo agente e as rachaduras aparecem imediatamente.
O Agente A esta refatorando a camada de API. O Agente B esta construindo um novo endpoint. Ambos estao tocando server/routes.ts. Nenhum sabe das mudancas do outro. Voce descobre o conflito quando um faz push e o trabalho do outro quebra. Ou pior: ambos tem sucesso localmente, mas o resultado do merge esta quebrado de formas que nenhum diff revela.
A causa raiz nao e os agentes serem desleixados. E a ausencia de estado compartilhado. Nao existe um lugar onde "Agente A e dono do refactoring de API" esteja registrado. Nao existe um status que diga "o arquivo de rotas esta sendo modificado, espere sua vez." Os agentes estao operando com prompts individuais sem nenhuma consciencia do quadro geral.
Adicione um terceiro agente e voce gasta mais tempo coordenando do que programando.
O que agentes realmente precisam de um sistema de tarefas
Antes de buscar uma ferramenta, vale perguntar: o que um agente Claude Code realmente precisa para fazer um bom trabalho?
Surpreendentemente pouco.
Um identificador unico. Algo que ele possa referenciar em commits e comentarios. "Corrigi o bug" e inutil num log multi-agente. "Concluido PROJ-47: paginacao retorna contagem errada em visualizacoes filtradas" e rastreavel.
Um escopo claro. Titulo, descricao e criterios de aceite. Nao um romance. Nao uma user story com personas. Uma declaracao concreta de como "pronto" se parece. "O endpoint /users retorna resultados paginados. Tamanho de pagina padrao e 25. O campo next_cursor e null na ultima pagina."
Um status que ele possa atualizar. O agente precisa sinalizar onde esta: reivindicado, em progresso, concluido. Sem isso, voce volta a espiar janelas de terminal e adivinhar.
Consciencia de dependencias. "Nao comece isso ate que PROJ-46 esteja mergeado" previne a falha multi-agente mais comum: construir sobre codigo que ainda nao existe.
Repare no que falta nesta lista. Planejamento de sprints. Rastreamento de velocidade. Quadros Kanban. Story points. Epics com labels coloridos. Agentes nao precisam de teatro de gerenciamento de projetos. Precisam de uma tarefa, um status e uma forma de dizer "terminei."
O contrato CLAUDE.md
O sistema de tarefas diz aos agentes no que trabalhar. O arquivo CLAUDE.md diz como trabalhar.
Se voce esta rodando multiplos agentes Claude Code, cada um deveria ter um CLAUDE.md que define sua identidade e limites. Isso nao e configuracao opcional. E a diferenca entre agentes que se coordenam e agentes que se atrapalham.
Aqui um exemplo simplificado para um agente de engenharia:
## Identity
Engineer for the project. You implement features, fix bugs,
and write tests. You own implementation quality.
## What You Own
- All files under `components/` and `lib/`
- Unit tests in `__tests__/`
- You may read but not modify files under `server/`
## What You Don't Own
- Deployment configuration (that's ops)
- Issue triage and prioritization (that's the coordinator)
- QA validation (QA tests your work independently)
## Completion Protocol
Before marking any task done:
1. Run the full test suite: `pnpm test`
2. Verify your change works manually
3. Comment what you did with the commit hash
4. Push before reporting completion
A secao de limites e a parte estrutural. Sem ownership explicita de arquivos, agentes divagam. Um agente de engenharia refatora "prestativamente" a configuracao de deploy. Um agente de QA "corrige" um teste alterando o codigo sob teste em vez do teste. Limites explicitos previnem esses modos de falha.
O protocolo de conclusao importa igualmente. Previne a falha de agente mais comum: declarar algo como pronto quando apenas compila. "Execute a suite completa de testes" e "verifique manualmente" sao gates concretos. Um agente que segue esse protocolo produz trabalho em que um humano pode confiar. Um agente sem ele produz trabalho que voce precisa checar linha por linha.
Escale isso para multiplos agentes e voce tem uma frota onde cada membro conhece sua faixa, seu protocolo de passagem e o que "pronto" significa.
Gerenciamento de tarefas CLI-first
Uma observacao sobre workflow que levei mais tempo do que deveria para internalizar: agentes Claude Code trabalham dramaticamente melhor com ferramentas CLI do que com interfaces GUI.
Faz sentido quando voce pensa. Um agente Claude Code vive no terminal. Pode executar comandos, ler saidas e tomar acoes baseadas em resultados. Pedir para navegar uma UI web, clicar botoes e interpretar paginas renderizadas e lutar contra a interface natural do agente.
Um sistema de tarefas baseado em CLI significa que o agente pode fazer tudo isso num unico fluxo:
# Read the task
task show PROJ-47
# Claim it
task update PROJ-47 --status in_progress --assignee agent-1
# Do the work...
# Report completion
task comment PROJ-47 "DONE: Fixed pagination. Commit: abc1234"
task update PROJ-47 --status done
Sem troca de contexto. Sem janelas de navegador. Sem screenshots de um quadro Kanban. O agente le uma tarefa, faz o trabalho e atualiza o status, tudo sem sair do ambiente onde opera.
A saida tambem e legivel por maquinas. Quando voce precisa verificar o que esta acontecendo entre os agentes, pode consultar:
task list --status in_progress # What's being worked on?
task list --assignee agent-2 # What is agent-2 doing?
task list --blocked # What's stuck?
Essa e a forma do ferramental que funciona. Um CLI que fala a lingua do agente.
