Funktionen

Slash-Befehle

Erstelle benutzerdefinierte Slash-Befehle, um wiederkehrende Aufgaben zu automatisieren, integrierte Befehle auszuführen und die Funktionalität von Bob mit einfachen Markdown-Dateien zu erweitern.

Übersicht

Tippe / im Chat, um alle verfügbaren Befehle anzuzeigen, oder erstelle eigene, indem du eine Markdown-Datei in .bob/commands/ oder ~/.bob/commands/ hinzufügst.

Wesentliche Vorteile:

  • Workflow-Automatisierung: Verwandle komplexe mehrstufige Prozesse in einzelne Befehle
  • Team-Standardisierung: Teile Befehle mit deinem Team für konsistente Vorgehensweisen
  • Kontexterhaltung: Füge projektspezifischen Kontext in jeden Befehl ein
  • Schnellzugriff: Fuzzy-Suche und Autovervollständigung für sofortige Befehlserkennung

Integrierte Befehle

Bob enthält mehrere integrierte Befehle, die Kernfunktionalität bereitstellen:

/init

Initialisiere ein neues Projekt oder einen Workspace mit Bob. Dieser Befehl hilft dabei, die notwendige Konfiguration und Struktur für die Arbeit mit Bob in deinem Projekt einzurichten.

/review

Überprüfe Code-Änderungen mit umfassender Analyse. Dieser Befehl kann auf mehrere Arten verwendet werden:

  • /review – Überprüfe lokale nicht committete Änderungen in deinem Arbeitsverzeichnis
  • /review <branch> – Vergleiche einen Branch mit deinem aktuellen Branch (HEAD)
  • /review #<issue-number> --issue-coverage – Validiere lokale Änderungen gegenüber einem GitHub-Issue
  • /review <issue-url> --issue-coverage – Validiere lokale Änderungen gegenüber einer GitHub-Issue-URL

Der Review-Befehl führt eine gründliche Code-Analyse durch, einschließlich Bug-Erkennung, Sicherheitsprüfungen, Performance-Problemen und Stilkonsistenz.

/create-pr

Erstelle einen Pull Request mit KI-generierter Beschreibung. Dieser Befehl analysiert deine Änderungen und generiert eine umfassende PR-Beschreibung basierend auf dem Diff zwischen Branches.

Benutzerdefinierte Befehle erstellen

Benutzerdefinierte Befehle erweitern die Funktionalität von Bob, indem Markdown-Dateien in bestimmte Verzeichnisse hinzugefügt werden:

  • Projektspezifisch: .bob/commands/ im Workspace-Stammverzeichnis
  • Global: ~/.bob/commands/ in deinem Home-Verzeichnis

Der Dateiname wird zum Befehlsnamen. Zum Beispiel:

  • review.md/review
  • test-api.md/test-api
  • deploy-check.md/deploy-check

Verarbeitung von Befehlsnamen

Beim Erstellen von Befehlen über die Benutzeroberfläche werden Befehlsnamen automatisch verarbeitet:

  • In Kleinbuchstaben konvertiert
  • Leerzeichen durch Bindestriche ersetzt
  • Sonderzeichen entfernt
  • Führende/abschließende Bindestriche entfernt

Beispiel: „Mein Toller Befehl!" wird zu mein-toller-befehl

Einfaches Befehlsformat

Erstelle einen einfachen Befehl, indem du eine Markdown-Datei hinzufügst:

Help me review this code for security issues and suggest improvements.

Erweiterter Befehl mit Frontmatter

Füge Metadaten mit Frontmatter für erweiterte Funktionalität hinzu:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

Frontmatter-Felder

  • description: Erscheint im Befehlsmenü, um Benutzern den Zweck des Befehls zu verdeutlichen
  • argument-hint: Gibt einen Hinweis auf erwartete Argumente bei der Verwendung des Befehls

Benutzeroberfläche zur Befehlsverwaltung

Bob bietet eine dedizierte Benutzeroberfläche zur Verwaltung benutzerdefinierter Befehle.

Klicke auf das Befehls-Symbol im Bob-Panel, um den Befehlsmanager zu öffnen.

