Qué versionar y qué dejar en local, qué ajustes acordar, un adaptador por compañero sobre una columna común, una política de actualización segura, puertas de CI e incorporación.
BMAD+ vive en el proyecto, así que un equipo lo comparte como cualquier otra parte del repositorio: decidiendo qué se versiona, qué se configura igual para todos y quién lo cambia. Esta página lista esas decisiones y los hechos que hacen segura cada una: hashes de propiedad, ediciones preservadas, una política de actualización por proyecto, adaptadores generados desde una sola columna. Es para responsables técnicos y para quien tenga que incorporar a compañeros que usan herramientas de IA distintas. Cuando una elección es cuestión de gusto y no un hecho, el texto lo dice.
AGENTS.md, archivos de adaptador, .agents/skills/, .agents/data/
Generados y copiados por el instalador; con hash en el manifiesto.
Incluirlos en el repositorio da a cada compañero las mismas instrucciones sin ejecutar el instalador. No incluirlos significa que cada uno instala la misma versión. Ambas funcionan; elige una.
_bmad/config.yaml
Tus ajustes: idioma, modo de ejecución, puntos de control, uat, swarm. Se escribe una vez y se fusiona, nunca se sobrescribe.
El archivo natural para compartir, pues contiene las convenciones del equipo.
_bmad/update-policy.json
Lo escribe update-policy cuando cambias la política.
Compártelo si el equipo quiere una sola política; nombra el rango de versiones permitido.
_bmad/review-rules.yaml y sus documentos
Reglas de revisión del proyecto.
Compártelo: un archivo de hallazgos responde a un solo conjunto de reglas, así que el equipo debe revisar con el mismo.
_bmad/.bmad-plus-install.json
El manifiesto: versión, packs, herramientas y un SHA-256 por cada archivo instalado.
Debe seguir siendo coherente con los archivos que describe: versiónalo con ellos, o ninguno de los dos.
Todos los adaptadores se generan a partir del mismo registro que AGENTS.md, así que un compañero con Cursor y otro con Claude Code obtienen la misma lista y las mismas reglas; solo cambia el formato de archivo. --tools acepta varios ids a la vez (--tools claude-code,cursor), all o none. El instalador detecta las herramientas por sus carpetas (.claude/, .gemini/, .cursor/, .codex/, .opencode/, .aider.conf.yml) cuando no pasas --tools; --yes sin herramienta detectada no escribe ningún adaptador. Un adaptador de BMAD+ que editaste se conserva. Un archivo de instrucciones que escribiste tú se conserva en una instalación interactiva y con update; install --yes lo copia primero a <file>.bak y luego lo sustituye. Los archivos antiguos del instalador se guardan como <file>.bak.
Adaptadores
Id de la herramienta
Archivo escrito
Detectado por
claude-code
CLAUDE.md
una carpeta .claude/
gemini-cli
GEMINI.md
una carpeta .gemini/
antigravity
GEMINI.md (compartido con gemini-cli)
una carpeta .gemini/antigravity/
cursor
.cursor/rules/bmad-plus.mdc (siempre aplicado)
una carpeta .cursor/
codex-cli
.codex/AGENTS.md
una carpeta .codex/
opencode
.opencode/AGENTS.md
una carpeta .opencode/
aider
CONVENTIONS.md; añade read: CONVENTIONS.md a .aider.conf.yml o ejecuta /read CONVENTIONS.md en Aider
un archivo .aider.conf.yml
Un compañero que añade una herramienta más tarde vuelve a ejecutar el instalador con esa herramienta: la ejecución conserva lo ya instalado y añade el adaptador que falta. --tools none instala agentes, habilidades y memoria sin tocar la configuración de ninguna herramienta, que es la opción adecuada para un proyecto cuyo CLAUDE.md o AGENTS.md se mantiene a mano.
El valor por defecto es avisar: las instrucciones generadas piden al asistente que ejecute update-check una vez por sesión y lo notifique. No se aplica nada. Para un equipo, el patrón práctico es una persona (o un job de CI) que decide cuándo avanzar, aplica update, revisa el informe y hace commit; los demás reciben el resultado con su siguiente pull. Si el equipo quiere que las actualizaciones fluyan sin una persona, auto exige un rango semver explícito y varias salvaguardas: el resultado del registro debe ser reciente, los archivos gestionados sin cambios, el inventario de hashes de la instalación completo, la versión destino exactamente la registrada en el comando y el requisito de Node cumplido. Una consulta sin conexión, obsoleta o fallida nunca permite una actualización automática.
Salida capturada de una ejecución real. Fuente: Reproducido en un servidor de pruebas el 2026-10-18 con el código fuente 0.23.0 (tools/cli/bmad-plus-cli.js) en un proyecto Git desechable
off detiene toda consulta. notify (por defecto) informa. auto exige --range; añade --allow-prerelease o --stable-only para gestionar las preversiones. El registro está fijado a https://registry.npmjs.org/.
Una actualización conserva los archivos cambiados desde su hash registrado y los notifica; un conflicto bloquea la vía automática. Los archivos que una versión nueva ya no incluye se quitan tras una copia de seguridad restaurable. Cada actualización aplicada escribe .bmad/updates/<receipt-id>/ con receipt.json y backups/; update --restore <receipt-id> --yes vuelve a ella y se niega a sobrescribir ediciones locales posteriores.
Una instalación anterior a 0.13 (sin hashes de archivos) no se puede actualizar automáticamente; una migración explícita, npx --yes bmad-plus@0.23.1 update --yes, guarda copia de lo que reemplaza.
install nunca cambia la versión instalada: se rechaza una bajada de versión y una subida pasa por update. Si dos compañeros instalaron versiones distintas, quien tiene la más antigua ejecuta update.
Un bloqueo .bmad/update.lock protege el proyecto durante una actualización (se considera obsoleto tras 60 minutos o si su propietario ha muerto); doctor informa de un bloqueo que no es suyo.
BMAD+ no instala ningún hook de Git ni de ciclo de vida en tu proyecto, porque una instrucción se puede saltar. Lo que un equipo quiere imponer lo impone con su propia CI, mediante códigos de salida pensados para ello.
Comprobaciones que un equipo puede conectar a CI
Comprobación
Comando
Falla cuando
Integridad de la instalación
bmad-plus doctor --json
Salida 1 ante cualquier error (un archivo requerido que falta, por ejemplo). Los archivos modificados son advertencias.
Vigilancia de actualizaciones
bmad-plus update-check --json
Salida 1 por un runtime, instalación o política no válidos; un registro inalcanzable es unknown, no un fallo.
Puerta de revisión en pull requests
Las recetas de docs/recipes/ci-review/
La revisión está incompleta (salida 2) o tiene hallazgos abiertos (salida 1).
Una versión tiene una ejecución humana aceptada
uat-release-gate.mjs de la habilidad uat
Sin ejecución terminada, otra revisión, un fallo sin clasificar, una escritura sin confirmar (salidas 1 a 3; 4 significa que la puerta no pudo ejecutarse).
Una versión tiene al menos una receta
uat-spec-present.mjs
Ninguna receta nombra la versión de package.json.
Un archivo de intake del equipo es válido
bmad-plus intake check FILE
Salida 1 con todos los problemas listados.
Evidencias de Shield
bmad-plus assurance verify y ai-register check
assurance verify sale con 1 cuando una afirmación no está respaldada; ai-register check solo avisa.
Abre AGENTS.md para ver la lista de agentes y las reglas del equipo y escribe bmad-help en el chat. Lee los ajustes de _bmad/config.yaml para saber qué puntos de control se detendrán a preguntarte.
04
Enlazar la memoria a tu máquina
Con el pack Memory, la instalación detecta un cerebro en tu máquina (BMAD_PLUS_BRAIN, una carpeta _brain/ en un directorio superior, ~/.bmad-plus/brain/, y por último un ~/.claude/memory/ que no esté vacío) y lo registra en .agents/memory/.brain-link. Ese archivo es solo tuyo; los archivos de memoria del proyecto que lo rodean son los del equipo.
Aprobaciones: si el equipo quiere que una persona apruebe la arquitectura y la entrega, mantén require_approval en esos puntos de control. Un autopilot con auto en todos es una elección deliberada, no un valor por defecto.
Presupuesto: un enjambre mayor que swarm.budget se rechaza hasta que una persona diga sí; la generación de medios de pago se pregunta cada vez. Nadie debería pasar --approved en nombre de otro.
OSINT: investigar a una persona con nombre exige un propósito y una base legal registrados, en cada ejecución. En un equipo eso supone alguien que asuma esa decisión. Consulta la página de confianza.
Shield: los informes los genera una IA y llevan la marca «not legal advice»; una decisión de cumplimiento sigue en manos de una persona cualificada.
Secretos: las claves de API van en el entorno de cada persona o de la CI, nunca en el repositorio. El suelo de ocultación de la revisión y el de las notas de aceptación enmascaran formas habituales de credenciales; no sustituyen el no incluir secretos en el repositorio.
Propiedad: cada archivo escrito por BMAD+ lleva hash. Un archivo que editó un compañero lo conservan la actualización y la desinstalación y doctor lo señala como modificado (una advertencia): la personalización local es visible, no se sobrescribe en silencio.
Úsalo cuando llega un nuevo responsable técnico, o antes de incorporar a un compañero. El asistente solo lee; no se cambia nada.
En tu asistente de IA
Lee _bmad/config.yaml, _bmad/update-policy.json si existe, _bmad/review-rules.yaml si existe y el manifiesto _bmad/.bmad-plus-install.json. Resume en una tabla: versión instalada, packs, herramientas, modo de ejecución, comportamiento de cada punto de control, modo uat, presupuesto de enjambre, modo y rango de la política de actualización. Luego lista lo que un compañero nuevo tendría que hacer para tener la misma configuración y señala cualquier ajuste que parezca incoherente con los demás. No cambies nada.
Lo que deberías obtener Una tabla con los valores reales leídos de los archivos, una lista de incorporación (instalar con los mismos packs, añadir tu herramienta, leer la columna) y una breve lista de incoherencias, por ejemplo execution_mode: autopilot con todos los puntos de control en auto. No se modifica ningún archivo.