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:

  1. Требования пользователя → plan → план реализации
  2. План реализации → subagent-driven-development → работающий код

С навыком test-driven-development

Субагенты-исполнители должны следовать TDD:

  1. Сначала написать падающий тест
  2. Реализовать минимальный код
  3. Убедиться, что тест проходит
  4. Закоммитить

Включай инструкции TDD в контекст каждого субагента-исполнителя.

С навыком requesting-code-review

Двухэтапный процесс ревью и есть ревью кода. Для финального ревью интеграции используй размерности проверки из навыка requesting-code-review.

С навыком systematic-debugging

Если субагент натолкнулся на баг во время реализации:

  1. Следуй процессу systematic-debugging
  2. Найди корневую причину до исправления
  3. Напиши регрессионный тест
  4. Возобнови реализацию

Пример рабочего процесса

[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).

ESC