# Comment fonctionne BMAD+

> Ce que BMAD+ installe dans votre projet, qui exécute quoi, et comment une demande comme « Atlas, ... » devient des fichiers : exécution par l’hôte, socle AGENTS.md, packs, agents, compétences.

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

Documentation BMAD+ › [Concepts](https://bmad-plus.rochetta.fr/fr/docs/concepts/) › Comment fonctionne BMAD+

Cette page explique la mécanique d’un seul tenant, pour qui veut savoir ce qui se passe après `npx bmad-plus install` avant de lui confier un projet. BMAD+ n’est pas un programme qui exécute vos agents. C’est un ensemble de fichiers (instructions, rôles, workflows) et un petit outil en ligne de commande qui tient des registres. Votre outil de codage IA, appelé l’hôte dans ces pages, lit les fichiers et fait le travail avec son propre modèle et ses propres permissions.

<a id="host-managed"></a>
## L’exécution est confiée à l’hôte

Le registre l’énonce comme un contrat : `execution: host-managed`, `lifecycle_events: not-integrated`. Concrètement, cela fait quatre choses. L’hôte fournit le modèle : BMAD+ ne détient aucune clé d’API et n’appelle aucun modèle. L’hôte fournit les permissions : une modification de fichier ou une commande shell est autorisée ou refusée par votre outil, pas par BMAD+. L’hôte fournit les sous-agents parallèles éventuels. Et rien ne tourne en arrière-plan : ni démon, ni planificateur, ni télémétrie.

> **Remarque · Une exception facultative** Nexus peut lancer une commande locale ou un processus Codex CLI, mais seulement pour une tâche d’un plan que vous avez écrit, seulement avec un `nexus launch` explicite, et sous un superviseur au premier plan qui reste actif dans votre terminal. Rien n’est planifié. Voir la page Nexus.

<a id="vocabulary"></a>
## Le vocabulaire

**Termes utilisés dans toute la documentation**

| Terme | Sens | Où cela se trouve |
| --- | --- | --- |
| hôte | L’outil de codage IA qui lit les instructions et fait le travail : Claude Code, Gemini CLI, Cursor, Codex CLI, etc. | En dehors de BMAD+ |
| socle (spine) | Le fichier d’instructions unique que tous les outils lisent. Il liste les agents, les compétences, les règles de mémoire et les faits du registre. | `AGENTS.md` à la racine du projet (généré) |
| adaptateur | Un fichier court, au format attendu par un hôte, qui renvoie au socle et ajoute des notes propres à l’outil. | `CLAUDE.md`, `GEMINI.md`, `.cursor/rules/bmad-plus.mdc`, `.codex/AGENTS.md`, `.opencode/AGENTS.md`, `CONVENTIONS.md` |
| pack | Un groupe d’agents, de compétences et de workflows installés ensemble. Il y en a 10 ; Core est toujours installé. | Déclaré dans `registry.yaml` ; installé sous `.agents/skills/` |
| agent | Une persona nommée que vous interpellez par son nom (« Forge, ... »). 48 au total dans les packs, dont 15 points d’entrée de l’installateur. | `.agents/skills/<agent>/SKILL.md` ou dans un dossier de pack |
| rôle | Un mode à l’intérieur d’un agent. Atlas est Analyste ou Product Manager ; l’agent bascule sur demande ou selon le contexte. | Décrit dans le fichier de l’agent ; règles dans `.agents/data/role-triggers.yaml` |
| compétence (compétence) | Une procédure que l’hôte charge au besoin : un SKILL.md et ses fichiers de référence. Autopilot, intake, swarm et uat sont des compétences Core. | `.agents/skills/<skill>/SKILL.md` |
| workflow | Une procédure Markdown pas à pas dans un pack. Dev Studio en compte 38 ; Shield 11. | Dans le dossier du pack |
| registre | Le fichier unique qui déclare packs, agents, compétences, adaptateurs, pipelines et intakes. Tout ce qui est généré en dérive. | `registry.yaml` dans le dépôt source de BMAD+ |
| point de contrôle | Un endroit où une exécution autopilot s’arrête, informe ou continue, selon la configuration. | `checkpoints` dans `_bmad/config.yaml` |

<a id="what-install-writes"></a>
## Ce que l’installateur écrit

L’installation copie des fichiers dans votre projet et enregistre ce qu’elle a copié. Elle ne touche pas à votre code source et ne lance rien. La seule écriture hors du projet est le cerveau global du pack Memory, dans votre dossier personnel (ligne `~/.bmad-plus/brain/`). Le tableau liste les emplacements ; les dernières lignes n’apparaissent que lorsque vous utilisez la fonction correspondante.

**Fichiers et dossiers créés dans le projet**

| Chemin | Contenu | Écrit par |
| --- | --- | --- |
| `AGENTS.md` et les fichiers d’adaptateur | Le socle et les adaptateurs par outil. | install |
| `.agents/skills/` | Agents, compétences et dossiers de pack (`pack-<name>`). | install, update |
| `.agents/data/role-triggers.yaml` | Les règles d’activation automatique. | install, update |
| `_bmad/config.yaml` | Vos réglages : mode d’exécution, points de contrôle, uat, swarm. | install (fusionné à la réinstallation), vous |
| `_bmad/module.yaml`, `_bmad/module-help.csv` | Description du module et index d’aide. | install, update |
| `_bmad/.bmad-plus-install.json` | Le manifeste : version, packs, outils, un SHA-256 par fichier installé. | install, update |
| `_bmad-output/`, `docs/` | Là où vont les livrables (`discovery`, `build`, puis `design`, `review`, `uat`, `dev-studio` selon l’usage). | install crée les premiers dossiers ; les agents écrivent le reste |
| `.agents/memory/` | Décisions, leçons, motifs, contexte et passations de session (pack Memory uniquement). | install, agents, vous |
| `~/.bmad-plus/brain/` | Le cerveau global, hors du projet : `identity.yaml`, décisions, leçons et motifs globaux, et une entrée `projects/<hash>.yaml` par projet. Pack Memory uniquement : créé quand aucun cerveau n’est trouvé, complété (jamais écrasé) quand c’est le cerveau lié, laissé tel quel quand le projet est lié à un autre cerveau (un dossier `_brain/` ou `~/.claude/memory`). `.agents/memory/.brain-link` dans le projet indique quel cerveau est lié. | install (pack Memory), agents, vous |
| `.bmad-plus/swarm/`, `.bmad-plus/nexus/` | État des exécutions d’essaims et des plans Nexus. | la CLI, quand vous lancez ces commandes |
| `.bmad/` | Cache et reçus de mise à jour, journal de mémoire. | la CLI |

**Une installation et un diagnostic réels**

```text
$ npx bmad-plus install --yes --lang en --packs core,design,memory --tools claude-code
●  Selected packs: ⚙️ Core, 🧠 Memory, 🎨 Design
●  Detected IDEs: Claude Code
●  🧠 Global brain created: /home/dev/.bmad-plus/brain
◇  ✅ 6 agents, 9 skills, 5 files copied
◇  ✅ 1 IDE(s) configured
└  BMAD+ is ready! Talk to Atlas to get started 🚀
$ npx bmad-plus doctor
│  98/98 checks passed
│  0 error(s), 0 warning(s)
│  Installed: v0.23.0 | Executing CLI: v0.23.0
│  Ownership inventory: complete
│  Integrations use host-managed execution; host capabilities were not probed.
# Extrait : l’encadré de guide de l’installateur et les lignes vides ont été retirés, et le dossier personnel est abrégé. Les nombres dépendent des packs choisis. La ligne du cerveau n’apparaît que si le pack Memory ne trouve aucun cerveau existant.
```

Sortie capturée lors d’une exécution réelle. Source: bmad-plus 0.23.0, 2026-10-19

<a id="what-runs-where"></a>
## Qui exécute quoi

**Les quatre endroits où quelque chose s’exécute**

| Où | Ce qu’il fait | Ce qu’il ne fait jamais |
| --- | --- | --- |
| Votre outil IA (l’hôte) | Lit le socle et les compétences, dialogue avec son modèle, modifie des fichiers, exécute les commandes qu’il a le droit d’exécuter, lance des sous-agents s’il le peut. | Rien de ce que fait BMAD+ ne peut élever ses permissions. |
| La CLI `bmad-plus` | Tenue de registres déterministe sur des fichiers locaux : install, update, doctor, intake, swarm, nexus, review, uat, mem. Elle demande Node.js 20 ou plus récent. | Appeler un modèle, lancer un démon, envoyer de la télémétrie, commiter dans Git. |
| Le backend de processus facultatif | Avec `nexus launch`, exécute une commande ou un appel `codex exec` d’un plan que vous avez écrit, au premier plan, puis vérifie le résultat par des contrôles indépendants. | Tourner sans surveillance, ou accepter son propre résultat. |
| Les outils de pack (SEO, OSINT, Animated) | Des scripts Python et autres qu’un agent exécute avec votre accord : explorer un site que vous avez nommé, interroger un fournisseur dont vous avez saisi la clé. | Démarrer sans clé ni cible fournies par vous. |

<a id="request-flow"></a>
## D’une phrase à des fichiers

1. **Vous écrivez à votre hôte** Vous interpellez un agent par son nom dans la conversation de votre outil IA, dans votre langue.

   ```sh
   Atlas, help me define a small invoicing app for freelancers.
   ```
2. **L’hôte charge les instructions** L’hôte lit son fichier d’adaptateur, qui renvoie à `AGENTS.md`. Le socle nomme Atlas et le dossier de son SKILL.md. C’est la lecture de ce fichier qui transforme un assistant généraliste en la persona.
3. **Les réglages sont lus, puis Atlas attend** L’agent lit `_bmad/config.yaml` (votre langue, le mode d’exécution, le comportement des points de contrôle), vous salue et affiche son menu de capacités (par exemple `CB` pour un product brief, `MR` pour une étude de marché). Atlas attend votre choix : un numéro, un code ou une phrase qui correspond à l’un d’eux.
4. **Un rôle est choisi** Atlas a deux rôles, Analyste (recherche, découverte) et Product Manager (planification, product briefs, PRD). Un mot-clé comme « market » ou « PRD », ou une situation comme un nouveau projet, fait changer de rôle, et l’agent le dit. Le mode d’exécution et les points de contrôle décident ensuite s’il s’arrête pour demander ou continue.
5. **Un livrable est écrit** Une fois votre choix fait, par exemple `CB` pour créer un product brief, l’hôte écrit le résultat dans le projet avec ses propres permissions, normalement dans le dossier de sortie (`_bmad-output/` par défaut). Vous le relisez comme n’importe quel fichier.
6. **La CLI tient les registres quand il le faut** Pour l’intake, les essaims, les revues ou la recette, l’agent appelle `bmad-plus` pour valider, compter ou sceller des preuves. La CLI répond par des fichiers et des codes de sortie, jamais par des opinions.

<a id="roles-activation"></a>
## Comment les rôles basculent

Les règles se trouvent dans `.agents/data/role-triggers.yaml`. Chaque agent peut changer de rôle à trois niveaux, et il annonce le changement pour que vous puissiez le refuser.

**Les trois niveaux d’activation**

| Niveau | Déclencheur | Exemple |
| --- | --- | --- |
| Motif | Un mot-clé dans votre demande. | « review » fait entrer le rôle QA de Sentinel. |
| Contexte | Une situation détectée en cours de travail. | Une modification de plus de 5 fichiers fait entrer le rôle Architecte de Forge. |
| Raisonnement | Une conclusion atteinte pendant l’exécution. | Une implémentation qui révèle un défaut d’architecture fait entrer le rôle Architecte. |

L’annonce ressemble à « I’m switching to QA mode - financial calculations detected. Say ’skip’ to stay in current mode. » Mettre `auto_role_activation: false` dans `_bmad/config.yaml` désactive le basculement automatique ; vous pouvez toujours demander un rôle par son nom.

<a id="settings-and-modes"></a>
## Réglages et modes d’exécution

L’installateur écrit `_bmad/config.yaml` une fois et conserve vos modifications aux installations suivantes. `execution_mode` vaut `manual` par défaut : vous appelez chaque agent vous-même. `autopilot` laisse Nexus dérouler tout le pipeline ; `hybrid` est de l’autopilot avec des points de contrôle fréquents. Chaque point de contrôle (`discovery`, `architecture`, `story`, `delivery`) vaut `require_approval`, `notify_only` ou `auto`.

**_bmad/config.yaml tel qu’écrit par l’installateur 0.23.0 (abrégé ; booléens et nombres sont bruts, les chaînes entre apostrophes simples)**

```yaml
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'
swarm:
  budget: 26
  wave: 10
  media_credits: 'ask'
```

**Ce que fait un point de contrôle**

| Valeur | Comportement |
| --- | --- |
| `require_approval` | S’arrêter, présenter quelque chose de relisible, attendre. Une approbation antérieure qui couvre déjà l’action suivante n’est pas redemandée. |
| `notify_only` | Informer dans la session et continuer. |
| `auto` | Continuer et le consigner. |

<a id="generated-files"></a>
## Fichiers générés et vos modifications

Le socle et les adaptateurs sont générés à partir de `registry.yaml` dans le dépôt source de BMAD+, si bien que les nombres et les listes ne peuvent pas diverger des déclarations. Dans votre projet, vous pouvez quand même ajouter vos propres règles à un adaptateur. L’installateur enregistre un hash SHA-256 pour chaque fichier qu’il écrit ; un adaptateur ou une compétence dont le hash ne correspond plus est traité comme le vôtre et préservé par les mises à jour et par la désinstallation.

<a id="boundaries"></a>
## Ce que BMAD+ ne fait volontairement pas

- Pas de runtime de modèle : il n’appelle aucune API de LLM, ne détient aucune clé pour en utiliser une et n’exécute aucune boucle d’agent propre.
- Pas de processus en arrière-plan : ni démon, ni planificateur, ni exporteur de télémétrie, ni mise à jour automatique silencieuse.
- Pas de moteur de revue qui devine : les constats que le code ne permet pas d’ancrer sont signalés comme tels, jamais repositionnés par un modèle.
- Pas de correction automatique issue d’une revue : une revue n’accorde aucune permission d’écriture, et la recette humaine reste la porte de livraison.
- Pas d’extension d’IDE et pas de publication sur GitHub, GitLab ou d’autres forges.

**Voir aussi**

- [Votre première heure avec BMAD+](https://bmad-plus.rochetta.fr/fr/docs/guides/first-hour/)
- [Intake : demander d’abord](https://bmad-plus.rochetta.fr/fr/docs/concepts/intake/)
- [Les essaims de sous-agents](https://bmad-plus.rochetta.fr/fr/docs/concepts/swarm/)
- [Nexus, autopilot et travail parallèle](https://bmad-plus.rochetta.fr/fr/docs/concepts/nexus-orchestration/)
- [Le registre et les compétences](https://bmad-plus.rochetta.fr/fr/docs/concepts/registry-and-skills/)
- [Référence : config.yaml](https://bmad-plus.rochetta.fr/fr/docs/reference/config-yaml/)
- [Référence : outils et adaptateurs pris en charge](https://bmad-plus.rochetta.fr/fr/docs/reference/adapters/)

[Documentation BMAD+](https://bmad-plus.rochetta.fr/fr/docs/) · [Concepts](https://bmad-plus.rochetta.fr/fr/docs/concepts/)

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