Dropstone CLI

Befehle

Erstelle benutzerdefinierte Befehle für wiederkehrende Aufgaben.

Mit benutzerdefinierten Befehlen kannst du einen Prompt festlegen, der ausgeführt wird, wenn der Befehl in deiner Sitzung ausgeführt wird.

/my-command

Benutzerdefinierte Befehle ergänzen die integrierten Befehle wie /init, /undo, /redo, /help. Mehr erfahren.


Befehlsdateien erstellen

Erstelle Markdown-Dateien im Verzeichnis commands/, um benutzerdefinierte Befehle zu definieren.

Erstelle .dropstone/commands/test.md:

---
description: Tests mit Abdeckung ausführen
agent: build
model: dropstone/dropstone-pro
---

Führe die vollständige Testsuite mit Abdeckungsbericht aus und zeige alle Fehler an.
Konzentriere dich auf die fehlgeschlagenen Tests und schlage Korrekturen vor.

Das Frontmatter definiert die Befehlseigenschaften. Der Inhalt wird zur Vorlage.

Verwende den Befehl, indem du / gefolgt vom Befehlsnamen eingibst.

/test

Konfiguration

Du kannst benutzerdefinierte Befehle über die Dropstone-Konfiguration oder durch Erstellen von Markdown-Dateien im Verzeichnis commands/ hinzufügen.


JSON

Verwende die Option command in deiner Dropstone-Konfiguration:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "command": {
    // Dies wird zum Namen des Befehls
    "test": {
      // Dies ist der Prompt, der an das LLM gesendet wird
      "template": "Führe die vollständige Testsuite mit Abdeckungsbericht aus und zeige alle Fehler an.\nKonzentriere dich auf die fehlgeschlagenen Tests und schlage Korrekturen vor.",
      // Wird als Beschreibung in der Slash-Command-Palette angezeigt
      "description": "Tests mit Abdeckung ausführen",
      "agent": "build",
      "model": "dropstone/dropstone-pro"
    }
  }
}

Jetzt kannst du diesen Befehl aus jeder Sitzung ausführen:

/test

Markdown

Du kannst Befehle auch mit Markdown-Dateien definieren. Platziere sie in:

  • Global: ~/.config/dropstone/commands/
  • Pro Projekt: .dropstone/commands/
---
description: Tests mit Abdeckung ausführen
agent: build
model: dropstone/dropstone-pro
---

Führe die vollständige Testsuite mit Abdeckungsbericht aus und zeige alle Fehler an.
Konzentriere dich auf die fehlgeschlagenen Tests und schlage Korrekturen vor.

Der Dateiname der Markdown-Datei wird zum Befehlsnamen. Zum Beispiel ermöglicht test.md dir Folgendes auszuführen:

/test

Prompt-Konfiguration

Die Prompts für die benutzerdefinierten Befehle unterstützen mehrere spezielle Platzhalter und Syntax.


Argumente

Übergib Argumente an Befehle mit dem Platzhalter $ARGUMENTS.

---
description: Eine neue Komponente erstellen
---

Erstelle eine neue React-Komponente namens $ARGUMENTS mit TypeScript-Unterstützung.
Füge eine ordnungsgemäße Typisierung und grundlegende Struktur hinzu.

Führe den Befehl mit Argumenten aus:

/component Button

Und $ARGUMENTS wird durch Button ersetzt.

Du kannst auch auf einzelne Argumente mit Positionsparametern zugreifen:

  • $1 – Erstes Argument
  • $2 – Zweites Argument
  • $3 – Drittes Argument
  • Und so weiter...

Zum Beispiel:

---
description: Eine neue Datei mit Inhalt erstellen
---

Erstelle eine Datei namens $1 im Verzeichnis $2
mit folgendem Inhalt: $3

Führe den Befehl aus:

/create-file config.json src "{ \"key\": \"value\" }"

Dies ersetzt:

  • $1 durch config.json
  • $2 durch src
  • $3 durch { "key": "value" }

