Dokumentation durchsuchen

scan

Ein Verzeichnis durchlaufen, Projekte finden, Stack und Aktivität erkennen und im globalen Gedächtnis indexieren, damit BMAD+ dein ganzes Portfolio kennt.

Auf dieser Seite
  1. Syntax
  2. Wie Projekte erkannt werden
  3. Was gelesen und geschrieben wird
  4. Exit-Codes
  5. Was du siehst
  6. Fehler und Abhilfe
  7. Beispiele

scan beantwortet die Frage „Welche Projekte habe ich, und welche nutzen schon BMAD+?“. Es durchläuft ein Verzeichnis, erkennt Projektwurzeln, schätzt den Stack, stuft jedes Projekt als aktiv, pausiert oder archiviert ein und legt pro Projekt eine kleine Karte im globalen Gedächtnis ab, dem persönlichen Gedächtnisordner, den alle deine Projekte teilen (~/.bmad-plus/brain). Es ist für alle, die viele Repositories führen und möchten, dass ein Agent, meist Zecher, sie alle kennt.

Syntax

Im Terminal deines Projekts
npx bmad-plus scan [path] [-d <path>] [--depth <n>] [--active-days <n>] [--paused-days <n>] [-y] [-l <code>]

Optionen von scan
OptionArgumentStandardWirkung
[path]Pfadaktuelles VerzeichnisZu durchsuchendes Verzeichnis. Sind [path] und -d beide angegeben, gewinnt [path].
-d, --directory <path>Pfadaktuelles VerzeichnisWie [path], als Option.
--depth <n>Ganzzahl > 04Wie viele Ebenen unterhalb des durchsuchten Verzeichnisses gesucht wird.
--active-days <n>Ganzzahl > 030Ein Projekt, das vor weniger als so vielen Tagen geändert wurde, ist „active“.
--paused-days <n>Ganzzahl > 0180Vor weniger als so vielen Tagen geändert (aber nicht aktiv) ist „paused“; älter ist „archived“.
-y, --yeskeinerausIndexiert alle gefundenen Projekte ohne Rückfrage.
-l, --lang <code>en, fr, es, de, pt-br, ru, zh, he, ja, itenWird der Einheitlichkeit halber akzeptiert; scan gibt Englisch aus.

Wie Projekte erkannt werden

  • Ein Ordner ist eine Projektwurzel, wenn er eine dieser Dateien enthält, in dieser Reihenfolge geprüft: package.json, Cargo.toml, pyproject.toml, requirements.txt, go.mod, composer.json, Gemfile, pom.xml, build.gradle. In ein Projekt, dessen Wurzel gefunden wurde, steigt der Lauf nicht weiter hinab.
  • Ein Ordner unterhalb des Startpunkts, der ein Verzeichnis .git, aber keine dieser Dateien hat, ist ebenfalls ein Projekt, mit dem Stack „Unknown“. Das Startverzeichnis selbst zählt nur über die Markierungsdateien.
  • Der Stack kommt von der Markierung: Rust, Python, Go, PHP, Ruby, Java oder Java/Kotlin, und bei package.json eines von Next.js, Nuxt, React, Vue.js, Svelte, Express, Fastify, Electron, Tauri (in dieser Reihenfolge gegen dependencies und devDependencies geprüft), sonst Node.js.
  • Diese Ordner werden übersprungen: node_modules, .git, vendor, __pycache__, dist, build, .next, .nuxt, .svelte-kit, target, .venv, venv, .cache, .output, coverage, .turbo, .angular sowie die Windows-Systemordner $RECYCLE.BIN, System Volume Information, Windows, Program Files, Program Files (x86), ProgramData, AppData, Recovery, PerfLogs. Jeder andere Ordner, dessen Name mit einem Punkt beginnt, wird ebenfalls übersprungen. Nicht lesbare Ordner werden still übergangen.
  • Die Aktivität ist die Änderungszeit des Projektordners selbst. Sie ändert sich, wenn direkt darin Einträge hinzukommen oder wegfallen, nicht wenn du eine tiefer liegende Datei bearbeitest; ein reges Projekt kann also trotzdem „paused“ anzeigen. Passe --active-days und --paused-days an, wenn die Bezeichnungen nicht zu deiner Arbeitsweise passen.
  • Die Spalte BMAD+ zeigt ein Häkchen, wenn das Projekt einen Ordner .agents oder _bmad hat.

Was gelesen und geschrieben wird

Dateien, die scan schreibt
Pfad (unter deinem Home-Ordner)Inhalt
.bmad-plus/brain/projects/<hash>.yamlEine Karte pro indexiertem Projekt: path, name, hash, stack, status, bmad_installed, has_git, last_scanned (ein Datum). Der 8-stellige Hash stammt vom Projektpfad; derselbe Projektordner zweimal gescannt aktualisiert seine Karte, statt eine zweite anzulegen.
.bmad-plus/brain/projects-index.mdEine Markdown-Tabelle aller Karten im Ordner projects/ (nicht nur der aktuellen Runde), neu geschrieben nach jedem Scan, der etwas indexiert.

