Explorar la documentación

Tratamiento de datos y privacidad

Ni telemetría ni autoactualización silenciosa. Los once flujos del paquete npm que pueden enviar datos fuera de tu máquina: qué, a quién, cuándo, con qué consentimiento, y lo que se queda en local.

En esta página
  1. Las cuatro bases de consentimiento
  2. Los once flujos que pueden salir de la máquina
  3. Hacer menos, a propósito
  4. Lo que se queda en la máquina
  5. Servicios del mantenedor, fuera del paquete
  6. Hechos sobre la cadena de suministro y la publicación
  7. Informar de una vulnerabilidad

Esta página responde a una pregunta: ¿qué puede enviar BMAD+ fuera de mi máquina, a quién y con el visto bueno de quién? La respuesta corta: no tiene telemetría ni autoactualización silenciosa; once flujos del paquete npm pueden llegar a la red o lanzar un programa que lo haga, y cada uno está ligado a una base de consentimiento que tú controlas. La lista no es marketing escrito a mano: se genera a partir de una declaración del registro, y antes de cada versión el job de integración continua recorre el código entregado y falla si falta en la declaración una llamada de red, un oyente o un arranque de proceso, o si uno declarado ya no existe. El texto de referencia es la sección Data handling de SECURITY.md en el repositorio de BMAD+; esta página la refleja y explica cómo leerla.

Nota Qué significa «a través de un programa iniciado»

En las tablas, «directamente» significa que un script de BMAD+ hace él mismo la petición. «A través de un programa iniciado» significa que BMAD+ arranca una herramienta (npm, uv o pip, git, Codex CLI, Chromium o un comando que declaraste) y esa herramienta hace el envío. La descarga del propio BMAD+ con npx la hace npm y no es uno de los flujos de abajo.

Cómo leer la columna Consentimiento
BaseSignificado
opt-outOcurre por defecto según la política del proyecto y puedes desactivarlo.
opt-inNunca ocurre salvo que lo pidas con una opción, una confirmación o una política explícita.
invocationSolo ocurre cuando tú (o tu asistente, a petición tuya) ejecutas el comando que lo hace, sobre una entrada que proporcionaste.
credentialSolo ocurre cuando has definido la clave (o URL) que necesita el proveedor; sin la credencial no se envía nada.

Los once flujos que pueden salir de la máquina

