Parcourir la documentation

Fichier de configuration

Chaque clé de _bmad/config.yaml : mode d’exécution, quatre points de contrôle, bloc uat et budget de l’essaim. Valeurs par défaut, qui lit quoi, et l’effet d’un changement.

Sur cette page
  1. Ce que install écrit
  2. Chaque clé
  3. Points de contrôle et modes d’exécution
  4. Le bloc swarm
  5. Comment install traite un fichier existant
  6. Erreurs possibles

_bmad/config.yaml est le fichier où un projet dit à BMAD+ comment se comporter : quelle langue employer, si les agents travaillent un par un ou sous l’orchestrateur Nexus, où ils doivent s’arrêter et vous attendre, comment les recettes d’acceptation humaine sont traitées et combien de sous-agents un essaim peut utiliser. bmad-plus install le crée ; vous pouvez le modifier à la main. Cette page liste toutes les clés qu’il écrit.

Remarque Qui lit ce fichier

La ligne de commande elle-même ne lit que quelques valeurs : le bloc swarm (validé par bmad-plus swarm), cinq clés texte utilisées par bmad-plus studio, et communication_language pour la langue d’une page de recette construite par bmad-plus uat. Tout le reste est lu par les agents : les instructions de leurs compétences leur demandent d’ouvrir ce fichier et de le suivre. C’est pourquoi un point de contrôle modifié prend effet au prochain démarrage d’un pipeline par un agent, sans commande à lancer.

Ce que install écrit

Le fichier après install --yes --lang fr dans un dossier nommé demo-app, rejoué avec le paquet 0.23.0. L’écriture met les chaînes entre apostrophes, et user_name retombe sur le nom d’utilisateur du système, puis sur 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'

Les valeurs de user_name, communication_language et project_name viennent de l’assistant ou du dossier ; le reste correspond aux valeurs par défaut affichées. uat.environment contient name: "TEST" et l’adresse si vous avez saisi l’URL d’un environnement de test dans l’assistant.

Chaque clé

Clés de _bmad/config.yaml
CléDéfautLue parEffet
user_nameréponse de l’assistant, sinon le nom d’utilisateur système, sinon DeveloperCLI (studio) et agentsLe nom que les agents emploient pour vous saluer. Doit être un texte non vide pour studio.
communication_languagenom de la langue de --lang, sinon la langue du système si elle est prise en charge, sinon EnglishCLI (studio, uat) et agentsLangue dans laquelle les agents répondent. uat build ouvre la page de recette dans cette langue.
document_output_languagecomme communication_languageCLI (studio) et agentsLangue des documents que les agents écrivent (briefs, PRD, rapports).
output_folder_bmad-outputCLI (studio) et agentsOù les agents déposent leurs livrables. Pour studio, le chemin doit être relatif au projet.
project_namenom du dossier du projetCLI (studio) et agentsLe nom du projet utilisé dans les documents.
execution_modemanualAgents, via les instructions de leurs compétencesmanual : vous appelez les agents. autopilot : Nexus enchaîne Discovery, Build et Ship. hybrid : autopilot avec des points de contrôle fréquents. Fixé à l’installation par --mode.
auto_role_activationtrueAgents, via les instructions de leurs compétencestrue : un agent peut changer de rôle quand le contexte l’exige, après l’avoir annoncé. false : les rôles ne changent que sur votre demande.
parallel_executiontrueAgents, via les instructions de leurs compétencestrue : le Parallel Supervisor peut mener des tâches indépendantes en parallèle. false : séquentiel uniquement.
checkpoints.discoveryrequire_approvalAgents, via les instructions de leurs compétencesArrêt après le brief produit, le PRD et la revue UX.
checkpoints.architecturerequire_approvalAgents, via les instructions de leurs compétencesArrêt après l’architecture, avant tout code.
checkpoints.storyrequire_approval ; notify_only si installé avec --mode autopilotAgents, via les instructions de leurs compétencesAppliqué après chaque story terminée.
checkpoints.deliveryrequire_approvalAgents, via les instructions de leurs compétencesAppliqué à la livraison finale. Avec uat.mode: gate, il attend aussi un uat gate réussi.
uat.modeadvisoryAgents, via les instructions de leurs compétencesadvisory : construire et proposer la page de recette, sans jamais bloquer. gate : la livraison attend une porte franchie. off : pas de recette, et le rapport de livraison le dit. Un bloc uat absent vaut advisory.
uat.granularitydeliveryAgents, via les instructions de leurs compétencesdelivery : une recette par livraison. story : la page est construite et remise tout de suite, story par story.
uat.environmentname et url vides, ou TEST et votre URLAgents, via les instructions de leurs compétencesL’environnement de test sur lequel la recette est jouée.
uat.page_budgetmax_steps: 15, max_minutes: 30Agents, via les instructions de leurs compétencesCible de taille d’une page de recette : au plus ce nombre d’étapes et de minutes pour le testeur.
uat.dir_bmad-output/uatIndique l’emplacement ; bmad-plus uat le prend dans --dirDossier des spécifications, pages, résultats et tris de recette. Sa valeur par défaut est la même.
swarm.budget26CLI (swarm) et agentsNombre de sous-agents qu’une exécution d’essaim peut employer avant que l’hôte doive vous demander. Entier de 1 à 1000.
swarm.wave10CLI (swarm) et agentsNombre de sous-agents lancés ensemble. Entier de 1 à 1000.
swarm.media_creditsaskCLI (swarm) et agentsLa seule valeur acceptée est ask : la génération payante d’images, de vidéo ou d’audio n’est jamais couverte par un budget, l’assistant demande à chaque fois.

