Dropstone Docs

Comandi

Crea comandi personalizzati per attività ripetitive.

I comandi personalizzati ti permettono di specificare un prompt che desideri 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

Configura

Puoi aggiungere comandi personalizzati attraverso 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": {
    // 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"
    }
  }
}

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 placeholder speciali e sintassi.


Argomenti

Passa argomenti ai comandi usando il placeholder $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 argomenti:

/component Button

E $ARGUMENTS sarà 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:

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

Output della shell

Usa !command per iniettare l'output del 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.

O per rivedere i cambiamenti 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 radice del tuo progetto e il loro output diventa parte del prompt.


Riferimenti ai 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 sarà 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.


Description

Usa l'opzione description per fornire una breve descrizione di cosa fa il comando.

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

Questo viene mostrato accanto al comando nella palette dei comandi slash.


Agent

Usa la configurazione agent per specificare opzionalmente quale agent dovrebbe eseguire questo comando. Se questo è un subagent, il comando attiverà un'invocazione di subagent per impostazione predefinita. Per disabilitare questo comportamento, imposta subtask su false.

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

Questa è un'opzione di configurazione opzionale. Se non specificata, usa il valore predefinito dell'agent corrente.


Subtask

Usa il booleano subtask per forzare il comando a attivare un'invocazione di subagent. Questo è utile se desideri che il comando non inquini il tuo contesto primario e forzerà l'agent ad agire come subagent, anche se mode è impostato su primary nella configurazione dell'agent.

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

Questa è un'opzione di configurazione opzionale.


Model

Usa la configurazione model per sovrascrivere il modello predefinito per questo comando.

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

Questa è un'opzione di configurazione opzionale.


Integrati

Dropstone include diversi comandi integrati come /init, /undo, /redo, /help. Scopri di più.

Note:

I comandi personalizzati possono sovrascrivere gli integrati. Se definisci un comando personalizzato con lo stesso nome di uno integrato, quello personalizzato vince.

Ctrl+I