# Когда использовать skill

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Научиться **выбирать** готовый skill из ECC (или свой) под тип задачи — без перегрузки «включить всё».

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

- [Что такое skills](chto-takoe-skills.md)

## Время

**45–60 минут**

---

## Decision tree

```mermaid
flowchart TD
  T[Новая задача]
  T --> R{Есть повторяющийся workflow?}
  R -->|нет| P[Промпт + rules]
  R -->|да| S{Есть skill в ECC?}
  S -->|да| U[Skill + узкий промпт]
  S -->|нет| C[Создать skill]
  U --> A{Нужна изоляция?}
  A -->|да| G[Agent субагент]
  A -->|нет| OK[Текущая сессия]
```

---

## Матрица: задача → skill (ECC)

| Задача | Skill (примеры) |
|--------|-----------------|
| Новая фича с тестами | `tdd-workflow` |
| FastAPI endpoint | `fastapi-patterns` |
| Django app | `django-patterns`, `django-tdd` |
| React компонент | `react-patterns`, `react-testing` |
| Code review | agent `code-reviewer` + skill coding-standards |
| Security review | agent `security-reviewer` |
| Установка ECC | `configure-ecc` |
| Выбор subset ECC | `agent-sort` |
| E2E тесты | `e2e-testing` |
| Документация API | `documentation-lookup` |
| Production readiness | `production-audit`, `verification-loop` |
| Отладка агента | `agent-introspection-debugging` |

Языковые: `golang-patterns`, `kotlin-patterns`, `springboot-patterns`, …

---

## Когда skill **не** нужен

- Разовый вопрос «что делает функция X» → Chat.
- Одна строка правки → промпт + glob rule.
- Политика «всегда immutable» → rule, не skill.
- Эксперимент «попробовать идею» → без formal workflow.

---

## Комбинации skills + rules + agents

**Хороший стек для фичи:**

1. Rules: coding-style, security (always).
2. Skill: `tdd-workflow` (activation on feature).
3. После diff: субагент `code-reviewer`.

**Плохо:** активировать `django-patterns` + `fastapi-patterns` + `nestjs-patterns` одновременно «на всякий случай».

---

## agent-sort: не ставить весь ECC

Репозиторий ECC огромен (сотни skills). Skill **`agent-sort`** помогает:

- проанализировать ваш repo;
- разделить компоненты на DAILY vs LIBRARY;
- установить **минимальный** набор.

Используйте перед `configure-ecc`, если не хотите копировать всё подряд.

---

## Явный vs автоматический вызов

| Режим | Когда |
|-------|-------|
| Авто (по description) | Рутинные задачи, description точный |
| Явный в промпте | Критичный процесс (TDD, security audit) |
| `@skill` | Неоднозначный запрос |

Для compliance-процессов предпочитайте **явный** вызов.

---

## Skill vs MCP tool

| Skill | MCP |
|-------|-----|
| Инструкция агенту **как** работать | **API** к внешней системе |
| Markdown | Сервер + tools |

Пример: skill `documentation-lookup` говорит «используй Context7 MCP для docs» — skill orchestrates, MCP fetches.

Раздел 08 курса — MCP подробнее (в разработке).

---

## Признаки, что пора свой skill

- Вы 5+ раз скопировали один checklist в промпт.
- Онбординг новичков: «как мы деплоим staging».
- Release process с 10 шагами.
- Domain-specific знания (внутренний API компании).

---

## Практика

Выберите **одну** реальную задачу на неделе. Заполните:

```markdown
Задача: ___
Skill из ECC: ___ (или «нет»)
Rules: ___
Нужен субагент: да/нет ___
```

Выполните и запишите число итераций.

---

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

1. Когда достаточно промпта без skill?
2. Какой skill для новой FastAPI фичи с тестами?
3. Зачем agent-sort перед полной установкой ECC?
4. Чем skill от MCP server?

## Дальше

→ [Создать skill](sozdat-skill.md)
