LINUX.ORG.RU
ФорумTalks

Spec-kit - свободный тулкит для разработки, ориентированной на спеки (Spec Driven Development)

 


1

2

Те, кому интересен «вайб кодинг», можете про него забыть, потому что вот как на самом деле нужно использовать нейронки для разработки софта: spec-kit. Смысл spec driven development (SDD) в том, что проект начинается с проектирования спек файла. Это кардинально отличается от вайб кодинга, в котором на вход нейронки подаётся произвольный текст, а на выходе получается лапша, в которой чёрт ногу сломит, и она иногда правильно работает, но это не точно. В SDD на вход подаётся команда, аргументами которой может быть произвольный текст, а на выходе получается структурированный документ (спек) в терминах (non)functional requirements, acceptance criteria, edge cases и т.д. Из этого документа потом генерируется машинный код.

Я когда экспериментировал с кодинг асссистентами, то независимо пришёл к похожему процессу, а тут обнаружил, что команда спецов из гитхаба выпустила целый тулкит для SDD разработки. Особенность spec-kit в том, что спек верхнего уровня, так называемый «источник истины», полностью абстрактен от технической имплементации, составляется интерактивно взаимодействуя с нейронкой. Далее составляется план конкретной имплементации с выбором платформы, языков, фреймворков, моделей данных, хостингов и т.д. Всё с помощью команд нейронке. Далее нейронка разбивает план на фазы и задачи, определяет зависимости между ними и какие задачи могут выполняться параллельно (в моём случае, простой проект, 8 фаз и более 100 задач). Далее идёт имплементация каждой задачи.

Интерактивное взаимодействие с нейронкой необходимо только на стадии составления абстрактного спека верхнего уровня, далее всё можно доверить ии. Но я предпочитаю делать всё по шагам, на каждом шаге пристально изучаю результат, запрашиваю пояснения/исправления, делаю коммит, только затем перехожу к следующему шагу. Весь процесс под полным контролем. На выходе получается хорошо разбитый на модули код с каментами, доками и без технических багов. Нейрока проверяет код статическим аналайзером, линтит, прогоняет тесты (которые сама пишет), вносит необходимые правки где надо, имеет доступ к актуальным версиям доков через MCP сервер. Где нужно, я вмешиваюсь в процесс. И конечно, полностью контролирую.

Результат я выставлять на всеобщее обозрение пока не буду, т.к. это никому не нужная свистоперделка на расте, которая нужна только мне и только для эксперимента. Spec-kit использую вместе с kilocode плагином для vscode и kimi k2.5 (сейчас бесплатна), но его можно использовать с разными кодинг ассистентами и моделями, в том числе и свободными/локальными. Когда досконально разберусь, как эта вся кухня работает, запилю настоящий проект.

Пока что результаты превосходят личные ожидания. Сам процесс взаимодействия с нейронкой гораздо увлекательней, чем бесконечный онанизмцикл правки-компиляния-отладки. Не берусь утверждать, что технология полностью готова для продакшн, но кмк прогресс будет глубже идти в направлении SDD и это станет таки стандартом индустрии, под визги луддитов что у них всёпропало.

Тем, у кого нет острой аллергии на ИИ, настоятельно рекомендую попробовать запилить проект с помощью spec-kit или аналогов (openspec). Здесь делитесь впечатлениями.

P.S. Уточнение: всё описанное выше, хоть и сводит необходимость ручного ковыряния в машинном коде к минимуму, но не отменяет необходимости знания используемых технологий.



Последнее исправление: yvv1 (всего исправлений: 2)
Ответ на: комментарий от Aceler

Машинный код - это имплементация алгоритма для конкретной вычислительной платформы, т.е. промежуточное представление. А сам алгоритм начинается с машинно независимого описания.

yvv1
() автор топика
Ответ на: комментарий от Aceler

Code бывает разный. С формулировки алгоритма до его исполнения на ЦПУ, он конвертируется в кучу разных промежуточных представлений разного уровня абстракции. Каждое из них - это code. Но мы ленивые, и не хотим все писать вручную. Поэтому мы используем SDD.

yvv1
() автор топика
Последнее исправление: yvv1 (всего исправлений: 2)
Ответ на: комментарий от Aceler

Да, и предельная детализация спека — это машинный код.

Нет. В предлагаемом SDD подходе, спек верхнего уровня - предельно абстрактен. Из него уже генерируются спеки более низкого уровня с детализаией технического стека.

Алгоритм можно решить с помощью карандаша с тетрадкой, а можно с помощью HPC кластера. Формулировка алгоритма при этом не меняется, меняется промежуточное представление.

yvv1
() автор топика

прогресс будет глубже идти в направлении SDD и это станет таки стандартом индустрии

