Transcription
Сегодня мы поговорим про Spec Kit. Это репозиторий, который выпустил GitHub и который нам помогает работать с агентами. Он добавляет нужного контекста, и в итоге разработка становится гораздо проще. Я вчера это всё сидел, тестировал и пришёл вот к такому результату.
То есть я использовал промт. Мы создаём мини-игру в браузере, тапалку в стиле криптодигенов. Архитектура максимально простая, без подключения к базе данных, квесты, ветка прокачки. И этот промт один я использовал на каждом этапе. То есть это максимально тупой подход, но мне было интересно, что из этого может получиться. И в итоге получился вот такой сайт. А я ничего сам лично не придумывал. Это получается тапалка. Здесь нету какого-то визуально крутого оформления, так как я это не прописывал, но здесь есть ветка прокачки, есть всякие бусты, и в целом само приложение работает и запускается.
А с вами мы сегодня рассмотрим всё это больше на практике, как это работает. На самом деле очень крутая штука. А если вы когда-то работали с кодексом или с Cloud Code, вы замечали, что порой он может допускать ошибки, если ваш проект большой, а эта система как раз решает эту проблему. Как мы видим, тут уже 40.000 звёзд. Они очень быстро растут. Значит, этот репозиторий люди находят полезными. Он тоже активно развивается, что-то обновляется. Здесь как бы есть вся инструкция по проекту. Здесь показано, какие агенты поддерживает этот спек kit.
Перейдём к наглядному примеру. Покажу, как вот всё это работает с нуля. Для начала создаём папку нашего проекта, так и назовём Spec Kit. Откроем её в нашей IDE. Теперь открываем терминал. Сразу Venv, виртуальное окружение для Linux. А, у меня уже кодекс установлен, но я думаю, с этим проблем не возникнет. А теперь нам нужно установить spec kit. Переходим в репозиторий. И тут нам нужна команда вот эта. Если у вас будет ошибка, что venv нету, ну, вы легко найдёте одну команду для установки в Гугле.
Следующее, что нам нужно сделать - это инициализировать его. А точка говорит о том, что мы будем именно в этой папке инициализировать проект. А дальше спрашивает, какой агент мы используем. Я выбираю кодекс, выбираю bash и ждём, когда он сформирует все файлы. Спек Kit установлен. Тут сразу же у нас есть команда, которая упростит нам жизнь. Я, пожалуй, открою сразу новый терминал. Здесь как бы вот весь функционал прямо расписан, но будем рассматривать вживую.
Итак, первое, что нам нужно сделать, посмотреть, что вот у нас файлы созданы. А как это всё работает? Рассмотрим на примере конституции. Я подготовил промты. Мы запускаем кодекс, просит нас войти. А мы попали в кодекс, разрешаем доступ ко всем файлам, пишем /chat. И вот у нас появились новые команды. Начинаем с конституции. Набор незыблемых правил для нашего проекта. Я попросил GPT приготовить мне промты по вот такому промту. Я ему объяснил, что мы создаём одностраничный сайт-визитку для SPEC Kit. Он должен быть красивый на русском языке, с крутыми анимациями, адаптивный. И тебе нужно помочь вот составить промты. Я прислал 3 MD файла, промты, для которых мне нужны, и привёл примеры прямо из репозитория на гите. Собственно, вот здесь есть примеры, а я их и взял.
Дальше мы можем начинать. А, вставляю. Поехали. Что мы сделали? По сути, мы просто отправили нейронке наш вот этот заготовленный промт конкретно под наш проект вместе с заготовленным промтом, собственно, самим спеккитом. А здесь прописано всё, что должен сделать агент. А по сути он проверяет все файлы, делает так, чтобы не было никаких несостыковок. А конституция под собой подразумевает набор нерушимых правил для проекта, которые будут на этапе всей разработки соблюдаться. Собственно, мы ждём, когда это всё будет готово, и я вернусь к вам.
Собственно, мы видим, как он добавил какие-то строчки в нашу конституцию. Здесь мы всё это можем видеть, читать, редактировать. Итак, пишут, что конституция была обновлена. Переходим к следующему этапу. Теперь мы копируем второй промт. И здесь мы уже описываем, собственно, саму задачу, над которой мы сейчас работаем. Для нас это разработка с нуля проекта.
Итак, почти готов наш наша спецификация. 3 минуты заняло, и всё, он готов к плану. А на всякий случай мы используем команду Clarify, чтобы агент задал нам уточняющие вопросы и закрыл вообще все недочёты. Спрашивает у нас, что спрашиваешь? Что рекомендует, то и выберем. Пишет, что готов к планированию. Мы в целом тоже готовы, не сильно устали. Пишем план, вставляем заготовленный промт. Снова ждём.
Итак, план у нас был готов. Теперь он говорит, что мы можем переходить к таскам. Но чтобы опять же всё было максимально чётко, мы пишем Analyze. Это я перепутал. Analyze нужно вводить уже после того, как мы сгенерируем таски. Поэтому ждём генерации тасков. Так, говоришь, у тасков он сгенерировал 35 штук. Дальше предлагает нам Analyze. Ну, то есть вы видите сами, он всё делает за вас, сам говорит, что вам вводить. Вы посидите, буквально денёк им попользуетесь, и вам станет всё очень понятно. На самом деле инструмент очень простой. По сути, добавляем один промт к запросу к нейронке, а контекст настолько меняется, что мы гораздо лучше ведём разработку, гораздо меньше ошибок, несостыковок. Ну, посмотрим, что получится в результате.
Нужно исправить критический пробел. Просто напишем yes. Снова yes. Построил план, чтобы корректно внести все изменения. Итак, я вижу, он почти закончил и предлагает нам ещё раз запустить Analyze. Я это сделаю в новом чате, чтобы точно никакой контекст не мешал. Итак, анализ завершён. Он пишет, что нужно ещё два критических конфликта зарессолвить. Мы ему говорим: "Конечно, делай".
Итак, я уже заебался ждать. А он говорит, что всё чётко, мы ему поверим и перейдём к нашему ключевому пункту. Это Implement. И это, по идее, должен быть самый долгий процесс, когда агент, собственно, выполняет все наши таски, которые мы можем увидеть вот здесь. Здесь он нам насоставлял всего. Сейчас он будет чётко проходиться по каждому пункту, пока мы не получим готовый сайт. Возможно, нам придётся ещё раз вызвать команду Implement. он сдастся после выполнения каких-то пунктов, но в целом от нас больше ничего не требуется. Самая сложная часть уже в позади.
Итак, наша команда Implement заняла 35 минут. Теперь мы уже можем запустить наш сервер, чтобы проверить, как всё это работает. Мы получили ошибку. Ничего страшного, присылаем сюда. Ой-ой-ой, чуть-чуть лимитика осталось, но я думаю, нам хватит этого, чтобы посмотреть, что кодекс для нас сделал. Просит заново, чтобы мы запустили команду. Запускаем.
Итак, у нас NPM install прошёл успешно. Много варв. Мы пришлём это. Что делать дальше? Я хочу запустить сайт и посмотреть на него. Итак, запускаем npm run dev. Наш сайт был запущен. И идём смотреть на него. Так, нас встречает такая ошибка. Мы это всё фиксируем, возвращаемся сюды и присылаем ему ошибку из консоли и расписываем все ошибки. И вот спустя несколько попыток исправлений мы, наконец-то, получили более-менее рабочий сайт. Тут какие-то ещё ошибки у нас в консоли падают, но я думаю, это уже не столь критично. Дальше мы не будем продолжать его дорабатывать.
В целом, в целом, я думаю, я показал, как устроен пайплайн спекта и как с ним работать. Всё, в принципе, сводится к очень простым вещам. Конституцию составили, потом спецификация, что мы делаем, потом план. Из этого плана вытекают таски. Таски мы уже имплементируем в наш проект. Как-то так это всё получается. Используем Analyze перед имплементацией, чтобы проверить наш проект на несостыковки. Используем Clarify для того, чтобы, а, также уточнить все недостающие моменты для нашего проекта.
А сам по себе сайт выглядит неплохо, мне кажется, если учитывать, что мы просто всё сделали на сгенерированных промтах. Не, я даже, ну, я даже их не читал полностью, я просто их сгенерировал, вставил и погнал. А у нас работает приключение на лайтсерсии. В целом есть анимации, как я и просил. Всё очень чётко выглядит. А не работает ссылка на GitHub, но это не суть важно. Также нужно понимать, что мы не просто шаблон сайта какой-то сделали, а наш агент, он прописывал тесты для каких-то логик нашего проекта и в целом подходил к этому очень целостно. То есть, а GitHub это решение выпустил не просто так. Его будут использовать и многие компании. И я думаю, это потихоньку будет становиться стандартом. По мере развития агентов кодекса и клауда мы тоже будем видеть развитие вот этих агентных систем, так как промты будут улучшаться, нейронки будут становиться умнее. И всё это, конечно, интересно изучать.
А, как мы видим, мы выполнили только половину плана. У нас осталось тут ещё, а-э, изучить функциональность и структуру репозитория, бла-бла-бла, но в целом достаточно вызвать команду Implement, и агент закончит разработку проекта. Хм, как-то так получилось. Потратил я 3 часа на запись этого видео. Очень важно, какие промты используете вот здесь. А при запуске спеккита, и чем точнее вы будете описывать промты для этих команд, тем с большим шансом вы получите то, что вы хотели. Так что вы будете использовать этот инструмент, вы сможете сконцентрироваться на а самих сценариях вашего продукта, на том, какая идея в него заложена. А с реализацией поможет такой вот инструмент.
Надеюсь, вам было интересно смотреть это видео. А также я стримил, очень много стримил по 8, по 10 часов в день. Всё это на Твиче. Буду рад каждому. Я там и Battle 6 потестил. В Доту играю, как бы с детства. Кэсочка иногда там по просьбам. И что ещё я? Deadlock. В дедлоке у меня фантом второй. Неплохо шпилю. Там как бы за скиловой игрой можно понаблюдать. Также переходите в мой Telegram-канал, там я буду стараться как можно больше полезной инфы вам давать. И всем пока.