O problema da memória

Claude Code tem um problema: esquece tudo. Você fecha a sessão, abre outra, e é como falar com alguém que não te conhece. Você pode carregar contexto com CLAUDE.md, sim, mas e as tarefas pela metade? Os bugs que você encontrou mas não corrigiu? O plano que tinha para amanhã?

Existem três soluções que se complementam: Linear (ou sua ferramenta de produto), Beads (plugin git-backed) e Tasks (integradas no Claude Code). Cada uma para um horizonte temporal diferente.

Tasks: A memória de trabalho

Tasks é o sistema interno do Claude Code para acompanhar o que está fazendo neste momento. Quando você pede algo complexo, Claude cria uma lista de tarefas automaticamente.

Pressione Ctrl+T para vê-las:

┌─────────────────────────────────────────────────┐
│ Tasks                                           │
├─────────────────────────────────────────────────┤
│ ✓ Ler estrutura do projeto                      │
│ ● Implementar endpoint de autenticação          │
│ ○ Escrever testes                               │
│ ○ Atualizar documentação                        │
└─────────────────────────────────────────────────┘

Características

  • Automáticas: Claude as cria quando o trabalho tem várias etapas
  • Persistentes após compaction: Sobrevivem quando o contexto é compactado
  • Visíveis com Ctrl+T: Toggle rápido da visualização
  • Limitadas a 10: Mostra apenas as 10 primeiras (peça “show me all tasks” para ver mais)

Compartilhar entre sessões

Por padrão, as Tasks morrem com a sessão. Mas você pode torná-las persistentes:

1
CLAUDE_CODE_TASK_LIST_ID=qualitra claude

Isso salva as tarefas em ~/.claude/tasks/qualitra/. Na próxima vez que iniciar com o mesmo ID, recupera a lista.

Quando usar Tasks

SituaçãoTasks
Implementar uma feature em uma sessão
Seguir um plano de trabalho definido
Debug passo a passo
Refactoring com etapas claras

Tasks é para execução. Você sabe o que precisa fazer, só precisa de acompanhamento.

Beads: A memória do projeto

Beads é um plugin que adiciona um issue tracker completo, armazenado no git. Pense nele como “Linear mas local e gratuito”.

1
bd list --status open
ID          TYPE    PRI  STATUS       TITLE
qua-1       epic    P2   open         Scoring Raven
qua-2       task    P1   in_progress  Implementar módulo de scoring
qua-3       bug     P0   blocked      Stack overflow em acquireStartLock

Características

  • Git-backed: Os issues vivem em .beads/ e são commitados com seu código
  • Dependências: Um issue pode bloquear outro
  • Prioridades e tipos: Epics, tasks, bugs, features, chores
  • Multi-sessão: O contexto persiste entre sessões (e pessoas)
  • Hooks: Sincroniza automaticamente com bd sync

O fluxo de trabalho

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Encontrar trabalho disponível
bd ready

# Ver detalhes
bd show qua-2

# Começar a trabalhar
bd update qua-2 --status in_progress

# Criar sub-tarefas
bd create --title="Escrever testes PBT" --type=task
bd dep add qua-5 qua-2  # qua-5 depende de qua-2

# Finalizar
bd close qua-2

# Sincronizar
bd sync

Quando usar Beads

SituaçãoBeads
Trabalho que abrange várias sessões
Bugs descobertos durante desenvolvimento
Features com dependências
Projetos com múltiplos agentes/pessoas
Tracking de dívida técnica
Issues que você quer no histórico do git

Beads é para planejamento. Você não sabe exatamente o que fará, mas sabe que problemas precisam ser resolvidos.

A diferença chave

Tasks: “Estou fazendo X, que tem etapas A, B, C”

Beads: “Precisa resolver X, Y, Z. Agora trabalho em X.”

Tasks é a lista de compras enquanto você cozinha. Beads é o cardápio da semana.

Usando juntos

O fluxo ideal combina ambos:

  1. Beads para capturar trabalho (issues, bugs, ideias)
  2. Tasks para executar esse trabalho passo a passo
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 1. Início da sessão: o que está pendente?
bd ready

# 2. Escolho um issue
bd show qua-42
bd update qua-42 --status in_progress

# 3. Claude cria Tasks para as etapas
# (automático quando peço para implementar qua-42)

# 4. Durante a sessão, encontro um bug
bd create --title="Race condition no cache" --type=bug --priority=1

# 5. Termino o trabalho original
bd close qua-42

# 6. O bug fica para outra sessão
bd sync
git push

Migração mental

Se você vem de outros sistemas:

