# doctor

> Schreibgeschützter Gesundheitsbericht: Manifest, Besitzinventar, geänderte Dateien, Anweisungsdateien, Laufzeiten. Optionen, Prüfcodes, JSON-Bericht, echte Ausgabe, Exit-Codes.

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

BMAD+ Dokumentation › [Referenz](https://bmad-plus.rochetta.fr/de/docs/reference/) › doctor

`doctor` beantwortet eine Frage: Ist diese Installation intakt? Es vergleicht, was auf der Platte liegt, mit dem, was das Manifest als von BMAD+ installiert führt, prüft Konfiguration und Anweisungsdateien, schaut auf die Laufzeiten, die Packs brauchen, und gibt aus, was es findet. Es schreibt nie ins Projekt und kontaktiert nie npm; ob es eine neuere Version gibt, zeigt `update-check`. Führe es nach einer Installation, nach einem Update oder bei merkwürdigem Verhalten aus.

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

**Im Terminal deines Projekts**

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

**Optionen von doctor**

| Option | Argument | Was sie tut |
| --- | --- | --- |
| `-d, --directory <path>` | Ordner | Zu prüfendes Projekt (Standard: aktueller Ordner). |
| `-l, --lang <code>` | Sprachcode | Aus Konsistenzgründen akzeptiert; der Bericht ist immer englisch. |
| `--json` | - | Den ganzen Bericht als JSON statt der lesbaren Zusammenfassung ausgeben. |
| `--verify-python` | - | Zusätzlich die installierten Python-Interpreter ausführen, um Version und Importe zu prüfen. Ohne diese Option startet doctor keinen Interpreter. Es richtet nie etwas ein und repariert nie etwas. |

<a id="exit-codes"></a>
## Exit-Codes

**Exit-Codes von doctor**

| Code | Bedeutung |
| --- | --- |
| 0 | Keine Prüfung ist ein Fehler. Warnungen allein lassen den Befehl nicht scheitern. |
| 1 | Mindestens eine Prüfung ist ein Fehler (zum Beispiel eine fehlende Pflichtdatei, ein unbekanntes Pack, eine veraltete Sperre, ein Node.js unter dem Minimum). |

<a id="real-output"></a>
## Echte Ausgabe

Aufgezeichnet unmittelbar nach der auf der Seite zu install gezeigten Installation (Core und Design, 0.23.0). Der lesbare Bericht listet nur, was kein einfaches Bestanden ist, plus die Manifest-Zeile und einen Zusammenfassungskasten. „87/87 checks passed“ zählt alle Prüfungen, auch die nicht aufgelisteten bestandenen.

**doctor nach sauberer Installation**

```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.
```

Ausgabe eines echten Laufs. Quelle: Aufgezeichnet im Abnahmelauf der 0.23.0 am 2026-10-18 (Schritt 2; npm-notice-Zeilen entfernt)

<a id="checks"></a>
## Was geprüft wird

Jede Prüfung hat einen Code, einen Status (`pass`, `warning` oder `error`), eine Meldung und oft einen Pfad. Die folgenden Codes kann der Befehl ausgeben.

**Prüfcodes**

| Code | Status | Bedeutung und was tun |
| --- | --- | --- |
| `installation.missing` | error | Kein Manifest: BMAD+ ist in diesem Ordner nicht installiert. Ordner prüfen oder installieren. |
| `manifest.unreadable`, `manifest.invalid` | error | Das Manifest ist unlesbar oder es fehlen Felder. Wiederherstellen oder `install` erneut ausführen. |
| `manifest.valid` | pass | Manifest gefunden, mit seiner Version. |
| `lock.active` | warning | Eine Installation oder ein Update hält gerade die Sperre (pid und Startzeit angezeigt). Warten. |
| `lock.stale` | error | Eine Sperre älter als 60 Minuten, über eine Minute unlesbar oder mit totem Prozess. Läuft nichts, `.bmad/update.lock` löschen. |
| `lock.unreadable` | warning | Die Sperre konnte nicht geprüft werden. |
| `version.cli` | pass / warning | Installierte und laufende Version stimmen überein, oder nicht. Eine Abweichung ist das Signal für `update`. |
| `pack.unknown`, `pack.core-missing` | error | Das Manifest führt ein diesem Paket unbekanntes Pack oder hat kein Core. |
| `studio.resources` | pass / error | Mit Dev Studio: Seine Workflows und Ressourcen lassen sich auflösen (oder warum nicht). |
| `shield.ai-register` | pass / warning | Mit Shield: Das Register der KI-Verarbeitungen deckt die gefundenen KI-Integrationen ab. Nie ein Fehler. |
| `file.unchanged` | pass | Eine verwaltete Datei entspricht ihrem gespeicherten Hash. |
| `file.modified` | warning | Eine verwaltete Datei wurde lokal geändert. Vor dem Update prüfen; `update` erhält sie. |
| `file.unowned` | warning | Eine Pflichtdatei existiert ohne gespeicherten Hash. |
| `file.missing`, `file.unreadable` | error | Eine Pflichtdatei fehlt oder ist unlesbar. `install` erneut ausführen, um sie wiederherzustellen. |
| `inventory.complete`, `.incomplete`, `.legacy`, `.invalid`, `inventory.omissions` | pass / warning / error | Zustand des Besitzinventars. `legacy` (kein Inventar) und `incomplete` begrenzen, was `update --auto` darf; `invalid` ist ein Fehler. |
| `config.present`, `config.missing`, `config.unreadable` | pass / error | Ist `_bmad/config.yaml` da? |
| `integrations.legacy`, `integrations.invalid`, `adapters.invalid` | warning / error | Die gespeicherte Tool-Auswahl oder die Adapter-Hashes fehlen oder sind ungültig. |
| `adapter.unchanged`, `.adopted`, `.unowned`, `.modified`, `.missing`, `.unreadable` | pass / warning / error | Zustand von `AGENTS.md` und jeder gewählten Tool-Datei: unberührt; durch eine vom Repository erzeugte Datei ersetzt; nicht als BMAD+-eigen erkannt; von dir bearbeitet; fehlt; unlesbar. |
| `runtime.node` | pass / error | Node.js erreicht mindestens das Minimum (20.0.0). |
| `runtime.requirements` | pass / error | Für Python-Packs: Die Requirements-Datei liegt im Paket. |
| `runtime.python-unverified`, `runtime.python-probe` | warning / pass | Zustand der Python-Umgebung; mit `--verify-python` wurden Interpreter-Version und Importe wirklich ausgeführt. |
| `package.unreadable` | error | Das laufende Paket lässt sich nicht untersuchen. |

<a id="json-report"></a>
## Der JSON-Bericht

Mit `--json` besteht die Ausgabe aus einem einzigen JSON-Dokument und sonst nichts. Die Schlüssel der obersten Ebene sind `schemaVersion`, `projectDir`, `status` (`ok`, `warning` oder `error`), `versions` (`installed`, `cli` und `published`, immer `null`, weil doctor npm nie abfragt), `inventory` (`status`, `trackedFiles`), `packs`, `integrations`, `processExecution`, `runtimes`, `checks` (die volle Liste samt bestandener) und `summary` (`passed`, `warnings`, `errors`). Der Exit-Code folgt `summary.errors`.

> **Hinweis · Was doctor nicht weiß** Es prüft deinen Assistenten nicht: „Integrations use host-managed execution; host capabilities were not probed.“ Ein grüner Bericht heißt, die Dateien sind intakt, nicht dass dein KI-Tool sie geladen hat.

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

**Einen CI-Job vom Ergebnis abhängig machen**

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

**Auch Python-Importe prüfen**

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

**Siehe auch**

- [install](https://bmad-plus.rochetta.fr/de/docs/reference/cli-install/)
- [update](https://bmad-plus.rochetta.fr/de/docs/reference/cli-update/)
- [update-check](https://bmad-plus.rochetta.fr/de/docs/reference/cli-update-check/)
- [Adapter](https://bmad-plus.rochetta.fr/de/docs/reference/adapters/)
- [Fehlerbehebung](https://bmad-plus.rochetta.fr/de/docs/faq/troubleshooting/)

[BMAD+ Dokumentation](https://bmad-plus.rochetta.fr/de/docs/) · [Referenz](https://bmad-plus.rochetta.fr/de/docs/reference/)

[Quellcode auf GitHub](https://github.com/lrochetta/BMAD-PLUS)