Flujos del paquete npm (según SECURITY.md)
FlujoCómo saleQuéA quiénCuándoConsentimiento
update-check (cli)A través de un programa iniciadoEl nombre del paquete y el canal (npm view bmad-plus@latest) con los metadatos de petición de npm: dirección IP, user agent (versiones de npm, Node.js y del sistema) y cabeceras de sesión de npm.registry.npmjs.org (la política no admite otro registro)bmad-plus update-check, que los adaptadores generados piden al agente ejecutar una vez por sesión; la respuesta se guarda en caché en .bmad/update-check.json.opt-out: bmad-plus update-policy --mode off detiene toda consulta.
update-apply (cli)A través de un programa iniciadoLa versión exacta pedida, con los metadatos de petición de npm, para descargar el paquete de esa versión.registry.npmjs.orgbmad-plus update --latest --yes, o --auto cuando la política del proyecto lo permite.opt-in: cada ejecución exige --yes, o el modo de política auto con un rango explícito.
python-provision (cli)A través de un programa iniciadoLos nombres y versiones del requirements.txt del pack, con los metadatos de petición del instalador; uv también puede descargar una versión de Python.pypi.org y files.pythonhosted.org, o el índice configurado para pip o uv en la máquina; github.com (versiones python-build-standalone) cuando uv descarga Python.bmad-plus install --provision-python para un pack Python seleccionado.opt-in: solo con --provision-python; sin él no se crea ningún entorno.
nexus-worker (cli)A través de un programa iniciadoCon codex-exec, la instrucción de la tarea y sus archivos de entrada (1 MiB como máximo) van a Codex CLI, que los envía al proveedor de modelo de tu propia sesión de Codex. Con command, lo que envíe ese comando.El proveedor de modelo configurado en tu Codex CLI; quien contacte un comando declarado.bmad-plus nexus launch sobre un plan con un contrato de ejecución explícito.invocation: nada arranca sin un plan que escribiste y un lanzamiento explícito; se rechazan el shell, el entorno y los flags arbitrarios de Codex.
nexus-verifier (cli)A través de un programa iniciadoLo que envíe el comando declarado; se ejecuta con un entorno mínimo de lista blanca.Quien contacte el comando declarado.bmad-plus nexus verify sobre una tarea de un plan que escribiste.invocation: el comando y su hash están fijados en el plan; se rechaza un ejecutable cambiado.
uat-page-results (core)DirectamenteLa ejecución: nombre del probador, veredictos de los pasos y notas.El origen que sirve la página: bmad-plus uat serve en 127.0.0.1, o el almacén de artefactos de claude.ai cuando la página se publica como artefacto.Cada veredicto registrado, cuando se sirve la página; una página abierta desde un archivo guarda los resultados en el navegador.invocation: el probador elige cómo se abre la página; una página abierta desde un archivo no envía nada.
osint-providers (osint)DirectamenteLa consulta de investigación (nombres, alias, palabras clave y URL sobre el sujeto) y la clave de API de ese proveedor, por HTTPS verificado: el ayudante compartido rechaza cualquier otro esquema y cualquier redirección fuera del host del proveedor.api.apify.com, api.exa.ai, r.jina.ai, s.jina.ai, deepsearch.jina.ai, api.parallel.ai, api.perplexity.ai, api.tavily.com, la URL MCP de Bright Data que configures.Cuando el agente Shadow, o volley.py repartiendo hacia los demás, ejecuta un script de proveedor durante una investigación.credential: solo se contacta a un proveedor una vez definida su clave (o la URL MCP de Bright Data); la puerta de base legal de la fase menos 1 precede al perfilado de una persona con nombre.
seo-site-fetch (seo)DirectamentePeticiones HTTP de las páginas del sitio auditado, robots.txt y el sitemap, con el user agent que elige la auditoría, desde tu dirección IP.El sitio que pides auditar (solo direcciones públicas).seo_fetch.py y seo_crawl.py, ejecutados por los agentes SEO durante una auditoría.invocation: solo se descargan la URL que das y sus enlaces internos; se rechazan las direcciones privadas, de bucle local y de enlace local.
seo-google-apis (seo)DirectamenteLa URL u origen auditado, y tu GOOGLE_API_KEY en la cabecera x-goog-api-key, nunca en la URL de la petición; no se siguen redirecciones.www.googleapis.com, chromeuxreport.googleapis.com, searchconsole.googleapis.comseo_apis.py, ejecutado durante la fase de rendimiento de una auditoría.credential: solo cuando GOOGLE_API_KEY está definida; sin ella el script devuelve un error y no envía nada.
seo-screenshot (seo)A través de un programa iniciadoLas peticiones de Chromium para la página auditada y los recursos que sirve su propio host, con un user agent de navegador, desde tu dirección IP. Los recursos de terceros se bloquean, no se descargan.El sitio que pides auditar (solo direcciones públicas).seo_screenshot.py, cuando una auditoría pide capturas.invocation: solo la URL que das, con el Playwright y el Chromium que instalaste; se rechazan las direcciones no públicas, otros hosts y redirecciones fuera del host.
assurance-checks (cli)A través de un programa iniciadoLo que envíe un comando de comprobación declarado; la propia CLI no envía nada.Quien contacte un comando de comprobación declarado.bmad-plus assurance run sobre un caso que escribiste.invocation: solo se ejecutan los comandos listados en tu propio archivo de caso, y solo con un assurance run explícito; la clave de firma nunca se pasa a una comprobación.

Hacer menos, a propósito

Si quieres limitar lo que sale de la máquina
QuieresHaz esto
Ninguna consulta al registronpx bmad-plus update-policy --mode off. Las instrucciones generadas encuentran entonces que la comprobación está desactivada y continúan la tarea.
Comprobar sin peticiónupdate-check --offline: no inicia ninguna petición al registro e informa de desconocido.
Ningún entorno de PythonNo pases --provision-python. El pack SEO funciona entonces en modo solo prompts.
Ningún dato a un proveedor de modelo mediante NexusNo escribas un plan con codex-exec ni ejecutes nexus launch. El flujo gestionado por el anfitrión no envía nada por sí mismo.
Ninguna llamada OSINTNo definas ninguna clave de proveedor. Un proveedor solo se contacta cuando su clave está definida.
Ningún tráfico SEONo ejecutes una auditoría SEO y deja GOOGLE_API_KEY sin definir para no usar las API de Google.
Una página de aceptación que no avisa a nadieAbre la página construida desde un archivo en vez de publicarla como artefacto: guarda los resultados en el navegador y no envía nada.

