---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://sourcecraft.dev/portal/docs/en/code-assistant/operations/agent/slash-commands.md
  - https://sourcecraft.dev/portal/docs/ru/code-assistant/operations/agent/slash-commands.md
  - href: ru/code-assistant/operations/agent/slash-commands.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
title: Slash commands в SourceCraft Code Assistant
description: Как создавать и использовать пользовательские команды в SourceCraft Code Assistant для автоматизации повторяющихся задач.
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


# Команды с / (slash commands) в SourceCraft Code Assistant

<!-- source: ru/_includes/code-assistant/only-in-vscode.md -->
{% note warning %}

Функциональность доступна только в Visual Studio Code.

{% endnote %}
<!-- endsource: ru/_includes/code-assistant/only-in-vscode.md -->

Создавайте пользовательские команды с `/` для автоматизации повторяющихся задач и расширения функциональности Code Assistant с помощью простых файлов Markdown.

Введите `/` в чате, чтобы увидеть все доступные команды, или создайте свои собственные, добавив файл Markdown в `.codeassistant/commands/` или `~/.codeassistant/commands/`.

Преимущества:
* Автоматизация рабочего процесса — превратите сложные многошаговые процессы в единые команды.
* Стандартизация команд — делитесь командами с вашими коллегами для обеспечения согласованных практик.
* Сохранение контекста — включайте контекст, специфичный для проекта, в каждую команду.
* Быстрый доступ — поиск и автозаполнение для мгновенного обнаружения команд.

{% note tip %}

Используйте через преднастроенные команды быстрые действия Code Assistant: **Нейроревью с текущей веткой**, **Нейроревью с основной веткой**, **Описание коммита**, **Рефакторинг кода**, **Генерация тестов**.

{% endnote %}

## Создание пользовательских команд {#command-creation}

Пользовательские команды расширяют функциональность Code Assistant, добавляя файлы Markdown в определенные директории:
* Специфичные для проекта команды располагаются в `.codeassistant/commands/` в каталоге вашего рабочего пространства.
* Глобальные команды располагаются в `~/.codeassistant/commands/` в вашем домашнем каталоге.

Имя файла становится именем команды. Например:
* `review.md` → `/review`
* `test-api.md` → `/test-api`
* `deploy-check.md` → `/deploy-check`

{% note info %}

При создании команд через пользовательский интерфейс имена команд обрабатываются автоматически:
* Преобразуются в нижний регистр.
* Пробелы заменяются на дефисы.
* Специальные символы, кроме дефисов, удаляются.
* Несколько последовательных дефисов заменяются на один.
* Удаляются начальные и конечные дефисы.

> Например `My Cool Command!` становится `my-cool-command`.

{% endnote %}

### Базовый формат команды {#base-format}

Создайте простую команду, добавив файл Markdown:

```markdown
# review.md
Пожалуйста, проверь этот код на:
* Проблемы с производительностью.
* Уязвимости безопасности.
* Нарушения стиля кода.
* Потенциальные ошибки.
```

### Расширенная команда с метаданными {#advanced-format}

Добавьте метаданные для расширенной функциональности:

```yaml
---
description: Комплексный обзор кода с акцентом на безопасность и производительность
argument-hint: <файл или директория для проверки>
---
# Обзор кода с приоритетом безопасности
Пожалуйста, выполни тщательный обзор безопасности выбранного кода:
1. Аутентификация и авторизация:
    * Проверь правильность контроля доступа.
    * Убедись в проверке токенов.
    * Проверь разрешения.

2. Валидация ввода:
    * Определи потенциальные точки инъекций.
    * Проверь правильность очистки данных.
    * Проверь валидацию типов данных.

3. Лучшие практики безопасности:
    * Ищи секреты в коде.
    * Проверь безопасность связи.
    * Проверь обработку ошибок на предмет утечки информации.
```

Поля метаданных:
* `description` — отображается в меню команд, чтобы помочь пользователям понять назначение команды.
* `argument-hint` — (опционально) предоставляет подсказку об ожидаемых аргументах при использовании команды. Подробнее в разделе [Подсказки аргументов](#argument-hints).

## Использование команд с / {#slash-commands}

Введите `/` в чате, чтобы увидеть меню, содержащее все доступные команды. Меню показывает пользовательские команды рабочих процессов, команды переключения режимов и встроенные команды в одном интерфейсе.

Начните вводить текст, чтобы отфильтровать команды. Например при вводе `/sam` будет отображаться `sample-command-name`.

Вы можете просмотреть описания команд в меню.

Команды проекта переопределяют глобальные команды с тем же именем.

## Подсказки аргументов {#argument-hints}

Подсказки аргументов предоставляют мгновенную помощь для команд с /, показывая, какую информацию нужно предоставить, когда команда ожидает дополнительный ввод.

Когда вы вводите `/`, чтобы открыть меню команд, команды, ожидающие аргументы, отображают подсказку. Эта подсказка указывает, какой тип аргумента ожидается.

> Например:
> * `/mode <mode_slug>` — подсказка `<mode_slug>` указывает, что нужно указать имя режима, например, `code` или `debug`.
> * `/api-endpoint <endpoint-name> <http-method>` — показывает, что нужны как имя конечной точки, так и HTTP-метод.

После выбора команды она будет вставлена в поле ввода чата с пробелом. 

{% note info %}

Подсказка не вставляется в чат. Это только визуальное руководство, чтобы помочь вам понять, что вводить дальше. Затем вы должны вручную ввести аргумент после команды.

{% endnote %}

### Добавление подсказок аргументов к пользовательским командам {#adding-argument-hints-to-custom-commands}

Вы можете добавить подсказки аргументов к вашим пользовательским командам, используя поле `argument-hint` в метаданных команды:

```yaml
---
description: Создайте новую конечную точку REST API с лучшими практиками
argument-hint: <имя-конечной-точки> <http-метод>
---
```

В меню команд это будет отображаться как `/api-endpoint <имя-конечной-точки> <http-метод>`.

## Рекомендации {#recommendations}

Именование команд:
* Используйте описательные, ориентированные на действие имена.
* Держите имена лаконичными, но понятными.
* Используйте дефисы для многословных команд.
* Избегайте общих имен, таких как `help` или `test`.

Содержание команд:
* Начинайте с четкого указания.
* Используйте структурированные форматы (списки, разделы).
* Включайте конкретные требования.
* Ссылайтесь на общие соглашения проекта.
* Держите команды сосредоточенными на одной задаче.

Организация:
* Группируйте связанные команды в подкаталоги.
* Используйте согласованные шаблоны именования.
* Документируйте сложные команды.
* Контролируйте версии ваших команд.
* Делитесь командами в репозитории проекта.