Shell-Ausgabe

Verwende !command, um die Ausgabe von Shell-Befehlen in deinen Prompt einzufügen.

Zum Beispiel, um einen benutzerdefinierten Befehl zu erstellen, der die Testabdeckung analysiert:

---
description: Testabdeckung analysieren
---

Hier sind die aktuellen Testergebnisse:
!`npm test`

Basierend auf diesen Ergebnissen schlage Verbesserungen vor, um die Abdeckung zu erhöhen.

Oder um aktuelle Änderungen zu überprüfen:

---
description: Aktuelle Änderungen überprüfen
---

Aktuelle Git-Commits:
!`git log --oneline -10`

Überprüfe diese Änderungen und schlage Verbesserungen vor.

Befehle werden im Stammverzeichnis deines Projekts ausgeführt und ihre Ausgabe wird Teil des Prompts.


Dateiverweise

Füge Dateien in deinen Befehl ein, indem du @ gefolgt vom Dateinamen verwendest.

---
description: Komponente überprüfen
---

Überprüfe die Komponente in @src/components/Button.tsx.
Prüfe auf Leistungsprobleme und schlage Verbesserungen vor.

Der Dateiinhalt wird automatisch in den Prompt aufgenommen.


Optionen

Schauen wir uns die Konfigurationsoptionen im Detail an.


Vorlage

Die Option template definiert den Prompt, der an das LLM gesendet wird, wenn der Befehl ausgeführt wird.

{
  "command": {
    "test": {
      "template": "Führe die vollständige Testsuite mit Abdeckungsbericht aus und zeige alle Fehler an.\nKonzentriere dich auf die fehlgeschlagenen Tests und schlage Korrekturen vor."
    }
  }
}

Dies ist eine erforderliche Konfigurationsoption.


Beschreibung

Verwende die Option description, um eine kurze Beschreibung dessen bereitzustellen, was der Befehl tut.

{
  "command": {
    "test": {
      "description": "Tests mit Abdeckung ausführen"
    }
  }
}

Dies wird neben dem Befehl in der Slash-Command-Palette angezeigt.


Agent

Verwende die Konfiguration agent, um optional anzugeben, welcher Agent diesen Befehl ausführen soll. Wenn dies ein Subagent ist, löst der Befehl standardmäßig einen Subagent-Aufruf aus. Um dieses Verhalten zu deaktivieren, setze subtask auf false.

{
  "command": {
    "review": {
      "agent": "plan"
    }
  }
}

Dies ist eine optionale Konfigurationsoption. Wenn nicht angegeben, wird standardmäßig dein aktueller Agent verwendet.


Subtask

Verwende den booleschen Wert subtask, um den Befehl zu zwingen, einen Subagent-Aufruf auszulösen. Dies ist nützlich, wenn du möchtest, dass der Befehl deinen primären Kontext nicht verschmutzt, und zwingt den Agenten, als Subagent zu handeln, selbst wenn mode auf primary in der Agenten-Konfiguration gesetzt ist.

{
  "command": {
    "analyze": {
      "subtask": true
    }
  }
}

Dies ist eine optionale Konfigurationsoption.


Modell

Verwende die Konfiguration model, um das Standardmodell für diesen Befehl zu überschreiben.

{
  "command": {
    "analyze": {
      "model": "dropstone/dropstone-pro"
    }
  }
}

Dies ist eine optionale Konfigurationsoption.


Integriert

Dropstone enthält mehrere integrierte Befehle wie /init, /undo, /redo, /help. Mehr erfahren.

Der integrierte Befehl /review führt eine mehrstufige Überprüfung durch – Finder-Perspektiven, unabhängige Verifizierung und dann eine begrenzte Ergebnisliste. Steuere seine Tiefe mit review.effort.

Note

Benutzerdefinierte Befehle können integrierte Befehle überschreiben. Wenn du einen benutzerdefinierten Befehl mit demselben Namen wie ein integrierter Befehl definierst, gewinnt der benutzerdefinierte.

Strg+I