# studio

> Dev-Studio-Workflows auflisten und für einen davon ein schreibgeschütztes Kontextpaket vorbereiten, damit dein Assistent ihn mit den exakt mitgelieferten Anweisungen deines Projekts ausführt.

Canonical: https://bmad-plus.rochetta.fr/de/docs/reference/cli-studio/
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/) › studio

Dev Studio ist das Pack mit sechs Personas (Miriam, Huldah, Yosef, Rachel, Bezalel, Oholiab) und 38 Workflows wie `product-brief`, `validate-prd` oder `investigate`. Ein Workflow ist eine Markdown-Prozedur, der dein Assistent folgt. `bmad-plus studio` führt nichts aus: `list` zeigt den Katalog, und `prepare` bündelt alles, was der Assistent für einen Workflow braucht (Konfiguration, mitgelieferte Anweisungen, die von dir genannten Dateien), mit einem Hash pro Datei. Gedacht für einen reproduzierbaren Start oder ein Skript, das das Bündel an einen Assistenten übergibt.

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

**Im Terminal deines Projekts**

```sh
npx bmad-plus studio list [--json] [-d <path>]
npx bmad-plus studio prepare <workflow> [--request <text>] [--input <file> ...] [--json] [-d <path>]
```

**Argumente und Optionen von studio**

| Option | Argument | Standard | Was sie tut |
| --- | --- | --- | --- |
| `<action>` | `list` oder `prepare` | erforderlich | Alles andere scheitert mit `Use studio list or studio prepare WORKFLOW.` |
| `[workflow]` | Workflow-ID oder Alias | keiner | Bei `prepare` Pflicht, bei `list` nicht erlaubt. Die Aliase `bmad-<id>` und `bmad-plus-<id>` funktionieren ebenfalls. |
| `-d, --directory <path>` | Ordner | aktueller Ordner | Das zu lesende installierte Projekt. |
| `--request <text>` | Text | leer | Aufgabenumfang für den Assistenten, bis 256 KiB. |
| `--input <file>` | projektrelative Datei | keine | Wiederholbar, höchstens 32 Dateien. Jede muss eine UTF-8-Textdatei bis 256 KiB im Projekt sein. |
| `--json` | - | aus | Gibt das vollständige Bündel als JSON statt der Text-Zusammenfassung aus. |

<a id="reads-writes"></a>
## Was gelesen und geschrieben wird

- Liest `.agents/skills/pack-dev-studio/` (den Katalog `shared/catalog.json`, die Persona-Datei, die Workflow-Datei und die Ressourcen, auf die sie verweist), `_bmad/config.yaml`, deine `--input`-Dateien und den vorherigen Bericht, falls vorhanden.
- Schreibt nichts. Weder den Bericht noch einen Cache noch die Konfiguration. Der vorgeschlagene Berichtspfad ist `<output_folder>/dev-studio/<workflow-id>.md` (standardmäßig `_bmad-output/dev-studio/<workflow-id>.md`); dein Assistent schreibt ihn später.
- Öffnet keine Netzwerkverbindung und startet keinen Prozess. Das Bündel ist auf 2 MiB begrenzt.
- Braucht das Dev-Studio-Pack: `npx bmad-plus install --packs core,dev-studio`.

<a id="input-kinds"></a>
### Eingabearten

Jeder Workflow erklärt, was er braucht. Fehlt es, gibt `prepare` das Bündel trotzdem aus, meldet aber `needs-input` und endet mit Code 2, sodass ein Skript vor dem Aufruf des Assistenten nachfragen kann.

**Eingabearten im Katalog**

| Art | Verlangt | Beispiele |
| --- | --- | --- |
| `request` | Ein `--request`-Text oder mindestens eine `--input`-Datei. | `product-brief`, `create-prd`, `create-architecture` |
| `project` | Ein `--request`-Text oder mindestens eine `--input`-Datei. | `investigate`, `quick-dev`, `code-review` |
| `artifact` | Mindestens eine `--input`-Datei. | `validate-prd`, `edit-prd`, `dev-story` |
| `none` | Nichts. | im Katalog für Workflows ohne Eingabe deklariert |

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

**Exit-Codes von studio**

