Explorar la documentación

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.

En esta página
  1. Lo que escribe install
  2. Cada clave
  3. Puntos de control y modos de ejecución
  4. El bloque swarm
  5. Cómo trata install un archivo existente
  6. Errores posibles

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

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

Cada clave

Claves de _bmad/config.yaml
ClavePor defectoLeída porEfecto
user_namerespuesta del asistente; si no, tu usuario del sistema; si no, DeveloperCLI (studio) y agentesEl nombre con el que los agentes te saludan. Debe ser un texto no vacío para studio.
communication_languagenombre del idioma de --lang; si no, el idioma del sistema si está soportado; si no, EnglishCLI (studio, uat) y agentesIdioma en el que responden los agentes. uat build abre la página de aceptación en él.
document_output_languageigual que communication_languageCLI (studio) y agentesIdioma de los documentos que escriben los agentes (briefs, PRD, informes).
output_folder_bmad-outputCLI (studio) y agentesDónde dejan los agentes sus entregables. Para studio, la ruta debe ser relativa al proyecto.
project_namenombre de la carpeta del proyectoCLI (studio) y agentesEl nombre del proyecto usado en los documentos.
execution_modemanualAgentes, mediante las instrucciones de sus habilidadesmanual: 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_activationtrueAgentes, mediante las instrucciones de sus habilidadestrue: un agente puede cambiar de rol cuando el contexto lo pide, tras anunciarlo. false: los roles solo cambian cuando tú lo pides.
parallel_executiontrueAgentes, mediante las instrucciones de sus habilidadestrue: el Parallel Supervisor puede ejecutar tareas independientes en paralelo. false: solo secuencial.
checkpoints.discoveryrequire_approvalAgentes, mediante las instrucciones de sus habilidadesParada tras el brief de producto, el PRD y la revisión UX.
checkpoints.architecturerequire_approvalAgentes, mediante las instrucciones de sus habilidadesParada tras la arquitectura, antes de cualquier código.
checkpoints.storyrequire_approval; notify_only si se instaló con --mode autopilotAgentes, mediante las instrucciones de sus habilidadesSe aplica tras cada historia completada.
checkpoints.deliveryrequire_approvalAgentes, mediante las instrucciones de sus habilidadesSe aplica en la entrega final. Con uat.mode: gate, también espera un uat gate superado.
uat.modeadvisoryAgentes, mediante las instrucciones de sus habilidadesadvisory: 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.granularitydeliveryAgentes, mediante las instrucciones de sus habilidadesdelivery: una receta por entrega. story: la página se construye y entrega de inmediato, historia a historia.
uat.environmentname y url vacíos, o TEST y tu URLAgentes, mediante las instrucciones de sus habilidadesEl entorno de pruebas en el que se recorre la receta.
uat.page_budgetmax_steps: 15, max_minutes: 30Agentes, mediante las instrucciones de sus habilidadesObjetivo de tamaño de una página de receta: como máximo estos pasos y minutos para quien prueba.
uat.dir_bmad-output/uatDocumenta la ubicación; bmad-plus uat la toma de --dirCarpeta de las especificaciones, páginas, resultados y triaje de recetas. Su valor por defecto es el mismo.
swarm.budget26CLI (swarm) y agentesCuántos subagentes puede usar una ejecución de enjambre antes de que el anfitrión deba preguntarte. Entero de 1 a 1000.
swarm.wave10CLI (swarm) y agentesCuántos subagentes se lanzan juntos. Entero de 1 a 1000.
swarm.media_creditsaskCLI (swarm) y agentesEl ú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.

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
ValorComportamiento
require_approvalParada. 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_onlyInforma del avance en la sesión y continúa.
autoContinú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ú.

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

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.

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

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.

Errores posibles

Errores de configuración que notifica la CLI
MensajeCausaQué 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 stringstudio 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