parallel-executor
Execute independent spec stages in parallel using subagents with real-time incremental apply. Use when spec has multiple stages without file conflicts. Automatically detects dependencies and runs maximum parallel agents.
When & Why to Use This Skill
The Parallel Executor skill optimizes software development workflows by enabling the simultaneous execution of independent specification stages. By leveraging subagents and real-time incremental updates, it significantly reduces development time while ensuring code integrity through automated dependency analysis and conflict detection. This skill is essential for complex projects requiring high-concurrency task management and efficient multi-agent coordination.
Use Cases
- Accelerating feature implementation by running non-conflicting backend API development and frontend UI component creation in parallel.
- Executing large-scale refactoring or codebase migrations across multiple independent modules simultaneously to minimize downtime.
- Automating the concurrent generation of unit tests and technical documentation for different parts of a project to improve development velocity.
- Managing complex multi-stage deployments where independent infrastructure components can be provisioned by separate subagents.
| name | parallel-executor |
|---|---|
| description | Execute independent spec stages in parallel using subagents with real-time incremental apply. Use when spec has multiple stages without file conflicts. Automatically detects dependencies and runs maximum parallel agents. |
Parallel Executor Skill
Назначение: Выполняет независимые этапы ТЗ параллельно с помощью субагентов.
Ключевая особенность: Real-time incremental apply — изменения применяются мгновенно по мере завершения каждого агента, обеспечивая немедленную обратную связь.
Когда использовать
- Пользователь запрашивает: "реализуй ТЗ параллельно", "implement spec in parallel"
- Spec-файл содержит ≥2 этапов
- Этапы не конфликтуют по файлам
Алгоритм работы
1. Загрузка спецификации
Определить текущую ветку:
git branch --show-current
Загрузить spec-файл:
.ai/specs/{branch-name}.md
2. Анализ зависимостей
Для каждого этапа спецификации извлечь:
- Статус — только ⬜ (не начат) или 🔄 (в работе)
- Файлы — секция "Файлы" в этапе
Построить матрицу конфликтов:
| Этап A | Этап B | Конфликт? |
|---|---|---|
| Stage1 | Stage2 | Да, если пересекаются файлы |
| Stage1 | Stage3 | Нет, файлы разные |
Правило: Этапы могут выполняться параллельно ↔️ их файлы не пересекаются.
3. Топологическая сортировка
Разбить этапы на уровни параллелизма:
Уровень 0: [Stage1, Stage3] — могут выполняться параллельно
Уровень 1: [Stage2] — зависит от Stage1
Уровень 2: [Stage4] — зависит от Stage2
4. Запуск параллельных агентов
Для каждого этапа на текущем уровне создать субагента:
# Через Task tool
Task(
subagent_type="general-purpose",
prompt=f"""
Выполни этап {stage_name} из спецификации {spec_file}.
## Правила фреймворка
1. Работай в рамках одного коммита (≤250 строк изменений)
2. Используй conventional commits: feat:, fix:, refactor:, test:
3. Запускай тесты перед коммитом
4. НЕ обновляй CHANGELOG.md (обновляется только при merge)
5. Все правила из CLAUDE.md обязательны к исполнению
## Этап для выполнения
{stage_content}
## Требуемый результат
1. Реализуй все задачи этапа
2. Запусти тесты
3. Создай коммит через commit-helper
4. Обнови статус этапа в spec на ✅
""",
run_in_background=True # параллельное выполнение
)
Важно: Передать все агенты в одном сообщении для истинного параллелизма:
[Task tool для агента 1]
[Task tool для агента 2]
[Task tool для агента 3]
5. Мониторинг и применение изменений
Сохранить task_id для каждого агента:
task_ids = [agent1.id, agent2.id, agent3.id]
Режим 1: Real-time Incremental Apply (рекомендуется)
Применять изменения мгновенно по мере завершения каждого агента:
import time
pending_tasks = {task_id: stage_name for task_id, stage_name in zip(task_ids, stage_names)}
applied_stages = []
while pending_tasks:
for task_id in list(pending_tasks.keys()):
result = TaskOutput(task_id=task_id, block=False)
if result.get("status") == "completed":
# Агент завершился — применяем изменения немедленно
stage_name = pending_tasks[task_id]
# Извлекаем сгенерированный код из результата
generated_files = extract_code_from_result(result)
# Применяем через Write/Edit
for file_path, content in generated_files.items():
if content.get("action") == "create":
Write(file_path=file_path, content=content["code"])
elif content.get("action") == "edit":
Edit(file_path=file_path, old_string=content["old"], new_string=content["new"])
applied_stages.append(stage_name)
del pending_tasks[task_id]
print(f"✅ {stage_name} применён ({len(applied_stages)}/{len(task_ids)})")
time.sleep(2) # Polling interval
Преимущества real-time apply:
- Мгновенная обратная связь для пользователя
- Раннее обнаружение конфликтов
- Возможность продолжить работу даже если один агент упал
- Пользователь видит прогресс в реальном времени
Режим 2: Batch Apply (традиционный)
Ждать завершения всех агентов, затем применять:
all_results = []
for task_id in task_ids:
result = TaskOutput(task_id=task_id, block=True)
all_results.append(result)
# Применяем все изменения разом
for result in all_results:
apply_changes_from_result(result)
6. Сбор результатов
Возможные исходы:
- ✅ Все этапы успешно — перейти к следующему уровню
- ⚠️ Частичный успех — зафиксировать ошибки, предложить повтор
- ❌ Конфликт при merge — использовать git-merge стратегию
7. Обработка конфликтов
Если агенты изменили одни и те же файлы:
# Попытка авто-merge
git merge agent1-branch --no-edit
# Если конфликт — уведомить пользователя
echo "Обнаружен конфликт в {файл}"
echo "Агент 1: {изменения}"
echo "Агент 2: {изменения}"
echo "Требуется ручное разрешение"
8. Переход к следующему уровню
Повторить шаги 4-7 для следующего уровня параллелизма.
Пример сценария
Spec: feature-user-dashboard.md
Этапы:
- Mock OAuth (файлы:
src/api/routes/oauth_mock.py) - Dashboard Page (файлы:
src/web/dashboard/,src/templates/dashboard.html) - Admin Panel (файлы:
src/api/routes/admin.py)
Анализ:
- Этап 1 и Этап 2: ✅ параллельно (разные файлы)
- Этап 1 и Этап 3: ✅ параллельно (разные файлы)
- Этап 2 и Этап 3: ✅ параллельно (разные файлы)
Результат: Все 3 этапа на Уровне 0 → запустить 3 агента параллельно
Ограничения
- Максимум 3 агента одновременно (настраивается в
ai-settings.json) - Sandbox ограничения: Субагенты не могут напрямую писать файлы (Write/Edit) из-за безопасности
- Workaround: Агенты возвращают код как текст, главный агент применяет через Write/Edit
- Real-time apply работает благодаря главному агенту, который применяет изменения мгновенно
- Каждый агент работает в своей ветке:
parallel/{stage-name}/{timestamp} - Каждый агент создаёт независимый коммит
- CHANGELOG обновляется только при merge всех этапов
Конфигурация
.ai/ai-settings.json:
{
"parallel": {
"enabled": true,
"min_parallel_stages": 2,
"max_concurrent_agents": 3,
"conflict_resolution": "git-merge",
"commit_strategy": "independent",
"apply_mode": "realtime"
}
}
Параметр apply_mode:
"realtime"— применять изменения мгновенно по мере завершения агентов (рекомендуется)"batch"— применять все изменения после завершения всех агентов
Коды возврата
| Код | Значение | Действие |
|---|---|---|
| 0 | Успех | Следующий уровень |
| 1 | Частичный успех | Повторить неудачные этапы |
| 2 | Конфликт merge | Запросить разрешение у пользователя |
| 3 | Ошибка агента | Логи + предложение альтернативы |
Интеграция с другими skills
- session-loader: Загружает spec перед параллельным выполнением
- commit-helper: Вызывается каждым агентом для коммита
- merge-helper: Финальный merge всех параллельных веток
Диагностика
При ошибках проверить:
# Статус всех параллельных веток
git branch | grep parallel
# Конфликты в текущей ветке
git status
# Логи агентов
ls -la .claude/logs/parallel/
Post-Execution Consolidation (Auto-Triggered)
После завершения всех этапов автоматически запускается консолидация сессии:
# В конце parallel-executor, после завершения всех этапов
if all_stages_complete():
Skill(skill="session-consolidator")
Что делает session-consolidator
- Запускает субагента в чистом контексте — анализ происходит без влияния истории текущей сессии
- Собирает историю сессии — spec, git log, изменения файлов
- Анализирует соответствие пайплайну — проверка выполнения правил из CLAUDE.md
- Выявляет неясности — документы ambiguities и решения
- Создаёт отчёт —
.ai/specs/archive/{branch-name}-session-summary.md
Результат консолидации
✅ Session consolidation complete
📄 Report: .ai/specs/archive/{branch-name}-session-summary.md
🌿 Branch: {branch-name}
📊 Compliance Score: {X}/10
Конфигурация
Авто-запуск контролируется настройкой в .ai/ai-settings.json:
{
"framework": {
"session_consolidation": {
"enabled": true,
"auto_trigger_after_parallel": true
}
}
}
Если нужно отключить авто-запуск, установите auto_trigger_after_parallel: false.