📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

GitHub Spec Kit: Use THIS Before Building Anything with AI (Tutorial)

JeredBlu8:48

Transcription

Сказал это однажды, и скажу снова. Независимо от того, что вы строите, самым важным первым шагом является планирование. И это особенно верно, если вы строите с помощью ИИ. Чем больше времени вы потратите на планирование и выяснение всего, прежде чем написать строку кода, тем меньше головной боли у вас будет в будущем. Это основной принцип управления продуктами. Неважно, какой язык, неважно, какой фреймворк. И если вы тратите время на создание чего-либо, я уверен, вы уже узнали это на собственном горьком опыте. Итак, в этом видео мы рассмотрим новый набор инструментов Spec Kit от GitHub, который является инструментом с открытым исходным кодом, который вы можете использовать прямо сейчас с GitHub Copilot Agent, Cloud Code и Gemini CLI, и я уверен, что скоро он станет доступен в других инструментах, таких как Codex. Spec Kit от GitHub фокусируется на разработке, управляемой спецификациями (spec-driven development, std). И я говорил об этом во многих разных видео. Я снял видео о создании PRD. Я говорил о Cloud Taskmaster. Я говорил о создании суб-агентов в Cloud Code, которые делают это. И я говорил о Ko.dev от Amazon, который был первым официальным инструментом, добавившим разработку, управляемую спецификациями, в свой рабочий процесс. Но потом это стало очень дорого. И правда в том, что мы можем сделать это где угодно, особенно с помощью Specit. Итак, в этом видео я покажу вам, как использовать Specit, некоторые советы и хитрости. Что, по моему мнению, вам следует знать, и что мне нравится в нем по сравнению с kira.dev, так это то, что он гораздо более тщательный, проводит исследования, может использовать уже установленные вами MCP-серверы. Это занимает немного больше времени, но, по моему опыту, получается гораздо лучший план. Теперь, поскольку это занимает некоторое время, я просто покажу вам, как начать. И я покажу вам проект, над которым я уже работаю. Итак, это страница SpecKit на GitHub. Чтобы начать, просто скопируйте эту команду и откройте терминал. И не волнуйтесь, им очень легко пользоваться. Итак, вы вставляете ее, а затем хотите дать имя проекту. Так что давайте просто назовем его "Калькулятор калорий на основе зрения". Итак, я нажимаю Enter. Теперь мы видим логотип Specifiy, и вы можете сразу выбрать, какую систему ИИ вы собираетесь использовать. GitHub Copilot, Cloud Code или Gemini CLI. Сейчас я буду использовать Cloud Code. По сути, он создает команды и скрипты, и вы проходите их последовательно, пока не создадите все свои спецификации. Итак, теперь они хотят, чтобы мы открыли эту папку и начали использовать наши команды. Итак, мы открываем VS Code в каталоге, который мы только что создали, "Калькулятор калорий на основе зрения". И как вы видите здесь, в этом новом проекте, который он создал, он создал папку "memory" с файлом "constitution.mmd". Затем у него есть свои скрипты и свои шаблоны. И затем у него есть свои команды. Нам не нужен агент прямо сейчас, потому что мы используем Cloud Code. Итак, мы просто закроем это. Но я собираюсь добавить несколько MCP-серверов, прежде чем начну. Самый быстрый способ, который я нашел для добавления MCP-серверов в новые проекты Cloud Code, — это просто ввести "cloud MCP add" из Cloud Desktop. Я просто сниму галочки с тех, которые мне не нужны. В данном случае мне нужны "context 7" и "bright data". Я просто отключу все остальное. Теперь мы запускаем Claude. И если мы введем /mcp, мы увидим эти два MCP-сервера: "bright data" и "context 7". И я специально хочу их, чтобы на этапе исследования он мог использовать эти инструменты. Давайте вернемся к терминалу и сделаем первый шаг. Давайте введем /sp specify. И мы хотим дать ему некоторый контекст о том, что мы хотим построить. Теперь я думаю, что очень важно дать как можно больше контекста. Мы хотим поговорить о том, что мы пытаемся построить, какова наша цель, какова цель конечного пользователя. Мы можем предоставить пользовательские истории, мы можем предоставить варианты использования. Итак, я просто продиктую сейчас. Я хочу создать веб-приложение, где я могу фотографировать еду, давать небольшое описание и добавлять это в журнал калорий, чтобы я знал, сколько калорий я ем. И вариант использования заключается в том, что иногда я ем вне дома в ресторанах, и я не знаю полного количества калорий. Итак, это должно использовать интернет и ИИ для расчета количества калорий в каждом приеме пищи, а затем создать журнал того, сколько я ем. Итак, я просто продиктовал, что хочу построить. И теперь Claude Code начнет работать над этим. И это только для демонстрационных целей. Я предлагаю итерировать по запросу и даже создать PRD перед началом. Первое, что он хочет сделать, это сделать скрипт исполняемым. Итак, мы скажем "да". Итак, что он сделал, это создал новую ветку. Он создал файл спецификации. Если мы хотим посмотреть на него, мы можем зайти туда и посмотреть. Руководства, пользовательские истории, функциональные требования, сценарии приемки. Вы видите здесь, что есть определенные разделы, в которых говорится "требуется уточнение". Итак, здесь есть две вещи, которые вы можете сделать. Вы можете либо уточнить это здесь, в этом файле. Что я предпочитаю делать, так это перейти в Claude Code и продиктовать свои уточнения. Итак, в этом случае я просто говорю: "уточнить метод авторизации будет использовать электронную почту и пароль", "уточнить период хранения данных" и так далее, и так далее. Я возвращаю это Claude или любому другому агенту, которого я использую. Я позволяю ему заполнить эти уточнения, и только когда я буду готов, я перейду к следующему шагу. Итак, если мы посмотрим сюда, следующий шаг — /pl. И вы можете быть очень конкретны с этим. В моем случае я просто хочу дать ему автономию и посмотреть, что он сделает. Итак, я просто указываю, что это должно быть веб-приложение, которое может работать на моем телефоне, и оно будет использовать Superbase. Итак, я нажимаю Enter. Он попросит сделать его исполняемым. Мы скажем "да". И теперь он выйдет и спланирует. Он будет использовать интернет или MCP-серверы. Мы добавили "bright data" и "context 7". И мы можем видеть изменения, которые он вносит. Итак, он берет из шаблона, извлекает из спецификации функций и создает здесь сводку. Хорошо. Итак, он создал план, провел исследование, создал модель данных, а затем также создал файл claw.md. Теперь, когда он знает, что мы строим. И теперь мы можем посмотреть на все эти файлы здесь. Мы можем посмотреть на план, посмотреть на руководство по быстрому запуску. Оно рассказывает нам, как мы хотим настроить наш проект Superbase. И если мы хотим, мы также можем посмотреть на его исследования. Мы можем увидеть, что он исследовал и обоснование принятых решений, а также рассмотренные альтернативы. Так что это действительно круто. Это очень тщательно. Итак, теперь, если мы вернемся в Cloud Code, мы просто введем /tasks. И это сделает все, что вы сделали до сих пор, все исследования, план, спецификации, и разобьет их на небольшие задачи, которые вы можете выполнить последовательно. Итак, я нажимаю Enter. Хорошо, ради экономии времени, я просто хочу показать вам другой проект, над которым я работал раньше. Это было создание MCP-сервера для Homebridge. Что я хочу показать здесь, так это то, что когда он закончит, он разобьет его на исполняемые задачи. В этом другом проекте он разбил его на 48 задач, организованных по фазам TDD. Так что это не просто SD, это TDD. На самом деле это должно называться STDD. Неудачная шутка. TDD — это разработка, управляемая тестами (test-driven development). Итак, мы начали здесь с разработки, управляемой спецификациями, но разработка, управляемая тестами, — это когда вы создаете тесты еще до того, как напишете строку кода. Итак, когда вы пишете свой код или начинаете создавать что-то, вы уже знаете, что тестируете. И тогда становится очень ясно, будет ли работать то, что вы построили, и если оно не проходит тест, вы не переходите к следующему шагу. Это TDD в двух словах. Итак, если мы посмотрим на задачи с 4 по 14, то там написаны все эти тесты. Только после написания тестов он начинает реализовывать каждую функцию. Хорошо. Хорошо, так что теперь мы сделали всю разработку, управляемую спецификациями, с встроенной разработкой, управляемой тестами. Мы сделали все планирование. Мы готовы приступить. Как нам начать? В kirao.dev есть кнопка, где вы можете просто нажать "начать" над каждой задачей, и она начнет работать над ней. Здесь это немного иначе, но на самом деле, я думаю, это хорошо, потому что вы можете взять этот список задач и работать над ним с любым агентом. Итак, вы можете работать с Cloud Code или Codec CLI или Cursor Agent, потому что все, что вам нужно сделать, это начать новый чат с любым агентом и сказать: "эй, поработай над задачей 005", например, или "поработай над задачей 006". Теперь вы можете сказать ему работать над задачами с 6 по 10, но я думаю, что в большинстве случаев лучше работать над одной задачей за раз, потому что вы хотите убедиться, что она работает. Вы хотите убедиться, что тесты проходят хорошо, и если вы выполняете несколько задач одновременно, будет гораздо труднее отлаживать и выяснять, что не сработало. И более очевидная причина — управление контекстом или инженерия контекста. Вы не хотите заполнять контекстное окно. Как мы знаем, чем меньше контекстное окно, тем менее эффективен агент. Так что это еще одна причина, по которой вам следует начинать новый чат или очищать каждый разговор перед началом новой задачи. Теперь, одна вещь, которая меня действительно интересовала, это сколько контекста занимает весь этот процесс планирования. Итак, что я сделал, так это, когда я запускал этот проект, я не подключал никаких MCP-серверов. Я просто хотел увидеть сырую производительность. Итак, я запустил /context, что является командой в Cloud Code. И мы увидели здесь, что он использовал половину контекстного окна для всего процесса планирования. И у него было только два MCP-инструмента, которые являются встроенными MCP-инструментами Cloud Code: "Get diagnostics" и "Execute code". И причина, по которой я указываю на это, заключается в том, что MCP-инструменты занимают контекст. Вы не хотите добавлять каждый MCP-сервер в Cloud Code Gemini CLI или Codex CLI. Особенно потому, что вы не можете включать и выключать их во время выполнения. Так что вы хотите добавлять только те MCP-инструменты, которые вам нужны. Вот почему с проектом, с которого мы начали, я добавил только "bright data" и "context 7". Итак, несколько заключительных вещей, которые я хочу рассказать вам о Spec Kit. Как только он закончит создание спецификаций и задач, вы можете запустить его в любом агенте. Что я делал в последние несколько дней, так это запускал его в Codec CLI с GBD5 high, и у меня были действительно хорошие результаты. Как вы, наверное, знаете, Cloud Code был очень нестабильным в течение последних 2 недель, но GBD5 high был действительно отличным. Когда дело доходит до самого Spec Kit, одно улучшение, которое я с нетерпением жду, — это то, что мне не придется проходить через созданные документы и искать "требуется уточнение". Я бы предпочел, чтобы агент, с которым я работаю, задавал мне эти уточняющие вопросы. И это то, что я встраиваю в свои собственные запросы, где у меня есть агент, который фактически задает мне эти уточняющие вопросы, чтобы не оставлять места для ошибок или неточностей. Я думаю, что еще одна функция, которую они должны добавить, — это добавить эти задачи в GitHub Issues, а затем вы сможете либо зеркалировать это в Linear, либо запускать GitHub work trees на нем, и иметь много этих вещей, работающих параллельно или даже вдали от вашего компьютера, и это было бы действительно круто. И, наконец, я бы предпочел, чтобы он мог разбивать задачи на еще более мелкие задачи. Сделать каждую задачу еще меньше, и это устранит гораздо больше погрешностей. Но в целом, я думаю, это отличное начало. Мне нравится, что он с открытым исходным кодом, что он так тщателен, что он проводит исследования, что он также создает тесты. И я думаю, что это путь вперед. Это сэкономит вам так много времени в долгосрочной перспективе, если вы сделаете все планирование заранее. И этот набор инструментов поможет вам пройти 75% пути, если не больше. Итак, я надеюсь, что это видео было для вас познавательным. Если у вас есть какие-либо вопросы, задавайте их в комментариях ниже. Спасибо, что посмотрели, и хорошего вам дня.