Если вы интересуетесь вайбкодингом, то, наверняка, слышали о таком подходе, как разработка на основе спецификаций. Этот подход позволяет значительно повысить качество работы агента, хотя эта короткая статья не об этом.
Для своих проектов на основе этого подхода я использую Spec Kit - работа с ним построена на определенной последовательности описания разных сторон и ценностей проекта, поэтому я бы хотел зафиксировать свой опыт в небольшой шпаргалке, как раз по этим шагам.
Подготовка к работе
Для работы инструмента потребуется установить Python и uv. В первую раз нужно установить инструмент, команду для установки лучше взять со страницы релизов.
После установки инструмента нужно выполнить команду для инициализации проекта и в интерактивном помощнике выбрать нужного агента и тип скриптов:
specify init [название директории проекта]
Теперь остается только открыть проект внутри своего агента.
Constitution
В этом блоке обычно описывают важные принципы, которые должны соблюдаться всегда. Я в этом блоке, как правило, указываю архитектурный стиль, структуру проекта, принципы разработки, UX-паттерны и прочее. Пример:
/speckit.constitution Для фронтенда используй FSD, для стилей - Tailwind, дизайн-систему строй вокруг shadcn. Тестируй компоненты через Storybook, а логику через Vitest. Для генерации API-клиента используй OpenAPI.
Если что-то забыл - то ничего страшного, можно просто попросить агента дополнить “конституцию” или просто вызвать команду снова и попросить добавить новые пункты. Инструмент версионирует важные файлы и сам обновляет зависимости.
Specify
На этом этапе нужно описать, как с продуктовой точки зрения, будет устроен проект - что в нем смогут делать пользователи, какие будут страницы, какие будут возможности.
Обычно это описание требует большое количество текста, поэтому я пишу его в отдельном .md файле и потом просто вставляю перед отправкой. Например:
/speckit.specify Нужно разработать сайт-блог с несколькими страницами:
Главная - страница со списком статей и пагинацией. Пользователь по клику на карточку статьи переходит на страницу статьи.
Статья - на странице есть контент статьи, теги, дата публикации и блок с реакциями и комментариями. По клику на тег пользователь попадает на страницу тега.
Тег - страница аналогичная главной, но статьи отфильтрованы по наличию тега.
Это очень важный этап и тут желательно не спешить, а постараться указать как можно больше деталей - это поможет инструменту правильно распланировать разработку. Поэтому я рекомендую начать с этого блока и заполнить его настолько полно, насколько это возможно.
Clarify
Необязательная команда, но ее лучше не пропускать - агент изучит требования и постарается уточнить моменты, где текущей информации недостаточно.
/speckit.clarify
Как правило агент предлагает несколько вариантов для таких уточнений, но всегда можно указать и свой.
Plan
Эту команду можно запустить и без параметров, но можно и указать некоторые технические детали реализации. Если “конституция” достаточно подробная или постоянно дополнялась, то в таком случае, часто бывает, что указывать просто нечего. Но я все же рекомендую указать некоторые библиотеки/инструменты/интеграции, которые ты предполагаешь, но о которых может не догадываться агент. Тут же можно указать и API-схему или схему БД, если они есть.
/speckit.plan Используй React, TypeScript и Next для фронтенда. Для форм используй @tanstack/form.
Для кеширования данных на стороне бекенда используй пакет node-cache. Для внедрения зависимостей tsyringe.
Эта команда подготовит план реализации и инструкцию для быстрого старта.
Tasks
Команда разделит план на множество небольших задач, объединенных в фазы, готовые к исполнению.
/speckit.tasks
Analyze
Эта команда тоже опциональная и похожа на Clarify - она тоже помогает искать недочеты в итоговых файлах - как логические, так и технические. Рекомендую ее не пропускать - агент подготовит отчет со списком неточностей и ошибок, которые так же можно решить в чате.
/speckit.analyze
После этого все готово к реализации.
Implement
Команду можно вызвать без аргументов - тогда агент начнет выполнять задачи от начала и до конца, но я рекомендую давать задачи по частям:
/speckit.implement выполни первую и вторую фазу
Дело в том, что инструкции инструмента сильно заполняют контекст, поэтому агент может выполнить /compact прямо во время реализации, в таком случае он не всегда помнит, какую часть текущей задачи он успел выполнить.
Для меня проще - давать задачи по частям, потому что так удобнее вручную управлять контекстом.
Немного личных советов
- При работе со SpecKit желательно всегда следить за контекстом - неожиданный
/compactхоть и не является чем-то критическим, тем не менее ситуация не очень приятная. - Так как Spec Kit версионирует свои файлы, то инструмент будет часто спрашивать, не хотите ли вы сделать коммит до или после внесения изменений в файлы. Если вы в любом случае хотели коммитить эти файлы, то можно попросить агента включить auto-commit на изменения.
- После полной имплементации можно просить агента дополнять фазы и таски, чтобы агент опирался на существующие правила в проекте.
Вместо выводов
Надеюсь, что эта небольшая шпаргалка поможет тебе быстро и качественно разрабатывать свои проекты. Обязательно сохрани в закладках, чтобы не потерять.