Пять паттернов Spec-Driven Development: OpenSpec, Superpowers и Spec Kit

· 2 мин чтения
spec-driven openspec superpowers spec-kit ai-coding patterns
Пять паттернов Spec-Driven Development: OpenSpec, Superpowers и Spec Kit

Команда Spec Coding опубликовала сравнительный анализ трёх подходов к спецификационной разработке (SDD) — OpenSpec, Superpowers и GitHub Spec Kit. Статья примечательна тем, что написана авторами собственного инструмента, поэтому оценивает конкурентов через призму практических паттернов, а не рейтингов.

Главный тезис

Полезный вопрос не «какой инструмент лучше», а «какой артефакт существует до начала кода, кто его утверждает и как финальный diff доказывает, что код следует этому артефакту». Три инструмента решают одну задачу разными словами: заставить AI-ассистента работать по спецификации, а не по чат-промпту.

Когда какой путь выбирать

Ситуация Подход Что получится
Маленькая фича для AI-ассистента Спец-пакет (spec packet) spec.md, tasks.md, критерии, evidence
Изменение затрагивает несколько сервисов Change folder (OpenSpec) Proposal, design, tasks, архивное решение
Проекту нужна повторяемая система управления Lifecycle (Spec Kit) Constitution, spec, plan, tasks, proof
Агент пропускает планирование и тесты Skills workflow (Superpowers) Обязательные шаги clarify → plan → TDD → verify

Пять паттернов SDD

1. Создавай долговечный артефакт до реализации

OpenSpec организует изменение вокруг proposal → specs → design → tasks. Spec Kit выстраивает lifecycle: principles → spec → plan → tasks → implementation. Superpowers сначала извлекает спецификацию из диалога, затем планирует и кодит.

Практическое правило: до генерации кода у фичи должен быть хотя бы один файл с целью, non-goals, критериями приёмки, владельцем и требованиями к доказательствам. Чат-транскрипт не считается — его нельзя ревьюить потом.

2. Разделяй продуктовый интент и техплан

Spec Kit явно разделяет «что и зачем» (specification) от «как реализуем» (plan). OpenSpec аналогично отделяет proposal/specs от design/tasks. Это важно, потому что AI-кодинг быстро сворачивает продуктовую неопределённость в реализационные решения: модель выбирает схему БД и границы API до того, как команда договорилась о поведении.

Уровни артефактов:

Уровень Вопрос Файл
Принципы Какими правилами руководствуемся? constitution.md
Интент Какое поведение должно измениться? spec.md
План Как безопасно реализовать? design.md
Работа Какие задачи можно выполнить и проверить? tasks.md
Доказательство Откуда ревьюер знает, что всё работает? evidence.md

3. Не добавляй церемонию без нужды

OpenSpec явно предпочитает гибкие итеративные процессы, пригодные для существующих кодбаз. Спецификационный процесс должен масштабироваться с риском: аутентификация, платежи, миграции данных требуют более сильных ворот, чем исправление опечатки.

Минимальная версия — одностраничный spec packet. Максимальная — constitution, requirements, technical design, task breakdown, migration plan, risk register, test evidence.

4. Декомпозируй задачи до проверяемых единиц

Superpowers особенно силён в идее, что план должен быть достаточно ясным для реализации без выдумывания контекста. Хороший таск — не просто «добавить retry», а:

Task: add timeout retry to refund worker
Write scope:
  - src/billing/refund-worker.ts
  - src/billing/refund-worker.test.ts

Acceptance:
  - timeout once → retry with same idempotency key
  - timeout twice → keep pending status, no duplicate refund_id

Evidence:
  - test: refund_timeout_replay
  - log query: duplicate_refund_attempts remains zero

5. Сделай evidence частью процесса

Все три проекта пытаются сократить разрыв между «ассистент выдал код» и «команда может доверять изменению». Спецификация не должна заканчиваться на реализации — она должна определять, какие доказательства ожидает ревьюер: тесты, имена фикстур, логи, скриншоты, проверки контрактов.

Цепочка артефактов:

ticket.md → spec.md → design.md → tasks.md → tests + evidence.md → PR review

Если любое звено отсутствует — команда должна понимать почему. Если AI-сгенерированный PR не может отследить свои изменения до задачи и критерия — PR не готов.

Что позаимствовать у каждого инструмента

Инструмент Лучший урок Риск
OpenSpec Change folder для кросс-компонентных изменений Папка артефактов становится хранилищем, а не контрактом
Superpowers Обязательные skills не дают агенту пропустить этапы Автоматизация не заменяет одобрение человека
Spec Kit Constitution/spec/plan/tasks для повторяемого управления Полный lifecycle избыточен для мелких задач
Spec Coding Копируемые шаблоны для быстрого старта Образовательный контент без практического артефакта

Рекомендуемая структура репозитория

Авторы предлагают макет, который работает без привязки к конкретному инструменту:

/specs
  /active
    refund-retry/
      spec.md
      design.md
      tasks.md
      evidence.md
  /archive
    2026-05-11-refund-retry/
/templates
  feature.spec.md
  api-contract.spec.md
  ai-coding-review.md
/docs
  engineering-principles.md

Резюме

Статья полезна не как очередное сравнение инструментов, а как каталог проверенных паттернов: долговечные артефакты до кода, разделение интента и плана, масштабирование церемонии с риском, проверяемые задачи и встроенный evidence. Выбирайте минимальный набор артефактов, который предотвращает скрытые продуктовые решения в PR.

Источник: https://spec-coding.dev/blog/spec-driven-development-tools-openspec-spec-kit-superpowers