| Code | Bedeutung |
| --- | --- |
| 0 | `list` war erfolgreich, oder der Status von `prepare` ist `ready`. |
| 2 | Der Status von `prepare` ist `needs-input`: Dem Workflow fehlt seine Anfrage oder seine Eingabedatei. |
| 1 | Fehler: Pack nicht installiert, unbekannter Workflow, ungültige Eingabe, unlesbare Konfiguration. Mit `--json` wird der Fehler als `{"schemaVersion":1,"status":"error","error":"..."}` ausgegeben. |

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

**Den Katalog auflisten (erste Zeilen)**

```text
$ npx bmad-plus studio list
product-brief (analyst-agent; input: request)
prfaq (analyst-agent; input: request)
document-project (tech-writer-agent; input: project)
market-research (analyst-agent; input: request)
domain-research (analyst-agent; input: request)
technical-research (analyst-agent; input: request)
create-prd (pm-agent; input: request)
prd (pm-agent; input: request)
edit-prd (pm-agent; input: artifact)
validate-prd (pm-agent; input: artifact)
...
investigate (dev-agent; input: project)
# Die echte Liste hat 38 Workflows; die mit „...“ markierten Zeilen sind hier ausgelassen.
```

Ausgabe eines echten Laufs. Quelle: Mit dem Paket 0.23.0 (Packs Core und Dev Studio) in einem Wegwerfprojekt nachgespielt; Zeilen ausgelassen, wo markiert

**Einen Workflow vorbereiten, dem die Eingabe fehlt**

```text
$ npx bmad-plus studio prepare validate-prd
validate-prd: needs-input — prepared for the host, not executed.
Project: /work/app
Request: (none supplied)
Resolved configuration:
{
  "user_name": "Developer",
  "communication_language": "English",
  "document_output_language": "English",
  "output_folder": "_bmad-output",
  "project_name": "app"
}
Defaulted fields: (none)
Proposed report: _bmad-output/dev-studio/validate-prd.md
Supply a project artifact with --input RELATIVE_FILE.

--- shared/execution.md (b8152ec5057fc79749aa7b0823fa35c241c6a0c3f13d12716fa3aae11bcbf354) ---
...
# Exit-Code 2. Die angezeigten Werte hängen von deiner _bmad/config.yaml ab; die langen Anweisungstexte danach sind ausgelassen („...“).
```

Ausgabe eines echten Laufs. Quelle: Mit dem Paket 0.23.0 (Packs Core und Dev Studio) in einem Wegwerfprojekt nachgespielt; der Projektpfad ist durch /work/app ersetzt und die langen Anweisungstexte sind ausgelassen

Die Text-Zusammenfassung gibt der Reihe nach aus: den Workflow und seinen Status, den Projektordner, die Anfrage, die aufgelöste Konfiguration, welche Konfigurationsfelder auf einen Standardwert zurückgefallen sind, den vorgeschlagenen Berichtspfad, was noch fehlt, dann jede Anweisungsdatei und jede Eingabedatei mit ihrem SHA-256. Existiert am vorgeschlagenen Pfad schon ein Bericht, folgt sein Inhalt unter „Continue existing report“, damit der Assistent weitermacht statt neu anzufangen. Mit `--json` bilden dieselben Daten ein einziges Objekt mit `schemaVersion`, `status` (`ready` oder `needs-input`), `execution: "host-managed"`, `executed: false`, `catalogSha256`, `instructions`, `inputs` und `missingInputs`.

> **Hinweis · Vorbereitet heißt nicht ausgeführt** Das Bündel belegt, dass die Anweisungen geliefert wurden und welche Bytes sie hatten. Es belegt nicht, dass der Assistent ihnen gefolgt ist, und nichts darin schreibt den Bericht oder führt Tests aus. Unabhängige Agenten, Browsen und Befehlsausführung hängen von deinem Assistenten ab.

<a id="errors"></a>
## Fehler und was zu tun ist

Fehler erscheinen als `Dev Studio: <message>` auf dem Fehlerstrom.

**Fehler von studio**

