# Arborescence du projet

> Chaque dossier et fichier que BMAD+ crée dans un projet et sur votre machine, la commande qui le crée, et s’il vous appartient, s’il est géré par BMAD+ ou s’il s’agit d’un état à ne pas toucher.

Canonical: https://bmad-plus.rochetta.fr/fr/docs/reference/project-layout/
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/) › Arborescence du projet

BMAD+ écrit dans quelques endroits bien nommés, et nulle part ailleurs. Savoir lequel est lequel répond aux trois questions pratiques : qu’est-ce que je peux modifier, que dois-je versionner, et que devient-il si je désinstalle. Cette page les cartographie tous.

<a id="map"></a>
## La carte

**Un projet avec plusieurs packs après un peu d’usage (les dossiers apparaissent quand on lance les commandes qui les créent)**

```text
your-project/
├── AGENTS.md                      common spine for every assistant
├── CLAUDE.md, GEMINI.md, ...      one adapter per selected tool
├── .agents/
│   ├── skills/                    agents, packs and skills (agent-*, pack-*, bmad-plus-*, ...)
│   ├── data/role-triggers.yaml    auto-activation rules
│   └── memory/                    project memory (Memory pack)
├── _bmad/
│   ├── config.yaml                your settings
│   ├── module.yaml, module-help.csv
│   ├── .bmad-plus-install.json    install manifest (ownership hashes)
│   └── update-policy.json         only after update-policy
├── _bmad-output/                  deliverables written by agents and commands
│   ├── discovery/  build/         created by install
│   └── uat/  review/  assurance/  design/  dev-studio/  osint-reports/  ready-to-integrate/
├── .bmad/                         local state: caches, locks, receipts, journals, Python environments
├── .bmad-plus/                    durable run state: swarm/ and nexus/
├── docs/                          created empty by install
└── backups/                       only with the Backup pack
```

<a id="who-owns-what"></a>
## À qui appartient quoi

La propriété est enregistrée, pas devinée. À l’installation, BMAD+ conserve l’empreinte de contenu de chaque fichier qu’il copie sous `.agents/` et de `_bmad/module.yaml` et `_bmad/module-help.csv` : cette liste est l’inventaire des fichiers du manifeste. Un fichier dont l’empreinte correspond encore appartient à BMAD+ : `update` le rafraîchit, `uninstall` le retire. Un fichier que vous avez modifié, ou que BMAD+ n’a jamais livré, est à vous : `update` le préserve et signale un conflit, `uninstall` le garde. Vos réglages, votre mémoire et les livrables de `_bmad-output/` ne figurent jamais dans l’inventaire.

**Chaque emplacement, qui le crée, et si vous le modifiez**

