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

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

Documentation BMAD+ › [Référence](https://bmad-plus.rochetta.fr/fr/docs/reference/) › Fichier de configuration

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

<a id="generated"></a>
## 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**

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

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.

<a id="keys"></a>
## Chaque clé

**Clés de _bmad/config.yaml**

| Clé | Défaut | Lue par | Effet |
| --- | --- | --- | --- |
| `user_name` | réponse de l’assistant, sinon le nom d’utilisateur système, sinon `Developer` | CLI (`studio`) et agents | Le nom que les agents emploient pour vous saluer. Doit être un texte non vide pour `studio`. |
| `communication_language` | nom de la langue de `--lang`, sinon la langue du système si elle est prise en charge, sinon `English` | CLI (`studio`, `uat`) et agents | Langue dans laquelle les agents répondent. `uat build` ouvre la page de recette dans cette langue. |
| `document_output_language` | comme `communication_language` | CLI (`studio`) et agents | Langue des documents que les agents écrivent (briefs, PRD, rapports). |
| `output_folder` | `_bmad-output` | CLI (`studio`) et agents | Où les agents déposent leurs livrables. Pour `studio`, le chemin doit être relatif au projet. |
| `project_name` | nom du dossier du projet | CLI (`studio`) et agents | Le nom du projet utilisé dans les documents. |
| `execution_mode` | `manual` | Agents, via les instructions de leurs compétences | `manual` : 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_activation` | `true` | Agents, via les instructions de leurs compétences | `true` : 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_execution` | `true` | Agents, via les instructions de leurs compétences | `true` : le Parallel Supervisor peut mener des tâches indépendantes en parallèle. `false` : séquentiel uniquement. |
| `checkpoints.discovery` | `require_approval` | Agents, via les instructions de leurs compétences | Arrêt après le brief produit, le PRD et la revue UX. |
| `checkpoints.architecture` | `require_approval` | Agents, via les instructions de leurs compétences | Arrêt après l’architecture, avant tout code. |
| `checkpoints.story` | `require_approval` ; `notify_only` si installé avec `--mode autopilot` | Agents, via les instructions de leurs compétences | Appliqué après chaque story terminée. |
| `checkpoints.delivery` | `require_approval` | Agents, via les instructions de leurs compétences | Appliqué à la livraison finale. Avec `uat.mode: gate`, il attend aussi un `uat gate` réussi. |
| `uat.mode` | `advisory` | Agents, via les instructions de leurs compétences | `advisory` : 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.granularity` | `delivery` | Agents, via les instructions de leurs compétences | `delivery` : une recette par livraison. `story` : la page est construite et remise tout de suite, story par story. |
| `uat.environment` | `name` et `url` vides, ou `TEST` et votre URL | Agents, via les instructions de leurs compétences | L’environnement de test sur lequel la recette est jouée. |
| `uat.page_budget` | `max_steps: 15`, `max_minutes: 30` | Agents, via les instructions de leurs compétences | Cible de taille d’une page de recette : au plus ce nombre d’étapes et de minutes pour le testeur. |
| `uat.dir` | `_bmad-output/uat` | Indique l’emplacement ; `bmad-plus uat` le prend dans `--dir` | Dossier des spécifications, pages, résultats et tris de recette. Sa valeur par défaut est la même. |
| `swarm.budget` | `26` | CLI (`swarm`) et agents | Nombre de sous-agents qu’une exécution d’essaim peut employer avant que l’hôte doive vous demander. Entier de 1 à 1000. |
| `swarm.wave` | `10` | CLI (`swarm`) et agents | Nombre de sous-agents lancés ensemble. Entier de 1 à 1000. |
| `swarm.media_credits` | `ask` | CLI (`swarm`) et agents | La 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. |

<a id="checkpoints"></a>
## 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**

| Valeur | Comportement |
| --- | --- |
| `require_approval` | Arrê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_only` | Rend compte de l’avancement dans la session et continue. |
| `auto` | Continue 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.

<a id="example-cli-config-autopilot-delivery-only"></a>
### 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**

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

<a id="swarm-block"></a>
## 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.

<a id="example-cli-config-raise-swarm-budget"></a>
### 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**

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

<a id="reinstall"></a>
## 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.

<a id="errors"></a>
## Erreurs possibles

**Erreurs de configuration signalées par la CLI**

| Message | Cause | Que 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 string` | `studio` 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. |

**Voir aussi**

- [install : comment le fichier est créé](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-install/)
- [swarm : budget, vagues et approbation](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-swarm/)
- [uat : recettes d’acceptation](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-uat/)
- [Arborescence du projet](https://bmad-plus.rochetta.fr/fr/docs/reference/project-layout/)
- [Dépannage](https://bmad-plus.rochetta.fr/fr/docs/faq/troubleshooting/)

[Documentation BMAD+](https://bmad-plus.rochetta.fr/fr/docs/) · [Référence](https://bmad-plus.rochetta.fr/fr/docs/reference/)

[Code sur GitHub](https://github.com/lrochetta/BMAD-PLUS)
