Cómo BMAD+ guarda decisiones, lecciones y traspasos entre sesiones: memoria de proyecto, cerebro global o de cartera y su detección, Zecher, comandos mem y memory, y lo que nunca se sobrescribe.
Una sesión nueva de un asistente de IA empieza de cero: no recuerda por qué elegiste una biblioteca la semana pasada ni qué salió mal el martes. El pack Memory lo arregla con simples archivos Markdown en tu proyecto, un protocolo que dice a cada agente cuándo leerlos y escribirlos, y un agente, Zecher, que los mantiene ordenados. Esta página explica dónde vive la memoria, cómo se detecta y se enlaza un cerebro existente, qué comandos la tocan y qué queda garantizado como nunca sobrescrito. Es para quien trabaja en el mismo proyecto a lo largo de varias sesiones, o en varios proyectos que deberían compartir lo que aprenden.
Nota· El pack es opcional y se basa en archivos
La memoria es el pack memory (instalación con --packs core,memory). Solo necesita Node.js. La recuperación vectorial o RAG es un extra opcional y estrictamente local mediante un servidor MCP desplegado aparte que no forma parte del paquete npm; sin él, la memoria Markdown y el escáner de proyectos funcionan igual.
Decisiones, lecciones, patrones, contexto y traspasos de sesión de este solo proyecto.
Cerebro global
~/.bmad-plus/brain/
Tu archivo de identidad, decisiones, lecciones y patrones transversales, y un índice de tus proyectos BMAD+.
Cerebro de cartera
Una carpeta _brain/ en el proyecto o en una carpeta superior
La misma idea, tuya, con tu propia organización. Tiene prioridad sobre el cerebro global.
La regla de oro: la información que afecta a un proyecto va a la memoria del proyecto; la que afecta a dos o más proyectos es candidata al cerebro. El paso de una a otra nunca es automático. Zecher propone, tú apruebas.
Cuando el pack Memory está instalado, BMAD+ busca un cerebro antes de crear nada. Gana la primera coincidencia.
Orden de resolución del cerebro
Orden
Fuente
Tipo registrado
1
La variable de entorno BMAD_PLUS_BRAIN, si nombra un directorio (si no, un aviso y la regla siguiente).
portfolio
2
Un directorio _brain/ en la carpeta del proyecto o en cualquiera de sus padres.
portfolio
3
~/.bmad-plus/brain/, si existe.
bmad-global
4
~/.claude/memory/, solo si es un directorio no vacío.
claude-memory
5
No se encontró nada: se crea un cerebro global nuevo en ~/.bmad-plus/brain/.
bmad-global
El resultado se escribe en .agents/memory/.brain-link para que cada agente y cada comando encuentre el mismo cerebro. Un cerebro encontrado se enlaza, nunca se copia ni se reescribe: sin duplicación ni sobrescritura. Un cerebro de cartera o claude-memory conserva sus propias convenciones; BMAD+ no crea identity.yaml ni projects/ dentro de él y añade una entrada de índice del proyecto solo cuando el cerebro enlazado es el global de BMAD+. Se indica a los agentes que lean primero el punto de entrada propio de un cerebro de cartera (README.md, AGENTS.md o HOT.md) y sigan su organización.
.agents/memory/.brain-link tras una primera instalación en una máquina sin cerebro
Fichas tipo arquitectura: contexto, decisión, justificación, consecuencias, estado (activa, sustituida, revertida).
Se toma una decisión no evidente. Si le explicarías el «porqué» a un colega, es una decisión.
lessons.md
Contexto, impacto y la regla a seguir la próxima vez.
Ocurre algo inesperado o una suposición resulta falsa. De inmediato, no al final de la sesión.
patterns.md
Problema, forma, contrapartida, estado (candidato, luego validado).
Una solución funciona y podría reutilizarse.
context.md
El estado vivo del proyecto, legible en 30 segundos.
El proyecto cambia de forma significativa (módulo nuevo, cambio de stack, giro de arquitectura).
sessions/
Un traspaso fechado por sesión: YYYY-MM-DD-<topic>.md.
El final de una sesión en la que se hizo trabajo significativo.
El formato de una entrada de decisions.md (según la plantilla instalada)
### YYYY-MM-DD — <short title>
- **Context**: why the decision was needed
- **Decision**: what was chosen
- **Rationale**: why
- **Consequences**: what this unlocks / forecloses
- **Status**: active / superseded / rolled-back
Inicio de sesión (lectura): identity.yaml del cerebro, luego context.md, decisions.md y lessons.md del proyecto, y el último traspaso de sessions/ si se retoma. Un archivo ausente se omite en silencio: la memoria siempre es opcional.
Durante la sesión (escritura por disparador): decisiones, lecciones, patrones y contexto como en la tabla anterior.
Final de sesión (persistencia): un traspaso en sessions/, un context.md actualizado, un vistazo a las lecciones pendientes y una comprobación transversal que solo propone promociones.
Las instrucciones generadas de cada agente llevan cuatro reglas de conducta, adaptadas de un proyecto comunitario inspirado en los consejos de Andrej Karpathy (ver la página de confianza para el crédito). Unen los archivos de memoria con el comportamiento diario.
G1 a G4
Regla
En breve
Vínculo con la memoria
G1 Think Before Coding
Enunciar las suposiciones; si hay duda, preguntar.
Consultar decisions.md antes de volver a decidir.
G2 Simplicity First
Lo mínimo que resuelve el problema, nada especulativo.
Buscar una solución existente en patterns.md.
G3 Surgical Changes
Tocar solo lo necesario; respetar el estilo existente.
Anotar las sorpresas en lessons.md.
G4 Goal-Driven Execution
Definir los criterios de éxito antes de implementar.
Anotar las decisiones no evidentes en decisions.md.
Zecher (el nombre significa «recuerdo» en hebreo) es un agente de utilidad: tú u otro agente lo llamáis cuando la memoria necesita atención. No es un orquestador. Sus reglas: nunca borrar memoria (archivar, consolidar, jamás destruir), preguntar siempre antes de promover al cerebro, fechas ISO 8601 (YYYY-MM-DD, nunca «la semana pasada»), entradas concisas legibles en diez segundos y referencias cruzadas entre una lección y la decisión a la que atañe.
Qué puedes pedirle a Zecher
Dices
Qué ocurre
«Zecher, consolida la memoria»
Auditoría: lee los archivos de memoria y las sesiones; propone duplicados que fusionar, decisiones activas de más de 90 días que revisar y lecciones que promover; aplica solo lo que apruebes; archiva las entradas obsoletas con el prefijo [ARCHIVED].
«Zecher, escanea los proyectos en ~/dev»
Recorre la carpeta buscando marcadores de proyecto, detecta el stack y un estado, muestra una tabla y te deja confirmar, editar, omitir o instalar BMAD+ por proyecto; luego escribe el índice.
«Zecher, ¿dónde estábamos?»
Reconstruye el estado del proyecto a partir de context.md, el último traspaso, la entrada del proyecto en el cerebro, los últimos 10 commits de Git y el archivo de instrucciones; presenta un resumen breve.
«Zecher, chequeo de salud»
Comprueba que los archivos de memoria existen y están bien formados, señala decisiones activas antiguas y lecciones que se repiten, e informa de estadísticas.
«Zecher, ¿qué sabemos sobre [tema]?»
Cruza todos los archivos de memoria.
«Zecher, promueve la lección [X] a global»
Propone mover un aprendizaje al cerebro; solo lo mueve con tu aprobación.
Informe de la salud de la memoria del proyecto y del cerebro enlazado, como porcentaje de comprobaciones.
memory export
Escribe bmad-brain-export-<YYYY-MM-DD>.md en la carpeta del proyecto: un archivo Markdown portátil del cerebro.
scan [path]
Encuentra proyectos, detecta stacks y los indexa en el cerebro global. --depth (4 por defecto), --active-days (30), --paused-days (180), --yes para indexar sin preguntar. Estado: activo bajo 30 días, en pausa de 30 a 180, archivado más allá.
mem recall <query>
Recuperación ordenada sobre el diario y las notas de memoria. --limit (8 por defecto), --scope project|portfolio, --portfolio PATH, --json.
mem recall ... --ranking evidence --context-scope PATHS
Ordenación opcional que vuelve a comprobar las fuentes y la aceptación de Nexus y da un empujón acotado a las evidencias vigentes y pertinentes. Exige un ámbito explícito no vacío.
mem write
Añade un evento estructurado al diario .bmad/memory/journal.ndjson: --agent, --cli (claude-code, gemini-cli, codex-cli, cursor, opencode, aider, antigravity), --model, --task, --outcome success|failure|partial|abandoned, y señales opcionales --eval 0-1, --accept true|false|0-1, --ci pass|fail|0-1.
mem reinforce --pattern ID
Incorpora una recompensa a la puntuación de un patrón (.bmad/memory/pattern-scores.json). Una promoción solo se PROPONE, cuando la media llega a 0,7 con al menos 3 actualizaciones. Estas señales son autodeclaradas y no alimentan la ordenación por evidencias.
mem observe --input FILE
Asocia una sección Markdown exacta de tu memoria con una tarea Nexus ya verificada y aceptada (entrada: ejecución, tarea, archivo y encabezado, rutas del ámbito, tu interpretación, supersedes o contradicts opcionales). Registra procedencia; no prueba que la lección causara el éxito.
mem outcomes
Lista las observaciones registradas y si cada una sigue siendo elegible (un cambio de fuente o de artefacto, una sustitución o una contradicción vuelven inelegible una observación).
Escribir en el diario, recordar, exportar
$ npx bmad-plus mem write --agent atelier --cli claude-code --task "Design read for the Orbit landing page: one job, the loyalty card sign-up" --outcome success --ci passmem write: event 912e91734848 appended (2026-10-19T02:13:48.840Z) agent=atelier cli=claude-code model=- outcome=success task: Design read for the Orbit landing page: one job, the loyalty card sign-up$ npx bmad-plus mem recall "loyalty card sign-up"mem recall: 2 match(es) for "loyalty card sign-up" (scope: project) 1. [0.707] event journal.ndjson#912e91734848 atelier claude-code Design read for the Orbit landing page: one job, the loyalty card sign-up success {"ci":"pass"} 2. [0.522] note decisions.md § 2026-10-18 — The landing page has one job, the loyalty card sign-up 2026-10-18 — The landing page has one job, the loyalty card sign-up - **Context**: design read for the Orbit landing pa…$ npx bmad-plus mem outcomesmem outcomes: no observations.$ npx bmad-plus memory export◆ 📦 Brain exported to: /work/demo/app/bmad-brain-export-2026-10-19.md# Antes de la consulta se añadió a mano a decisions.md una entrada de decisión con el formato de arriba. Sin una tarea Nexus aceptada no hay observación, así que la ordenación por evidencias no aporta nada a la ordenación simple.
npx bmad-plus mem write --agent atelier --cli claude-code --task "Design read for the Orbit landing page: one job, the loyalty card sign-up" --outcome success --ci pass
npx bmad-plus mem recall "loyalty card sign-up"
npx bmad-plus mem outcomes
npx bmad-plus memory export
Salida capturada de una ejecución real. Fuente: bmad-plus 0.23.0, 2026-10-19
Instalar y actualizar nunca sobrescriben decisions.md, lessons.md ni patterns.md, nunca borran sessions/ y conservan tus cambios en context.md e identity.yaml. Los archivos que faltan se crean desde plantillas; los existentes se dejan como están.
Un cerebro detectado se enlaza, no se copia ni se reescribe. Los archivos del cerebro global solo se crean si faltan; una instalación antigua interrumpida podía dejar un «medio cerebro» y el código actual lo completa de forma idempotente sin tocar lo existente.
Desinstalar quita los archivos de los que BMAD+ es propietario y conserva .agents/memory/, _bmad/config.yaml y lo que es tuyo o está modificado (ver el bloque siguiente).
Un fallo al inicializar la memoria no es fatal: si la carpeta personal es de solo lectura (contenedor, CI), la instalación continúa y avisa.
Los escritores compartidos usan .bmad/memory/writer.lock. Tras una interrupción, inspecciona al propietario y los archivos antes de cualquier recuperación manual; no quites el bloqueo de un escritor vivo, y las evidencias de resultados corruptas nunca se reinician automáticamente.
Tras desinstalar, la memoria sigue ahí
$ npx bmad-plus uninstall --yes● BMAD+ v0.23.0 (installed 2026-10-19)● Selected packs: core, memory◇ ✅ BMAD+ removed (60 items)└ Project memory, settings, and unknown or modified files have been preserved.$ find . -path ./.git -prune -o -print | sort./.agents/memory/.brain-link./.agents/memory/context.md./.agents/memory/decisions.md./.agents/memory/lessons.md./.agents/memory/patterns.md./.agents/memory/sessions./.bmad/memory/journal.ndjson./_bmad/config.yaml./bmad-brain-export-2026-10-19.md# Las carpetas que solo contenían directorios vacíos y los archivos propios del proyecto (README.md, docs) se omiten de este extracto. El cerebro global de la carpeta personal no se tocó.
Úsalo al comienzo de una sesión cuando tú o el asistente habéis perdido el hilo, con el pack Memory instalado.
En tu asistente de IA
Zecher, ¿dónde estábamos? Reconstruye el estado de este proyecto a partir de context.md, el último traspaso de sesión, la entrada del cerebro y los últimos commits. Dime qué se decidió, qué está sin terminar y qué lecciones valen para la próxima tarea. Di con claridad cuáles de estas fuentes no encontraste, sin adivinar.
Lo que deberías obtener Un breve «estado del proyecto»: qué es el proyecto, su stack, en qué se trabajó por última vez, las preguntas abiertas de la última sesión, los problemas conocidos y las lecciones. Las fuentes que faltan se nombran como ausentes. No se escribe nada salvo que pidas un traspaso.
Úsalo cuando los archivos de memoria han crecido y contienen entradas repetidas u obsoletas.
En tu asistente de IA
Zecher, consolida la memoria. Primero solo audita: lista los duplicados y las decisiones activas de más de 90 días, y propón qué fusionar, archivar o promover al cerebro global. No apliques nada hasta que apruebe cada cambio, archiva en vez de borrar y escribe las fechas como YYYY-MM-DD.
Lo que deberías obtener Una lista de hallazgos (N duplicados, M entradas obsoletas, K candidatos a promoción) y una pregunta por cada cambio propuesto. Tras tu aprobación, los duplicados se fusionan conservando la versión más rica, las entradas obsoletas se mueven abajo con el prefijo [ARCHIVED] y los aprendizajes aprobados se promueven al cerebro. No se borra nada.
Véase también
El pack MemoryPack Memory: Zecher y el cerebro persistente