Points de contrôle et modes d’exécution

Un point de contrôle est un endroit du pipeline autopilot où l’orchestrateur s’arrête, vous prévient puis continue, ou continue simplement. Chacune des quatre clés prend l’une de trois valeurs.

Valeurs d’un point de contrôle
ValeurComportement
require_approvalArrêt. Présente un point de contrôle relisible et attend. Si une autorisation antérieure de votre part couvre déjà l’action concrète suivante, elle n’est pas redemandée. Une notification externe exige un canal configuré et votre autorisation.
notify_onlyRend compte de l’avancement dans la session et continue.
autoContinue automatiquement et le consigne pour la traçabilité.

Remarque Installer avec --mode autopilot

Le seul point de contrôle qui dépend du mode à l’installation est story : il est écrit notify_only pour autopilot et require_approval sinon. Modifier ensuite execution_mode ne réécrit pas les points de contrôle ; changez-les vous-même.

Un autopilot qui ne s’arrête qu’à la livraison

Vous faites confiance au pipeline jusqu’au build terminé et ne voulez valider que ce qui part en production.

Dans votre assistant IA
Dans _bmad/config.yaml, passe execution_mode à autopilot, mets les points de contrôle discovery, architecture et story sur notify_only et garde delivery sur require_approval. Montre-moi ensuite le bloc modifié.

Ce que vous devriez obtenir L’assistant modifie le fichier pour qu’il indique execution_mode: autopilot, avec les points discovery, architecture et story sur notify_only et delivery sur require_approval. Au prochain autopilot, Nexus rend compte aux trois premiers points et poursuit, puis s’arrête à la livraison avec un point de contrôle à relire.

Le bloc swarm

Le bloc swarm est la seule partie que la CLI applique. Un bloc absent, ou une clé absente, vaut les valeurs par défaut : 26 sous-agents par exécution, 10 par vague. Quand bmad-plus swarm init reçoit plus d’unités que swarm.budget sans --approved, il n’écrit rien et sort avec le code 2 : un humain décide. La génération de médias payante est hors de tout budget.

Relever le budget de l’essaim à 50

Un panel de 30 acheteurs simulés a été refusé avec « needs approval » parce que le budget est de 26 ; vous décidez d’accepter des panels jusqu’à 50 sans redemander.

Dans votre assistant IA
Dans _bmad/config.yaml, mets swarm.budget à 50 et laisse wave et media_credits tels quels. Relance ensuite le même swarm init sans --approved.

Ce que vous devriez obtenir Comme 30 ne dépasse plus le budget, init ne s’arrête plus avec le code 2 : il crée l’exécution et affiche la ligne du panel (par exemple « panel of 30 units, budget 50 »). Une demande de 60 unités serait toujours refusée tant que vous ne passez pas --approved.

Comment install traite un fichier existant

  • Les clés existantes l’emportent : relancer install n’écrase jamais une valeur que vous avez changée.
  • Les clés manquantes sont ajoutées avec leur valeur par défaut, y compris les clés manquantes à l’intérieur d’un bloc comme uat ou swarm. C’est ainsi qu’un projet installé avec une ancienne version gagne les blocs plus récents.
  • Les réponses que vous donnez explicitement remplacent la valeur stockée : les champs de l’assistant (nom, langue de communication, mode d’exécution), --mode et l’URL d’un environnement de test.
  • Dès que quelque chose change, le fichier est réécrit par un écrivain YAML sous l’en-tête « BMAD+ Project Configuration ». Les commentaires ajoutés à la main ne sont pas conservés dans ce cas.
  • Si le fichier n’est pas un mapping YAML, install le laisse intact et avertit : « _bmad/config.yaml could not be parsed; it was left unchanged. »
  • uninstall conserve ce fichier, car il contient vos réglages.

Erreurs possibles

Erreurs de configuration signalées par la CLI
MessageCauseQue faire
_bmad/config.yaml: swarm.budget must be an integer from 1 to 1000.budget (ou wave, même message avec son nom) n’est pas un entier dans la plage.Écrivez un entier simple, par exemple budget: 50.
_bmad/config.yaml: swarm.media_credits must be "ask".Une autre valeur a été écrite.Mettez media_credits: "ask" ou supprimez la ligne.
_bmad/config.yaml: swarm has an unknown key "<name>".Une clé autre que budget, wave, media_credits figure dans le bloc.Supprimez-la ou corrigez l’orthographe.
_bmad/config.yaml is not valid YAML: …Le fichier ne peut pas être analysé.Corrigez l’indentation ou les guillemets indiqués dans le message.
_bmad/config.yaml: user_name must be a nonempty stringstudio exige que ses cinq clés texte (user_name, communication_language, document_output_language, output_folder, project_name) soient des chaînes non vides lorsqu’elles sont présentes.Donnez à la clé une valeur texte ou supprimez-la pour revenir à la valeur par défaut.