# Delegate Skill

Выполнение плана через субагентов: каждой задаче — свежий агент с двухфазным ревью.

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

## Когда НЕ использовать
- План из 1-2 задач — проще выполнить инлайн
- Задачи сильно связаны (общий state, зависимые файлы) — лучше последовательно
- Даня хочет контролировать каждый шаг — используй `/plan` пошагово

## Алгоритм

### 1. Загрузка плана
- Из текущего контекста (после `/plan`) или из файла `~/.claude/plans/...`
- Если план не найден — предложи сначала `/plan`

### 2. Для каждой задачи — диспетчеризация

Запусти **Agent** tool с промптом содержащим:
- Текст задачи (тест + реализация из плана)
- Список файлов которые нужно прочитать/изменить
- Тестовую команду проекта
- Инструкцию: «Следуй TDD: напиши тест, убедись что падает, реализуй, убедись что проходит, коммитни»

**НЕ передавай** агенту: всю историю сессии, другие задачи, контекст обсуждения.

Агент возвращает один из статусов:
- **DONE** — тесты проходят, код закоммичен
- **DONE_WITH_CONCERNS** — сделано, но есть вопросы к ревью
- **NEEDS_CONTEXT** — не хватает информации, нужен ответ
- **BLOCKED** — фундаментальная проблема, нужно решение Даня

### 3. Обработка статусов

| Статус | Действие |
|--------|----------|
| DONE | Переходи к ревью (шаг 4) |
| DONE_WITH_CONCERNS | Прочитай concerns, реши нужно ли исправлять до ревью |
| NEEDS_CONTEXT | Предоставь недостающую информацию, перезапусти агента |
| BLOCKED | Покажи Дане проблему, жди решения. НЕ форсировать |

### 4. Ревью соответствия спеке
Проверь результат агента:
- Код соответствует задаче из плана?
- Все указанные поведения реализованы?
- Тест покрывает ожидаемое поведение?
- Если есть расхождения — вернуть агенту на доработку

### 5. Ревью качества кода
Используй `/code-review` или проверь сам:
- Архитектура, стиль, паттерны проекта
- Нет лишнего кода, нет захардкоженных значений
- Критические проблемы → исправить сразу
- Мелкие замечания → отложить

### 6. Отметить задачу завершённой, перейти к следующей

### 7. После всех задач
- Запусти полный тестовый набор проекта
- Покажи итог:

```
План выполнен: [название]

Задачи: N/N завершено
Тесты: все проходят / X падений
Коммиты: [список]

Дальше: /finish-branch для завершения ветки
```

- Предложи `/finish-branch`

## Параллельное выполнение

Если задачи **независимы** (разные файлы, разные подсистемы):
- Запусти несколько агентов одновременно через параллельные Agent tool calls
- После завершения — проверь нет ли конфликтов между результатами

Если задачи **зависимы** — строго последовательно, одна за другой.

## Правила
- Каждый агент — чистый контекст. Не наследовать историю сессии
- Не пропускать ревью — даже если агент вернул DONE
- При BLOCKED — не пытаться обойти, эскалировать Дане
- Максимум 3 перезапуска агента на одну задачу. Если не справляется — делай сам
- Для domain-специфичных задач используй соответствующих агентов (webdev, sysadmin)
- Worktrees: если Даня хочет изоляцию — используй `isolation: "worktree"` в Agent tool

## Запрос: $ARGUMENTS
