# Plan Skill

Детальный план реализации: разбивка на bite-sized задачи с TDD, конкретным кодом, маппингом файлов.

## Когда использовать автоматически
- Даня говорит «спланируй», «план», «plan», «разбей на задачи»
- Перед фичей которая затрагивает 3+ файлов
- После `/discuss` когда требования согласованы и задача нетривиальная

## Когда НЕ использовать
- Однофайловые изменения, простые фиксы
- Даня говорит «просто сделай»
- Задачи без кода (исследования, настройка, текст)

## Алгоритм

### 1. Проверка scope
- Задача покрывает одну связную фичу?
- Если несколько независимых вещей — предложи разделить на отдельные планы
- Если требования размыты — сначала `/discuss`

### 2. Маппинг файлов
Перечисли каждый файл который нужно создать или изменить:

```
Файлы:
  CREATE src/lib/retry.ts — логика повторных попыток
  CREATE src/lib/__tests__/retry.test.ts — тесты
  MODIFY src/api/handler.ts — интеграция retry
  MODIFY src/types/index.ts — новые типы
```

### 3. Декомпозиция на задачи
Каждая задача — 2-5 минут работы. Структура задачи:

```
### Задача N: [Название]
Файлы: [список]

**Тест (RED):**
[конкретный код теста — не "напиши тест для X"]

**Реализация (GREEN):**
[конкретный код — не "добавь обработку ошибок"]

**Коммит:** feat|fix|refactor: [сообщение]
```

Требования к задачам:
- **Конкретный код** — не плейсхолдеры ("add error handling", "implement logic")
- **TDD внутри** — каждая задача следует RED → GREEN
- **Порядок зависимостей** — задача N+1 может зависеть от N
- **Один коммит** — каждая задача заканчивается коммитом

### 4. Самопроверка плана
Перед показом Дане проверь:
- [ ] Каждое требование из задачи покрыто хотя бы одной задачей
- [ ] Нет плейсхолдеров (TODO, TBD, "реализовать позже")
- [ ] Типы консистентны между задачами
- [ ] Зависимости в правильном порядке
- [ ] Нет задач дольше 5 минут — если есть, разбей

### 5. Представить план Дане

```
План: [название фичи]
Задач: N
Файлов: N (create: X, modify: Y)

[Список задач — кратко, по одной строке]

Как выполнять?
1. Пошагово в этой сессии
2. Делегировать субагентам (/delegate)
3. Сохранить план на потом
```

### 6. Сохранение (если выбрано)
Сохранить в `~/.claude/plans/YYYY-MM-DD-feature-name.md` с полным содержимым.

## Формат плана (при сохранении)

```markdown
# [Название фичи]
Дата: YYYY-MM-DD
Цель: [одно предложение]
Стек: [технологии]

## Файлы
CREATE/MODIFY — путь — назначение

## Задача 1: [Название]
Файлы: [список]
### Тест (RED)
\`\`\`[язык]
[код теста]
\`\`\`
### Реализация (GREEN)
\`\`\`[язык]
[код реализации]
\`\`\`
### Коммит
feat: [сообщение]

## Задача 2: ...
```

## Правила
- Максимум 10 задач в одном плане. Если больше — разбей на фазы
- Не планировать то, что ещё не обсуждено — если сомнения, сначала `/discuss`
- План — это контракт: если задача не в плане, она не делается (без одобрения)
- Не добавлять «бонусные» задачи типа "а ещё можно добавить..."
- Каждая задача должна оставлять проект в рабочем состоянии (тесты проходят)

## Запрос: $ARGUMENTS
