前文《 2周消耗4亿tokens做8个项目》提到,我连续两周 vibe coding 写了不少项目。
前几天我在《 spec code 将被 agent 替代》中分享了我使用 OpenSpec 的经验。
这个周末,我体验了一下 spec-kit,发现 spec-kit 更强大。
OpenSpec 默认只有三个步骤:需求规划 /opsx:propose、执行 /opsx:apply、归档 /opsx:archive。
而 spec-kit 则拆分为 7 个步骤,其中 2 个是可选的,必选的是 5 个步骤,后面会逐一展开介绍。
如果你阅读官网的 Installation Guide 页面或者 Quick Start Guide 页面,会发现安装命令非常麻烦,介绍了十几种安装方式。
之所以麻烦,是因为官网把安装与使用合并在一起了,这也导致第一次使用的人感到非常困惑。
我个人觉得,官网的文档有点画蛇添足,完全违背了软件文档”简洁明了”的原则。
实际上安装命令只需要下面一条即可。
uv tool install specify-cli –from git+https://github.com/github/spec-kit.git
对于一个项目,初次使用 specify-cli 时,需要把 specify-cli 初始化到项目中,命令如下。
# cd 到项目的目录 specify init .

执行这个命令后,spec-kit 会在项目下生成一个 .specify 目录,其下又会生成 memory、scripts/bash、templates 三个子目录。
同时,你也会发现 .claude 目录里被安装了 commands 和 skills。

上一步 specify init . 只是把 spec-kit 的文件安装到了项目中,接下来还需要让 AI 分析项目并生成项目的”宪法”文件。
在 Claude 里运行命令 /speckit.constitution 即可。
执行这个命令后,会生成项目的基本信息文件 constitution.md。
spec-kit 把这个文件称为 Constitution(宪法),它定义了项目的核心规则和原则,如技术栈、架构约束、编码规范、安全要求等。
类似于 Claude 的 CLAUDE.md 或者 Agent.md,spec-kit 也会生成一份属于自己的项目描述信息。
这一步执行时,命令支持输入一些自定义的 Constitution 内容,但我们一般不需要手动输入,保持为空,让 AI 自己去分析项目并总结出规则与原则即可。
这也是我之前在《 spec code 将被 agent 替代》中提到的,AI 分析完整个项目后,会记住项目的架构、模式、风格等,后续生成的代码也会与当前项目保持一致。
虽说这一步叫”创建规范”,但对于我们来说,真实含义是提出需求。
我们通过这一步的命令来描述需求,让 AI 来分析与拆解需求,俗称对齐颗粒度。
使用样例如下:
/speckit.specify 在 xx 页面点击 xx 按钮时,显示的数据是 A,预期是 B,帮忙分析下原因,解决下这个问题。

执行完这个命令后,spec-kit 会在 specs 目录生成一个有编号的类似于 001-xxx 的目录。
另外看官方文档,宣称还会根据需求生成语义化分支名,并直接创建 Git 分支。
最终会用模板生成规范文档,并填入需求描述,生成 Spec 文档。
PS:实际执行过程中,你会发现报错导致没有生成分支,文章的最后我再介绍怎么解决。
ERROR: Not on a feature branch. Current branch: main Feature branches should be named like: 001-feature-name, 1234-feature-name, or --feature-name
/speckit.clarify 关于你提及的 xxx 内容,理解有误,应该是 xxx。背景信息是 xxx。
如果确认需求没问题了,就可以执行 plan 命令来输出规划了。
/speckit.plan

方案输出之后,就是把方案拆分为一系列任务了。
/speckit.tasks
这一步会基于 plan 的内容,生成一份可执行且按依赖关系排序的 tasks.md 文件。

拆分任务与执行任务之间,还有一个可选的步骤,用来最后一次审视需求、规划、任务等材料,检查所有文档之间是否存在矛盾、重复、歧义以及描述不足之处。
/speckit.analyze

终于到最后一步——执行了。
/speckit.implement


就这样,我们使用 spec-kit 完成了一个 SDD(规格驱动开发)需求的完整开发流程。
在这个过程中我遇到了三个问题。
# 直接在命令行里运行 specify extension add git
安装之后,插件位置在 .specify/extensions/git。
还需要手动把 .specify/extensions/git/commands 中的 commands 都复制到 ./.claude/commands。

《完》
-EOF-
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/260135.html