Parcourez une arborescence, trouvez vos projets, détectez leur pile et leur activité, puis indexez-les dans le cerveau global pour que BMAD+ connaisse tout votre portefeuille.
scan répond à la question « quels projets ai-je, et lesquels utilisent déjà BMAD+ ? ». Elle parcourt un dossier, reconnaît les racines de projet, devine la pile, classe chaque projet en actif, en pause ou archivé, et enregistre une petite fiche par projet dans le cerveau global, le dossier de mémoire personnel partagé par tous vos projets (~/.bmad-plus/brain). Elle sert à qui garde beaucoup de dépôts et veut qu’un agent, en général Zecher, les connaisse tous.
Un dossier est une racine de projet s’il contient l’un de ces fichiers, testés dans cet ordre : package.json, Cargo.toml, pyproject.toml, requirements.txt, go.mod, composer.json, Gemfile, pom.xml, build.gradle. Le parcours ne descend pas dans un projet dont il a trouvé la racine.
Un dossier situé sous le point de départ qui a un dossier .git mais aucun de ces fichiers est aussi un projet, avec la pile « Unknown ». Le dossier de départ lui-même ne compte que par les fichiers marqueurs.
La pile vient du marqueur : Rust, Python, Go, PHP, Ruby, Java ou Java/Kotlin, et pour package.json l’un de Next.js, Nuxt, React, Vue.js, Svelte, Express, Fastify, Electron, Tauri (testés dans cet ordre sur dependencies et devDependencies), sinon Node.js.
Ces dossiers sont ignorés : node_modules, .git, vendor, __pycache__, dist, build, .next, .nuxt, .svelte-kit, target, .venv, venv, .cache, .output, coverage, .turbo, .angular, ainsi que les dossiers système Windows $RECYCLE.BIN, System Volume Information, Windows, Program Files, Program Files (x86), ProgramData, AppData, Recovery, PerfLogs. Tout autre dossier dont le nom commence par un point l’est aussi. Les dossiers illisibles sont ignorés sans bruit.
L’activité est la date de modification du dossier du projet lui-même. Elle change quand des entrées sont ajoutées ou retirées directement dedans, pas quand vous éditez un fichier plus profond : un projet très actif peut donc apparaître « paused ». Ajustez --active-days et --paused-days si les étiquettes ne correspondent pas à votre façon de travailler.
La colonne BMAD+ affiche une coche quand le projet a un dossier .agents ou _bmad.
Une fiche par projet indexé : path, name, hash, stack, status, bmad_installed, has_git, last_scanned (une date). Le hash de 8 caractères vient du chemin du projet : scanner deux fois le même projet met sa fiche à jour au lieu d’en ajouter une seconde.
.bmad-plus/brain/projects-index.md
Un tableau Markdown de toutes les fiches du dossier projects/ (pas seulement celles de ce passage), réécrit après chaque scan qui indexe quelque chose.
Les projets parcourus ne sont que lus, jamais modifiés. L’emplacement du cerveau est fixe, ~/.bmad-plus/brain : scan ne suit ni la variable BMAD_PLUS_BRAIN ni un dossier _brain de portefeuille que install aurait pu lier. Aucune requête réseau n’est faite.
Toute fin normale : indexé, rien trouvé, annulé, et aussi « Directory not found ».
1
Une erreur inattendue s’est échappée (la CLI affiche BMAD+: <message>). scan ne fixe aucun autre code.
Remarque· Ne comptez pas sur le code de sortie dans un script
Un mauvais chemin se termine quand même par le code 0 après l’erreur affichée. Dans un script, vérifiez le dossier vous-même avant d’appeler scan, et passez --yes pour que rien n’attende de réponse.
Scan d’un dossier de travail avec --yes (simulé)Simulé
$ npx bmad-plus scan ~/work --depth 3 --yesBMAD+ Project ScannerFound 3 project(s) Legend: ● active modified < 30 days ago (2 found) ◐ paused modified 30–180 days ago (1 found) ○ archived modified > 180 days ago (0 found) # Status BMAD+ Stack Name Path ────────────────────────────────────────────────────────────────────────────────────────── 1 ● active ✓ Next.js invoice-app /home/me/work/invoice-app 2 ● active · Python etl-jobs /home/me/work/etl-jobs 3 ◐ paused · Unknown notes-site /home/me/work/notes-site✅ 3 project(s) indexed in /home/me/.bmad-plus/brain/projects📋 Project index updated: /home/me/.bmad-plus/brain/projects-index.mdScan complete! 🧠
npx bmad-plus scan ~/work --depth 3 --yes
Transcription illustrative, non capturée lors d’une exécution réelle. Source: Composé à partir des modèles de messages de tools/cli/commands/scan.js ; couleurs, émojis et encadrement de la bibliothèque de consignes omis. Les noms et les chemins sont inventés.
Lisez le tableau de gauche à droite : le numéro, la classe d’activité, la présence de BMAD+, la pile détectée, le nom du projet (celui de package.json s’il y en a un, sinon le nom du dossier, coupé à 20 caractères) et le chemin (coupé à ses 37 derniers caractères s’il dépasse 40). Sans --yes, scan demande : tout indexer, choisir des projets dans une liste, ou passer.
Indexer un dossier de travail et trouver les projets sans BMAD+#
Vous gardez une douzaine de dépôts sous un même dossier et voulez la liste de ceux qui sont actifs et où BMAD+ n’est pas installé.
Dans votre assistant IA
Lance `npx bmad-plus scan ~/work --yes`. Lis ensuite ~/.bmad-plus/brain/projects-index.md et liste les projets dont le statut est active et dont la colonne BMAD+ est vide.
Ce que vous devriez obtenir La commande affiche la légende et le tableau, écrit une fiche <hash>.yaml par projet et réécrit projects-index.md. L’assistant lit ce tableau (colonnes Status, Name, Stack, BMAD+, Path ; une coche signifie installé, un point non installé) et renvoie les lignes actives avec un point. L’index couvre toutes les fiches du cerveau : il peut donc aussi citer des projets de scans ou d’installations précédents.
Laisser Zecher scanner avec votre accord projet par projet#
Nécessite le pack memory. C’est le flux de scan propre à l’agent, qui vous interroge sur chaque projet, et non la commande ci-dessus.
Dans votre assistant IA
Zecher, scanne les projets dans ~/work.
Ce que vous devriez obtenir Zecher parcourt le dossier, affiche un tableau (projet, pile, statut, BMAD+, dernière modification) et demande pour chaque projet : confirmer, modifier, passer, ou y installer BMAD+. Seuls les projets confirmés sont écrits dans ~/.bmad-plus/brain/projects/<hash>.yaml, l’index est mis à jour, et Zecher indique combien ont été indexés, nouveaux et mis à jour.