Точнее, на Spec Kit от GitHub. Полгода назад я бы над этим посмеялся: спеки, планы, декомпозиция задач — привет из 2010-го, когда это называлось waterfall и все дружно от него убегали. Оказалось, убегали не от спек, а от того, что их писали люди и потом никто не читал. В этой статье расскажу, где я отхожу от стандарта в угоду скорости.
Что такое SDD по сути
Спецификация становится источником истины, а код — производной от неё. Не промпт в чате, который живёт до перезапуска сессии, а артефакты в репозитории:
-
constitution.md— неизменяемые принципы проекта. Стек, стандарты тестирования, архитектурные ограничения. То, что агент не имеет права нарушить, даже если очень захочется. Я сюда пишу про i18n, тестирование на живом сервере и тп. -
spec.md— что строим. Пользовательские сценарии, критерии приёмки. Без деталей реализации. -
plan.md— как строим. Технические решения со ссылкой на constitution. -
tasks.md— декомпозиция на исполнимые куски.
Пайплайн у Spec Kit такой: /speckit.constitution → /speckit.specify → /speckit.clarify → /speckit.plan → /speckit.tasks → /speckit.analyze → /speckit.implement.
Два шага здесь ключевые, и это не те, о которых обычно говорят.
clarify заставляет агента вычитать спеку и задать вопросы по всем неоднозначностям до того, как он напишет строчку кода. Недоспецификация — основная причина, по которой агент уезжает не туда. Не глупость модели, а то, что вы не договорили, а она додумала.
analyze — гейт консистентности между constitution, spec, plan и tasks. Ловит рассинхрон до того, как он станет коммитом.
Как это выглядит у меня сейчас (личный напильник)
Сразу дисклеймер: то, что ниже, не канон Spec Kit. В коробке верхний уровень — это спека, а никакого roadmap над ней не предусмотрено. Я его надстроил сам, потому что на дистанции длиннее одной фичи без него разваливается.
Итак, сверху лежит roadmap с этапами. Этап — это осмысленный кусок продукта, а не квартальная хотелка. Дальше этап разбивается на спеки автоматически, и спеки уходят в реализацию.
По размеру спека у меня встала где-то между Story и Epic. Меньше Epic, потому что должна помещаться в один связный цикл specify → plan → tasks → implement без потери контекста. Больше Story, потому что описывает поведение целиком, а не один тикет. Практический критерий простой: спека — это то, что можно принять как работающий кусок функциональности и откатить одним движением, если не понравилось.
И вот тут начинается то, ради чего всё затевалось. Когда спеки лежат структурой, а не россыпью, нормально работает команда вида “сделай сразу спеки с 1 по 10”. Агент уходит на час, я занимаюсь другим. Это возможно ровно потому, что каждая спека прошла clarify и analyze: неоднозначности вычищены заранее, и мне не нужно сидеть рядом и ловить момент, где он свернул не туда.
Планирование стало отдельным этапом работы, а не прелюдией к ней. По ощущениям я теперь больше времени трачу на roadmap и разбиение, чем на надзор за реализацией. Это, судя по всему, правильное перераспределение.
Чем это отличается от powertools вокруг Claude Code
Powertools — plan mode, сабагенты, скиллы, хуки, CLAUDE.md — отвечают на вопрос “как агент работает”. Это тюнинг исполнителя: дать ему параллелизм, ограничить права, подсунуть правила линтера, заставить показать blast radius перед рефакторингом.
SDD отвечает на вопрос “что он строит и почему именно так”. Это тюнинг постановки задачи.
Разница практическая, а не философская:
-
Артефакты против конфигурации. CLAUDE.md — это правила поведения агента. spec.md — это описание продукта. Первое устареет при смене инструмента, второе переживёт три поколения моделей.
-
Портируемость. Spec Kit работает с тремя десятками агентов. Спека, написанная под Claude Code, читается Copilot и Cursor без переписывания. Скиллы и хуки — нет.
-
Ревьюируемость. Спеку можно принести на груминг, показать заказчику, обсудить с командой. Скилл в
.claude/skills/обсуждать бессмысленно, там нет предметной области.
Они не конкуренты. Powertools остались, я их не выкидывал. Просто теперь /speckit.implement запускается внутри Claude Code с его plan mode и сабагентами, и это нормальная композиция: SDD задаёт что, powertools — как.
Где больно
Оверхед реальный. На правку в три строки весь ритуал избыточен, и я на такое его не тяну. Brownfield тяжелее greenfield: положить SDD-цикл на существующий проект без спеки означает сначала реконструировать спеку из кода, а это отдельная работа.
Ещё пакетный прогон спек честно ломается, если ошибка была в roadmap. Тогда десять спек уезжают в одном и том же неверном направлении, аккуратно и консистентно. Цена ошибки сместилась вверх по цепочке. Отчасти это плата за самодельный слой: roadmap не проходит через analyze, его никто не валидирует, кроме меня.
И главный неочевидный эффект: SDD подсвечивает, что вы сами не знаете, что строите. Раньше это выяснялось на демо. Теперь — на шаге clarify, где агент задаёт пять вопросов и вы не можете ответить ни на один.
Это, вообще-то, и есть основная ценность.
Подписывайтесь на канал ТехДир Подсекин, ставьте лайк, вам не сложно, мне — приятно.
ссылка на оригинал статьи https://habr.com/ru/articles/1063712/