Команды
Создавайте пользовательские команды для повторяющихся задач.
Пользовательские команды позволяют задать промпт, который будет выполняться при вызове команды в вашей сессии.
/my-command
Пользовательские команды дополняют встроенные команды, такие как /init, /undo, /redo, /help. Подробнее.
Создание файлов команд
Создайте markdown-файлы в каталоге commands/, чтобы определить пользовательские команды.
Создайте .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.
Frontmatter определяет свойства команды. Содержимое становится шаблоном.
Используйте команду, введя / с последующим именем команды.
/test
Настройка
Вы можете добавлять пользовательские команды через конфигурацию Dropstone или создавая markdown-файлы в каталоге commands/.
JSON
Используйте опцию command в вашем конфиге Dropstone:
{
"$schema": "https://dropstone.io/schema/config.json",
"command": {
// Это становится именем команды
"test": {
// Это промпт, который будет отправлен в LLM
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
// Отображается как описание в палитре слэш-команд
"description": "Run tests with coverage",
"agent": "build",
"model": "dropstone/dropstone-pro"
}
}
}
Теперь вы можете запустить эту команду из любой сессии:
/test
Markdown
Вы также можете определять команды с помощью markdown-файлов. Разместите их в:
- Глобально:
~/.config/dropstone/commands/ - Для проекта:
.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.
Имя markdown-файла становится именем команды. Например, test.md позволяет вам выполнить:
/test
Конфигурация промпта
Промпты для пользовательских команд поддерживают несколько специальных плейсхолдеров и синтаксических конструкций.
Аргументы
Передавайте аргументы в команды с помощью плейсхолдера $ARGUMENTS.
---
description: Create a new component
---
Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.
Запустите команду с аргументами:
/component Button
И $ARGUMENTS будет заменён на Button.
Вы также можете обращаться к отдельным аргументам с помощью позиционных параметров:
$1— первый аргумент$2— второй аргумент$3— третий аргумент- И так далее...
Например:
---
description: Create a new file with content
---
Create a file named $1 in the directory $2
with the following content: $3
Запустите команду:
/create-file config.json src "{ \"key\": \"value\" }"
Это заменяет:
$1наconfig.json$2наsrc$3на{ "key": "value" }
Вывод shell-команд
Используйте !command для вставки вывода shell-команды в ваш промпт.
Например, чтобы создать пользовательскую команду для анализа покрытия тестами:
---
description: Analyze test coverage
---
Here are the current test results:
!`npm test`
Based on these results, suggest improvements to increase coverage.
Или для просмотра последних изменений:
---
description: Review recent changes
---
Recent git commits:
!`git log --oneline -10`
Review these changes and suggest any improvements.
Команды выполняются в корневом каталоге вашего проекта, и их вывод становится частью промпта.
Ссылки на файлы
Включайте файлы в вашу команду с помощью @ с последующим именем файла.
---
description: Review component
---
Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.
Содержимое файла автоматически включается в промпт.
Опции
Рассмотрим подробнее доступные опции конфигурации.
Template
Опция template определяет промпт, который будет отправлен в LLM при выполнении команды.
{
"command": {
"test": {
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
}
}
}
Это обязательная опция конфигурации.
Description
Используйте опцию description, чтобы указать краткое описание того, что делает команда.
{
"command": {
"test": {
"description": "Run tests with coverage"
}
}
}
Оно отображается рядом с командой в палитре слэш-команд.
Agent
Используйте конфигурацию agent, чтобы опционально указать, какой агент должен выполнять эту команду.
Если это субагент, команда по умолчанию запустит вызов субагента.
Чтобы отключить это поведение, установите subtask в false.
{
"command": {
"review": {
"agent": "plan"
}
}
}
Это необязательная опция конфигурации. Если не указана, по умолчанию используется ваш текущий агент.
Subtask
Используйте булево значение subtask, чтобы принудительно запустить вызов субагента для команды.
Это полезно, если вы хотите, чтобы команда не загрязняла ваш основной контекст, и принудительно заставит агента действовать как субагент,
даже если для агента в конфигурации установлен mode в значение primary.
{
"command": {
"analyze": {
"subtask": true
}
}
}
Это необязательная опция конфигурации.
Model
Используйте конфигурацию model, чтобы переопределить модель по умолчанию для этой команды.
{
"command": {
"analyze": {
"model": "dropstone/dropstone-pro"
}
}
}
Это необязательная опция конфигурации.
Встроенные команды
Dropstone включает несколько встроенных команд, таких как /init, /undo, /redo, /help. Подробнее.
Встроенная команда /review выполняет многоэтапный обзор — поиск проблем, независимую проверку, а затем ограниченный список найденных проблем. Управляйте её глубиной с помощью review.effort.
Note
Пользовательские команды могут переопределять встроенные. Если вы определите пользовательскую команду с тем же именем, что и встроенная, пользовательская будет иметь приоритет.