写在前面:最近被同事问了一个问题——"你用Cursor/Copilot写代码的时候,是不是经常觉得AI理解不了你的意图?"
说实话,这问题直接戳到我痛点了。我相信很多用AI写代码的朋友都有同感:提示词改了八百遍,生成的代码还是差点意思;好不容易调通了,过几天再看,完全想不起来当时为啥这么改...
今天就来聊聊一个可能改变你AI编程体验的工具——Spec Kit。
一、先说说我们踩过的那些坑
在聊Spec Kit之前,我想先问问大家,下面这些场景是不是很熟悉:
**场景一:提示词调参狂人
你花了半小时写了一个看似完美的prompt,让AI帮你写一个用户登录模块。结果生成的代码,要么少了校验逻辑,要么加密方式不对,要么...根本跑不起来。
于是你开始了漫长的"调参之旅":
第1版:请帮我写一个用户登录功能
第2版:请帮我写一个用户登录功能,要有密码加密
第3版:请帮我写一个用户登录功能,用bcrypt加密,支持邮箱和手机号登录
第4版:请帮我写一个用户登录功能,用bcrypt加密,支持邮箱和手机号登录,还要有登录失败次数限制
第5版:...
每次修改,AI都要重新理解你的需求,代码结构也跟着变来变去。最后勉强能用了,但你已经筋疲力尽。
**场景二:改着改着就忘了
项目做到一半,产品经理说需求要调整。你打开三天前写的代码,看着那一堆AI生成的逻辑,完全想不起来当时的设计思路是什么。
"这个函数为什么要这么写?" "这个判断条件是为了处理什么边界情况?" "当时是怎么跟AI沟通的?"
都忘了。只能硬着头皮改,改完发现又引入了新bug。
**场景三:规范?什么规范?
团队里每个人用AI的方式都不一样。你用Cursor,同事用Copilot,另一个同事用Claude。每个人的编码规范也不一样,生成的代码风格五花八门。
代码审查的时候,经常出现这样的对话:
"你这个变量命名为什么用驼峰?我们不是说好用下划线吗?" "啊,AI生成的,我忘了改了..."
二、什么是Spec Kit?一句话解释
Spec Kit 是GitHub团队开源的一套工具包,核心思想用一句话概括就是:
先把"做什么"和"为什么"写清楚,再让AI动手写代码。
听起来很简单对吧?但这个简单的思路转变,能解决上面提到的大部分问题。
📊 传统AI编程 vs Spec Kit 方式
来看一张对比图,一目了然:
打个更形象的比方:
三、Spec Kit的核心理念:规范驱动开发
Spec Kit背后的方法论叫规范驱动开发(Spec-Driven Development,简称SDD)。别被这个名字吓到,其实就是三个核心原则:
原则一:规范是唯一的真相来源
什么意思?就是说,不管是需求变更、设计讨论,还是代码实现,所有人都以同一份"规范文档"为准。
想象一下团队开会的场景:
之前:"我记得这个功能不是这样的啊..." 之后:"文档第3节第2条写的很清楚,登录失败超过5次锁定账号,锁定时间30分钟"
有了这个唯一的"真相来源",就不会再出现"你以为我以为"的沟通问题了。
原则二:明确检查点
开发过程中,每完成一个阶段,就停下来对照规范检查一下。发现问题早解决,不要等到最后才发现走偏了。
这就像造房子,不是等房子盖完了才发现地基歪了,而是每砌一层墙都要用水平仪量一量。
原则三:AI是"字面化"的搭档
这是最重要的一点。
我们经常高估AI的"理解能力"。其实AI不会像人类同事那样"领悟"你的意图,它只能按照你给的指令来执行。你说的越具体、越明确,它完成的就越好。
Spec Kit的做法就是:把所有可能模糊的地方都写清楚,让AI没有"发挥"的空间。听起来限制了AI?恰恰相反,这样AI反而能发挥出最大的效率。
四、Spec Kit怎么用?四个阶段手把手教你
好,理念讲完了,来看看具体怎么用。Spec Kit把AI编程分成了四个阶段:
工作流程总览
阶段一:Specify(规范)—— 先想清楚要做什么
这是最重要的一步。在动手写代码之前,先把软件的功能、行为、用户体验、数据模型等等,全部写清楚。
举个例子,假设你要做一个"待办事项"应用,规范文档可能长这样:
项目名称:Taskify - 团队待办管理平台
功能概述:
- 用户可以创建项目
- 用户可以在项目中添加任务
- 任务支持看板视图(待办/进行中/已完成)
- 用户可以给任务添加评论
- 支持拖拽移动任务
用户体验要求:
- 首页加载时间 < 2秒
- 拖拽操作要有流畅的动画效果
- 移动端需要适配
数据模型:
- User(用户):id, name, email, avatar
- Project(项目):id, name, description, owner_id, created_at
- Task(任务):id, title, description, status, project_id, assignee_id
- Comment(评论):id, content, task_id, user_id, created_at
你可能会想:这不就是写需求文档吗?确实差不多,但Spec Kit会帮你用AI来辅助完成这个文档,而且格式更加标准化,方便后续AI处理。
阶段二:Plan(计划)—— 想清楚怎么做
有了功能规范,接下来要制定技术方案。这一步也是和AI协作完成的。
比如你告诉AI:
"我们用Next.js做前端,PostgreSQL存数据,用Prisma做ORM,拖拽功能用dnd-kit实现"
AI会根据你的技术选型,结合前面的功能规范,生成一份详细的技术计划。
技术计划会包括:
- 项目目录结构
- 数据库表设计
- API接口设计
- 前端组件拆分
- 第三方库选型
这一步的好处是:在写代码之前,就把技术方案定下来。后面实现的时候,就不用边写边想"这里该用什么方案"了。
阶段三:Tasks(任务拆分)—— 把大象装进冰箱
我们都知道,面对一个复杂的项目,最好的办法是拆成小块,一块一块完成。
Spec Kit会根据前面的规范和计划,自动把项目拆成一个个小任务。每个任务都是:
- 相对独立的
- 可以测试的
- 有明确的完成标准
比如上面的待办应用,可能会拆成这些任务:
任务1:初始化Next.js项目,配置Prisma
任务2:实现User数据模型和认证API
任务3:实现Project数据模型和CRUD API
任务4:实现Task数据模型和CRUD API
任务5:实现看板组件的基础UI
任务6:实现拖拽功能
任务7:实现评论功能
任务8:添加加载动画和性能优化
...
每个任务都足够小,AI一次就能完成得很好。
阶段四:Implement(实施)—— 终于可以写代码了
有了前面的铺垫,这一步反而是最简单的。
你只需要告诉AI:"按照任务1的要求开始实现",AI就会根据规范和计划,生成相应的代码。
而且因为每个任务都有明确的完成标准,你可以很容易地验证代码是否符合预期。不符合?让AI根据反馈修改就行。
五、实操指南:从零开始用Spec Kit
说了这么多,来点实际的。下面是使用Spec Kit的完整流程:
📝 快速上手流程图
第一步:环境准备
首先确保你的开发环境满足以下要求:
- Python 3.11+(Spec Kit是用Python写的)
- Git(版本控制必备)
- 一个支持的AI编程工具(比如GitHub Copilot、Claude、Cursor等)
然后安装Spec Kit的命令行工具:
pip install uv
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
第二步:初始化项目
创建一个新项目并初始化:
mkdir my-awesome-app && cd my-awesome-app
specify init my-awesome-app --ai copilot
这会在项目根目录创建一个 .specify 文件夹,里面存放所有的规范文档。
第三步:制定项目"宪法"
在你的AI编程工具里,输入:
/speckit.constitution
然后告诉AI你的项目基本原则,比如:
"这个项目注重代码质量和测试覆盖率,所有功能都需要单元测试。用户体验要简洁直观,性能要求首屏加载不超过3秒。"
AI会在 .specify/memory/constitution.md 文件中生成一份开发准则。以后AI生成的所有代码,都会参考这份准则。
第四步:开始Specify → Plan → Tasks → Implement流程
接下来就是按照前面说的四个阶段来了。
1. 定义规范
/speckit.specify
> 我要做一个个人博客系统,支持Markdown写作,有标签分类功能,支持搜索,有评论系统
2. 制定计划
/speckit.plan
> 前端用Vue3 + Vite,后端用Python FastAPI,数据库用SQLite,部署到Vercel
3. 拆分任务
/speckit.tasks
(AI会自动分析计划,生成任务列表)
4. 开始实现
/speckit.implement
(AI会按照任务列表,一个一个完成)
六、Spec Kit的优缺点,实话实说
用了一段时间,我来说说真实感受:
优缺点对比
优点:
1. 代码质量确实更稳定了 ⭐⭐⭐⭐⭐
因为有了清晰的规范,AI不会"自由发挥"。生成的代码结构一致,风格统一,也更容易维护。
2. 设计决策有据可查 ⭐⭐⭐⭐⭐
每次为什么这么设计,规范文档里都写得清清楚楚。三个月后回来改代码,也能快速理解当时的思路。
3. 团队协作更顺畅 ⭐⭐⭐⭐
大家都按照同一份规范来,代码审查效率提升很多。新人入职,看一遍规范就能上手。
4. AI能力利用得更充分 ⭐⭐⭐⭐
不是AI不行,是我们以前的用法不对。给AI足够清晰的指令,它真的能完成得很好。
缺点:
1. 前期投入时间多
写规范、做计划,确实要花不少时间。对于特别小的项目,可能有点"杀鸡用牛刀"。
2. 学习曲线存在
需要适应这套新的工作流程。刚开始用的时候,可能比直接让AI写代码还慢。
3. 规范本身也需要维护
项目变化了,规范也要同步更新。如果规范和代码不一致,反而会造成混乱。
💡 什么时候该用Spec Kit?
七、我的一些使用心得
用了Spec Kit一段时间,总结几点心得分享给大家:
1. 规范不用一步到位
不要想着一开始就写出完美的规范。可以先写个大概,在后续开发过程中不断补充和完善。
2. 善用AI来写规范
规范本身也可以让AI帮你写。你只需要提供关键信息,让AI帮你组织成规范的格式。
3. 小项目可以简化
如果项目很小(比如一个小工具),不需要走完整的四个阶段。可以简化成"规范 + 实现"两步。
4. 结合已有的工作流
Spec Kit不是要替代你现有的工作流程,而是作为补充。比如你们公司本来就有需求文档,可以直接把需求文档作为规范的一部分。
5. 定期回顾和改进
每完成一个项目(或者一个大版本),回顾一下这套流程哪里可以改进。比如规范的粒度是不是合适,任务拆分是不是太细了等等。
八、最后说几句
其实Spec Kit代表的不仅仅是一个工具,更是一种思维方式的转变:
这个转变看似简单,但需要我们改变很多习惯。我们太习惯"边想边做"的开发模式了,一开始可能会觉得"写这么多规范好麻烦"。
但用久了你会发现,前期花在规范上的时间,后期会成倍地省回来。更重要的是,你对自己做的东西会有更清晰的认知,代码质量和项目可维护性都会提升。
AI确实很强大,但它需要我们正确地使用。Spec Kit提供了一种经过验证的方法论,值得每个用AI写代码的开发者尝试一下。
相关资源:
- GitHub Spec Kit 项目地址:github.com/github/spec…
- Spec-Driven Development 方法论文档
文末彩蛋:
其实"规范驱动"这个思想不仅适用于软件开发。硬件设计领域早就在用类似的方法了——在动手画电路之前,先写清楚硬件需求规格说明书(HRS)。
软件开发领域反而是后来者。也许是因为软件修改成本低,我们才养成了"先写再改"的习惯。但随着AI的加入,项目越来越复杂,是时候向硬件领域学习,把"规范先行"这个习惯捡回来了。
如果这篇文章对你有帮助,欢迎分享给你的朋友。有问题也欢迎留言讨论~