Lo que se queda en la máquina

  • npx-launcher (cli): inicia la CLI en el mismo ejecutable de Node.js, en cada ejecución de npx bmad-plus.
  • python-health (cli): ejecuta el Python propio del entorno de un pack, aislado (-I), para confirmar que sus módulos se importan. Cuándo: bmad-plus doctor en un proyecto con un pack Python aprovisionado.
  • review-git (cli): lee el repositorio local con git (rev-parse, merge-base, diff, ls-files, show) para construir un ámbito de revisión.
  • nexus-git (cli): lee la raíz del repositorio y el commit HEAD con git rev-parse para los planes y ejecuciones de Nexus.
  • uat-serve (cli): sirve una página de receta y guarda sus veredictos, escuchando solo en 127.0.0.1 y rechazando cualquier otra cabecera Host.
  • uat-release-gate (core): ejecuta la CLI bmad-plus propia del proyecto con el Node.js actual para calificar las ejecuciones de aceptación registradas, cuando el proyecto ejecuta el script de puerta de versión.
  • osint-install (osint): copia el agente y las habilidades OSINT en un proyecto y luego ejecuta el script de diagnóstico local del pack con el Python del sistema, cuando ejecutas el script de instalación del paquete.

Servicios del mantenedor, fuera del paquete

El repositorio contiene también dos servicios que el mantenedor despliega en sus propios servidores: el servidor MCP Audit 360° (herramientas de git, GitHub, Gamma, CI, RAG y memoria para los agentes del mantenedor, tras un token de portador y un panel protegido con contraseña) y el monitor de origen (vigila el repositorio BMAD-METHOD y avisa al mantenedor). No están en el paquete npm y los usuarios no los instalan. Sus propios flujos se declaran de la misma manera y los comprueba la misma puerta; SECURITY.md los lista completos.

Hechos sobre la cadena de suministro y la publicación

  • Siete dependencias de ejecución (@clack/prompts, commander, design-skill, fs-extra, js-yaml, picocolors, semver). design-skill aporta los archivos de habilidades que BMAD+ copia al instalar y un comando de enlace que BMAD+ nunca ejecuta.
  • Las dependencias de producción se auditan antes de cada versión; los hallazgos altos y críticos bloquean la publicación. Los requisitos de Python mantenidos se auditan en CI y bloquean la publicación ante hallazgos conocidos.
  • Los secretos que usa la automatización del proyecto viven en GitHub Actions Secrets, nunca en el código; el directorio local de secretos está en gitignore; el pipeline limpia los directorios privados antes de la distribución pública.
  • Los paquetes npm se construyen a partir de copias de distribución depuradas, sin commit padre ni historial de código fuente. Cada versión conserva su SBOM CycloneDX de producción, su archivo y su manifiesto de integridad como artefactos del workflow, y la integridad del registro debe coincidir con el archivo comprobado antes de desplegar el sitio.
  • La publicación usa autenticación OIDC de npm. La procedencia de npm no está activada, porque el repositorio privado de construcción y el de distribución difieren; un inventario o un hash no es una atestación de procedencia, y el proyecto lo dice.
  • Las escrituras y borrados rechazan enlaces simbólicos y uniones. Las credenciales nunca se ponen en URL (la clave de Google va en una cabecera). La página de aceptación no carga nada de otro origen.

Informar de una vulnerabilidad

Usa el reporte privado de vulnerabilidades de GitHub: en el repositorio, pestaña Security, «Report a vulnerability» (informar de una vulnerabilidad ). El reporte queda privado entre tú y el mantenedor. Si no puedes usarlo, escribe a l.rochetta@gmail.com con el asunto [SECURITY] BMAD+ - Brief description. Incluye una descripción, los pasos para reproducir, una evaluación del impacto, las versiones afectadas y, opcionalmente, una corrección sugerida. No abras una incidencia pública, no explotes más allá de una prueba de concepto y no divulgues antes de que se publique una corrección. Los reportes válidos se acreditan en el changelog, salvo que prefieran el anonimato.

Objetivos de respuesta
GravedadAcuse de reciboObjetivo de corrección
Crítica24 horas72 horas
Alta48 horas7 días
Media7 días30 días

Véase también