Alex Chernysh
AI-системы / поиск / evals / архитектура
Обсудить систему
СистемыСтатьиАссистент
Назад к статьям

Статья

Spec-Driven Development: подход, которым я реально пользуюсь

Как я использую лёгкий spec-driven workflow в реальной работе, что автоматизирует SDDRush и где в этой схеме уместен Kotef.

6 февраля 2026 г.5 мин чтенияАвтор Alex Chernysh
AgentsWorkflow
К разделу
1. Какую проблему это решает2. Что такое SDD на практике3. Что на деле даёт SDDRushQuick start4. Где в этой схеме уместен Kotef5. Когда этот подход окупается6. Чего делать не стоит7. ИтогРепозитории

Нужен сначала короткий проход?

В реальной работе я пользуюсь довольно простым spec-driven подходом. Смысл у него прямой: вынести намерение, research, архитектуру и tickets из памяти чата в файлы, которые можно читать, проверять и передавать дальше. Со временем я собрал повторяющиеся части этого цикла в SDDRush.

Цикл в коротком виде

  • описать задачу человеческим языком
  • собрать только тот research, который влияет на решения
  • зафиксировать архитектуру до начала реализации
  • синхронизировать backlog в понятные tickets
  • реализовать по открытому ticket и потом привести состояние в порядок
Компактная схема SDD
Схема намеренно короткая: зафиксировать задачу, перевести её в tickets, потом реализовать и привести состояние в порядок.

1. Какую проблему это решает

Старый сбойный сценарий никуда не делся: план живёт в чате.

Первые пару часов это выглядит быстро и даже удобно. Потом задача растягивается на ещё одну сессию, ещё одного инженера или ещё одного агента, и форма работы начинает плыть.

Обычно первым ломается вот что:

  • исходное намерение размывается
  • архитектура начинает приниматься кусками
  • tickets перестают совпадать с реальным планом
  • handoff начинает держаться на памяти и доброй воле

Именно это я и хочу убрать.

2. Что такое SDD на практике

На практике цикл довольно компактный:

  1. написать project brief
  2. собрать короткий и полезный research
  3. явно зафиксировать архитектурные решения
  4. синхронизировать backlog в конкретные tickets
  5. реализовать по открытому ticket
  6. обновить статус и закрыть то, что реально сделано

Ничего особенно экзотического тут нет. В этом и смысл. Я не пытаюсь превратить разработку в новую религию. Мне нужен след в репозитории, который переживёт больше одного разговора.

Практический порог

Если задача настолько неоднозначна, что тебе пришлось бы дважды объяснять ход мыслей, ей обычно уже нужен хотя бы короткий spec trail.

3. Что на деле даёт SDDRush

SDDRush — это маленький toolkit, который я собрал вокруг этого подхода.

Он берёт на себя те части, которые мне надоело каждый раз собирать вручную:

  • sdd-init создаёт .sdd-workspace и базовую структуру файлов
  • sdd-prompts рендерит repo-aware prompts из текущего состояния проекта
  • sdd-backlog синхронизирует и поддерживает backlog tickets
  • sdd-status быстро показывает, что ещё открыто, а что уже уехало дальше

Этого уже хватает для многих задач. Если важен сам репозиторий, работа идёт дольше одной сессии и не хочется, чтобы brief растворился в фольклоре, такой scaffold полезен.

Quick start

bash bin/sdd-init /path/to/project --stack "Python/FastAPI" --domain "legal"
python bin/sdd-prompts /path/to/project
python bin/sdd-backlog sync /path/to/project
python bin/sdd-status /path/to/project

Дальше заполняешь ключевые .sdd-файлы, реализуешь по backlog/open, а потом прогоняешь janitor/status, когда состояние репозитория уже догнало план.

4. Где в этой схеме уместен Kotef

Если хочется продвинуть этот же цикл дальше, Kotef — это агентный слой, который я построил вокруг тех же идей.

Но я бы подавал его именно как более амбициозное продолжение, а не как вещь, с которой обязательно нужно начинать.

Kotef умеет:

  • поднимать SDD-состояние для репозитория
  • работать не от голого prompt, а от tickets и файлового контекста
  • вести цикл planner -> researcher -> coder -> verifier -> janitor
  • держать runtime state, checkpoints и resume для длинных задач

Это уже интересно, когда нужен durable coding and research agent для реальных репозиториев. Но базовая мысль не меняется: прежде чем давать агенту свободу, работе нужна структура.

5. Когда этот подход окупается

Я тянусь к такому циклу, когда:

  • в задаче больше одного нетривиального решения
  • контекст репозитория реально важен
  • работа растянется больше чем на одну сессию
  • кому-то ещё потом придётся разбираться, что именно произошло

Если задача крошечная и overhead будет дороже пользы, я этим не пользуюсь.

Я доверяю такому workflow и в задачах формата benchmark, где одновременно важны grounding, latency и telemetry. Актуальный пример — Agentic RAG Legal Challenge, где оценивают уже не один удачный prompt, а всю систему целиком.

Там хорошо срабатывает не драматизм, а дисциплина:

  • маленькие изменения с понятной lineage
  • жёсткие gates на grounding, latency и provenance
  • быстрый отказ от веток, которые выглядят умно, но портят след доказательств

Не помогает без разбора расширять контекст, менять слишком много переменных за один прогон или верить более гладкому ответу раньше, чем стабилизировался путь, который к нему привёл.

6. Чего делать не стоит

Ошибки обычно довольно однотипные:

  • превращать каждый маленький багфикс в церемонию
  • запускать агента, пока сама задача ещё расплывчатая
  • путать ответ модели с долговременной памятью проекта
  • писать specs, которые звучат умно, но не ограничивают реализацию

Подход должен уменьшать объём угадывания. Если он в основном производит аккуратную бумагу, значит что-то пошло не туда.

7. Итог

Этот цикл полезен тем, что делает намерение более проверяемым, handoff более чистым, а состояние backlog — менее декоративным. SDDRush появился потому, что я достаточно часто работаю таким образом и хотел перестать вручную собирать скучные части. Kotef появился потому, что иногда мне хочется автоматизировать больше того же самого цикла, не теряя структуру по дороге.

Ресурсы

Репозитории

  • SDDRush на GitHub
  • Kotef на GitHub

Что ещё почитать

Часть публичных заметок про AI-системы с опорой на источники, поиск, evals и поставку под реальными ограничениями.

Как доводить разработку с AI до зелёного CI и не ломать кодКак строить агентные AI-системы, которые держатся в продеПромпты: от формулировок к рабочим правилам
На странице
1. Какую проблему это решает2. Что такое SDD на практике3. Что на деле даёт SDDRushQuick start4. Где в этой схеме уместен Kotef5. Когда этот подход окупается6. Чего делать не стоит7. ИтогРепозитории