Как я делаю фичу пятью командами
Две недели назад переехал на сетап скиллов от Matt Pocock, докрутил пилот - показываю весь конвейер: от "хочу фичу X" до открытого PR.
Идея под ним ровно та, что разбирал во вторник: агент должен получать контекст порциями, а не тонуть в одной бесконечной сессии. Каждый этап - своя сессия, в которую влезает меньше 100-200к.
Ставится все это одной командой: npx skills@latest add mattpocock/skills, дальше /setup-matt-pocock-skills один раз на репозиторий.
Конвейер 1. /grill-with-docs хочу фичу X - агент люто досит вас уточняющими вопросами: дизайн фичи, архитектура кода, технические нюансы. Детали реализации, которые у вас уже в голове, на входе лучше не выкладывать: может, агент придет к тому же сам, может - к варианту получше, а может, вы сами передумаете по дороге. Направить его вы всегда успеете. На выходе - "Shared Understanding", зафиксированный в CONTEXT.md и ADR (про сам скилл писал тут).
Если на этом вы сожгли меньше 50к контекста и понимаете, что реализация быстрая - просто жмите /implement this в той же сессии. Все, что ниже - для задач побольше. 2. /to-spec - в той же сессии агент пишет спецификацию фичи: продукт, дизайн кода и так далее. Я ее не читаю, мне хватает "Shared Understanding". Держу в git-ignored .scratch, потому что живет она до реализации.
3. /to-tickets write the plan down as tickets and a general PLAN.md with refs to them - агент нарезает спеку на тикеты и собирает PLAN.md со ссылками на них:
.scratch/ ├─ SPEC.md ├─ PLAN.md └─ tickets/ ├─ ticket-1.md ├─ ticket-2.md └─ ...
Тут сессию можно смело /clear - она свое отработала.
4. /implement - цикл "реализация → ревью сабагентом → правки", пока тикет не закроется. Дальше развилка. Если агент уместит всю задачу в 200к - /implement all tickets @.scratch/PLAN.md и ждете 30-60-120 минут. Если чувствуете, что не влезет - делайте по тикету на сессию: /implement the next ticket from @.scratch/PLAN.md, then /triage it. Агент сам реализует, отревьюит себя, поправит комментарии, поменяет статус тикета и весело отрапортует вам об исполнении. Вам остается сделать /clear и вставить тот же самый промпт - агент побежит делать план дальше.
5. /code-review all the tickets and the whole implementation of @.scratch/PLAN.md, then fix any issues you find - в свежей сессии, когда все тикеты готовы. Так, на всякий случай.
6. Если нужны правки в рамках этой задачи, также завожу новую сессию и пишу что-то вроде I just implemented @.scratch/PLAN.md. One last change I need: ...
Напоследок прошу засквошить коммиты (агент коммитит после каждого тикета), запушить, открыть PR по шаблону и подчистить .scratch.
Что остается в проекте
Коммитятся в гит:
• CONTEXT.md - словарь доменных терминов проекта (из DDD, ага). Нужен, чтобы агент говорил с вами на одном языке: когда вы просите "подправь представление файлов в дереве", ему не придется грепать, чтобы понять, что за файлы, что за дерево и как одно попадает в другое. • ADR-*.md - архитектурные решения. Чтобы в будущих сессиях агент понимал, почему модуль сделан так, а не иначе, и ничего не сломал. Не каждая фича достойна ADR, но если вы делали сложный выбор на дизайне или правили агента руками - хороший кандидат. По идее ADR неизменяемы, но я время от времени схлопываю все ADR по одной области проекта в один актуальный.
Умирают вместе с фичей: SPEC.md, тикеты, PLAN.md.
Тикетницу, кстати, можно взять любую - Github Issues, Linear, Jira. Просто я не вижу смысла плодить сотни ишью на гите, поэтому держу локально.
Две недели полет нормальный, могу рекомендовать. Но не стоит прогонять полный пайплайн, если нужны изменения вида "кнопка ведет себя некорректно" - это можно и просто попросить.
А вот видос от самого Мэтта, где он показывает весь свой цикл целиком.
А у вас как устроен конвейер работы над фичей? Закидывайте в комменты - увижу что-то, чего у меня нет, обязательно сворую🌚
В этом посте были ссылки, но мы их удалили по правилам Сетки