La amnesia del robot
Imagina que contratas a un programador brillante. Resuelve problemas complejos, escribe código limpio, entiende tu arquitectura. Pero tiene un pequeño defecto: cada pocas horas le borran la memoria. Vuelve a empezar de cero. No recuerda qué estaba haciendo, qué decidisteis juntos, ni por qué el código está como está.
Pues eso es exactamente lo que pasa con Claude Code y otros agentes de IA.
Cuando el contexto se llena (y se llena rápido si estás trabajando en un proyecto real), el sistema hace una «compactación». Dicho en cristiano: resume la conversación y tira todo lo demás. El problema es que ese resumen pierde matices, decisiones, y sobre todo, el estado de las tareas en curso.
¿La solución? Dos herramientas que se complementan: Linear para ti y Beads para tu IA.
Linear: Tu vista de producto
Linear es un gestor de issues moderno. Si has usado Jira, imagina lo contrario: rápido, limpio, y que no te hace querer arrancarte los ojos.
Para qué lo uso
- Backlog de producto: Features, bugs, épicas. Todo lo que hay que hacer a nivel de negocio
- Roadmap: Qué va primero, qué después
- Comunicación: El resto del equipo (si lo hay) puede ver el estado
Ejemplo real
QIN-500: Añadir dark mode a la aplicación
QIN-501: Optimizar carga de imágenes
QIN-502: Integrar pasarela de pago
Estas son tareas de producto. Son el «qué hay que hacer». No dicen nada de cómo hacerlo. Ese es trabajo del desarrollador… o de tu agente de IA.
Beads: La memoria de tu IA
Aquí es donde entra Beads, creado por Steve Yegge (el mismo de las famosas rants de Google y Amazon).
Beads es un issue tracker que vive dentro de tu repositorio. Pero no es para ti, es para tu agente de IA. Es su memoria persistente.
El problema que resuelve
Cuando trabajo con Claude Code en una tarea compleja, pasan cosas como esta:
- Leo el issue QIN-500 de Linear
- Investigo la arquitectura actual
- Creo un plan mental de 5 pasos
- Empiezo a implementar…
- 💥 COMPACTACIÓN 💥
- «Hola, soy Claude. ¿En qué puedo ayudarte?»
Todo el contexto, el plan, el progreso… evaporado. Es como la película Memento, pero menos cinematográfico y más frustrante.
La solución
Con Beads, antes de compactar, el estado se persiste en .beads/ dentro del repo:
bd create --title "Investigar sistema de temas actual" --priority P2
bd create --title "Crear ThemeContext" --priority P2
bd create --title "Añadir toggle en Settings" --priority P2
Después de la compactación, lo primero que hago es:
bd ready
Y boom: sé exactamente dónde estaba.
📋 Ready work (2 issues with no blockers):
1. [P2] acme-a3f2: Crear ThemeContext
2. [P2] acme-b4c5: Añadir toggle en Settings
Cómo funciona
Beads guarda todo en tu repo:
tu-proyecto/
└── .beads/
├── beads.db # Base de datos SQLite
├── issues.jsonl # Issues en formato versionable
└── config.yaml # Configuración
Como está en git, se versiona con tu código. Puedes ver el historial, hacer branch, merge… Es código, no un servicio externo.
La convivencia: Linear + Beads
Aquí está el truco: no compiten, se complementan.
| Aspecto | Linear | Beads |
|---|---|---|
| Usuario | Tú (humano) | Tu IA |
| Nivel | Producto | Implementación |
| Granularidad | Features, épicas | Pasos técnicos |
| Vida útil | Semanas/meses | Horas/días |
| Ejemplo | «Añadir dark mode» | «Crear ThemeContext» |
El flujo en la práctica
TÚ (en Linear):
QIN-500: Añadir dark mode
CLAUDE (en Beads, durante la sesión):
acme-a1b2: Investigar sistema de temas [DONE]
acme-c3d4: Crear ThemeContext [IN PROGRESS]
acme-e5f6: Añadir toggle en Settings [BLOCKED by c3d4]
acme-g7h8: Tests para dark mode [BLOCKED by e5f6]
COMMIT (al terminar):
feat(web): add dark mode toggle (QIN-500)
Linear tiene el qué. Beads tiene el cómo.
Instalación rápida
Beads
Importante: el CLI bd se instala una vez en tu sistema. Pero .beads/ se inicializa por proyecto. Es como git: instalas git una vez, pero haces git init en cada repo.
# 1. Instalar CLI (una sola vez, global)
curl -fsSL https://raw.githubusercontent.com/gastownhall/beads/main/scripts/install.sh | bash
# 2. Añadir al PATH (si no lo hizo automáticamente)
# En fish:
fish_add_path ~/.local/bin
# En bash/zsh:
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
# 3. Configurar integración con Claude Code (una sola vez)
bd setup claude
# 4. Inicializar en CADA proyecto donde quieras usarlo
cd tu-proyecto
bd init
Después del bd init, verás un directorio .beads/ en tu proyecto. Decídelo: ¿lo commiteas al repo (compartido con el equipo) o lo añades a .gitignore (memoria privada de tu IA)?
Yo lo commiteo. Así si alguien más trabaja con Claude en el mismo repo, tiene el contexto.
Linear
Linear es un servicio web. Créate una cuenta en linear.app y ya. Si usas Claude Code, instala el MCP de Linear para que pueda leer y crear issues directamente.
Comandos esenciales de Beads
# Ver tareas sin bloqueadores
bd ready
# Crear tarea
bd create --title "Implementar feature X" --priority P2
# Ver detalles
bd show acme-a1b2
# Cerrar tarea
bd close acme-a1b2 --reason "Committed in abc123"
# Listar todas
bd list --all
# Ver grafo de dependencias
bd graph
¿Vale la pena?
Mira, si usas Claude Code para tareas pequeñas y aisladas, probablemente no necesitas Beads. Un TodoWrite efímero te sobra.
Pero si trabajas en proyectos reales, con sesiones largas que inevitablemente se compactan, con contexto que importa… entonces Beads es la diferencia entre tener un asistente útil y uno con Alzheimer.
Y lo mejor: como vive en el repo, no dependes de ningún servicio externo. Si mañana Beads desaparece, tienes tus datos en JSON. Otra cosa buena es que hay UIs comunitarias si no te va el CLI: beads-ui te da un kanban local.
Advertencia
Beads es nuevo. Hay reportes de que no funciona perfectamente con Opus 4.5. A mí me ha funcionado, pero tu experiencia puede variar.
Como diría un ingeniero sensato: pruébalo en un proyecto secundario antes de casarte con él.
TL;DR: Linear es para ti (qué hacer). Beads es para tu IA (cómo lo está haciendo). Juntos, evitan que cada compactación sea un reinicio desde cero.
Ahora si me disculpas, tengo que ir a cerrar unos beads.
Read this article in English.



