# Confianza, propiedad y licencias

> Quién escribió qué, qué licencias, qué archivos posee BMAD+ en tu proyecto y cómo lo demuestra, qué conservan actualización y desinstalación, cómo se regula OSINT y dónde están los avisos.

Canonical: https://bmad-plus.rochetta.fr/es/docs/security/trust-and-ownership/
Language: es
BMAD+ version: 0.23.1
Documentation reviewed: 2026-10-19
Author: Laurent Rochetta
License: MIT

Documentación de BMAD+ › [Seguridad y datos](https://bmad-plus.rochetta.fr/es/docs/security/) › Confianza, propiedad y licencias

Confiar en una herramienta que edita tu proyecto se reduce a unas pocas preguntas con respuestas comprobables. ¿De quién es este trabajo y bajo qué licencia? ¿Qué archivos considera suyos la herramienta y cómo los distingue de los tuyos? ¿Qué conserva cuando la actualizas o la quitas? ¿Qué está restringido a propósito? Esta página responde a cada una, con el archivo o el comando que permite comprobarlo.

<a id="who-wrote-what"></a>
## Quién escribió qué

BMAD+ lo crea Laurent Rochetta. Es un proyecto comunitario independiente derivado de BMAD-METHOD (MIT) de BMad Code, LLC; no está afiliado a BMad Code, LLC, ni aprobado ni certificado por ella, y BMad, BMad Method y BMad Core son marcas de BMad Code, LLC. La base declarada es BMAD-METHOD v6.6.0. Las inspiraciones y el material adaptado se acreditan donde se usan, y la tabla separa lo que escribió el autor del proyecto de lo que viene de fuera.

**Procedencia de cada parte**

| Parte | Origen | Condiciones |
| --- | --- | --- |
| Código de BMAD+ y agentes de Core | Escritos para BMAD+ por Laurent Rochetta, sobre la metodología de BMAD-METHOD v6.6.0 (agentes multirrol derivados de los roles originales). | MIT, copyright 2026 Laurent Rochetta; se conserva el aviso MIT de BMAD-METHOD. |
| Dev Studio | La reescritura del autor de un conjunto de roles derivado de BMAD-METHOD: seis perfiles (personas) y 38 workflows cuyas instrucciones de ejecución son adaptaciones originales de BMAD+, con la filiación reconocida. Revisar ideas más recientes del origen es distinto de afirmar que se integra una versión completa del origen. | MIT. |
| SEO, Backup, Animated | Creados por el autor, dentro de su empresa Oveanet; la base SEO se amplió hasta el SEO Engine de tres agentes de BMAD+. | MIT. |
| Maker | Escrito por el autor. | MIT. |
| Memory (Zecher) | Escrito por el autor; la arquitectura de memoria se inspira en su metodología de cartera `_brain/`. Las cuatro reglas de conducta adaptan las pautas comunitarias de forrestchang (ahora alojadas en multica-ai/andrej-karpathy-skills), inspiradas en los consejos de Andrej Karpathy. Esa inspiración no implica autoría ni aprobación de Andrej Karpathy. | El origen declara MIT; no existía un LICENSE independiente en la revisión examinada, y el aviso lo dice sin inventar una línea de copyright. |
| Shield | 27 agentes de cumplimiento y 11 workflows adaptados de las habilidades GRC de Hemant Naik. | MIT, copyright 2026 Hemant Naik, reproducido en los avisos de terceros. |
| OSINT | Pipeline y ayudantes de Python basados en smixs/osint-skill. La integración con Apify se inspira en las agent skills de Apify. | MIT, copyright 2026 Serge Shima, para la habilidad OSINT. El repositorio de Apify declara Apache-2.0 (un README anterior que lo llamaba MIT se corrigió); los avisos no relicencian el ayudante bajo Apache ni implican una suscripción a Apify. |
| Design (Atelier) | Las tres habilidades vienen de `design-skill`, el paquete npm del propio autor (github.com/lrochetta/design-skill), fijado en la versión 0.2.1; BMAD+ añade el perfil (persona), el intake y el enrutado. | MIT. |
| Dependencias de ejecución de npm | Siete paquetes: `@clack/prompts`, `commander`, `design-skill`, `fs-extra`, `js-yaml`, `picocolors`, `semver`. | Cada uno conserva su propia licencia; constan en el SBOM CycloneDX de la versión. |

El texto completo de las licencias y las notas de revisión están en `THIRD-PARTY-LICENSES.md`, incluido en el paquete npm y en el repositorio en [github.com/lrochetta/BMAD-PLUS](https://github.com/lrochetta/BMAD-PLUS), junto a `LICENSE` (MIT, copyright 2026 Laurent Rochetta). Los avisos describen el material fuente incluido o adaptado; no afirman que cada archivo entregado coincida byte a byte con una revisión del origen.

<a id="owned-files"></a>
## Qué archivos posee BMAD+ y cómo lo sabe

Cada archivo que escribe el instalador se registra con su hash SHA-256 en el manifiesto `_bmad/.bmad-plus-install.json` (un `fileInventory`). Un archivo es de BMAD+ mientras sus bytes sigan coincidiendo con el hash registrado; cuando lo editas, es tuyo. Los adaptadores se siguen aparte con un hash de su contenido con finales de línea normalizados. Este inventario de propiedad rige tres comportamientos: doctor informa de las diferencias, la actualización conserva los archivos editados y la desinstalación solo quita lo que sigue siendo idéntico byte a byte.

**El inventario según lo informa doctor**

```text
$ npx bmad-plus doctor --json
{
  "schemaVersion": 1,
  "status": "ok",
  "versions": { "installed": "0.23.0", "cli": "0.23.0", "published": null },
  "inventory": { "status": "complete", "trackedFiles": 39 },
# Extracto, reformateado en menos líneas. `published` es siempre null: doctor nunca consulta npm.
```

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

**Qué dice doctor de un archivo**

| Código de comprobación | Nivel | Significado |
| --- | --- | --- |
| `file.unchanged` | ok | El archivo sigue coincidiendo con el hash registrado. |
| `file.modified` | advertencia | El archivo difiere del hash registrado: tu edición se conserva y se notifica. |
| `file.unowned` | advertencia | Un archivo en una carpeta de BMAD+ que el manifiesto no lista: tuyo. |
| `file.missing`, `file.unreadable` | error | Un archivo requerido ha desaparecido o no se puede leer. |
| `adapter.adopted`, `adapter.modified`, `adapter.unowned` | varía | El estado de un adaptador de herramienta: de BMAD+, editado por ti o que no es de BMAD+ en absoluto. |
| `manifest.valid`, `manifest.invalid` | ok / error | Si se puede leer el manifiesto. El estado del inventario es `complete`, `incomplete`, `legacy` o `invalid`. |

<a id="preserved"></a>
## Qué se conserva y cuándo

**Reglas de conservación**

| Situación | Qué hace BMAD+ |
| --- | --- |
| Reinstalar, misma versión | Solo añade archivos, packs y herramientas que faltan. `_bmad/config.yaml` se fusiona: las claves existentes ganan, se añaden los valores por defecto que falten, las respuestas explícitas del asistente reemplazan. |
| Instalar otra versión | Rechazado. Se rechaza una bajada de versión; una subida pasa por `update`. |
| Instrucciones de herramienta existentes (`CLAUDE.md`, `GEMINI.md`, ...) | Un archivo que editaste se conserva. Un archivo 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`; `--tools none` no toca la configuración de las herramientas. |
| Actualización | Los archivos cambiados desde su hash registrado y los archivos sin propietario se conservan y se notifican; los archivos que una versión ya no incluye se quitan tras una copia restaurable; se escriben un recibo y copias en `.bmad/updates/<id>/`. |
| Manifiesto dañado | Se guarda como `_bmad/.bmad-plus-install.json.corrupt.bak`. |
| Archivos de memoria | `decisions.md`, `lessons.md` y `patterns.md` nunca se sobrescriben, `sessions/` nunca se borra, tus ediciones de `identity.yaml` se conservan; solo `autoconfig` reescribe `context.md` (ver su página). |
| Un cerebro existente | Se enlaza, nunca se copia ni se reescribe. |
| Enlaces en el camino | Las escrituras y borrados rechazan enlaces simbólicos y uniones. |

<a id="uninstall"></a>
## Qué quita la desinstalación y qué conserva

La desinstalación solo quita los archivos de los que BMAD+ es propietario: los idénticos byte a byte a lo que entregó, los adaptadores cuyo hash coincide y que llevan la marca de instalación, las habilidades copiadas de un paquete externo como `design-skill` y el manifiesto. Quita las carpetas vacías que poseía y nunca borra de forma recursiva. Conserva `_bmad/config.yaml`, la memoria del proyecto, `_bmad-output/`, los archivos que editaste y los que no conoce. Rechaza las rutas con enlaces y, sin terminal, exige `--yes`. Con un manifiesto no válido sale con 1. La receta de la 0.23.0 incluía esta comprobación: una nota testigo colocada en `.agents/memory/` sobrevivió y las habilidades de diseño copiadas habían desaparecido.

**La desinstalación de la receta de aceptación (salida del instalador en francés)**

```text
$ New-Item -ItemType Directory -Path .\demo-app\.agents\memory -Force
$ Set-Content -LiteralPath .\demo-app\.agents\memory\context.md -Value 'BMAD+ 0.23.0 memory witness' -Encoding utf8
$ npx bmad-plus uninstall --yes --directory .\demo-app
T   BMAD+ Uninstaller
•  BMAD+ v0.23.0 (installé le 2026-10-18)
•  Packs sélectionnés: core, design
o  ✅ BMAD+ supprimé (106 éléments)
—  La mémoire, les réglages et les fichiers inconnus ou modifiés ont été conservés.
$ Get-Content -LiteralPath .\demo-app\.agents\memory\context.md
BMAD+ 0.23.0 memory witness
$ Test-Path .\demo-app\.agents\skills\design\SKILL.md
False
```

Salida capturada de una ejecución real. Fuente: Receta de aceptación humana de la 0.23.0, 2026-10-18

<a id="governed-packs"></a>
## Lo que se regula o restringe a propósito

<a id="osint-governance"></a>
### El pack OSINT: conservar y regular

Investigar a una persona con nombre es tratamiento de datos personales, y perfilar o inferir la personalidad está regulado (artículos 4(4), 22 y 9 del RGPD, y leyes equivalentes como el RGPD británico, la LGPD y la CCPA/CPRA). «Públicamente disponible» no significa que no se apliquen reglas. El proyecto decidió el 2026-07-02 conservar el pack y regularlo en vez de quitarlo. La puerta de la fase menos 1 se aplica a cada vía directa a datos personales (investigación completa, recogida de LinkedIn, Instagram y Facebook, perfil de personalidad, enriquecimiento de contacto): antes de cualquiera, el agente registra una base legal (artículo 6, y una condición del artículo 9(2) para el perfilado de personalidad), un propósito concreto (se rechaza un «encuentra lo que haya» abierto), el responsable, un plazo de conservación y cómo se atienden las solicitudes de acceso y supresión, con la plantilla `assets/lawful-basis-record.md`. Si no puedes enunciar una base y un propósito, el agente rechaza la operación sobre la persona con nombre y ofrece alternativas no personales: investigación de empresas, productos o mercados, o de una entidad pública. Una búsqueda rápida sobre un alias público, el comando de diagnóstico y las vías de herramientas están exentos.

Cada dossier abre con el aviso «AI-generated OSINT output - may contain errors; not legal advice. The operator is the data controller and is responsible for the lawful basis (GDPR Art. 6/9), platform Terms of Service, and human verification before any decision.» El agente nunca perfila a un particular sin base registrada, califica cada hecho de A a D y gasta como máximo 0,50 dólares sin preguntar. Ninguna clave de proveedor es obligatoria por sí sola: basta una de cualquier proveedor (`APIFY_API_TOKEN`, Perplexity, Exa, Tavily, Jina y otros), y el pack solo envía consultas a un proveedor una vez definida su clave (ver tratamiento de datos). El aviso legal es `osint-agent-package/skills/bmad-osint-investigate/osint/references/gdpr-osint.md` en el repositorio.

<a id="other-boundaries"></a>
### Otras fronteras deliberadas

- Shield: cada informe lleva la marca de generado por IA y «Not legal advice». Una afirmación de aseguramiento respaldada significa que una comprobación nombrada pasó, nunca una certificación, y una correlación de controles en una revisión es una invitación a mirar.
- Revisiones y aceptación: una revisión clean significa ningún hallazgo abierto en un ámbito cubierto por completo, no una prueba de que el código sea correcto; la puerta de aceptación dice «human-observed: complete, current and triaged» y no establece que el probador mirara en el lugar correcto.
- Enjambres: las unidades simuladas no son personas; las tasas son un tope máximo; las citas no son testimonios; la generación de medios de pago nunca la cubre un presupuesto.
- Sin runtime de modelo propio (el único programa que puede lanzar es un comando o una ejecución de Codex que declara un plan de Nexus), sin procesos en segundo plano, sin telemetría, sin autoactualización silenciosa, sin corrección automática a partir de una revisión, sin extensión de IDE, sin publicar en forjas. Son fronteras deliberadas, no carencias a la espera de una versión.
- Escrituras fuera del proyecto: la CLI escribe dentro de la carpeta del proyecto; `scan` escribe fichas de proyecto en el cerebro global, `~/.bmad-plus/brain/`, el pack Memory escribe dentro del cerebro que enlazó, y `update --latest` ejecuta `npm exec` en una carpeta temporal del sistema. Nunca escribe sin invitación en la organización propia de un cerebro de cartera.

<a id="verify-yourself"></a>
## Compruébalo tú mismo

<a id="example-trust-verify-ownership"></a>
### Ver exactamente qué puso BMAD+ en un proyecto

Úsalo antes de hacer commit de los archivos instalados, antes de una auditoría o antes de quitar BMAD+. El asistente solo lee y ejecuta `doctor`, de solo lectura.

**En tu asistente de IA**

```text
Ejecuta npx bmad-plus doctor --json y lee _bmad/.bmad-plus-install.json. Dime la versión instalada, los packs y herramientas, cuántos archivos sigue BMAD+, qué archivos difieren de su hash registrado y qué archivos de las carpetas de BMAD+ no posee. Luego dime qué quitaría npx bmad-plus uninstall --yes y qué conservaría. No cambies nada.
```

**Lo que deberías obtener** Un breve informe factual: versión, packs, herramientas, `inventory.status` y el número de archivos seguidos, la lista de advertencias `file.modified` y `file.unowned`, y una previsión de la desinstalación (se quitan: archivos gestionados idénticos byte a byte, adaptadores coincidentes y el manifiesto; se conservan: `_bmad/config.yaml`, memoria, `_bmad-output/`, archivos modificados y desconocidos). No se escribe nada.

**Véase también**

- [Tratamiento de datos y privacidad](https://bmad-plus.rochetta.fr/es/docs/security/data-handling/)
- [Instalar, actualizar, desinstalar](https://bmad-plus.rochetta.fr/es/docs/guides/install-lifecycle/)
- [Referencia: doctor](https://bmad-plus.rochetta.fr/es/docs/reference/cli-doctor/)
- [Referencia: uninstall](https://bmad-plus.rochetta.fr/es/docs/reference/cli-uninstall/)
- [El pack OSINT](https://bmad-plus.rochetta.fr/es/docs/packs/osint/)
- [La memoria y el cerebro](https://bmad-plus.rochetta.fr/es/docs/concepts/how-memory-works/)

[Documentación de BMAD+](https://bmad-plus.rochetta.fr/es/docs/) · [Seguridad y datos](https://bmad-plus.rochetta.fr/es/docs/security/)

[Código en GitHub](https://github.com/lrochetta/BMAD-PLUS)
