A amnésia do robô

Imagine que você contrata um programador brilhante. Resolve problemas complexos, escreve código limpo, entende sua arquitetura. Mas tem um pequeno defeito: a cada poucas horas apagam a memória dele. Volta a começar do zero. Não lembra o que estava fazendo, o que vocês decidiram juntos, nem por que o código está como está.

Pois é exatamente isso que acontece com Claude Code e outros agentes de IA.

Quando o contexto lota (e lota rápido se você está trabalhando em um projeto real), o sistema faz uma “compactação”. Dito em português claro: resume a conversa e joga fora todo o resto. O problema é que esse resumo perde nuances, decisões, e principalmente, o estado das tarefas em andamento.

A solução? Duas ferramentas que se complementam: Linear para você e Beads para sua IA.

Linear: Sua visão de produto

Linear é um gestor de issues moderno. Se você já usou Jira, imagine o oposto: rápido, limpo, e que não te faz querer arrancar os olhos.

Para que uso

  • Backlog de produto: Features, bugs, épicas. Tudo que tem que ser feito no nível de negócio
  • Roadmap: O que vai primeiro, o que depois
  • Comunicação: O resto da equipe (se houver) pode ver o status

Exemplo real

QIN-500: Adicionar dark mode ao aplicativo
QIN-501: Otimizar carregamento de imagens
QIN-502: Integrar gateway de pagamento

Essas são tarefas de produto. São o “o que tem que fazer”. Não dizem nada sobre como fazer. Esse é trabalho do desenvolvedor… ou do seu agente de IA.

Beads: A memória da sua IA

É aqui que entra Beads, criado por Steve Yegge (o mesmo dos famosos rants do Google e Amazon).

Beads é um issue tracker que vive dentro do seu repositório. Mas não é para você, é para seu agente de IA. É a memória persistente dele.

O problema que resolve

Quando trabalho com Claude Code numa tarefa complexa, acontecem coisas assim:

  1. Leio a issue QIN-500 do Linear
  2. Investigo a arquitetura atual
  3. Crio um plano mental de 5 passos
  4. Começo a implementar…
  5. 💥 COMPACTAÇÃO 💥
  6. “Olá, sou Claude. Como posso ajudar?”

Todo o contexto, o plano, o progresso… evaporou. É como o filme Memento, mas menos cinematográfico e mais frustrante.

A solução

Com Beads, antes de compactar, o estado persiste em .beads/ dentro do repo:

1
2
3
bd create --title "Investigar sistema de temas atual" --priority P2
bd create --title "Criar ThemeContext" --priority P2
bd create --title "Adicionar toggle nas Settings" --priority P2

Depois da compactação, a primeira coisa que faço é:

1
bd ready

E pronto: sei exatamente onde estava.

📋 Ready work (2 issues with no blockers):

1. [P2] qinqin-a3f2: Criar ThemeContext
2. [P2] qinqin-b4c5: Adicionar toggle nas Settings

Como funciona

Beads salva tudo no seu repo:

seu-projeto/
└── .beads/
    ├── beads.db       # Banco de dados SQLite
    ├── issues.jsonl   # Issues em formato versionável
    └── config.yaml    # Configuração

Como está no git, versiona com seu código. Você pode ver o histórico, fazer branch, merge… É código, não um serviço externo.

A convivência: Linear + Beads

Aqui está o truque: não competem, se complementam.

AspectoLinearBeads
UsuárioVocê (humano)Sua IA
NívelProdutoImplementação
GranularidadeFeatures, épicasPassos técnicos
Tempo de vidaSemanas/mesesHoras/dias
Exemplo“Adicionar dark mode”“Criar ThemeContext”

O fluxo na prática

VOCÊ (no Linear):
  QIN-500: Adicionar dark mode

CLAUDE (no Beads, durante a sessão):
  qinqin-a1b2: Investigar sistema de temas [DONE]
  qinqin-c3d4: Criar ThemeContext [IN PROGRESS]
  qinqin-e5f6: Adicionar toggle nas Settings [BLOCKED by c3d4]
  qinqin-g7h8: Testes para dark mode [BLOCKED by e5f6]

COMMIT (ao terminar):
  feat(web): add dark mode toggle (QIN-500)

Linear tem o o quê. Beads tem o como.

Instalação rápida

Beads

Importante: o CLI bd se instala uma vez no seu sistema. Mas .beads/ se inicializa por projeto. É como git: você instala git uma vez, mas faz git init em cada repo.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 1. Instalar CLI (uma só vez, global)
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash

# 2. Adicionar ao PATH (se não fez automaticamente)
# No fish:
fish_add_path ~/.local/bin
# No bash/zsh:
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc

# 3. Configurar integração com Claude Code (uma só vez)
bd setup claude

# 4. Inicializar em CADA projeto onde quiser usar
cd seu-projeto
bd init

Depois do bd init, você verá um diretório .beads/ no seu projeto. Decida: vai commitar ao repo (compartilhado com a equipe) ou adicionar ao .gitignore (memória privada da sua IA)?

Eu commito. Assim se alguém mais trabalhar com Claude no mesmo repo, tem o contexto.

Linear

Linear é um serviço web. Crie uma conta em linear.app e pronto. Se usar Claude Code, instale o MCP do Linear para que ele possa ler e criar issues diretamente.

Comandos essenciais do Beads

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Ver tarefas sem bloqueadores
bd ready

# Criar tarefa
bd create --title "Implementar feature X" --priority P2

# Ver detalhes
bd show qinqin-a1b2

# Fechar tarefa
bd close qinqin-a1b2 --reason "Committed in abc123"

# Listar todas
bd list --all

# Ver grafo de dependências
bd graph

Vale a pena?

Olha, se você usar Claude Code para tarefas pequenas e isoladas, provavelmente não precisa do Beads. Um TodoWrite efêmero resolve.

Mas se trabalha em projetos reais, com sessões longas que inevitavelmente compactam, com contexto que importa… então Beads é a diferença entre ter um assistente útil e um com Alzheimer.

E o melhor: como vive no repo, não depende de nenhum serviço externo. Se amanhã Beads sumir, você tem seus dados em JSON. Outra coisa boa é que há UIs comunitárias se não curte CLI: beads-ui te dá um kanban local.

Aviso

Beads é novo. Há relatos de que não funciona perfeitamente com Opus 4.5. Comigo funcionou, mas sua experiência pode variar.

Como diria um engenheiro sensato: teste num projeto secundário antes de se casar com ele.


TL;DR: Linear é para você (o que fazer). Beads é para sua IA (como está fazendo). Juntos, evitam que cada compactação seja um restart do zero.

Agora me dá licença, tenho que fechar uns beads.