# Archivo de configuración

> Cada clave de _bmad/config.yaml: modo de ejecución, los cuatro puntos de control, el bloque uat y el presupuesto del enjambre. Valores por defecto, quién lee cada una y su efecto.

Canonical: https://bmad-plus.rochetta.fr/es/docs/reference/config-yaml/
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/) › Archivo de configuración

`_bmad/config.yaml` es el archivo donde un proyecto le dice a BMAD+ cómo comportarse: qué idioma usar, si los agentes trabajan de uno en uno o bajo el orquestador Nexus, dónde deben detenerse y esperarte, cómo se tratan las recetas de aceptación humana y cuántos subagentes puede usar un enjambre. `bmad-plus install` lo crea; puedes editarlo a mano. Esta página lista todas las claves que escribe.

> **Nota · Quién lee este archivo** La propia línea de comandos solo lee unos pocos valores: el bloque `swarm` (validado por `bmad-plus swarm`), cinco claves de texto que usa `bmad-plus studio` y `communication_language` para el idioma de una página de aceptación construida por `bmad-plus uat`. Todo lo demás lo leen los agentes: las instrucciones de sus habilidades les dicen que abran este archivo y lo sigan. Por eso un punto de control modificado surte efecto la próxima vez que un agente inicia un pipeline, sin ningún comando que ejecutar.

<a id="generated"></a>
## Lo que escribe install

**El archivo tras install --yes --lang fr en una carpeta llamada demo-app, reproducido con el paquete 0.23.0. Al escribir se entrecomillan las cadenas con comillas simples, y user_name recurre al nombre de usuario del sistema y, si no, a Developer**

```yaml
# BMAD+ Project Configuration
# Generated by bmad-plus install

user_name: 'Developer'
communication_language: 'Français'
document_output_language: 'Français'
output_folder: '_bmad-output'
project_name: 'demo-app'
execution_mode: 'manual'
auto_role_activation: true
parallel_execution: true
checkpoints:
  discovery: 'require_approval'
  architecture: 'require_approval'
  story: 'require_approval'
  delivery: 'require_approval'
uat:
  mode: 'advisory'
  granularity: 'delivery'
  environment:
    name: ''
    url: ''
  page_budget:
    max_steps: 15
    max_minutes: 30
  dir: '_bmad-output/uat'
swarm:
  budget: 26
  wave: 10
  media_credits: 'ask'
```

Los valores de `user_name`, `communication_language` y `project_name` vienen del asistente o de la carpeta; el resto son los valores por defecto mostrados. `uat.environment` contiene `name: "TEST"` y la dirección si escribiste la URL de un entorno de pruebas en el asistente.

<a id="keys"></a>
## Cada clave

**Claves de _bmad/config.yaml**