Die gescannten Projekte werden nur gelesen, nie verändert. Der Ort des Gedächtnisses ist fest, ~/.bmad-plus/brain: scan folgt weder der Variable BMAD_PLUS_BRAIN noch einem Portfolio-Ordner _brain, den install verknüpft haben könnte. Es erfolgt keine Netzwerkanfrage.

Exit-Codes

Exit-Codes von scan
CodeBedeutung
0Jedes normale Ende: indexiert, nichts gefunden, abgebrochen und auch „Directory not found“.
1Ein unerwarteter Fehler ist durchgeschlagen (die CLI gibt BMAD+: <message> aus). scan setzt keinen anderen Code.

Hinweis Verlass dich in Skripten nicht auf den Exit-Code

Ein falscher Pfad endet nach der Fehlermeldung trotzdem mit Code 0. Prüfe in einem Skript das Verzeichnis selbst, bevor du scan aufrufst, und übergib --yes, damit nichts auf eine Antwort wartet.

Was du siehst

Scan eines Arbeitsordners mit --yes (simuliert)Simuliert
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! 🧠

Beispielhafter Ablauf, nicht bei einem echten Lauf aufgezeichnet. Quelle: Zusammengesetzt aus den Meldungsvorlagen in tools/cli/commands/scan.js; Farben, Emojis und der Rahmen der Prompt-Bibliothek ausgelassen. Namen und Pfade sind erfunden.

Lies die Tabelle von links nach rechts: Nummer, Aktivitätsklasse, ob BMAD+ installiert ist, erkannter Stack, Projektname (aus package.json, falls vorhanden, sonst der Ordnername, auf 20 Zeichen gekürzt) und Pfad (auf die letzten 37 Zeichen gekürzt, wenn er länger als 40 ist). Ohne --yes fragt scan stattdessen: alles indexieren, Projekte aus einer Liste wählen oder überspringen.

Fehler und Abhilfe

Meldungen von scan
MeldungUrsacheAbhilfe
Directory not found: <path>, dann Scan failed.Das Verzeichnis existiert nicht. Der Exit-Code bleibt 0.Korrigiere den Pfad.
Invalid --depth "<v>", defaulting to 4 (ebenso für --active-days, Standard 30, und --paused-days, Standard 180)Der Wert ist keine positive Ganzzahl; der Standard wird genutzt und der Scan läuft weiter.Gib eine ganze Zahl größer als null an.
No projects found., dann Try scanning a different directory or increasing --depthKeine Markierungsdatei und kein .git-Ordner innerhalb der Tiefe, oder alles lag in einem übersprungenen Ordner.Scanne den übergeordneten Ordner oder erhöhe --depth.
Scan cancelled.Du hast „Skip“ gewählt oder eine Frage abgebrochen. Es wurde nichts geschrieben.Starte erneut und wähle „Index all“ oder wähle Projekte aus.

Beispiele

Einen Arbeitsordner indexieren und Projekte ohne BMAD+ finden

Du hältst etwa ein Dutzend Repositories unter einem Ordner und möchtest die Liste der aktiven, in denen BMAD+ nicht installiert ist.

In deinem KI-Assistenten
Führe `npx bmad-plus scan ~/work --yes` aus. Lies danach ~/.bmad-plus/brain/projects-index.md und liste die Projekte mit Status active und leerer BMAD+-Spalte auf.

Das solltest du erhalten Der Befehl gibt Legende und Tabelle aus, schreibt pro Projekt eine Karte <hash>.yaml und schreibt projects-index.md neu. Der Assistent liest diese Tabelle (Spalten Status, Name, Stack, BMAD+, Path; Häkchen heißt installiert, Punkt nicht installiert) und liefert die aktiven Zeilen mit Punkt. Der Index umfasst alle Karten im Gedächtnis, kann also auch Projekte aus früheren Scans oder Installationen nennen.

Zecher scannen lassen, mit deiner Freigabe pro Projekt

Erfordert das Pack memory. Das ist der eigene Scan-Ablauf des Agenten, der dich zu jedem Projekt fragt, nicht der Befehl oben.

In deinem KI-Assistenten
Zecher, scanne die Projekte in ~/work.

Das solltest du erhalten Zecher durchläuft den Ordner, zeigt eine Tabelle (Projekt, Stack, Status, BMAD+, zuletzt geändert) und fragt zu jedem Projekt: bestätigen, bearbeiten, überspringen oder dort BMAD+ installieren. Nur bestätigte Projekte werden nach ~/.bmad-plus/brain/projects/<hash>.yaml geschrieben, der Index wird aktualisiert, und Zecher meldet, wie viele indexiert, neu und aktualisiert wurden.