Dropstone Docs

Befehle

Erstellen Sie benutzerdefinierte Befehle für sich wiederholende Aufgaben.

Mit benutzerdefinierten Befehlen können Sie einen Prompt angeben, der ausgeführt werden soll, wenn dieser Befehl in Ihrer Sitzung ausgeführt wird.

/my-command

Benutzerdefinierte Befehle ergänzen die integrierten Befehle wie /init, /undo, /redo, /help. Weitere Informationen.


Befehlsdateien erstellen

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

Erstellen Sie .dropstone/commands/test.md:

---
description: Run tests with coverage
agent: build
model: dropstone/dropstone-pro
---

Run the full test suite with coverage report and show any failures.
Focus on the failing tests and suggest fixes.

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

Verwenden Sie den Befehl, indem Sie / gefolgt vom Befehlsnamen eingeben.

/test

Konfigurieren

Sie können benutzerdefinierte Befehle über die Dropstone-Konfiguration oder durch Erstellen von Markdown-Dateien im Verzeichnis commands/ hinzufügen.


JSON

Verwenden Sie die Option command in Ihrer Dropstone-Konfiguration:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "command": {
    // This becomes the name of the command
    "test": {
      // This is the prompt that will be sent to the LLM
      "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
      // Shown as the description in the slash command palette
      "description": "Run tests with coverage",
      "agent": "build",
      "model": "dropstone/dropstone-pro"
    }
  }
}

Jetzt können Sie diesen Befehl aus jeder Sitzung ausführen:

/test

Markdown

Sie können Befehle auch mit Markdown-Dateien definieren. Platzieren Sie sie in:

  • Global: ~/.config/dropstone/commands/
  • Pro Projekt: .dropstone/commands/
---
description: Run tests with coverage
agent: build
model: dropstone/dropstone-pro
---

Run the full test suite with coverage report and show any failures.
Focus on the failing tests and suggest fixes.

Der Name der Markdown-Datei wird zum Befehlsnamen. Beispielsweise können Sie mit test.md Folgendes ausführen:

/test

Prompt-Konfiguration

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


Argumente

Übergeben Sie Argumente an Befehle mit dem Platzhalter $ARGUMENTS.

---
description: Create a new component
---

Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.

Führen Sie den Befehl mit Argumenten aus:

/component Button

Und $ARGUMENTS wird durch Button ersetzt.

Sie können auch auf einzelne Argumente mit Positionsparametern zugreifen:

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

Beispiel:

---
description: Create a new file with content
---

Create a file named $1 in the directory $2
with the following content: $3

Führen Sie den Befehl aus:

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

Dies ersetzt:

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

Shell-Ausgabe

Verwenden Sie !command, um die Ausgabe von Shell-Befehlen in Ihren Prompt einzufügen.

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

---
description: Analyze test coverage
---

Here are the current test results:
!`npm test`

Based on these results, suggest improvements to increase coverage.

Oder um aktuelle Änderungen zu überprüfen:

---
description: Review recent changes
---

Recent git commits:
!`git log --oneline -10`

Review these changes and suggest any improvements.

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


Dateireferenzen

Fügen Sie Dateien in Ihren Befehl ein, indem Sie @ gefolgt vom Dateinamen verwenden.

---
description: Review component
---

Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.

Der Dateiinhalt wird automatisch in den Prompt aufgenommen.


Optionen

Schauen wir uns die Konfigurationsoptionen im Detail an.


Template

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

{
  "command": {
    "test": {
      "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
    }
  }
}

Dies ist eine erforderliche Konfigurationsoption.


Description

Verwenden Sie die Option description, um eine kurze Beschreibung der Funktion des Befehls bereitzustellen.

{
  "command": {
    "test": {
      "description": "Run tests with coverage"
    }
  }
}

Dies wird neben dem Befehl in der Slash-Befehlspalette angezeigt.


Agent

Verwenden Sie die Konfiguration agent, um optional anzugeben, welcher Agent diesen Befehl ausführen soll. Wenn dies ein Subagent ist, wird der Befehl standardmäßig eine Subagent-Invokation auslösen. Um dieses Verhalten zu deaktivieren, setzen Sie subtask auf false.

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

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


Subtask

Verwenden Sie das boolesche Feld subtask, um den Befehl zu zwingen, eine Subagent-Invokation auszulösen. Dies ist nützlich, wenn Sie möchten, dass der Befehl Ihren primären Kontext nicht beeinträchtigt, und wird den Agent zwingen, als Subagent zu fungieren, auch wenn mode in der Agent-Konfiguration auf primary gesetzt ist.

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

Dies ist eine optionale Konfigurationsoption.


Model

Verwenden Sie 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. Weitere Informationen.

Note:

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

Strg+I