Tarefas no Claude Code
Usa TaskCreate, TaskUpdate, addBlockedBy e listas de tarefas partilhadas para executar trabalho dependente em sessões paralelas do Claude Code sem os truques do Ralph Wiggum.
Pare de configurar. Comece a construir.
Templates SaaS com orquestração de IA.
Problema: Os loops autónomos do Claude Code costumavam precisar dos truques do Ralph Wiggum. Ficheiros de plano externos, stop hooks e promessas de conclusão mantinham as execuções longas vivas. Funcionava. Mas precisava de muito fita-cola para manter o contexto entre sessões.
Ganho Rápido: Anthropic lançou a gestão de tarefas como uma funcionalidade de primeira classe. Cria tarefas persistentes com dependências:
claude "add user authentication - break into tasks with dependencies"
Pressiona Ctrl+T para ver a lista de tarefas no terminal. As tarefas ficam vivas entre sessões. Nunca tens de explicar de novo o que estavas a fazer.
Tarefas: Todos, Evoluídos
Anthropic lançou o novo sistema de tarefas a 23 de janeiro de 2025. O que antes eram listas planas é agora um gestor de projeto com dependências, bloqueadores e sincronização em tempo real entre sessões.
A ferramenta TodoWrite anterior guardava uma lista simples em memória. O sistema de hoje divide o trabalho por quatro ferramentas dedicadas:
| Ferramenta | Propósito |
|---|---|
| TaskCreate | Cria tarefas com assunto, descrição e estado |
| TaskGet | Obtém detalhes completos da tarefa incluindo dependências |
| TaskUpdate | Atualiza estado, adiciona bloqueadores, modifica detalhes |
| TaskList | Lista todas as tarefas com o estado atual |
O Que Muda
Comportamento anterior: os todos viviam na memória do Claude e morriam ao reiniciar o contexto. Comportamento novo: as tarefas são guardadas em ~/.claude/tasks/ dentro do teu diretório home (não dentro do repositório) e as atualizações chegam a todas as sessões abertas.
As lições antigas dos todos ainda se aplicam. As tarefas são tão boas quanto as tuas instruções, e qualquer desfasamento aponta diretamente para uma falha no briefing. A parte nova é tudo por baixo: persistência e dependências integradas na ferramenta.
Tarefas vs Ralph Wiggum: O Que Muda
O Ralph Wiggum chegou primeiro. Mantinha o Claude Code a trabalhar de noite com stop hooks, ficheiros de plano em disco e um prompt que prometia conclusão. A receita funcionava. Mas dependia muito de workarounds.
Esses workarounds têm agora substitutos nativos:
| Workaround Ralph | Solução Nativa com Tarefas |
|---|---|
| Ficheiros plan.md externos para tracking | Armazenamento integrado em ~/.claude/tasks/ (diretório home) |
| Stop hooks para verificar conclusão | Ciclo de vida de estado: pending → in_progress → completed |
| Sessões novas para combater a degradação de contexto | Tarefas persistem em compactações de contexto |
| Promessas de conclusão ("complete") | TaskUpdate explícito com estado |
| Coordenação manual de ficheiros de progresso | CLAUDE_CODE_TASK_LIST_ID para sincronização multi-sessão |
A mesma lição central mantém-se: a verificação é o que sustenta tudo. O Ralph mostrou-nos que Claude precisa de uma regra rígida para o que "feito" significa. As tarefas nativas mantêm essa ideia e movem a implementação para dentro da ferramenta.
Ainda a correr loops Ralph? Não tens de os arrancar. As tarefas simplesmente oferecem-te os primitivos que a comunidade estava a juntar artesanalmente. Anthropic viu o que os programadores estavam a fazer e tornou-o nativo.
Dependências e Bloqueadores de Tarefas
As dependências são onde as tarefas ficam interessantes. Uma tarefa pode bloquear outra:
Tarefa 1: Design database schema
Tarefa 2: Create API endpoints (blocked by Task 1)
Tarefa 3: Build frontend components (blocked by Task 2)Claude trata da contabilidade. Termina a Tarefa 1 e a Tarefa 2 desbloqueia automaticamente. O trabalho paralelo para de se atrapalhar.
Criar Tarefas Dependentes
Quando Claude divide um trabalho grande em partes, cria a cadeia de dependências à medida que avança:
TaskCreate(subject="Design auth schema", description="...")
TaskCreate(subject="Implement auth API", description="...")
TaskUpdate(taskId="2", addBlockedBy=["1"])O encadeamento acontece através do parâmetro addBlockedBy. O oposto, addBlocks, deixa-te dizer o que uma tarefa está a bloquear.
Colaboração Multi-Sessão
Aqui a ferramenta ganha o seu valor. Uma variável de ambiente permite que mais do que uma sessão partilhe a mesma lista de tarefas:
CLAUDE_CODE_TASK_LIST_ID=my-project claude
Agora todas as sessões Claude apontadas para esse ID trabalham a partir da mesma lista. Termina uma tarefa na Sessão A e a Sessão B vê a atualização imediatamente. Tens:
- Workstreams paralelos: sessões de frontend e backend a partilhar bloqueadores
- Retomar em qualquer lugar: fecha o portátil, abre-o amanhã, as tarefas estão exatamente onde as deixaste
- Coordenação de equipa: vários programadores a partilhar o estado das tarefas
Fluxo de Trabalho Multi-Sessão na Prática
- Abre a tua sessão principal e dá um nome à lista de tarefas:
CLAUDE_CODE_TASK_LIST_ID=feature-auth claude
2. Divide o trabalho em tarefas e define dependências
- Abre uma segunda sessão com o mesmo ID para trabalho paralelo:
CLAUDE_CODE_TASK_LIST_ID=feature-auth claude # Same ID
4. Ambas as sessões veem e atualizam a lista de tarefas partilhada
O Agent SDK respeita a mesma lista, por isso os subagentes podem pegar e terminar tarefas ao teu lado.
Ciclo de Vida do Estado da Tarefa
pending → in_progress → completed
Muda uma tarefa para in_progress no momento em que começas a trabalhar nela. Um spinner aparece na lista de tarefas, e qualquer outra sessão sabe que esse trabalho está em curso. Só move para completed quando o trabalho estiver realmente feito.
As tarefas sobrevivem a compactações de contexto. Mesmo em sessões de longa duração onde a memória do Claude fica comprimida, o estado da tarefa ainda está lá.
Atalhos de Teclado
Ctrl+T abre e fecha a lista de tarefas dentro do terminal. O que vês:
- Tarefas pendentes (até 10 de cada vez)
- Tarefas em progresso com spinner
- Tarefas concluídas com marca de verificação
Também podes dizer ao Claude "mostra-me todas as tarefas" ou "limpa todas as tarefas" se preferires usar linguagem natural.
Quando Usar Tarefas
Usa tarefas nos trabalhos difíceis. Um pedido simples não precisa de nada disto.
Usa Tarefas quando:
- Implementação em múltiplos passos com dependências
- Trabalho que abrange múltiplas sessões
- Coordenação paralela de subagentes
- Projetos onde vais pausar e retomar
Salta as Tarefas quando:
- Mudanças num único ficheiro
- Perguntas rápidas
- Comandos únicos
Configurar o Comportamento das Tarefas
Adiciona regras de tarefas ao teu ficheiro CLAUDE.md:
## Task Management
- Use TaskCreate for multi-step work
- Set dependencies with addBlockedBy for sequential phases
- Update status to in_progress before starting each task
- Mark completed only after verificationPara projetos que abrangem sessões, podes também colocar a variável de ambiente no teu perfil de shell:
# In .bashrc or .zshrc
export CLAUDE_CODE_TASK_LIST_ID=my-projectMigração dos Todos
Ainda tens regras TodoWrite na tua configuração? Reescreve-as:
Abordagem antiga:
Keep session checklists in TodoWrite
Nova abordagem:
Use TaskCreate for each checklist item
Update status via TaskUpdate (pending → in_progress → completed)
Set dependencies with addBlockedBy parameterO comando /todos ainda existe como alias. Por baixo, o motor é agora Tasks.
Lembra-te: Ralph ensinou-nos a ideia. Tasks tornam-na nativa. Mantém a disciplina de verificação, deixa a ferramenta tratar do encanamento, e aposenta os ficheiros de estado feitos à mão.
Pare de configurar. Comece a construir.
Templates SaaS com orquestração de IA.
Fluxos de Trabalho com Todos
Pede a Claude Code a lista de todos primeiro, depois apanha ordem errada, passos em falta ou intenção mal interpretada antes de qualquer ficheiro ser tocado. Funciona em qualquer tarefa complexa.
Templates de Projeto
Execute /init em qualquer repositório. O Claude Code analisa o código, escreve um CLAUDE.md que captura a estrutura de ficheiros, frameworks e comandos para todas as sessões futuras.