| Chemin | Créé par | À vous de le modifier ? | Remarques |
| --- | --- | --- | --- |
| `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `CONVENTIONS.md`, `.cursor/rules/bmad-plus.mdc`, `.codex/AGENTS.md`, `.opencode/AGENTS.md` | `install`, rafraîchis par `update` | Pas par conception | Générés depuis le registre. Si vous en modifiez un, BMAD+ garde votre version et cesse de le rafraîchir. Voir la page des adaptateurs. |
| `.agents/skills/` | `install`, `update` | Non : appartient à BMAD+ | Un dossier par agent (`agent-*`), par pack (`pack-<name>`) et par compétence (`bmad-plus-*`, `dev-studio`, `design`, ...). Les fichiers modifiés sont préservés comme conflits. |
| `.agents/data/role-triggers.yaml` | `install`, `update` | Non : appartient à BMAD+ | Les règles d’activation automatique des rôles d’agents. |
| `.agents/memory/` | `install` avec le pack Memory ; les agents y écrivent | Oui | `decisions.md`, `lessons.md`, `patterns.md`, `context.md`, un dossier `sessions/` et un pointeur `.brain-link` vers le cerveau utilisé. Les fichiers existants ne sont jamais écrasés et `uninstall` garde le dossier. |
| `_bmad/config.yaml` | `install` | Oui | Vos réglages ; voir la page de configuration. Conservé par `uninstall`. |
| `_bmad/module.yaml`, `_bmad/module-help.csv` | `install`, `update` | Non : appartient à BMAD+ | Description du module et index d’aide, suivis dans l’inventaire. |
| `_bmad/.bmad-plus-install.json` | `install`, `update` | Jamais à la main | Le manifeste : version, packs, outils, langue, mode d’exécution, empreintes des adaptateurs et inventaire des fichiers. S’il est illisible, `install` le copie en `.bmad-plus-install.json.corrupt.bak` avant de le réparer. |
| `_bmad/update-policy.json` | `update-policy` (quand vous enregistrez une politique) | Via la commande | Absent, il vaut la politique par défaut : notify. Un fichier invalide fait refuser les commandes de mise à jour. |
| `_bmad/review-rules.yaml`, `_bmad/assurance/`, `_bmad/ai-processing-register.yaml` | Vous, ou `assurance init` et `ai-register init` | Oui | Les règles de revue propres à votre projet, les dossiers d’assurance et le registre des intégrations d’IA. Aucun n’existe tant que vous ne le créez pas. |
| `_bmad-output/discovery/`, `_bmad-output/build/` | `install` (vides) | Oui | Là où vont le brief produit, le PRD, l’architecture et les stories. Jamais dans l’inventaire, donc jamais retirés. |
| `_bmad-output/uat/` | commandes `uat`, agents | Specs et tri : oui. Pages : à régénérer | `specs/`, `pages/`, `results/`, `triage/`, `checks/` et `ORDER.md`. Les résultats viennent des testeurs ; ne les modifiez pas. |
| `_bmad-output/review/<id>/` | commandes `review` | Non : preuves | `scope.json`, `checklist.md`, `findings.json`, `findings.anchored.json`, `coverage.json`, `continue.json`, `compare.json` pour une revue. |
| `_bmad-output/assurance/` | commandes `assurance` | Non : preuves | Le registre chaîné par empreintes (`runs.jsonl`) d’un dossier d’assurance. |
| `_bmad-output/design/`, `_bmad-output/dev-studio/`, `_bmad-output/osint-reports/`, `_bmad-output/ready-to-integrate/` | Atelier et `intake`, Dev Studio, Shadow, Maker | Oui | Briefs et revues de design, rapports Dev Studio (`<workflow-id>.md`), dossiers OSINT et agents empaquetés. Un brief écrit par `intake render` porte une ligne de propriété et est réécrit par la commande : modifiez les réponses, pas le brief. |
| `.bmad/update-check.json` | `update-check` | Jamais à la main | Un cache de 24 heures de la dernière réponse du registre, avec un délai avant nouvel essai après un échec. Sans risque à supprimer : il est reconstruit. |
| `.bmad/update.lock` | `install`, `update` (pendant leur exécution) | Seulement s’il est périmé | Empêche deux installations ou mises à jour simultanées. `doctor` indique quand il est périmé (propriétaire disparu, ou plus de 60 minutes) et le message nomme le fichier à supprimer. |
| `.bmad/updates/<receipt-id>/` | `update` | Jamais à la main | `receipt.json` et `backups/` d’une mise à jour. C’est ce que lit `update --restore <receipt-id>` : gardez-les tant que vous pourriez vouloir revenir en arrière. |
| `.bmad/venv/<pack>/` | `install --provision-python` | Jamais à la main | L’environnement Python isolé d’un pack qui en a besoin (SEO). |
| `.bmad/memory/` | commandes `mem` | Jamais à la main | `journal.ndjson`, `pattern-scores.json` et les journaux de promotions et de résultats : le journal de mémoire. |
| `.bmad-plus/swarm/runs/<run-id>/`, `.bmad-plus/swarm/reports/` | commandes `swarm` | Jamais à la main | Un dossier par exécution d’essaim (définition, fiches, briefs, réponses, décompte). La commande n’écrit que sous cette arborescence. Ajoutez les réponses avec `swarm save`. |
| `.bmad-plus/nexus/runs/` | commandes `nexus` | Jamais à la main | L’état de référence des exécutions de tâches durables. Un `.bmad-plus/orchestrator-state.yaml` peut se trouver à côté, comme simple résumé de navigation. |
| `backups/` | Backup Manager (pack Backup) | Oui | Archives ZIP horodatées du projet. Le pack Backup exclut ce dossier de ses propres archives. |
| `~/.bmad-plus/brain/` | `install` avec le pack Memory (si aucun autre cerveau n’est trouvé), `scan` | Oui | Hors du projet, dans votre dossier personnel : le cerveau global partagé par tous vos projets. Jamais touché par `uninstall`. |

<a id="git"></a>
## Quoi versionner

`install` ne modifie pas `.gitignore` : tout ce que vous n’ignorez pas apparaîtra dans `git status`. Le choix vous revient ; le tableau ci-dessus donne les faits pour décider. Dans l’exécution de recette enregistrée, le projet de démonstration ignorait déjà les chemins installés, et `git status --short` est resté vide après l’installation.

- À partager avec l’équipe : `_bmad/config.yaml` (comportement commun), `.agents/memory/` (décisions et leçons communes), les livrables de `_bmad-output/`, et `_bmad/update-policy.json` si la politique est une règle d’équipe.
- Reproductibles depuis le paquet, donc une équipe peut préférer les ignorer : `.agents/skills/`, `.agents/data/`, les fichiers d’adaptateurs générés. Quiconque clone le projet lance alors `install` une fois.
- État local sans sens sur une autre machine : `.bmad/` et `.bmad-plus/`.

> **Remarque · Ceci est une suggestion** Ce partage suit la façon dont chaque emplacement est produit et utilisé ; BMAD+ lui-même n’impose aucune politique de versionnement.

<a id="uninstall"></a>
## Ce que uninstall retire et garde

**Effet de uninstall**

| Retiré | Conservé |
| --- | --- |
| Fichiers identiques octet pour octet à ce que BMAD+ livre sous `.agents/skills/` et `.agents/data/`, y compris les compétences copiées du paquet Design | `.agents/memory/`, `_bmad/config.yaml`, `_bmad-output/`, tout fichier modifié, tout fichier non livré par BMAD+ |
| Les fichiers du module, le manifeste d’installation, et les adaptateurs qui portent encore le marqueur d’installation et une empreinte correspondante (`AGENTS.md`, `CLAUDE.md`, ...) | `.bmad/`, `.bmad-plus/` (état des exécutions et reçus), et `~/.bmad-plus/brain` |
| Les dossiers laissés vides sont supprimés ; rien n’est supprimé récursivement | Tout ce qui est sous un lien symbolique ou une jonction : uninstall refuse de toucher aux chemins liés |

**Uninstall en pratique**

```text
$ npx bmad-plus uninstall --yes --directory .\demo-app
T   BMAD+ Uninstaller
•  BMAD+ v0.23.0 (installé le 2026-10-18)
•  Packs sélectionnés: core, design
—  La mémoire, les réglages et les fichiers inconnus ou modifiés ont été conservés.
# La ligne donnant le nombre d’éléments retirés est volontairement omise : la première exécution enregistrée, qui avait révélé un défaut laissant les compétences Design en place, affichait un nombre qui ne vaut plus après la correction.
```

Sortie capturée lors d’une exécution réelle. Source: Capturé pendant deux recettes d’acceptation de la 0.23.0, le 2026-10-18 (lignes d’en-tête, puis l’attendu de l’étape 7) ; l’installateur tournait en français

<a id="examples"></a>
## Exemple

<a id="example-cli-layout-clean-up-safely"></a>
### Faire le ménage de l’état local sans rien perdre d’important

Le dossier du projet est encombré après des mois de mises à jour et d’exécutions d’essaim, et vous voulez savoir ce qu’on peut supprimer sans risque.

**Dans votre assistant IA**

```text
Liste ce qu’il y a sous .bmad et .bmad-plus dans ce projet, dis ce qu’est chaque élément, et indique ce que je peux supprimer sans perdre la mémoire du projet, les réglages ni la possibilité de restaurer une mise à jour.
```

**Ce que vous devriez obtenir** Une réponse fidèle distingue trois groupes. `update-check.json` est un cache, reconstruit à la prochaine vérification. `updates/<receipt-id>/` contient les sauvegardes dont `update --restore` a besoin : ne supprimez que les reçus vers lesquels vous ne reviendrez jamais. `update.lock` ne se supprime que si `doctor` le déclare périmé. `.bmad/memory/` contient le journal d’événements et les résultats que lisent `mem recall` et `mem observe`, et `swarm/runs/` et `nexus/runs/` sont les preuves d’exécutions passées : ne les supprimez que si vous n’avez plus besoin de cet historique ni de ces preuves. La mémoire du projet en Markdown vit dans `.agents/memory/` et les réglages dans `_bmad/config.yaml`, que rien de cela ne touche.

**Voir aussi**

- [Le fichier de configuration](https://bmad-plus.rochetta.fr/fr/docs/reference/config-yaml/)
- [Adaptateurs](https://bmad-plus.rochetta.fr/fr/docs/reference/adapters/)
- [Installer, mettre à jour, désinstaller](https://bmad-plus.rochetta.fr/fr/docs/guides/install-lifecycle/)
- [uninstall](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-uninstall/)
- [doctor](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-doctor/)

[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)
