Comandi
Crea comandi personalizzati per attività ripetitive.
I comandi personalizzati ti permettono di specificare un prompt da eseguire quando quel comando viene eseguito nella tua sessione.
/my-command
I comandi personalizzati si aggiungono ai comandi integrati come /init, /undo, /redo, /help. Scopri di più.
Crea file di comando
Crea file markdown nella directory commands/ per definire comandi personalizzati.
Crea .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.
Il frontmatter definisce le proprietà del comando. Il contenuto diventa il template.
Usa il comando digitando / seguito dal nome del comando.
/test
Configurazione
Puoi aggiungere comandi personalizzati tramite la configurazione di Dropstone o creando file markdown nella directory commands/.
JSON
Usa l'opzione command nella tua configurazione di Dropstone:
{
"$schema": "https://dropstone.io/schema/config.json",
"command": {
// Questo diventa il nome del comando
"test": {
// Questo è il prompt che verrà inviato all'LLM
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
// Mostrato come descrizione nella palette dei comandi slash
"description": "Run tests with coverage",
"agent": "build",
"model": "dropstone/dropstone-pro"
}
}
}
Ora puoi eseguire questo comando da qualsiasi sessione:
/test
Markdown
Puoi anche definire comandi usando file markdown. Posizionali in:
- Globale:
~/.config/dropstone/commands/ - Per progetto:
.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.
Il nome del file markdown diventa il nome del comando. Ad esempio, test.md ti permette di eseguire:
/test
Configurazione del prompt
I prompt per i comandi personalizzati supportano diversi segnaposto e sintassi speciali.
Argomenti
Passa argomenti ai comandi usando il segnaposto $ARGUMENTS.
---
description: Create a new component
---
Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.
Esegui il comando con gli argomenti:
/component Button
E $ARGUMENTS verrà sostituito con Button.
Puoi anche accedere ai singoli argomenti usando parametri posizionali:
$1- Primo argomento$2- Secondo argomento$3- Terzo argomento- E così via...
Ad esempio:
---
description: Create a new file with content
---
Create a file named $1 in the directory $2
with the following content: $3
Esegui il comando:
/create-file config.json src "{ \"key\": \"value\" }"
Questo sostituisce:
$1conconfig.json$2consrc$3con{ "key": "value" }
Output della shell
Usa !comando per iniettare l'output di un comando shell nel tuo prompt.
Ad esempio, per creare un comando personalizzato che analizza la copertura dei test:
---
description: Analyze test coverage
---
Here are the current test results:
!`npm test`
Based on these results, suggest improvements to increase coverage.
Oppure per rivedere le modifiche recenti:
---
description: Review recent changes
---
Recent git commits:
!`git log --oneline -10`
Review these changes and suggest any improvements.
I comandi vengono eseguiti nella directory principale del tuo progetto e il loro output diventa parte del prompt.
Riferimenti a file
Includi file nel tuo comando usando @ seguito dal nome del file.
---
description: Review component
---
Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.
Il contenuto del file viene incluso automaticamente nel prompt.
Opzioni
Diamo un'occhiata alle opzioni di configurazione in dettaglio.
Template
L'opzione template definisce il prompt che verrà inviato all'LLM quando il comando viene eseguito.
{
"command": {
"test": {
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
}
}
}
Questa è un'opzione di configurazione obbligatoria.
Descrizione
Usa l'opzione description per fornire una breve descrizione di cosa fa il comando.
{
"command": {
"test": {
"description": "Run tests with coverage"
}
}
}
Questa viene mostrata accanto al comando nella palette dei comandi slash.
Agente
Usa la configurazione agent per specificare facoltativamente quale agente deve eseguire questo comando.
Se si tratta di un subagent, il comando attiverà un'invocazione del subagent per impostazione predefinita.
Per disabilitare questo comportamento, imposta subtask su false.
{
"command": {
"review": {
"agent": "plan"
}
}
}
Questa è un'opzione di configurazione facoltativa. Se non specificata, viene utilizzato il tuo agente corrente.
Subtask
Usa il booleano subtask per forzare il comando a attivare un'invocazione di subagent.
Questo è utile se vuoi che il comando non inquini il tuo contesto primario e forzerà l'agente a comportarsi come un subagent,
anche se mode è impostato su primary nella configurazione dell'agente.
{
"command": {
"analyze": {
"subtask": true
}
}
}
Questa è un'opzione di configurazione facoltativa.
Modello
Usa la configurazione model per sovrascrivere il modello predefinito per questo comando.
{
"command": {
"analyze": {
"model": "dropstone/dropstone-pro"
}
}
}
Questa è un'opzione di configurazione facoltativa.
Integrati
Dropstone include diversi comandi integrati come /init, /undo, /redo, /help. Scopri di più.
Il comando integrato /review esegue una revisione multi-fase — angolazioni di individuazione, verifica indipendente, poi un elenco di risultati limitato. Controlla la sua profondità con review.effort.
Note
I comandi personalizzati possono sovrascrivere quelli integrati. Se definisci un comando personalizzato con lo stesso nome di uno integrato, vince quello personalizzato.