Команды
Создавайте пользовательские команды для повторяющихся задач.
Пользовательские команды позволяют указать подсказку, которую вы хотите выполнить при запуске этой команды в вашей сессии.
/my-command
Пользовательские команды дополняют встроенные команды, такие как /init, /undo, /redo, /help. Узнайте больше.
Создание файлов команд
Создавайте markdown-файлы в директории commands/ для определения пользовательских команд.
Создайте .dropstone/commands/test.md:
---
description: Run tests with coverage
agent: build
model: dropstone/dropstone-pro
---
Запустите полный набор тестов с отчётом о покрытии и покажите любые ошибки.
Сосредоточьтесь на неудачных тестах и предложите исправления.
Frontmatter определяет свойства команды. Содержимое становится шаблоном.
Используйте команду, введя / и затем имя команды.
/test
Конфигурация
Вы можете добавлять пользовательские команды через конфигурацию Dropstone или создавая markdown-файлы в директории commands/.
JSON
Используйте опцию command в вашей конфигурации Dropstone:
{
"$schema": "https://dropstone.io/schema/config.json",
"command": {
// Это становится именем команды
"test": {
// Это подсказка, которая будет отправлена в LLM
"template": "Запустите полный набор тестов с отчётом о покрытии и покажите любые ошибки.\nСосредоточьтесь на неудачных тестах и предложите исправления.",
// Показывается как описание в палитре команд
"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
---
Запустите полный набор тестов с отчётом о покрытии и покажите любые ошибки.
Сосредоточьтесь на неудачных тестах и предложите исправления.
Имя markdown-файла становится именем команды. Например, test.md позволяет
вам запустить:
/test
Конфигурация подсказки
Подсказки для пользовательских команд поддерживают несколько специальных заполнителей и синтаксис.
Аргументы
Передавайте аргументы командам, используя заполнитель $ARGUMENTS.
---
description: Create a new component
---
Создайте новый React-компонент с именем $ARGUMENTS с поддержкой TypeScript.
Включите правильную типизацию и базовую структуру.
Запустите команду с аргументами:
/component Button
И $ARGUMENTS будет заменён на Button.
Вы также можете получить доступ к отдельным аргументам, используя позиционные параметры:
$1- Первый аргумент$2- Второй аргумент$3- Третий аргумент- И так далее...
Например:
---
description: Create a new file with content
---
Создайте файл с именем $1 в директории $2
со следующим содержимым: $3
Запустите команду:
/create-file config.json src "{ \"key\": \"value\" }"
Это заменяет:
$1наconfig.json$2наsrc$3на{ "key": "value" }
Вывод shell
Используйте !command для внедрения вывода команды shell в вашу подсказку.
Например, для создания пользовательской команды, которая анализирует покрытие тестами:
---
description: Analyze test coverage
---
Вот текущие результаты тестов:
!`npm test`
На основе этих результатов предложите улучшения для увеличения покрытия.
Или для проверки недавних изменений:
---
description: Review recent changes
---
Недавние коммиты git:
!`git log --oneline -10`
Проверьте эти изменения и предложите любые улучшения.
Команды запускаются в корневой директории вашего проекта, и их вывод становится частью подсказки.
Ссылки на файлы
Включайте файлы в вашу команду, используя @ и затем имя файла.
---
description: Review component
---
Проверьте компонент в @src/components/Button.tsx.
Проверьте на проблемы производительности и предложите улучшения.
Содержимое файла автоматически включается в подсказку.
Опции
Давайте подробно рассмотрим параметры конфигурации.
Template
Опция template определяет подсказку, которая будет отправлена в LLM при выполнении команды.
{
"command": {
"test": {
"template": "Запустите полный набор тестов с отчётом о покрытии и покажите любые ошибки.\nСосредоточьтесь на неудачных тестах и предложите исправления."
}
}
}
Это обязательный параметр конфигурации.
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. Узнайте больше.
Note:
Пользовательские команды могут переопределять встроенные. Если вы определите пользовательскую команду с тем же именем, что и встроенная, пользовательская команда имеет приоритет.