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

Для своих проектов на основе этого подхода я использую 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 на изменения.
  • После полной имплементации можно просить агента дополнять фазы и таски, чтобы агент опирался на существующие правила в проекте.

Вместо выводов

Надеюсь, что эта небольшая шпаргалка поможет тебе быстро и качественно разрабатывать свои проекты. Обязательно сохрани в закладках, чтобы не потерять.