14 KiB
name, description, whenToUse
| name | description | whenToUse |
|---|---|---|
| task-execution | Выполняет любую нетривиальную задачу по процессу «план → ревью сеньёром → правки → выполнение → ревью результата → правки». План и результат проверяет субагент в роли senior developer; каждый цикл повторяется, пока замечаний не останется. При неясностях агент задаёт вопросы пользователю. Загружай для реализации фичи, исправления бага, рефакторинга, написания кода или документации, когда задача не сводится к одному тривиальному действию. | Пользователь просит выполнить задачу (написать код, починить баг, отрефакторить, задокументировать, что-то исследовать и внедрить) и задача не является тривиальным одношаговым действием. Для тривиальных правок скил можно не применять. |
Выполнение любой задачи: план → сеньёр → выполнение → сеньёр
Контекст
Любая нетривиальная задача выполняется строго по циклу: сначала план, затем ревью плана сеньёром с правками до полного одобрения, затем выполнение по одобренному плану, затем ревью результата сеньёром с правками, пока замечаний не останется. На каждом этапе, если что-то неясно, задаются вопросы пользователю.
Роли
- Исполнитель — ты (агент). Составляешь план, выполняешь, правишь по замечаниям.
- Сеньёр (senior developer) — отдельный субагент, запускаемый через
subagent. Он не видит наш диалог, поэтому каждый промпт ревью должен быть самодостаточным — но самодостаточность достигается за счёт внешнего файла состояния, а не дублирования всего плана в промпте (см. правило 9). - Пользователь — источник требований и финальный судья. Ему задаются вопросы при неясностях.
Обязательные правила
- Сначала план — потом выполнение. Не начинай выполнение, пока сеньёр не одобрил план (ответил
APPROVED). - Ревью плана и результата — только через субагента в роли senior developer (см. шаблоны промптов ниже). Запускай его с
run_in_background: false— следующий шаг зависит от его ответа. - Замечания исправляются все, без выбора. Нельзя отбрасывать замечание «потому что не согласен»: если не согласен — верни уточняющий вопрос сеньёру или спроси пользователя.
- Цикл повторяется, пока сеньёр не вернёт
APPROVED— и для плана, и для результата. - Неясно — спроси. На любом этапе (задача, шаг плана, замечание сеньёра) при неоднозначности задай вопрос пользователю через
ask_user_question. Догадки вместо вопросов — ошибка. - Отслеживай прогресс через
todo_write: план из шага 2 переносится в todo-список, пункты отмечаются по мере выполнения. - Профильные скилы (например
create-go-module) — источник правил «как делать» для конкретной задачи. Этот скил управляет процессом «как вести задачу»; оба применяются вместе. - Бюджет раундов ревью — 3 на цикл (план и результат отдельно). В шаблонах промптов требуй от сеньёра перечислить все замечания одним списком за один заход — включая мелочи, ниты и потенциальные будущие проблемы. После 3 раундов без
APPROVEDостановись и спроси пользователя: продолжать цикл или зафиксировать оставшиеся замечания как известные ограничения (не растягивай полировку на десятки раундов). - Дифф-ревью и внешнее состояние. План, чек-лист и учёт замечаний держи во внешнем файле состояния (например,
.dsh/task-plan.md). Промпт ревью содержит: задачу, путь к файлу состояния, короткую дельту «что изменилось с прошлого раза» иgit diffизменённых файлов. Не пересказывай ревьюеру весь план и всю историю замечаний — файл состояния он прочитает сам (это его контекст, а не наш). - Саморевью до отправки. Перед первым и каждым повторным ревью прогоняй фактические проверки, которые сеньёр всё равно сделает: поведение функций на реальных данных (например,
Transliterate("photo.png"),http.DetectContentType,filepath.Ext("x.PNG?v=2")), чтение сгенерированного кода (pb.gw.go и пр.), арифметику лимитов. «Ревью результата» отправляй какgit diff+ выводы проверок, а не как пересказ плана.
Шаги
1. Уточни задачу
Разберись, что именно нужно сделать. Если неясны цель, объём, ограничения или критерии приёмки — задай вопросы пользователю до составления плана.
2. Составь план
План должен содержать:
- Цель и ожидаемый результат;
- Шаги с конкретными файлами, командами и артефактами;
- Проверки (сборка, тесты, линтеры, вёрстка и т.п.);
- Критерии готовности — что считается «сделано»;
- Риски и открытые вопросы (если есть).
Заведи todo-список через todo_write в соответствии с планом.
3. Ревью плана сеньёром
Сохрани план и критерии в файл состояния (например, .dsh/task-plan.md), прогони саморевью (правило 10), затем запусти субагента с промптом по шаблону «Ревью плана» (ниже). Сеньёр возвращает либо APPROVED, либо список замечаний.
4. Цикл правок плана
- Есть замечания → исправь план в файле состояния (и todo-список), отправь на ревью повторно: в промпт добавь только дельту «что изменилось с прошлого раза» (правило 9).
- Повторяй, пока не получишь
APPROVED; после 3 раундов безAPPROVED— спроси пользователя (см. «Ограничение итераций»).
5. Выполнение
Выполняй строго по одобренному плану, отмечая прогресс в todo_write. Если в ходе выполнения стало ясно, что план нужно изменить — не отклоняйся молча: вернись к шагу 3 с обновлённым планом.
6. Ревью результата
Сначала сам проверь результат (прогони проверки из плана, правило 10), затем отдай его сеньёру по шаблону «Ревью результата»: git diff изменённых файлов + выводы проверок. Сеньёр сверяет результат с планом (файл состояния) и критериями, проверяет корректность и соблюдение конвенций проекта.
7. Цикл правок результата
Правь по замечаниям, повторяй ревью, пока сеньёр не вернёт APPROVED. При каждом повторе сообщай сеньёру только дельту — что изменилось с прошлого раза (правило 9). После 3 раундов без APPROVED — спроси пользователя.
8. Финальный отчёт
Кратко сообщи пользователю: что сделано, какие файлы затронуты, как проверялось, что план и результат одобрены сеньёром.
Шаблон: промпт «Ревью плана»
План и критерии — в файле состояния (путь ниже); в промпт включай только задачу, путь к файлу, дельту с прошлого раза (если есть) и diff, если правился код.
Ты — senior developer. Оцени план выполнения задачи.
Задача: <текст задачи>
План и критерии готовности: <путь к файлу состояния, например .dsh/task-plan.md> (прочитай сам)
Изменения с прошлого раза: <дельту или «первое ревью»>
Проверь: полноту (нет ли пропущенных шагов), достижимость, корректность
подхода, риски, соответствие конвенциям проекта, отсутствие лишних шагов.
Перечисли ВСЕ замечания одним списком за один заход — включая мелочи,
ниты и потенциальные будущие проблемы; не растягивай на несколько раундов.
Ответь СТРОГО одним из двух вариантов:
- APPROVED — если замечаний нет;
- список замечаний, каждое в формате «<что не так> → <как исправить>».
Шаблон: промпт «Ревью результата»
Ты — senior developer. Оцени результат выполнения задачи.
Задача: <текст задачи>
План и критерии готовности: <путь к файлу состояния> (прочитай сам)
Результат: git diff изменённых файлов + выводы проверок (build/vet/test/race)
Изменения с прошлого раза: <дельту или «первое ревью»>
Проверь: результат соответствует плану и критериям готовности, код/текст
корректен, соблюдены конвенции проекта, нет регрессий.
Перечисли ВСЕ замечания одним списком за один заход — включая мелочи,
ниты и потенциальные будущие проблемы.
Ответь СТРОГО одним из двух вариантов:
- APPROVED — если замечаний нет;
- список замечаний, каждое в формате «<что не так> → <как исправить>».
Ограничение итераций
Если в одном цикле (план или результат) после 3 раундов замечания не исчерпались — остановись и спроси пользователя: продолжать цикл или зафиксировать оставшиеся замечания как известные ограничения.
Критерии готовности
- План составлен и одобрен сеньёром (
APPROVED) до начала выполнения. - Все замечания сеньёра по плану учтены.
- Результат соответствует плану и критериям готовности.
- Все замечания сеньёра по результату учтены, получен
APPROVED. - Пользователю дан финальный отчёт.