Subagent Driven Development
Выполнение планов через субагенты delegate_task с двухэтапным ревью.
Метаданные навыка
| Источник | Опциональный (устанавливается по запросу) — установить командой hermes skills install official/software-development/subagent-driven-development |
| Путь | optional-skills/software-development/subagent-driven-development |
| Версия | 1.1.0 |
| Автор | Hermes Agent (адаптировано из obra/superpowers) |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | delegation, subagent, implementation, workflow, parallel |
| Связанные навыки | plan, requesting-code-review, test-driven-development |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Именно это агент видит как инструкцию во время работы.
Subagent-Driven Development
Обзор
Выполнение планов реализации путём отправки свежих субагентов на каждую задачу с систематическим двухэтапным ревью.
Основной принцип: свежий субагент на каждую задачу + двухэтапное ревью (соответствие спецификации, затем качество кода) = высокое качество и быстрая итерация.
Когда использовать
Используй этот навык, когда:
- есть план реализации (из навыка
planили пользовательских требований); - задачи в основном независимы друг от друга;
- соответствие спецификации и качество кода критичны;
- нужна автоматическая проверка между задачами.
По сравнению с ручным выполнением:
- чистый контекст для каждой задачи — никакой путаницы из накопленного состояния;
- автоматическое ревью обнаруживает проблемы рано;
- единообразные проверки качества по всем задачам;
- субагенты могут задать вопросы до начала работы.
Процесс
1. Чтение и разбор плана
Прочитай файл плана. Извлеки ВСЕ задачи с полным текстом и контекстом за один раз. Создай список задач:
# Read the plan
read_file("docs/plans/feature-plan.md")
# Create todo list with all tasks
todo([
{"id": "task-1", "content": "Create User model with email field", "status": "pending"},
{"id": "task-2", "content": "Add password hashing utility", "status": "pending"},
{"id": "task-3", "content": "Create login endpoint", "status": "pending"},
])
Главное: план читается ОДИН раз. Всё извлекается сразу. Не заставляй субагентов читать файл плана — передавай полный текст задачи прямо в контексте.
2. Рабочий процесс для каждой задачи
Для КАЖДОЙ задачи из плана:
Шаг 1: запустить субагент-исполнитель
Используй delegate_task с полным контекстом:
delegate_task(
goal="Implement Task 1: Create User model with email and password_hash fields",
context="""
TASK FROM PLAN:
- Create: src/models/user.py
- Add User class with email (str) and password_hash (str) fields
- Use bcrypt for password hashing
- Include __repr__ for debugging
FOLLOW TDD:
1. Write failing test in tests/models/test_user.py
2. Run: pytest tests/models/test_user.py -v (verify FAIL)
3. Write minimal implementation
4. Run: pytest tests/models/test_user.py -v (verify PASS)
5. Run: pytest tests/ -q (verify no regressions)
6. Commit: git add -A && git commit -m "feat: add User model with password hashing"
PROJECT CONTEXT:
- Python 3.11, Flask app in src/app.py
- Existing models in src/models/
- Tests use pytest, run from project root
- bcrypt already in requirements.txt
""",
toolsets=['terminal', 'file']
)
Шаг 2: запустить субагент-ревьюер соответствия спецификации
После завершения исполнителя — проверить реализацию против исходной спецификации:
delegate_task(
goal="Review if implementation matches the spec from the plan",
context="""
ORIGINAL TASK SPEC:
- Create src/models/user.py with User class
- Fields: email (str), password_hash (str)
- Use bcrypt for password hashing
- Include __repr__
CHECK:
- [ ] All requirements from spec implemented?
- [ ] File paths match spec?
- [ ] Function signatures match spec?
- [ ] Behavior matches expected?
- [ ] Nothing extra added (no scope creep)?
OUTPUT: PASS or list of specific spec gaps to fix.
""",
toolsets=['file']
)
Если найдены расхождения со спецификацией: устрани их, затем запусти ревью соответствия повторно. Переходи дальше только при статусе PASS.
Шаг 3: запустить субагент-ревьюер качества кода
После прохождения проверки соответствия:
delegate_task(
goal="Review code quality for Task 1 implementation",
context="""
FILES TO REVIEW:
- src/models/user.py
- tests/models/test_user.py
CHECK:
- [ ] Follows project conventions and style?
- [ ] Proper error handling?
- [ ] Clear variable/function names?
- [ ] Adequate test coverage?
- [ ] No obvious bugs or missed edge cases?
- [ ] No security issues?
OUTPUT FORMAT:
- Critical Issues: [must fix before proceeding]
- Important Issues: [should fix]
- Minor Issues: [optional]
- Verdict: APPROVED or REQUEST_CHANGES
""",
toolsets=['file']
)
Если найдены проблемы с качеством: исправь их, пройди ревью ещё раз. Переходи дальше только после APPROVED.
Шаг 4: отметить задачу завершённой
todo([{"id": "task-1", "content": "Create User model with email field", "status": "completed"}], merge=True)
3. Финальное ревью
После завершения ВСЕХ задач запусти финального ревьюера интеграции:
delegate_task(
goal="Review the entire implementation for consistency and integration issues",
context="""
All tasks from the plan are complete. Review the full implementation:
- Do all components work together?
- Any inconsistencies between tasks?
- All tests passing?
- Ready for merge?
""",
toolsets=['terminal', 'file']
)
4. Проверка и коммит
# Run full test suite
pytest tests/ -q
# Review all changes
git diff --stat
# Final commit if needed
git add -A && git commit -m "feat: complete [feature name] implementation"
Гранулярность задач
Каждая задача = 2–5 минут сфокусированной работы.
Слишком крупно:
- “Implement user authentication system”
Правильный размер:
- “Create User model with email and password fields”
- “Add password hashing function”
- “Create login endpoint”
- “Add JWT token generation”
- “Create registration endpoint”
Красные флаги — никогда так не делай
- Начинать реализацию без плана
- Пропускать ревью (соответствие спецификации или качество кода)
- Переходить дальше при незакрытых критичных/важных замечаниях
- Запускать несколько субагентов-исполнителей для задач, затрагивающих одни и те же файлы
- Заставлять субагента читать файл плана (передавай полный текст в контексте)
- Пропускать контекст о месте задачи в проекте — субагент должен понимать общую картину
- Игнорировать вопросы субагента — ответь, прежде чем он продолжит работу
- Принимать реализацию, которая «почти соответствует» спецификации
- Пропускать повторное ревью (ревьюер нашёл проблемы → исполнитель исправил → ревью снова)
- Позволять самопроверке исполнителя заменять настоящее ревью — нужны оба
- Начинать проверку качества кода до того, как соответствие спецификации получило статус PASS (неверный порядок)
- Переходить к следующей задаче, пока хоть одно ревью имеет открытые замечания
Обработка нештатных ситуаций
Субагент задаёт вопросы
- Отвечай чётко и полно
- При необходимости добавляй контекст
- Не торопи его к реализации
Ревьюер нашёл проблемы
- Субагент-исполнитель (или новый) исправляет их
- Ревьюер проходит ревью снова
- Повторяй до получения APPROVED
- Не пропускай повторное ревью
Субагент не справился с задачей
- Запусти новый субагент с конкретными инструкциями о том, что пошло не так
- Не пытайся чинить вручную в сессии контроллера — это загрязняет контекст
Замечания об эффективности
Зачем свежий субагент на каждую задачу:
- исключает загрязнение контекста накопленным состоянием;
- каждый субагент получает чистый, сфокусированный контекст;
- нет путаницы от кода и рассуждений предыдущих задач.
Зачем двухэтапное ревью:
- ревью соответствия спецификации рано выявляет недостроенное или избыточное;
- ревью качества гарантирует добротность реализации;
- проблемы обнаруживаются до того, как накапливаются между задачами.
Компромисс по стоимости:
- больше вызовов субагентов (исполнитель + 2 ревьюера на задачу);
- зато проблемы выявляются рано — дешевле, чем отлаживать накопленные ошибки потом.
Интеграция с другими навыками
С навыком plan
Этот навык ВЫПОЛНЯЕТ планы, созданные навыком plan:
- Требования пользователя → plan → план реализации
- План реализации → subagent-driven-development → работающий код
С навыком test-driven-development
Субагенты-исполнители должны следовать TDD:
- Сначала написать падающий тест
- Реализовать минимальный код
- Убедиться, что тест проходит
- Закоммитить
Включай инструкции TDD в контекст каждого субагента-исполнителя.
С навыком requesting-code-review
Двухэтапный процесс ревью и есть ревью кода. Для финального ревью интеграции используй размерности проверки из навыка requesting-code-review.
С навыком systematic-debugging
Если субагент натолкнулся на баг во время реализации:
- Следуй процессу systematic-debugging
- Найди корневую причину до исправления
- Напиши регрессионный тест
- Возобнови реализацию
Пример рабочего процесса
[Read plan: docs/plans/auth-feature.md]
[Create todo list with 5 tasks]
--- Task 1: Create User model ---
[Dispatch implementer subagent]
Implementer: "Should email be unique?"
You: "Yes, email must be unique"
Implementer: Implemented, 3/3 tests passing, committed.
[Dispatch spec reviewer]
Spec reviewer: ✅ PASS — all requirements met
[Dispatch quality reviewer]
Quality reviewer: ✅ APPROVED — clean code, good tests
[Mark Task 1 complete]
--- Task 2: Password hashing ---
[Dispatch implementer subagent]
Implementer: No questions, implemented, 5/5 tests passing.
[Dispatch spec reviewer]
Spec reviewer: ❌ Missing: password strength validation (spec says "min 8 chars")
[Implementer fixes]
Implementer: Added validation, 7/7 tests passing.
[Dispatch spec reviewer again]
Spec reviewer: ✅ PASS
[Dispatch quality reviewer]
Quality reviewer: Important: Magic number 8, extract to constant
Implementer: Extracted MIN_PASSWORD_LENGTH constant
Quality reviewer: ✅ APPROVED
[Mark Task 2 complete]
... (continue for all tasks)
[After all tasks: dispatch final integration reviewer]
[Run full test suite: all passing]
[Done!]
Запомни
Fresh subagent per task
Two-stage review every time
Spec compliance FIRST
Code quality SECOND
Never skip reviews
Catch issues early
Качество — не случайность. Это результат системного процесса.
Дополнительное чтение (загружать по ситуации)
Когда оркестрация предполагает значительный расход контекста, длинные циклы ревью или сложные контрольные точки валидации, загрузи эти справочники для конкретной дисциплины:
references/context-budget-discipline.md— четырёхуровневая модель деградации контекста (PEAK / GOOD / DEGRADING / POOR), правила глубины чтения в зависимости от размера контекстного окна, ранние признаки скрытой деградации. Загружай, когда прогон явно потребует значительного контекста: многофазные планы, много субагентов, крупные артефакты.references/gates-taxonomy.md— четыре канонических типа гейтов (Pre-flight, Revision, Escalation, Abort) с описанием поведения, восстановления и примерами. Загружай при проектировании или проверке любого рабочего процесса с контрольными точками валидации — используй терминологию явно, чтобы у каждого гейта были определены вход, поведение при сбое и правила возобновления.
Оба справочника адаптированы из gsd-build/get-shit-done (MIT © 2025 Lex Christopherson).