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:
$1durchconfig.json$2durchsrc$3durch{ "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.