← [Главная](../README.md)

# 07 — Команды (slash commands)

## Цель

Понять, что такое **slash-команды** в Cursor и ECC, как они ускоряют повторяющиеся сценарии и чем отличаются от обычного промпта и от skills.

## Предварительно

- Пройдены разделы [03 — Промпты](../03-prompts/README.md) и [05 — Skills](../05-skills/README.md)
- Установлен Cursor IDE с доступом к Agent/Chat
- (Опционально) клонирован репозиторий ECC: `/Users/nazeebod/Projects/ECC`

## Время

**4–6 часов** (чтение + выполнение 2–3 команд на учебном проекте)

---

## Зачем нужны команды

**Slash-команда** — это заранее подготовленный промпт-шаблон, который вызывается коротким именем после символа `/` в чате Cursor. Вместо того чтобы каждый раз писать «сделай code review с фокусом на безопасность и тесты», вы вводите `/code-review` — и агент получает полную инструкцию из файла.

| Подход | Когда использовать |
|--------|-------------------|
| Обычный промпт | Разовая нестандартная задача |
| **Command** | Повторяемый сценарий с фиксированными шагами |
| **Skill** | Сложный workflow с условиями, ветвлениями, ссылками на скрипты |
| **Rule** | Постоянные ограничения стиля, а не разовый сценарий |

Команды — «быстрые кнопки» для агента. Skills — «учебники» с детальной логикой. Оба дополняют друг друга.

---

## Где живут команды

### Cursor (встроенные и пользовательские)

| Расположение | Назначение |
|--------------|------------|
| Встроенные `/` в UI | Режимы, вложения, быстрые действия редактора |
| `.cursor/commands/*.md` | Пользовательские команды **проекта** |
| Глобальные настройки Cursor | Команды на уровне пользователя (если настроены) |

Файл команды — обычный Markdown с YAML-frontmatter:

```markdown
---
description: Краткое описание для палитры команд
---

# Тело команды

Инструкции для агента…
```

### ECC

В репозитории ECC команды лежат в `ECC/.cursor/commands/` — более **70** готовых сценариев: `/plan`, `/code-review`, `/build-fix`, `/hookify`, `/ecc-guide` и др. После установки ECC они копируются в `.cursor/commands/` вашего проекта или остаются доступны через symlink/установщик.

---

## Оглавление раздела

| Страница | Содержание |
|----------|------------|
| [slash-commands-cursor.md](slash-commands-cursor.md) | Встроенные и проектные команды Cursor, синтаксис, палитра |
| [ecc-commands.md](ecc-commands.md) | Каталог ECC: планирование, review, build, learning, hookify |
| [sozdanie-command.md](sozdanie-command.md) | Создание своей команды: структура, тестирование, типичные ошибки |

---

## Связь с другими разделами курса

```
Промпт (разовый)  →  Command (шаблон)  →  Skill (глубокий workflow)
        ↑                    ↑                      ↑
     раздел 03            раздел 07              раздел 05
```

- **Hooks** (раздел 08) реагируют на *события* (сохранение файла, конец сессии), а не на ввод `/команды`.
- **Agents** (раздел 06) — отдельные роли; команда может *поручить* запуск субагента, но не заменяет его определение.

---

## Практика на 15 минут

1. Откройте Cursor в пустом учебном репозитории.
2. Наберите `/` в Agent Chat — изучите список доступных команд.
3. Если установлен ECC — найдите `/ecc-guide` и выполните `/ecc-guide commands`.
4. Запишите в конспект: какие 3 команды вы будете использовать чаще всего.

---

## Типичные вопросы новичков

**Команда не видна в списке `/`.** Проверьте путь `.cursor/commands/`, расширение `.md`, поле `description` и перезагрузите окно Cursor.

**Команда ECC есть в репозитории, но не в проекте.** Нужна установка через `configure-ecc` или ручное копирование файла — см. [раздел 11](../11-ecc/ustanovka-i-agent-sort.md).

**Агент игнорирует тело команды.** Допишите уточнение после `/имя` или прикрепите `@файл` с контекстом; убедитесь, что режим — Agent, а не Ask.

---

## Оценка времени по страницам

| Страница | Чтение | Практика |
|----------|--------|----------|
| slash-commands-cursor | 25 мин | 20 мин |
| ecc-commands | 30 мин | 30 мин |
| sozdanie-command | 25 мин | 45 мин |

---

## Самопроверка

1. Чем команда отличается от skill и от rule?
2. Где в проекте лежит файл пользовательской команды?
3. Что делает поле `description` в frontmatter?
4. Назовите две ECC-команды для планирования и для исправления сборки.

---

## Дальше

→ [Slash-команды в Cursor](slash-commands-cursor.md)  
→ Следующий раздел: [08 — Hooks](../08-hooks/README.md)
