Commandes
Créez des commandes personnalisées pour les tâches répétitives.
Les commandes personnalisées vous permettent de spécifier un prompt que vous souhaitez exécuter lorsque cette commande est exécutée dans votre session.
/my-command
Les commandes personnalisées s'ajoutent aux commandes intégrées comme /init, /undo, /redo, /help. En savoir plus.
Créer des fichiers de commande
Créez des fichiers markdown dans le répertoire commands/ pour définir des commandes personnalisées.
Créez .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.
Le frontmatter définit les propriétés de la commande. Le contenu devient le modèle.
Utilisez la commande en tapant / suivi du nom de la commande.
/test
Configurer
Vous pouvez ajouter des commandes personnalisées via la configuration Dropstone ou en créant des fichiers markdown dans le répertoire commands/.
JSON
Utilisez l'option command dans votre config Dropstone:
{
"$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"
}
}
}
Vous pouvez maintenant exécuter cette commande à partir de n'importe quelle session:
/test
Markdown
Vous pouvez également définir des commandes en utilisant des fichiers markdown. Placez-les dans:
- Global:
~/.config/dropstone/commands/ - Par projet:
.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.
Le nom du fichier markdown devient le nom de la commande. Par exemple, test.md vous permet d'exécuter:
/test
Configuration du prompt
Les prompts pour les commandes personnalisées supportent plusieurs placeholders et syntaxes spéciaux.
Arguments
Passez des arguments aux commandes en utilisant le placeholder $ARGUMENTS.
---
description: Create a new component
---
Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.
Exécutez la commande avec des arguments:
/component Button
Et $ARGUMENTS sera remplacé par Button.
Vous pouvez également accéder aux arguments individuels en utilisant des paramètres positionnels:
$1- Premier argument$2- Deuxième argument$3- Troisième argument- Et ainsi de suite...
Par exemple:
---
description: Create a new file with content
---
Create a file named $1 in the directory $2
with the following content: $3
Exécutez la commande:
/create-file config.json src "{ \"key\": \"value\" }"
Cela remplace:
$1parconfig.json$2parsrc$3par{ "key": "value" }
Sortie shell
Utilisez !command pour injecter la sortie de commande shell dans votre prompt.
Par exemple, pour créer une commande personnalisée qui analyse la couverture de test:
---
description: Analyze test coverage
---
Here are the current test results:
!`npm test`
Based on these results, suggest improvements to increase coverage.
Ou pour examiner les modifications récentes:
---
description: Review recent changes
---
Recent git commits:
!`git log --oneline -10`
Review these changes and suggest any improvements.
Les commandes s'exécutent dans le répertoire racine de votre projet et leur sortie devient partie du prompt.
Références de fichiers
Incluez des fichiers dans votre commande en utilisant @ suivi du nom de fichier.
---
description: Review component
---
Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.
Le contenu du fichier est automatiquement inclus dans le prompt.
Options
Examinons les options de configuration en détail.
Template
L'option template définit le prompt qui sera envoyé au LLM lorsque la commande est exécutée.
{
"command": {
"test": {
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
}
}
}
C'est une option de configuration requise.
Description
Utilisez l'option description pour fournir une brève description de ce que fait la commande.
{
"command": {
"test": {
"description": "Run tests with coverage"
}
}
}
Ceci est affiché à côté de la commande dans la palette de commandes slash.
Agent
Utilisez la config agent pour spécifier optionnellement quel agent doit exécuter cette commande.
Si c'est un subagent, la commande déclenchera une invocation de subagent par défaut.
Pour désactiver ce comportement, définissez subtask à false.
{
"command": {
"review": {
"agent": "plan"
}
}
}
C'est une option de configuration optionnelle. Si non spécifiée, elle utilise par défaut votre agent actuel.
Subtask
Utilisez le booléen subtask pour forcer la commande à déclencher une invocation de subagent.
C'est utile si vous voulez que la commande ne pollue pas votre contexte principal et forcera l'agent à agir comme un subagent,
même si mode est défini à primary dans la configuration de l'agent.
{
"command": {
"analyze": {
"subtask": true
}
}
}
C'est une option de configuration optionnelle.
Model
Utilisez la config model pour remplacer le modèle par défaut pour cette commande.
{
"command": {
"analyze": {
"model": "dropstone/dropstone-pro"
}
}
}
C'est une option de configuration optionnelle.
Intégrées
Dropstone inclut plusieurs commandes intégrées comme /init, /undo, /redo, /help. En savoir plus.
Note:
Les commandes personnalisées peuvent remplacer les commandes intégrées. Si vous définissez une commande personnalisée avec le même nom qu'une commande intégrée, la commande personnalisée gagne.