Слэш-команда — это файл Markdown, тело которого становится промптом. Это простейший способ перестать перенабирать один и тот же запрос — разбор, проверка перед релизом, сводка в том виде, которого ждёт команда, — и самая нехлопотная часть всей конфигурации. Единственное место, где всё ломается, — аргументы. Всё набранное после имени команды приходит одним плейсхолдером, отдельные слова — пронумерованными, а тело, которое ни один из них не упоминает, игнорирует переданное и при этом продолжает объявлять, что что-то принимает. Конструктор пишет файл, выдаёт плейсхолдеры кнопками и отмечает это расхождение в обе стороны.
Возможности
Плейсхолдеры вставляются кнопками, а не по памяти
Предупреждает, когда аргумент объявлен, а тело его не использует
Предупреждает, когда тело берёт аргумент, а пользователю не сказано, что передавать
Необязательный список инструментов и выбор модели
Имя проверяется как имя файла — им оно и станет
Область проекта или личная с соответствующим путём
Предпросмотр того, как команда будет набрана
Скачивается как готовый .md
Как использовать Конструктор слэш-команд
Назовите команду — это и /имя, и имя файла
Напишите промпт, вставив $ARGUMENTS или $1 туда, где идёт ввод
Добавьте подсказку аргумента, чтобы было понятно, что передавать
Выберите область и скачайте файл
Пример
Ввод
argument-hint: <pr-number>
Результат
Review pull request #$1.
Подсказка и плейсхолдер должны совпадать, иначе один из них лжёт.
Частые ошибки и устранение неполадок
Команда игнорирует то, что я набрал после неё. — Тело должно использовать ввод. $ARGUMENTS — всё набранное; $1, $2 и $3 — отдельные слова.
Команды нет в списке. — Имя файла и есть имя команды, поэтому строчные буквы с дефисами, а файл должен лежать в каталоге команд выбранной области.
В списке нет описания. — Оно берётся из поля description во frontmatter. Без него команда появляется без подписи.
$1 и $ARGUMENTS будто пересекаются. — Пересекаются: $ARGUMENTS — всё целиком, $1 — его первое слово. Берите одно из двух, если только не нужны оба намеренно.
Часто задаваемые вопросы
Чем $ARGUMENTS отличается от $1?
$ARGUMENTS — вся строка после имени команды. $1, $2 и $3 — слова, разделённые пробелами. Берите пронумерованные, когда команда принимает фиксированный набор входов, и $ARGUMENTS — когда свободный текст.
Нужен ли список разрешённых инструментов?
Нет, и у большинства команд его нет. Он оправдан, когда команда должна выполнять что-то конкретное без вопроса каждый раз, или когда вы хотите, чтобы она не могла сделать то, что сессия в принципе может.
Где лежит файл команды?
Команда проекта лежит в репозитории, чтобы она была у всей команды; личная следует за вами между проектами. Точный путь показан и обновляется вместе с именем.
Может ли команда вызывать инструменты?
Тело — это промпт, поэтому оно может попросить всё, что сессия и так умеет. Список инструментов лишь расширяет или сужает то, что выполняется без вопроса; новых прав он не даёт.
Когда нужна команда, а не навык?
Команду вызывают намеренно, набрав её. Навык сопоставляется автоматически, когда задача выглядит подходящей. Хотите выбирать момент — пишите команду; хотите, чтобы происходило само, — навык.
Связанные инструменты
Конструктор навыков — Напишите SKILL.md — frontmatter проверяется по ходу ввода.
Конструктор субагентов — Соберите файл определения субагента с его инструментами и моделью.
Конструктор хуков — Соберите хуки settings.json и поймайте матчеры, которые не сработают.
Манифест плагина — Соберите plugin.json и посмотрите ожидаемую структуру папок.
Инструкции проекта — Напишите CLAUDE.md, который оправдывает место в каждой сессии.