Einen neuen Befehl erstellen

  1. Gib deinen Befehlsnamen in das Eingabefeld ein (z. B. „Beispiel-Befehlsname")
  2. Klicke auf die Schaltfläche +, um den Befehl zu erstellen
  3. Eine neue Datei wird automatisch erstellt und geöffnet (z. B. beispiel-befehlsname.md)

Slash-Befehle verwenden

Tippe / im Chat, um ein einheitliches Menü mit beiden Befehlstypen anzuzeigen. Das Menü zeigt sowohl benutzerdefinierte Workflow-Befehle als auch Modusumschaltbefehle in der gleichen Oberfläche.

  1. Einheitliches Menü: Sowohl benutzerdefinierte Befehle als auch Modusumschaltbefehle erscheinen gemeinsam
  2. Autovervollständigung: Beginne mit der Eingabe, um Befehle zu filtern (z. B. zeigt /bsp beispiel-befehlsname)
  3. Fuzzy-Suche: Finde Befehle auch bei Teilübereinstimmungen
  4. Beschreibungsvorschau: Sieh Befehlsbeschreibungen im Menü
  5. Visuelle Indikatoren: Modebefehle werden mit speziellen Symbolen von benutzerdefinierten Befehlen unterschieden

Argument-Hinweise

Argument-Hinweise bieten sofortige Hilfe für Slash-Befehle und zeigen dir, welche Art von Information du angeben musst, wenn ein Befehl zusätzliche Eingaben erwartet.

Wenn du / tippst, um das Befehlsmenü aufzurufen, zeigen Befehle, die Argumente erwarten, einen hellgrauen Hinweis daneben an. Dieser Hinweis teilt dir mit, welche Art von Argument der Befehl erwartet.

Zum Beispiel:

  • /mode <mode_slug> – Der Hinweis <mode_slug> gibt an, dass du einen Modusnamen wie code oder debug angeben solltest
  • /api-endpoint <endpoint-name> <http-method> – Zeigt, dass du sowohl einen Endpunktnamen als auch eine HTTP-Methode benötigst

Nach der Auswahl des Befehls wird er gefolgt von einem Leerzeichen in das Chat-Eingabefeld eingefügt. Der Hinweis wird nicht eingefügt; er ist nur ein visueller Leitfaden, der dir hilft zu wissen, was du als Nächstes eingeben musst. Du musst das Argument dann manuell nach dem Befehl eintippen.

Argument-Hinweise zu benutzerdefinierten Befehlen hinzufügen

Du kannst Argument-Hinweise zu deinen benutzerdefinierten Befehlen über das argument-hint-Feld im Frontmatter hinzufügen:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.

Dies wird im Befehlsmenü als /api-endpoint <endpoint-name> <http-method> angezeigt.

Best Practices für Argument-Hinweise

  • Sei spezifisch: Verwende beschreibende Platzhalter wie <file-path> statt generischer wie <arg>
  • Mehrere Argumente anzeigen: Wenn dein Befehl mehrere Eingaben benötigt, zeige sie alle an: <source> <destination>
  • Konsistentes Format verwenden: Wickle Platzhalter immer in spitze Klammern ein: <platzhalter>
  • Halte es prägnant: Hinweise sollten kurz und klar sein

Häufige Fragen

  • „Was passiert, wenn ich das Argument nicht angebe?" Der Befehl funktioniert möglicherweise nicht wie erwartet oder fordert dich zur Eingabe weiterer Informationen auf. Der Hinweis soll dir helfen, es beim ersten Mal richtig zu machen.
  • „Haben alle Befehle Hinweise?" Nein, nur Befehle, die für die Aufnahme von Argumenten ausgelegt sind, haben Hinweise. Befehle, die ohne zusätzliche Eingaben funktionieren, zeigen keine Hinweise an.
  • „Kann ich einen Befehl verwenden, ohne den Hinweis zu ersetzen?" Der Hinweistext (wie <mode_slug>) muss durch tatsächliche Werte ersetzt werden. Das Belassen des Hinweistexts führt wahrscheinlich dazu, dass der Befehl fehlschlägt oder sich unerwartet verhält.

Best Practices

Befehlsbenennung

  • Verwende beschreibende, handlungsorientierte Namen
  • Halte Namen prägnant, aber klar
  • Verwende Bindestriche für mehrere Wörter
  • Vermeide generische Namen wie help oder test
  • Hinweis: Namen werden automatisch slugifiziert (Kleinbuchstaben, Sonderzeichen entfernt)
  • Die .md-Erweiterung wird bei Bedarf automatisch hinzugefügt/entfernt

Befehlsinhalt

  • Beginne mit einer klaren Direktive
  • Verwende strukturierte Formate (Listen, Abschnitte)
  • Füge spezifische Anforderungen ein
  • Referenziere Projektkonventionen
  • Halte Befehle auf eine einzelne Aufgabe fokussiert

Organisation

  • Gruppiere verwandte Befehle in Unterverzeichnissen
  • Verwende konsistente Benennungsmuster
  • Dokumentiere komplexe Befehle
  • Versioniere deine Befehle
  • Teile Team-Befehle im Projekt-Repository

Fehlerbehebung

Befehle erscheinen nicht

  • Überprüfe den Dateispeicherort: Stelle sicher, dass benutzerdefinierte Befehlsdateien in .bob/commands/ oder ~/.bob/commands/ liegen
  • Überprüfe die Dateiendung: Benutzerdefinierte Befehle müssen .md-Dateien sein

Befehl nicht gefunden

Wenn ein Slash-Befehl nicht gefunden wird, sieht das LLM folgendes:

The slash command '/unknown-command' was not found. Please check the command name and try again.

Befehlskonflikte

  • Benutzerdefinierte Projektbefehle überschreiben globale benutzerdefinierte Befehle mit demselben Namen
  • Verwende eindeutige Namen, um Konflikte zu vermeiden
  • Beim Erstellen doppelter Namen über die Benutzeroberfläche werden Zahlen angehängt (z. B. neuer-befehl-1, neuer-befehl-2)

Über Modebefehle

Das Slash-Menü enthält Modusumschaltbefehle (wie /code, /ask), die den Betriebsmodus der KI grundlegend ändern – sie fügen nicht nur Text ein, sondern wechseln den gesamten KI-Kontext. Benutzerdefinierte Modi, die du erstellst, erscheinen ebenfalls als Slash-Befehle (z. B. wird ein Modus mit dem Slug reviewer zu /reviewer). Diese Modebefehle können nicht durch benutzerdefinierte Workflow-Befehle überschrieben werden.

Mehr dazu unter Modi und Benutzerdefinierte Modi.

Wie ist dieses Thema?