---
name: subagent-runner
description: "Автоматический запуск и управление субагентами для параллельной обработки задач. Разбивает большие задачи на подзадачи, запускает субагенты параллельно, собирает результаты."
triggers:
  - запусти субагентов
  - parallel agents
  - несколько агентов
  - разбей на подзадачи
  - subagent
  - параллельная обработка
  - delegate to agents
---

# Subagent Runner

Автоматический запуск субагентов для параллельной обработки сложных задач.

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

✅ **Используй когда:**
- Задача разбивается на 2+ независимых подзадачи
- Нужна параллельная обработка (исследование + написание + дизайн)
- Большой объём работы, который можно распараллелить
- Разные части задачи требуют разных специализаций

❌ **НЕ используй когда:**
- Задача простая, выполнима за 1-2 шага
- Подзадачи зависят друг от друга (нужна последовательность)
- Результат одной подзадачи нужен для начала другой

## Workflow

### 1. Анализ задачи

Определи:
- Можно ли разбить на независимые части?
- Сколько субагентов нужно? (обычно 2-4)
- Какая специализация у каждого?

### 2. Запуск субагентов

**Используй HTTP API daemon-а (localhost:4632):**

```bash
# Отправь progress сообщение
bun ~/.claude/plugins/cache/claudeclaw/claudeclaw/1.0.0/commands/progress.ts "🤖" "Запускаю 3 субагента для задачи: [название]"

# Запусти субагента через REST API
curl -X POST http://localhost:4632/api/subagent/run \
  -H "Content-Type: application/json" \
  -d '{"name": "researcher", "prompt": "Исследуй тему X, найди 5 источников"}'

# Получи task_id из ответа:
# {"ok":true,"taskId":"uuid-here","name":"researcher","prompt":"..."}
```

**Сохрани task_id для мониторинга:**

```bash
TASK_ID="полученный-uuid"
```

### 3. Мониторинг

Проверяй статус через API:

```bash
# Получи статус субагента
curl http://localhost:4632/api/subagent/status/$TASK_ID

# Ответ:
# {"ok":true,"status":{"id":"uuid","name":"researcher","status":"running|completed|failed",...}}

# Или дождись результата (блокирующий вызов, таймаут 60 сек по умолчанию)
curl "http://localhost:4632/api/subagent/wait/$TASK_ID?timeout=120000"

# Ответ при успехе:
# {"ok":true,"result":"текст результата субагента"}
```

**Альтернатива - читай файлы напрямую:**

```bash
# Проверь все запущенные субагенты
ls -la ~/.claude/claudeclaw/subagents/

# Читай результаты по мере готовности
cat ~/.claude/claudeclaw/subagents/$TASK_ID.txt
```

### 4. Сборка результатов

Когда все субагенты завершили:
- Прочитай результаты из `.claude/claudeclaw/subagents/`
- Объедини в финальный ответ
- Отправь progress сообщение о завершении

## Примеры

### Пример 1: Исследование + Контент

**Задача:** "Напиши статью об AI агентах с исследованием"

**Разбивка:**
1. Субагент-исследователь: найти 10 источников, ключевые тренды
2. Субагент-писатель: написать черновик на основе исследования
3. Субагент-редактор: проверить факты, улучшить стиль

**Запуск:**

```bash
bun ~/.claude/plugins/cache/claudeclaw/claudeclaw/1.0.0/commands/progress.ts "🤖" "Запускаю 3 субагента: исследователь, писатель, редактор"

# Запусти параллельно
curl -X POST http://localhost:4632/api/subagent/run -H "Content-Type: application/json" \
  -d '{"name":"researcher","prompt":"Найди 10 источников об AI агентах, выдели ключевые тренды 2026"}' &

curl -X POST http://localhost:4632/api/subagent/run -H "Content-Type: application/json" \
  -d '{"name":"writer","prompt":"Напиши черновик статьи об AI агентах, структура: intro, 3 секции, вывод"}' &

curl -X POST http://localhost:4632/api/subagent/run -H "Content-Type: application/json" \
  -d '{"name":"editor","prompt":"Проверь факты и улучши стиль статьи, убери воду"}' &

wait
```

### Пример 2: Многофайловый рефакторинг

**Задача:** "Обнови 5 файлов под новую архитектуру"

**Разбивка:**
1. Субагент-1: рефактор файлов A, B
2. Субагент-2: рефактор файлов C, D
3. Субагент-3: рефактор файла E, обновить тесты

## API Endpoints

**Daemon работает на:** `http://localhost:4632`

### POST /api/subagent/run
Запускает субагента в фоне.

**Request:**
```json
{
  "name": "researcher",
  "prompt": "Исследуй тему X"
}
```

**Response:**
```json
{
  "ok": true,
  "taskId": "uuid-here",
  "name": "researcher",
  "prompt": "Исследуй тему X"
}
```

### GET /api/subagent/status/:taskId
Получает статус субагента.

**Response:**
```json
{
  "ok": true,
  "status": {
    "id": "uuid",
    "name": "researcher",
    "status": "running|completed|failed",
    "prompt": "...",
    "result": "..." // если completed
  }
}
```

### GET /api/subagent/wait/:taskId?timeout=60000
Блокирующий вызов, ждёт завершения субагента.

**Параметры:**
- `timeout` - таймаут в миллисекундах (5000-300000, по умолчанию 60000)

**Response:**
```json
{
  "ok": true,
  "result": "текст результата"
}
```

**Ошибки:**
- Таймаут автоматически ограничен диапазоном 5-300 секунд для стабильности

## Статус интеграции

1. ✅ **Progress сообщения** - работают полностью
2. ✅ **REST API для запуска субагентов** - работает через localhost:4632
3. ✅ **Мониторинг статуса** - через GET /api/subagent/status/:taskId
4. ✅ **Ожидание результата** - через GET /api/subagent/wait/:taskId

## Автофиксация

НЕ записывай в лог - субагенты это техническая операция, не событие для памяти.

---

**Статус:** ✅ Skill полностью рабочий. REST API интегрирован в daemon (localhost:4632).
