Spec-Driven Development: Как использовать SpecKit для создания IT-продуктов без галлюцинаций
Пошаговый гид по SpecKit от GitHub: как внедрить Spec-Driven Development, настроить конституцию проекта и автоматизировать создание кода через AI-агентов.
🎯 О чём этот конспект: Разбор нового инструмента SpecKit от GitHub для реализации методологии Spec-Driven Development (разработка на основе спецификаций). Инструмент позволяет структурировать процесс создания кода AI-агентами, избегая хаотичного «вайбкодинга» и создавая масштабируемые архитектуры.
👤 Кому будет полезно: Вайбкодерам, разработчикам и продакт-менеджерам, которые используют Cursor, Copilot или Claude Code и хотят получать предсказуемый результат в сложных проектах.
✨ Что получите: Пошаговый алгоритм настройки SpecKit, создание «Конституции» проекта и автоматическую генерацию планов и задач для AI-агентов.
1. Отказ от «чистого» вайбкодинга в пользу Spec-Driven Development
Контекст: При обычном вайбкодинге (бессистемном написании промптов) разработчики часто попадают в «кроличьи норы»: AI выдает не тот дизайн, путает зависимости или создает несовместимый код. Spec-Driven Development (SDD) решает это через создание жестких текстовых артефактов (спецификаций), которые отделяют «что и зачем» от «как». Это делает процесс детерминированным и позволяет легко менять стек технологий или AI-модели, не теряя логику продукта.
Выгода: Экономия времени на отладку «галлюцинаций» AI и возможность передавать проект между разными агентами (например, начать в GPT-4o, а кодить в Claude 3.5 Sonnet) без потери контекста.
Как применить:
Шаг 1: Установка CLI — Используйте uvx для запуска SpecKit напрямую из репозитория GitHub (пока пакет не опубликован в PyPI).
Шаг 2: Инициализация — Создайте структуру проекта, выбрав целевого агента (Cursor, Copilot, Claude Code) и тип скриптов (PowerShell для Windows или Bash для Mac/Linux).
# Установка и запуск через uvx (требуется установленный uv)uvx --from git+https://github.com/github/spec-kit spec-kit bootstrap <название_проекта>
Результат: В папке проекта появится структура .github/prompts (кастомные слэш-команды) и папка specify с метаданными, скриптами и шаблонами.
2. Создание «Конституции» проекта
Контекст: Конституция (constitution.md) — это набор незыблемых принципов вашего проекта. Здесь фиксируются глобальные правила: например, «только Next.js 15», «обязательное покрытие тестами», «использование Tailwind для стилей» или «никаких внешних БД». AI-агент обязан сверяться с этим файлом перед выполнением любой задачи.
Выгода: Гарантия того, что AI не предложит решение, нарушающее архитектурные стандарты вашей компании или проекта.
Шаг 2: Наполнение через AI — Используйте промпт для заполнения базовых принципов.
Заполни файл constitution.md минимальными требованиями для статического веб-приложения (SSG). Принципы: Static-first delivery, простота инструментов (Vanilla CSS/JS где возможно), обязательная доступность (A11y) и SEO-базовые настройки.
Результат: У вас есть «закон», который ограничивает фантазию AI и держит код в рамках заданных технологий.
3. Генерация спецификации (Команда /specify)
Контекст: На этом этапе вы выступаете как Product Manager. Вы описываете функционал, не касаясь кода. Команда /specify создает Markdown-файл, где прописаны пользовательские сценарии, граничные случаи и критерии приемки (Acceptance Criteria). Спецификация полностью отвязана от реализации.
Выгода: Если вы решите переписать фронтенд с React на Vue, вам не нужно менять спецификацию — она остается актуальным описанием бизнеса.
Как применить:
Шаг 1: Запуск команды — В чате агента (например, Copilot или Cursor) введите /specify.
Шаг 2: Описание требований — Введите промпт с описанием продукта.
/specify Я строю современный сайт для подкаста. Нужен лендинг с одним главным эпизодом, страница всех эпизодов, страница "О нас" и FAQ. Данные должны быть замоканы (20 эпизодов). Сайт должен выглядеть стильно (sleek).
Результат: Создан файл specs/001-feature-name.md с подробным описанием логики работы, который человек может легко отредактировать вручную.
4. Техническое планирование и создание задач (Команды /plan и /tasks)
Контекст: После утверждения «что делать» (Spec), нужно решить «как делать» (Plan). Команда /plan анализирует спецификацию и конституцию, предлагая технический стек и архитектуру. Затем команда /tasks разбивает план на атомарные задачи, которые AI сможет выполнить по очереди.
Выгода: Разбиение на мелкие задачи предотвращает ошибки в больших блоках кода и позволяет внедрять TDD (Test-Driven Development) — сначала тесты, потом код.
Как применить:
Шаг 1: Создание плана — Используйте /plan с указанием стека.
Шаг 2: Разбивка на задачи — Используйте /tasks для генерации чек-листа.
/plan Используй Next.js с конфигурацией статического сайта. Без БД. Сайт должен быть адаптивным. Сверься с конституцией./tasks Разбей план на управляемые задачи. Используй подход TDD: сначала создавай тесты, которые должны упасть, затем пиши код.
Результат: В папке проекта появятся файлы plan.md и tasks.md. Последний служит «дорожной картой» для агента.
5. Исполнение и итерация
Контекст: Когда структура готова, вы переключаете модель на ту, что лучше пишет код (автор рекомендует Claude 3.5 Sonnet), и даете команду на выполнение задач из списка.
Выгода: Вы контролируете процесс на каждом этапе. Если результат не нравится, вы правите спецификацию или план, а не пытаетесь «уговорить» чат исправить код.
Как применить:
Шаг 1: Запуск кодинга — Дайте команду агенту следовать списку задач.
Шаг 2: Проверка — Запустите локальный сервер для предпросмотра.
Реализуй задачи для этого проекта из tasks.md и обновляй статус каждой задачи по мере выполнения.
Результат: Готовый, работающий прототип или фича, соответствующая всем исходным требованиям и архитектурным правилам.
FAQ
В: Чем SpecKit лучше обычного промпта в духе «напиши мне сайт»?
О: SpecKit заставляет AI сначала создать документацию (Spec) и план (Plan). Это создает «память» проекта в виде файлов. Если AI ошибется в коде, он сможет свериться со спецификацией и исправить себя, чего не происходит в обычном чате, где контекст быстро теряется.
В: Можно ли использовать SpecKit в уже существующем проекте?
О: Да, SpecKit спроектирован так, чтобы не мешать существующему коду. Все его файлы хранятся в папке specify и .github. Вы можете использовать его для добавления новых фич в старый проект, просто инициализировав его в корне.
В: Обязательно ли использовать PowerShell или Bash скрипты, которые он предлагает?
О: Скрипты обеспечивают детерминизм — например, автоматическое создание Git-веток для каждой фичи или синхронизацию JSON-метаданных. Это надежнее, чем просить LLM сделать это вручную. Но если вы не хотите ничего устанавливать, можно просто скачать шаблоны (zip-архивы) из релизов репозитория.
В: Какие модели лучше всего подходят для разных этапов?
О: Автор рекомендует GPT-4o (или o1) для этапов /specify и /plan, так как они лучше справляются с логическим планированием и структурированием. Для этапа написания кода (выполнение /tasks) лучше всего подходит Claude 3.5 Sonnet.
В: Как SpecKit работает с Cursor?
О: SpecKit теперь официально поддерживает Cursor. При инициализации через CLI вы выбираете cursor, и он создаст необходимые правила и промпты, которые Cursor будет подхватывать автоматически через свои механизмы (например, через .cursorrules или кастомные промпты в чате).
Конспект создан на основе видео «Spec-driven development with SpecKit» канала Dan Delamarsh. Все права на оригинальный материал принадлежат авторам.Источник: https://www.youtube.com/watch?v=a9eR1xsfvHg