Parcourir la documentation

scan

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.

Sur cette page
  1. Synopsis
  2. Comment elle reconnaît les projets
  3. Ce qu’elle lit et écrit
  4. Codes de sortie
  5. Ce que vous voyez
  6. Erreurs et que faire
  7. Exemples

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.

Synopsis

Dans le terminal de votre projet
npx bmad-plus scan [path] [-d <path>] [--depth <n>] [--active-days <n>] [--paused-days <n>] [-y] [-l <code>]

Options de scan
OptionArgumentDéfautEffet
[path]chemindossier courantDossier à parcourir. Si [path] et -d sont donnés, [path] l’emporte.
-d, --directory <path>chemindossier courantIdentique à [path], sous forme d’option.
--depth <n>entier > 04Nombre de niveaux à explorer sous le dossier parcouru.
--active-days <n>entier > 030Un projet modifié il y a moins de ce nombre de jours est « active ».
--paused-days <n>entier > 0180Modifié il y a moins de ce nombre de jours (sans être actif), il est « paused » ; plus ancien, « archived ».
-y, --yesaucundésactivéIndexe tous les projets trouvés sans demander.
-l, --lang <code>en, fr, es, de, pt-br, ru, zh, he, ja, itenAcceptée par cohérence avec les autres commandes ; scan affiche en anglais.

Comment elle reconnaît les projets

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

Ce qu’elle lit et écrit

Fichiers écrits par scan
Chemin (sous votre dossier personnel)Contenu
.bmad-plus/brain/projects/<hash>.yamlUne 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.mdUn 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.

Codes de sortie

Codes de sortie de scan
CodeSignification
0Toute fin normale : indexé, rien trouvé, annulé, et aussi « Directory not found ».
1Une 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.

Ce que vous voyez

Scan d’un dossier de travail avec --yes (simulé)Simulé
npx bmad-plus scan ~/work --depth 3 --yes
BMAD+ Project Scanner
Found 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.md
Scan complete! 🧠

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.

Erreurs et que faire

Messages de scan
MessageCauseQue faire
Directory not found: <path> puis Scan failed.Le dossier n’existe pas. Le code de sortie reste 0.Corrigez le chemin.
Invalid --depth "<v>", defaulting to 4 (idem pour --active-days, défaut 30, et --paused-days, défaut 180)La valeur n’est pas un entier positif ; la valeur par défaut est utilisée et le scan continue.Donnez un nombre entier supérieur à zéro.
No projects found. puis Try scanning a different directory or increasing --depthAucun fichier marqueur ni dossier .git dans la profondeur donnée, ou tout se trouvait dans un dossier ignoré.Parcourez le dossier parent, ou augmentez --depth.
Scan cancelled.Vous avez choisi « Skip » ou annulé une question. Rien n’a été écrit.Relancez et choisissez « Index all » ou sélectionnez des projets.

Exemples

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.