| Clave | Por defecto | Leída por | Efecto |
| --- | --- | --- | --- |
| `user_name` | respuesta del asistente; si no, tu usuario del sistema; si no, `Developer` | CLI (`studio`) y agentes | El nombre con el que los agentes te saludan. Debe ser un texto no vacío para `studio`. |
| `communication_language` | nombre del idioma de `--lang`; si no, el idioma del sistema si está soportado; si no, `English` | CLI (`studio`, `uat`) y agentes | Idioma en el que responden los agentes. `uat build` abre la página de aceptación en él. |
| `document_output_language` | igual que `communication_language` | CLI (`studio`) y agentes | Idioma de los documentos que escriben los agentes (briefs, PRD, informes). |
| `output_folder` | `_bmad-output` | CLI (`studio`) y agentes | Dónde dejan los agentes sus entregables. Para `studio`, la ruta debe ser relativa al proyecto. |
| `project_name` | nombre de la carpeta del proyecto | CLI (`studio`) y agentes | El nombre del proyecto usado en los documentos. |
| `execution_mode` | `manual` | Agentes, mediante las instrucciones de sus habilidades | `manual`: tú llamas a los agentes. `autopilot`: Nexus encadena Discovery, Build y Ship. `hybrid`: autopilot con puntos de control frecuentes. Se fija al instalar con `--mode`. |
| `auto_role_activation` | `true` | Agentes, mediante las instrucciones de sus habilidades | `true`: un agente puede cambiar de rol cuando el contexto lo pide, tras anunciarlo. `false`: los roles solo cambian cuando tú lo pides. |
| `parallel_execution` | `true` | Agentes, mediante las instrucciones de sus habilidades | `true`: el Parallel Supervisor puede ejecutar tareas independientes en paralelo. `false`: solo secuencial. |
| `checkpoints.discovery` | `require_approval` | Agentes, mediante las instrucciones de sus habilidades | Parada tras el brief de producto, el PRD y la revisión UX. |
| `checkpoints.architecture` | `require_approval` | Agentes, mediante las instrucciones de sus habilidades | Parada tras la arquitectura, antes de cualquier código. |
| `checkpoints.story` | `require_approval`; `notify_only` si se instaló con `--mode autopilot` | Agentes, mediante las instrucciones de sus habilidades | Se aplica tras cada historia completada. |
| `checkpoints.delivery` | `require_approval` | Agentes, mediante las instrucciones de sus habilidades | Se aplica en la entrega final. Con `uat.mode: gate`, también espera un `uat gate` superado. |
| `uat.mode` | `advisory` | Agentes, mediante las instrucciones de sus habilidades | `advisory`: construir y ofrecer la página de aceptación sin bloquear nunca. `gate`: la entrega espera una puerta superada. `off`: sin receta, y el informe de entrega lo dice. Un bloque `uat` ausente equivale a `advisory`. |
| `uat.granularity` | `delivery` | Agentes, mediante las instrucciones de sus habilidades | `delivery`: una receta por entrega. `story`: la página se construye y entrega de inmediato, historia a historia. |
| `uat.environment` | `name` y `url` vacíos, o `TEST` y tu URL | Agentes, mediante las instrucciones de sus habilidades | El entorno de pruebas en el que se recorre la receta. |
| `uat.page_budget` | `max_steps: 15`, `max_minutes: 30` | Agentes, mediante las instrucciones de sus habilidades | Objetivo de tamaño de una página de receta: como máximo estos pasos y minutos para quien prueba. |
| `uat.dir` | `_bmad-output/uat` | Documenta la ubicación; `bmad-plus uat` la toma de `--dir` | Carpeta de las especificaciones, páginas, resultados y triaje de recetas. Su valor por defecto es el mismo. |
| `swarm.budget` | `26` | CLI (`swarm`) y agentes | Cuántos subagentes puede usar una ejecución de enjambre antes de que el anfitrión deba preguntarte. Entero de 1 a 1000. |
| `swarm.wave` | `10` | CLI (`swarm`) y agentes | Cuántos subagentes se lanzan juntos. Entero de 1 a 1000. |
| `swarm.media_credits` | `ask` | CLI (`swarm`) y agentes | El único valor aceptado es `ask`: la generación de pago de imágenes, vídeo o audio nunca queda cubierta por un presupuesto, el asistente pregunta cada vez. |

<a id="checkpoints"></a>
## Puntos de control y modos de ejecución

Un punto de control es un lugar del pipeline autopilot donde el orquestador se detiene, te avisa y sigue, o simplemente sigue. Cada una de las cuatro claves toma uno de tres valores.

**Valores de un punto de control**

| Valor | Comportamiento |
| --- | --- |
| `require_approval` | Parada. Presenta un punto de control revisable y espera. Si una autorización anterior tuya ya cubre la siguiente acción concreta, no se vuelve a pedir. Una notificación externa necesita un canal configurado y tu autorización. |
| `notify_only` | Informa del avance en la sesión y continúa. |
| `auto` | Continúa automáticamente y lo registra para la auditoría. |

> **Nota · Instalar con --mode autopilot** El único punto de control que depende del modo en la instalación es `story`: se escribe como `notify_only` para `autopilot` y como `require_approval` en los demás casos. Editar después `execution_mode` no reescribe los puntos de control; cámbialos tú.

<a id="example-cli-config-autopilot-delivery-only"></a>
### Un autopilot que solo se detiene en la entrega

Confías en el pipeline hasta el build terminado y solo quieres aprobar lo que se entrega.

**En tu asistente de IA**

```text
En _bmad/config.yaml, pon execution_mode en autopilot, pon los puntos de control discovery, architecture y story en notify_only y deja delivery en require_approval. Después muéstrame el bloque editado.
```

