Spec-Kit
用 Claude Code 写代码有一段时间了,说实话大部分时候体验都挺好的。但遇到大项目的时候,问题就来了。
你跟它说「实现一个用户登录功能」,它直接就开写了。写到一半你发现,哎等等,密码加密方式还没定呢,JWT 的过期策略也没想清楚。然后它回头改,改着改着又引入新 bug。来回折腾几轮,你开始怀疑,到底是 AI 在帮我写代码,还是我在帮 AI 擦屁股。
Spec-Kit 就是为了解决这个问题来的。
这东西到底是什么
Spec-Kit 是 GitHub 官方出的 AI 编程工作流工具,核心开发者是 Den Delimarsky 和 John Lam。它的理念用一句话概括就是,规范不只是指导文档,规范是可执行的。
你想想看,传统开发里我们写 PRD、写设计文档,写完就扔一边了,代码该怎么写还是怎么写。Spec-Kit 的思路是,规范本身就是开发流程的驱动力量,每一步都由规范来推动,最终直接生成代码。
听着有点玄乎对吧?来看看它具体怎么做的。
七个阶段,步步为营
Spec-Kit 的工作流是一条严格的流水线,七个阶段,每个阶段都是一道「门」,上一道门没过就别想进下一道。
constitution → specify → clarify → plan → tasks → analyze → implement
↓ ↓ ↓ ↓ ↓ ↓ ↓
[门控] [门控] [门控] [门控] [门控] [门控] [门控]
每个阶段干什么呢?
constitution 是项目治理,定义项目的基本规则和约束。比如技术栈选择、代码规范、安全要求这些。这一步很多人会跳过,但我建议你别省。把规则 upfront 定好,后面能少很多扯皮。
specify 是写功能规范。不是写代码,是写清楚你要什么。用户故事、验收标准、技术约束,都在这一步定义好。
clarify 是消除歧义。AI 会帮你检查规范里有没有模糊的地方,有没有遗漏的边界条件。这一步是 Spec-Kit 最值钱的地方之一。你自己写的规范,你自己看不出问题,但 AI 能帮你挑出来。
plan 是技术计划,tasks 是任务分解,analyze 是一致性检查。这三步把规范翻译成可执行的任务清单,并且确保任务和规范之间没有冲突。
最后 implement 才是写代码。到这一步的时候,你已经非常清楚要写什么了。
像工厂流水线。听着有点重对吧?但对于大项目来说,这种「重」恰恰是你需要的。
怎么装
Spec-Kit 基于 Python,用 uv 做包管理器。
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
初始化项目
specify init my-project
然后就可以开始定义规范了。在 .specify/specs/features/ 下面创建规范文件
# User Login Feature
## User Story
As a user, I want to log in to access my account.
## Acceptance Criteria
- User can enter email and password
- System validates credentials
- User receives error message for invalid credentials
- Successful login redirects to dashboard
## Technical Constraints
- Use JWT for session management
- Password must be hashed with bcrypt
执行规范
/speckit.implement
Spec-Kit 会自动解析规范、生成计划、分解任务、然后执行实现。整个过程你只需要在关键节点做确认。
什么时候该用,什么时候不该用
说真的,Spec-Kit 不是万能的。我自己的感受是,它特别适合这些场景
| 场景 | 推荐度 | 原因 |
|---|---|---|
| 大型企业项目 | ✅ 强烈推荐 | GitHub 官方维护、阶段门控确保质量可控 |
| 需要规范生成代码 | ✅ 强烈推荐 | 规范可执行化是核心定位、模板引擎支持代码生成 |
| 多人协作 | ✅ 推荐 | 统一规范减少沟通成本 |
| 快速迭代项目 | ⚠️ 不推荐 | 阶段门太严格,改个方向要过七道门 |
| 个人小项目 | ⚠️ 不推荐 | 杀鸡用牛刀了 |
你可能觉得「我就想快速出个原型,搞这么复杂干嘛」。确实,Spec-Kit 不适合快速迭代。它的甜区是那些需要严格质量控制、多人协作的中大型项目。
如果你想找一个更轻量的方案,可以看看 [[OpenSpec 规格驱动开发工作流]],或者 [[Superpowers]]。
局限性
踩了段时间,有几个点我得说说。
环境配置有门槛。 需要 Python 3.11+ 和 uv,对于纯前端同学来说可能不太友好。我自己是 Java 后端出身,Python 环境搞得多了,但也花了不少时间配环境。
七个阶段学起来需要时间。 每个阶段的输入输出是什么,门控条件是什么,都得搞清楚。不像有些工具装上就能用,Spec-Kit 有个学习曲线。
灵活性不够。 项目做着做着方向变了?对不起,你得回到 specify 阶段重新走一遍。对于需求频繁变化的项目,这个成本有点高。
跟其他工具比一下
| 维度 | Spec-Kit | OpenSpec | Superpowers |
|---|---|---|---|
| 核心范式 | 规范可执行化 | 轻量规范层 | 技能组合 |
| 工作流 | 阶段门控式 | 流畅迭代式 | 技能触发式 |
| TDD 强制 | ❌ | ❌ | ✅ |
| Brownfield 支持 | ✅ | ✅ 优先设计 | ✅ |
| 出品方 | GitHub 官方 | Fission-AI | 社区(obra) |
【AI Coding】Spec-Kit
https://qiyec.site/archives/DDqKNK37
评论