| Meldung | Ursache | Was tun |
| --- | --- | --- |
| `Dev Studio is not installed. Run bmad-plus install --packs core,dev-studio` | Im Ordner fehlt `.agents/skills/pack-dev-studio`. | Installiere das Pack oder gib mit `--directory` das richtige Projekt an. |
| `Use studio list or studio prepare WORKFLOW.` | Unbekannte Aktion, `list` mit Workflow oder `prepare` ohne Workflow. | Prüfe die Syntax oben. |
| `Unknown Dev Studio workflow: <name>` | Der Name ist weder eine Workflow-ID noch ein Alias. | Führe `studio list` aus und kopiere eine ID. |
| `Invalid or oversized workflow inputs` | Die Anfrage ist größer als 256 KiB, oder es wurden mehr als 32 `--input`-Dateien angegeben. | Kürze die Anfrage, nimm weniger Dateien. |
| `Resource is not bounded text: <file>` | Eine Eingabe fehlt, ist binär oder größer als 256 KiB. | Nenne eine kleinere UTF-8-Textdatei im Projekt. |
| `Expected a portable relative file path: <file>` | Der `--input`-Pfad ist absolut oder enthält `..`, einen Laufwerksbuchstaben oder andere nicht unterstützte Zeichen. | Nimm einen projektrelativen Pfad mit `/` als Trenner. |
| `Prepared context exceeds 2 MiB` | Anweisungen, Eingaben und vorheriger Bericht sind zusammen zu groß. | Weniger oder kleinere Eingaben übergeben. |
| `_bmad/config.yaml: <key> must be a nonempty string` | Ein bekannter Schlüssel der Konfiguration ist leer oder kein Text. | Wert korrigieren; siehe die Seite zur Konfiguration. |
| `Dev Studio catalog disagrees with registry routes` oder `Unsupported Dev Studio catalog` | Die Dateien des installierten Packs wurden bearbeitet oder sind unvollständig. | `doctor` ausführen, dann das Pack neu installieren oder aktualisieren. |

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

<a id="example-cli-studio-brief-from-request"></a>
### Ein Product Brief aus einer einzeiligen Anfrage

Dev Studio ist installiert. Miriam soll von einem präzisen Umfang ausgehen, und die exakten Anweisungen sollen per Hash festgehalten werden.

**In deinem KI-Assistenten**

```text
Miriam, nutze product-brief, um das kleinste nützliche Ticket-Triage-Werkzeug für unser Support-Team zu definieren. Wenn die CLI verfügbar ist, führe zuerst `npx bmad-plus studio prepare product-brief --request "Das kleinste nützliche Triage-Werkzeug definieren" --json` aus und arbeite mit diesem Bündel.
```

**Das solltest du erhalten** Der Befehl gibt ein Bündel mit Status `ready`, `executed: false`, dem vorgeschlagenen Berichtspfad `_bmad-output/dev-studio/product-brief.md` und den mitgelieferten Anweisungen samt Hashes aus. Miriam folgt dann dem Verfahren `product-brief` und schreibt den Bericht an diesen Pfad; der Befehl selbst hat nichts geschrieben.

<a id="example-cli-studio-validate-prd"></a>
### Ein vorhandenes PRD validieren

`validate-prd` ist ein Workflow der Art `artifact`: Er braucht die zu validierende Datei.

**In deinem KI-Assistenten**

```text
Yosef, validate-prd für docs/prd.md. Bereite den Kontext mit `npx bmad-plus studio prepare validate-prd --input docs/prd.md --json` vor und melde einen Befund nur, wenn du auf den Text zeigen kannst, der ihn stützt.
```

**Das solltest du erhalten** Ohne `--input` würde der Befehl `needs-input` ausgeben und mit 2 enden. Mit der Option ist der Status `ready`, die Datei steht mit ihrem SHA-256 unter `inputs`, und der vorgeschlagene Bericht ist `_bmad-output/dev-studio/validate-prd.md`. Yosef validiert genau diesen Dateiinhalt.

**Siehe auch**

- [CLI im Überblick und Exit-Codes](https://bmad-plus.rochetta.fr/de/docs/reference/cli-overview/)
- [install: das Pack dev-studio hinzufügen](https://bmad-plus.rochetta.fr/de/docs/reference/cli-install/)
- [doctor prüft die Pack-Ressourcen](https://bmad-plus.rochetta.fr/de/docs/reference/cli-doctor/)
- [Die Konfigurationsdatei](https://bmad-plus.rochetta.fr/de/docs/reference/config-yaml/)
- [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)