Но это же про проектирование софтины с нуля (и последующий кансел, лол, таков путь стартапов), в то время как большинство индустрии таки разработка существующего проекта с большой кодовой базой. Но спасибо за эту штуковину, может пригодится.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

в то время как большинство индустрии таки разработка существующего проекта с большой кодовой базой.

Не вижу принципиальных отличий. Значит спеки будут делаться не с нуля, а с этой кодовой базы. Причём тоже интерактивно.

anonymous_incognito ★★★★★
()

Посмотрел список поддерживаемых AI Agents - не увидел (возможно ошибся) ничего локального. Оно в принципе бессмысленно для доступных локально обычных GPU или авторы не захотели?

anonymous_incognito ★★★★★
()
Ответ на: комментарий от goingUp

Но это же про проектирование софтины с нуля

Оно поддерживает greenfield и brownfield разработку. Там у разраба есть видосы на ютубе про это.

yvv1
() автор топика
Ответ на: комментарий от anonymous_incognito

Посмотрел список поддерживаемых AI Agents - не увидел (возможно ошибся) ничего локального.

Такие агенты как kilocode, opencode и несколько других в списке, поддерживают локальных провайдеров (ollama и LM studio). Spec-kit это просто несколько маркдаун шаблонов и скриптов.

yvv1
() автор топика

Spec-kit - свободный тулкит для разработки, ориентированной на спеки (Spec Driven Development)

Те, кому интересен «вайб кодинг», можете про него забыть, потому что вот как на самом деле нужно использовать нейронки для разработки софта: spek-kit.

Так как же всё-таки называется проект?

Bfgeshka ★★★★★
()
Ответ на: комментарий от Bfgeshka

Спасибо, поправил. Блин, 10 раз перечитывал пост, а ошибки не заметил. Следующий раз нужно через чат бот прогнать для правки :)

yvv1
() автор топика

в каментах душно что $$$дец. хоть бы один по-существу написал. вижу «знатоков», без опыта работы с ии, но с нев$$енным мнением.

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

на днях кста автор клода очень полезный список важных моментов выкатил в работе с ии - начиная с использования гитовых ворктрии, потом как обязательная фаза - планирование. и уже потом подключение агентов, включая субагентов. воркфлоу прям приблизился уже к человеческому.

ergo ★★★
()
Последнее исправление: ergo (всего исправлений: 2)
Ответ на: комментарий от anonymous_incognito

Не вижу принципиальных отличий. Значит спеки будут делаться не с нуля, а с этой кодовой базы. Причём тоже интерактивно.

Ну так тема не раскрыта) Почему, к примеру, интерактивно, а не по существующему коду)

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Ты работаешь с уже существующим проектом точно так же, как и с новым, те же самые команды, только спек создаётся под новую фичу, с учётом существующей кодовой базы.

yvv1
() автор топика

его можно использовать с разными кодинг ассистентами и моделями, в том числе и свободными/локальными.

Тема однозначно интересная, но я бегло пробежался и не заметил возможности подключать локальные модели сходу. Можете привести пример подключения, какой из агентов они предлагают использовать оффлайн?

Obezyan
()
Ответ на: комментарий от Obezyan

Некоторые поддерживаемые агенты позволяют подключить как облачные, так и локальные провайдеры нейронок. Например, kilocode поддерживает ollama и lm studio, это выбирается в опциях агента. Т.е. ты устанавливаешь ollama (lm studio), загружаешь нужную тебе нейронку, например qwen coder, далее устанавливаешь kilocode, выбираешь в опциях использовать ollama(lm studio), далее устанавливаешь spec-kit и в опциях выбираешь использовать kilocode. Т.е. иерархия следующая:

  • SDD toolkit - spec-kit (использует агент, напр. kilocode)
  • Агент - kilocode (использует llm провайдера, напр. локальный ollama)
  • Провайдер - ollama или lm studio (использует LLM, такие как qwen coder и др.)

Всё вышеперечисленное - опенсорс.

yvv1
() автор топика
Ответ на: комментарий от yvv1

Пректу без году неделя. О нём большинство разрабов наверное ещё не знает даже.

Сами-то разрабы про него знают? Им удалось ли написать, например, плагин для какого-нибудь редактора для работы с SDD?

Camel ★★★★★
()
Ответ на: комментарий от yvv1

Спасибо за пояснение, я понял что тут нужно использовать цепочку:

spec-kit > kilocode > lm studio

Пока kilocode в ней выглядит лишним звеном (костылем) тк между ними все равно использется API типа OpenAPI, так почему бы не вызывать lm studio напрямую из spec-kit? Хотя, это уже не к вам вопрос, а к разработчикам.

Obezyan
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)