# doctor

> Informe de salud de solo lectura: manifiesto, inventario de propiedad, archivos modificados, archivos de instrucciones, entornos. Opciones, códigos de comprobación, informe JSON, salida real.

Canonical: https://bmad-plus.rochetta.fr/es/docs/reference/cli-doctor/
Language: es
BMAD+ version: 0.23.1
Documentation reviewed: 2026-10-19
Author: Laurent Rochetta
License: MIT

Documentación de BMAD+ › [Referencia](https://bmad-plus.rochetta.fr/es/docs/reference/) › doctor

`doctor` responde a una sola pregunta: ¿está intacta esta instalación? Compara lo que hay en disco con lo que el manifiesto dice que BMAD+ instaló, comprueba la configuración y los archivos de instrucciones, mira los entornos que necesitan los packs e imprime lo que encuentra. Nunca escribe en el proyecto ni contacta con npm; para saber si hay una versión más reciente usa `update-check`. Ejecútalo tras una instalación, tras una actualización o cuando algo se comporte de forma rara.

<a id="synopsis"></a>
## Sinopsis

**En la terminal de tu proyecto**

```sh
npx bmad-plus doctor [-d <path>] [-l <code>] [--json] [--verify-python]
```

**Opciones de doctor**

| Opción | Argumento | Qué hace |
| --- | --- | --- |
| `-d, --directory <path>` | carpeta | Proyecto a comprobar (por defecto, la carpeta actual). |
| `-l, --lang <code>` | código de idioma | Se acepta por coherencia; el informe siempre está en inglés. |
| `--json` | - | Imprimir todo el informe como JSON en lugar del resumen legible. |
| `--verify-python` | - | Ejecutar también los intérpretes de Python instalados para comprobar su versión y sus importaciones. Sin ella, doctor no ejecuta ningún intérprete. Nunca aprovisiona ni repara nada. |

<a id="exit-codes"></a>
## Códigos de salida

**Códigos de salida de doctor**

| Código | Significado |
| --- | --- |
| 0 | Ninguna comprobación es un error. Los avisos solos no hacen fallar el comando. |
| 1 | Al menos una comprobación es un error (por ejemplo, falta un archivo requerido, un pack desconocido, un bloqueo obsoleto, un Node.js por debajo del mínimo). |

<a id="real-output"></a>
## Salida real

Registrado justo después de la instalación mostrada en la página de install (Core y Design, 0.23.0). El informe legible solo lista lo que no es un simple acierto, más la línea del manifiesto, y luego un recuadro de resumen. «87/87 checks passed» cuenta todas las comprobaciones, también las superadas que no se listan.

**doctor tras una instalación limpia**

```text
$ npx bmad-plus doctor --directory .\demo-app
T   BMAD+ Doctor v0.23.0
|
*  Manifest found: v0.23.0
|
o  BMAD+ Health Report ---------------------------------------------------------------------------------+
|                                                                                                       |
|  87/87 checks passed                                                                                  |
|  0 error(s), 0 warning(s)                                                                             |
|  Installed: v0.23.0 | Executing CLI: v0.23.0                                                          |
|  Ownership inventory: complete                                                                        |
|  Integrations use host-managed execution; host capabilities were not probed.                          |
|  Optional Nexus process execution requires an explicit plan; executable availability was not probed.  |
|                                                                                                       |
+-------------------------------------------------------------------------------------------------------+
|
•  Published version is not checked here. Use `bmad-plus update-check --json` to check npm.
|
—  Installation checks passed.
```

Salida capturada de una ejecución real. Fuente: Capturado durante la receta de aceptación de la 0.23.0, el 2026-10-18 (paso 2; líneas npm notice eliminadas)

<a id="checks"></a>
## Qué comprueba

Cada comprobación tiene un código, un estado (`pass`, `warning` o `error`), un mensaje y a menudo una ruta. Los códigos de abajo son los que el comando puede emitir.

**Códigos de comprobación**

| Código | Estado | Significado y qué hacer |
| --- | --- | --- |
| `installation.missing` | error | Sin manifiesto: BMAD+ no está instalado en esta carpeta. Revisa la carpeta o instala. |
| `manifest.unreadable`, `manifest.invalid` | error | El manifiesto no se puede leer o le faltan campos. Restáuralo o ejecuta `install` de nuevo. |
| `manifest.valid` | pass | Manifiesto encontrado, con su versión. |
| `lock.active` | warning | Una instalación o actualización tiene el bloqueo ahora mismo (se muestran pid y hora de inicio). Espera. |
| `lock.stale` | error | Un bloqueo de más de 60 minutos, ilegible durante más de un minuto, o cuyo proceso ha muerto. Si no corre nada, borra `.bmad/update.lock`. |
| `lock.unreadable` | warning | No se pudo inspeccionar el bloqueo. |
| `version.cli` | pass / warning | Las versiones instalada y en ejecución coinciden, o no. Una diferencia es la señal para ejecutar `update`. |
| `pack.unknown`, `pack.core-missing` | error | El manifiesto lista un paquete que este paquete no conoce, o no tiene Core. |
| `studio.resources` | pass / error | Con Dev Studio: sus workflows y recursos se resuelven (o por qué no). |
| `shield.ai-register` | pass / warning | Con Shield: el registro de tratamientos de IA cubre las integraciones de IA encontradas. Nunca es un error. |
| `file.unchanged` | pass | Un archivo gestionado coincide con su huella registrada. |
| `file.modified` | warning | Un archivo gestionado se cambió en local. Revísalo antes de actualizar; `update` lo conservará. |
| `file.unowned` | warning | Un archivo requerido existe sin huella registrada. |
| `file.missing`, `file.unreadable` | error | Un archivo requerido falta o es ilegible. Ejecuta `install` de nuevo para restaurarlo. |
| `inventory.complete`, `.incomplete`, `.legacy`, `.invalid`, `inventory.omissions` | pass / warning / error | Estado del inventario de propiedad. `legacy` (sin inventario) e `incomplete` limitan lo que puede hacer `update --auto`; `invalid` es un error. |
| `config.present`, `config.missing`, `config.unreadable` | pass / error | ¿Está `_bmad/config.yaml`? |
| `integrations.legacy`, `integrations.invalid`, `adapters.invalid` | warning / error | La selección de herramientas registrada o las huellas de adaptadores faltan o no son válidas. |
| `adapter.unchanged`, `.adopted`, `.unowned`, `.modified`, `.missing`, `.unreadable` | pass / warning / error | Estado de `AGENTS.md` y de cada archivo de herramienta seleccionado: intacto; sustituido por un archivo generado por el repositorio; no reconocido como de BMAD+; editado por ti; ausente; ilegible. |
| `runtime.node` | pass / error | Node.js alcanza al menos el mínimo (20.0.0). |
| `runtime.requirements` | pass / error | Para paquetes de Python: el archivo de requisitos se entrega en el paquete. |
| `runtime.python-unverified`, `runtime.python-probe` | warning / pass | Estado del entorno de Python; con `--verify-python`, la versión del intérprete y las importaciones se ejecutaron de verdad. |
| `package.unreadable` | error | No se puede inspeccionar el paquete en ejecución. |

<a id="json-report"></a>
## El informe JSON

Con `--json` la salida es un único documento JSON y nada más. Sus claves de primer nivel son `schemaVersion`, `projectDir`, `status` (`ok`, `warning` o `error`), `versions` (`installed`, `cli` y `published`, siempre `null` porque doctor nunca consulta npm), `inventory` (`status`, `trackedFiles`), `packs`, `integrations`, `processExecution`, `runtimes`, `checks` (la lista completa, incluidos los aciertos) y `summary` (`passed`, `warnings`, `errors`). El código de salida sigue a `summary.errors`.

> **Nota · Lo que doctor no sabe** No sondea a tu asistente: «Integrations use host-managed execution; host capabilities were not probed.» Un informe en verde significa que los archivos están intactos, no que tu herramienta de IA los haya cargado.

<a id="examples"></a>
## Ejemplos

**Condicionar un trabajo de CI al resultado**

```sh
npx bmad-plus doctor --json > doctor.json || echo "installation needs attention"
```

**Comprobar también las importaciones de Python**

```sh
npx bmad-plus doctor --verify-python
```

**Véase también**

- [install](https://bmad-plus.rochetta.fr/es/docs/reference/cli-install/)
- [update](https://bmad-plus.rochetta.fr/es/docs/reference/cli-update/)
- [update-check](https://bmad-plus.rochetta.fr/es/docs/reference/cli-update-check/)
- [Adaptadores](https://bmad-plus.rochetta.fr/es/docs/reference/adapters/)
- [Solución de problemas](https://bmad-plus.rochetta.fr/es/docs/faq/troubleshooting/)

[Documentación de BMAD+](https://bmad-plus.rochetta.fr/es/docs/) · [Referencia](https://bmad-plus.rochetta.fr/es/docs/reference/)

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