Comandos
Crie comandos personalizados para tarefas repetitivas.
Comandos personalizados permitem que você especifique um prompt que deseja executar quando esse comando é executado em sua sessão.
/my-command
Comandos personalizados são adicionais aos comandos integrados como /init, /undo, /redo, /help. Saiba mais.
Criar arquivos de comando
Crie arquivos markdown no diretório commands/ para definir comandos personalizados.
Crie .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.
O frontmatter define as propriedades do comando. O conteúdo se torna o template.
Use o comando digitando / seguido do nome do comando.
/test
Configurar
Você pode adicionar comandos personalizados através da configuração do Dropstone ou criando arquivos markdown no diretório commands/.
JSON
Use a opção command em sua configuração do 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"
}
}
}
Agora você pode executar este comando de qualquer sessão:
/test
Markdown
Você também pode definir comandos usando arquivos markdown. Coloque-os em:
- Global:
~/.config/dropstone/commands/ - Por projeto:
.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.
O nome do arquivo markdown se torna o nome do comando. Por exemplo, test.md permite
que você execute:
/test
Configuração de prompt
Os prompts para os comandos personalizados suportam vários placeholders e sintaxe especiais.
Argumentos
Passe argumentos para comandos usando o placeholder $ARGUMENTS.
---
description: Create a new component
---
Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.
Execute o comando com argumentos:
/component Button
E $ARGUMENTS será substituído por Button.
Você também pode acessar argumentos individuais usando parâmetros posicionais:
$1- Primeiro argumento$2- Segundo argumento$3- Terceiro argumento- E assim por diante...
Por exemplo:
---
description: Create a new file with content
---
Create a file named $1 in the directory $2
with the following content: $3
Execute o comando:
/create-file config.json src "{ \"key\": \"value\" }"
Isso substitui:
$1porconfig.json$2porsrc$3por{ "key": "value" }
Saída do shell
Use !command para injetar a saída do comando shell em seu prompt.
Por exemplo, para criar um comando personalizado que analisa cobertura de testes:
---
description: Analyze test coverage
---
Here are the current test results:
!`npm test`
Based on these results, suggest improvements to increase coverage.
Ou para revisar mudanças recentes:
---
description: Review recent changes
---
Recent git commits:
!`git log --oneline -10`
Review these changes and suggest any improvements.
Comandos são executados no diretório raiz do seu projeto e sua saída se torna parte do prompt.
Referências de arquivo
Inclua arquivos em seu comando usando @ seguido do nome do arquivo.
---
description: Review component
---
Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.
O conteúdo do arquivo é incluído automaticamente no prompt.
Opções
Vamos examinar as opções de configuração em detalhes.
Template
A opção template define o prompt que será enviado ao LLM quando o comando for executado.
{
"command": {
"test": {
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
}
}
}
Esta é uma opção de configuração obrigatória.
Description
Use a opção description para fornecer uma breve descrição do que o comando faz.
{
"command": {
"test": {
"description": "Run tests with coverage"
}
}
}
Isso é mostrado ao lado do comando na paleta de comandos slash.
Agent
Use a configuração agent para especificar opcionalmente qual agent deve executar este comando.
Se este for um subagent, o comando acionará uma invocação de subagent por padrão.
Para desabilitar esse comportamento, defina subtask como false.
{
"command": {
"review": {
"agent": "plan"
}
}
}
Esta é uma opção de configuração opcional. Se não especificada, usa como padrão seu agent atual.
Subtask
Use o booleano subtask para forçar o comando a acionar uma invocação de subagent.
Isso é útil se você quiser que o comando não poluir seu contexto primário e forçará o agent a agir como um subagent,
mesmo se mode estiver definido como primary na configuração do agent.
{
"command": {
"analyze": {
"subtask": true
}
}
}
Esta é uma opção de configuração opcional.
Model
Use a configuração model para substituir o modelo padrão para este comando.
{
"command": {
"analyze": {
"model": "dropstone/dropstone-pro"
}
}
}
Esta é uma opção de configuração opcional.
Integrados
Dropstone inclui vários comandos integrados como /init, /undo, /redo, /help. Saiba mais.
Note:
Comandos personalizados podem substituir os integrados. Se você definir um comando personalizado com o mesmo nome de um integrado, o personalizado vence.