介绍

Spec-kit 地址:https://github.com/github/spec-kit.git

SDD(Spec-Driven Development) 的介绍:

https://github.com/github/spec-kit/blob/main/spec-driven.md

规范驱动开发是一种在产品开发中优先考虑需求规范的方法,其目标是通过明确的需求和预期结果来引导软件开发。在这一过程中,在开发开始之前编写详细的规范文档至关重要,规范应以易于理解的格式呈现,以便所有开发人员和相关利益方都能清楚理解。在编码过程中,开发者需始终遵循规范,确保功能实现的一致性。文档中应包括背景信息、功能描述和使用示例,以帮助开发团队理解需求。此外,规范的编写与审阅应是团队协作的结果,开发过程中需持续收集反馈并适时调整规范。最佳实践包括保持规范简洁、定期更新和鼓励团队成员提出意见。整体而言,规范驱动开发提高了开发的透明度和一致性,减少了误解,从而优化了最终产品的质量和用户体验。

安装

使用 uv 管理器下载安装

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

如果没有uv ,需要安装

uv 安装手册:https://uv.doczh.com/getting-started/installation/

安装成功

Clipboard_Screenshot_1761790379

ai 配置

安装好后,需要配置ai

Spec-kit 支持的ai列表

Clipboard_Screenshot_1761790461

我用的是 CodeBuddy CLI

https://www.codebuddy.ai/cli

按照指引安装

npm install -g @tencent-ai/codebuddy-code

image-20251030102147809

安装完了需要登录一下

输入 codebuddy进入交互式的界面

image-20251030102528826

选择合适的登录验证即可

specify init

使用 specify init <ProjectName>初始化

image-20251030103033950

会让你选择ai实现,前面章节是保证环境中安装并支持了ai,现在是将ai配置到 spec-kit

image-20251030103048834

会发现有报错

image-20251030103115503

请求 github的api失败了。

需要设置github的token

Clipboard_Screenshot_1761792037

在这个地址创建 github-token https://github.com/settings/tokens

需要能访问 github

Clipboard_Screenshot_1761792383

Clipboard_Screenshot_1761792430

选择永不过期

Clipboard_Screenshot_1761792459

不做任何授权

Clipboard_Screenshot_1761792473

创建好后,记得保存,只能展示一次的

Clipboard_Screenshot_1761792499

重新初始化

image-20251030105020340

就好了

image-20251030105100373

到了这里,重新打开ai,上面的spec-kit的一些约定已经给ai了,就可以直接用了

要做的事情

假设现在有一个项目,需要使用ai给项目生成单元测试

项目是 go语言开发,使用 gomonkey , goconvey 进行mock验证

speckit.constitution

将上面的背景和要做的事情进行整理:

给现有的项目生成单元测试,使用 gomonkey 和 goconvery 进行mock验证.xx

在 test 目录,使用 codebuddy 使用ai

image-20251030110921848

在ai的对话框输入

/speckit.constitution 给现有的项目生成单元测试,使用 gomonkey 和 goconvery 进行mock验证。保证覆盖率为100.

image-20251030111533351

在ai执行命令的时候,会要求授权

image-20251030111621778

ai会按照要求分析现有项目的结构,并进行对生成单元测试这个需求进行优化

image-20251030111809608

到了这里,spec-kit的魅力就出现了,按照之前使用ai的经验,大部分这里ai会尝试做一些事情,但是当需求没有搞明白,ai尝试做的事情往往不尽如人意。

而 spec-kit 指导下,或者说 SDD指导下的ai,会进行确认,明确需求后才会开始干活

生成了相关的需求内容

网上叫做宪章,我个人觉得约定可能更合适点儿~

image-20251030112013915

speckit.specify

因为需要生成的文件很多,我们尝试先给一个包下的文件生成单侧

/speckit.specify 给包 cynosdb_log 生成单元测试

image-20251030112535293

ai会生成计划

Clipboard_Screenshot_1761794929

speckit.clarify

如果你觉得ai理解的有问题,那么可以使用 /speckit.clarify进行明确

speckit.plan

按照计划,拆分任务

image-20251030113051129

image-20251030113108142

ok

image-20251030114625450

speckit.tasks

使用 /speckit.tasks 生成可执行任务

image-20251030114728858

任务已经拆分完毕

image-20251030140342908

speckit.implement

使用 /speckit.implement 实现

image-20251030140512139

生成成功了

image-20251030152752392

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