**Lo que deberías obtener** El asistente edita el archivo para que diga `execution_mode: autopilot`, con los puntos `discovery`, `architecture` y `story` en `notify_only` y `delivery` en `require_approval`. En el próximo `autopilot`, Nexus informa en los tres primeros y sigue, y se detiene en la entrega con un punto de control que revisar.

<a id="swarm-block"></a>
## El bloque swarm

El bloque `swarm` es la única parte que la CLI hace cumplir. Un bloque ausente, o una clave ausente, equivale a los valores por defecto: 26 subagentes por ejecución, 10 por oleada. Cuando a `bmad-plus swarm init` se le piden más unidades que `swarm.budget` y falta `--approved`, no escribe nada y sale con el código 2, para que decida una persona. La generación de medios de pago queda fuera de cualquier presupuesto.

<a id="example-cli-config-raise-swarm-budget"></a>
### Subir el presupuesto del enjambre a 50

Un panel de 30 compradores simulados fue rechazado con «needs approval» porque el presupuesto es 26; decides aceptar paneles de hasta 50 sin preguntar cada vez.

**En tu asistente de IA**

```text
En _bmad/config.yaml pon swarm.budget en 50 y deja wave y media_credits como están. Después vuelve a lanzar el mismo swarm init sin --approved.
```

**Lo que deberías obtener** Como 30 ya no supera el presupuesto, `init` no se detiene con el código 2: crea la ejecución e imprime la línea del panel (por ejemplo «panel of 30 units, budget 50»). Una petición de 60 unidades seguiría rechazándose hasta que pases `--approved`.

<a id="reinstall"></a>
## Cómo trata install un archivo existente

- Las claves existentes mandan: volver a ejecutar `install` nunca sobrescribe un valor que hayas cambiado.
- Las claves que faltan se añaden con su valor por defecto, incluidas las que faltan dentro de un bloque como `uat` o `swarm`. Así un proyecto instalado con una versión antigua gana los bloques más nuevos.
- Las respuestas que das de forma explícita sustituyen el valor guardado: los campos del asistente (nombre, idioma de comunicación, modo de ejecución), `--mode` y la URL de un entorno de pruebas.
- Cuando algo cambia, el archivo se reescribe con un escritor YAML bajo la cabecera «BMAD+ Project Configuration». Los comentarios añadidos a mano no se conservan en ese caso.
- Si el archivo no es un mapeo YAML, install lo deja intacto y avisa: «_bmad/config.yaml could not be parsed; it was left unchanged.»
- `uninstall` conserva este archivo, porque contiene tus ajustes.

<a id="errors"></a>
## Errores posibles

**Errores de configuración que notifica la CLI**

| Mensaje | Causa | Qué hacer |
| --- | --- | --- |
| `_bmad/config.yaml: swarm.budget must be an integer from 1 to 1000.` | `budget` (o `wave`, mismo mensaje con su nombre) no es un entero dentro del rango. | Escribe un entero simple, por ejemplo `budget: 50`. |
| `_bmad/config.yaml: swarm.media_credits must be "ask".` | Se escribió otro valor. | Pon `media_credits: "ask"` o borra la línea. |
| `_bmad/config.yaml: swarm has an unknown key "<name>".` | Hay en el bloque una clave distinta de `budget`, `wave`, `media_credits`. | Quítala o corrige la ortografía. |
| `_bmad/config.yaml is not valid YAML: …` | El archivo no se puede analizar. | Corrige la sangría o las comillas que indica el mensaje. |
| `_bmad/config.yaml: user_name must be a nonempty string` | `studio` exige que sus cinco claves de texto (`user_name`, `communication_language`, `document_output_language`, `output_folder`, `project_name`) sean cadenas no vacías cuando existen. | Dale a la clave un valor de texto o bórrala para volver al valor por defecto. |

**Véase también**

- [install: cómo se crea el archivo](https://bmad-plus.rochetta.fr/es/docs/reference/cli-install/)
- [swarm: presupuesto, oleadas y aprobación](https://bmad-plus.rochetta.fr/es/docs/reference/cli-swarm/)
- [uat: recetas de aceptación](https://bmad-plus.rochetta.fr/es/docs/reference/cli-uat/)
- [Estructura del proyecto](https://bmad-plus.rochetta.fr/es/docs/reference/project-layout/)
- [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)