Vem de…Tasks equivale a…Beads equivale a…
JiraSubtasks de um ticketTickets do backlog
Linear-Linear completo
GitHub Issues-Issues
NotionChecklistDatabase de tarefas
PapelLista de hojeCaderno de projeto

Setup rápido

Tasks

Já vêm incluídas. Apenas lembre-se:

  • Ctrl+T para toggle da visualização
  • CLAUDE_CODE_TASK_LIST_ID=nome para persistência
  • “clear all tasks” para limpar

Beads

1
2
3
4
5
6
7
8
# Instalar plugin
claude mcp add beads-marketplace -- npx -y @anthropics/beads-mcp

# No seu projeto
bd init

# Ver comandos
bd help

Comandos úteis

Tasks

ComandoO que faz
Ctrl+TToggle visualização de tarefas
/todosListar tarefas atuais
“show me all tasks”Ver todas (não apenas 10)
“clear all tasks”Apagar lista

Beads

ComandoO que faz
bd readyIssues sem bloqueios
bd list -s openTodos os abertos
bd show <id>Detalhe do issue
bd createNovo issue
bd update <id>Modificar issue
bd close <id>Fechar issue
bd syncSincronizar com git
bd blockedVer o que está bloqueado

O erro comum

Não use Beads como Tasks. Já vi isso:

1
2
3
4
# ERRADO: Beads para micro-tarefas de sessão
bd create --title="Ler arquivo X"
bd create --title="Modificar função Y"
bd create --title="Executar testes"

Isso é trabalho de Tasks, não de Beads. Beads é para coisas que importam amanhã:

1
2
3
4
# CERTO: Beads para trabalho significativo
bd create --title="Implementar autenticação OAuth" --type=feature
bd create --title="Memory leak no worker" --type=bug
bd create --title="Migrar DB para PostgreSQL" --type=epic

O sistema de três camadas

Se você trabalha com Claude Code em projetos sérios, provavelmente já usa algo como Linear, Jira ou GitHub Projects para a visão de produto. Onde isso se encaixa?

A resposta é um sistema de três camadas por horizonte temporal e audiência:

CamadaHorizonteAudiênciaFerramenta
EstratégicaSemanas/mesesHumanoLinear, Jira, etc.
TáticaDias/sessõesLLMBeads
ExecuçãoMinutos/horasLLMTasks

Por que funciona

Linear (ou sua ferramenta de produto) tem o que Beads não pode oferecer:

  • Roadmaps visuais
  • Cycles e sprints
  • Integrações (Slack, GitHub, etc.)
  • UI para pensar grande
  • Colaboração com stakeholders

Beads tem o que Linear não pode oferecer:

  • Vive no repo (o LLM vê sem configuração)
  • Latência zero (local)
  • Dependências que o LLM entende nativamente
  • Histórico git das decisões
  • Funciona offline

Tasks tem o que nenhum dos outros oferece:

  • Criação automática
  • Visualização em tempo real
  • Atrito zero

O fluxo natural

Linear (roadmap)
    ↓ você decompõe manualmente
Beads (sprint/semana)
    ↓ Claude decompõe automaticamente
Tasks (sessão)

Evitar duplicação

Não copie issues do Linear para Beads literalmente. Beads deveria ter o trabalho concreto, não a descrição de produto.

# Linear (o que você quer)
"Implementar autenticação OAuth com Google e GitHub"

# Beads (o que precisa ser feito)
qua-12: Configurar OAuth provider no Supabase
qua-13: Endpoint /auth/callback
qua-14: Refresh token rotation
qua-15: Testes e2e do fluxo de login

# Tasks (o que estou fazendo agora)
✓ Ler documentação do Supabase Auth
● Criar migração para tabela oauth_tokens
○ Implementar callback handler

Linear diz o que você quer. Beads diz o que precisa ser feito. Tasks diz o que estou fazendo.

Resumo

AspectoTasksBeadsLinear
HorizonteHorasDiasSemanas/meses
AudiênciaLLMLLMHumano
AlcanceSessãoProjetoProduto
PersistênciaOpcionalGitCloud
DependênciasNãoSimSim
CriaçãoAutomáticaManualManual
ColaboraçãoNãoSim (git)Sim (equipe)
PropósitoExecuçãoTáticaEstratégia

TL;DR: Três camadas de memória para trabalhar com IA: Linear para visão de produto (semanas), Beads para trabalho tático (dias), Tasks para execução (horas). Linear diz o que você quer, Beads diz o que precisa ser feito, Tasks diz o que estou fazendo. Não duplique entre camadas.

Mais informações: