最近在研究opencode,整理整个流程,发现在ai编程时,SDD部分不是很严谨,效率不高,发现了Spec-kit,它作为SDD,大大的提升了AI编程的效率。

如果你也遇到以下问题,那么Spec-kit非常适合你。
一:需求说不清楚,AI听不懂
"帮我写个管理系统"
AI生成了一套代码,你一看,数据库设计不合理、API命名混乱、完全没有扩展性,项目起不来...
二:改动难
写到一半PM说"加个功能","加个接口"
让AI改代码,结果牵一发动全身,之前的代码全乱了,完全废了
三:同样的需求,代码质量忽高忽低,一版一样
第一版写的代码结构清晰,第二版写的却是一坨屎山
你也不知道为什么,就是感觉AI今天"心情不太好"
四:版本根本没眼看
git版本不一,提交乱七八糟
如果你有一项符合,那么你最好完整的看完这篇文章
GitHub官方推出的Spec-Kit工具,完美适配OpenCode,把AI编程变成了一套标准化的工程流程。
SDD的作用就是先想清楚,在去写。
最核心的5步,集成到opencode中:

3分钟上手使用spec-kit
第一步:安装spec-kit
打开终端
# 安装specify命令行工具
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 验证安装
specify check
第二步:初始化OpenCode项目
# 创建新项目(指定使用OpenCode)
specify init my-project --ai opencode
# 或者在当前目录初始化
specify init . --ai opencode



初始化完成后,打开OpenCode,你会看到左上角显示项目名称,同时AI助手已经加载了SDD相关的命令。
第三步:开始写规范
在OpenCode的AI对话中,依次输入以下命令:

1:创建项目开发原则(宪法)
/speckit.constitution 创建项目开发原则:
- 代码优先使用Net
- 遵循函数式编程范式
- 功能必须完整实现
- 单元测试覆盖率不低于80%
生成
.specify/memory/constitution.md,相当于给AI定下"家规"
2:写清楚功能需求
/speckit.specify 开发一个问卷系统:
- 支持用户注册、登录、获取个人信息
- 支持问卷的增删改查
- 支持标签分类和全文搜索
- 实现基于JWT的认证机制
- API返回格式统一为 {code, message, data}
重点:这里只说"做什么",不说"怎么做"。技术细节交给下一步。
3:规划技术方案
/speckit.plan 使用以下技术栈:
- vue.js + element ui框架
- .Net8 + SQLite(便于本地开发)
- JWT进行身份认证
- 使用标准的RESTful API设计
4:生成任务清单
/speckit.tasks
AI会自动把大需求拆成可执行的小任务:
✅ 任务清单已生成:
任务1:项目基础结构搭建
├─ 创建Net应用入口
├─ 配置SQLite数据库连接
├─ 设置CORS中间件
└─ 配置环境变量
任务2:用户认证模块
├─ 实现用户注册接口
├─ 实现用户登录接口
├─ 实现JWT token生成和验证
└─ 添加路由守卫中间件
任务3:问卷CRUD模块
├─ 创建问卷实体模型
├─ 实现问卷增删改查API
├─ 实现标签分类功能
└─ 实现搜索接口
5:开始编码
/speckit.implement
ai会按照计划进行编写
项目结构一览
使用SDD后,你的项目会多出一个 .specify/ 目录:
my-blog-api/
├── .specify/
│ ├── memory/
│ │ └── constitution.md # 项目原则(宪法)
│ ├── specs/
│ │ └── 001-blog-api/
│ │ ├── spec.md # 功能需求文档
│ │ ├── plan.md # 技术方案文档
│ │ └── tasks.md # 任务清单
│ └── scripts/
│ └── *.sh # 辅助脚本
├── src/
│ ├── entities/ # 数据实体
│ ├── routes/ # 路由定义
│ ├── middlewares/ # 中间件
│ └── index.ts # 入口文件
├── tests/
├── package.json
└── tsconfig.json
为什么OpenCode + SDD这么好用?
优势一:需求描述更清晰
SDD强制你把模糊的想法转化为清晰的文档。AI不再是"猜你想要什么",而是"按照文档实现什么"。优势二:代码质量更稳定
-constitution.md定义了代码标准,所有生成的代码都会遵循同一套规范,不会忽高忽低。优势三:需求变更更可控
-PM说要改需求?没问题,改一下spec.md,然后重新执行/speckit.implement,AI会自动调整代码。优势四:团队协作更顺畅
新成员加入,看一遍.specify/目录下的文档就知道项目全貌,不需要翻历史记录猜你的思路。
⚡ 进阶技巧
需求有疑问?用clarify!
/speckit.clarify
这个命令会自动分析你的需求文档,找出描述模糊的地方,逐个问你澄清,确保需求100%明确。
写完想检查?用checklist!
/speckit.checklist
生成一个质量检查清单,逐项验证代码是否满足需求。
想看有没有遗漏?用analyze!
/speckit.analyze
分析需求文档、技术方案、代码之间的一致性,发现潜在问题。
只想验证环境?
specify check
检查你的OpenCode和其他必需工具是否安装正确。
什么时候用SDD?什么时候不用?
✅ 强烈推荐使用SDD:
正规项目开发(需要长期维护)
团队协作项目
功能复杂的业务系统
对代码质量有要求的项目
需求可能变更的项目
❌ 可以不用SDD:
快速原型验证
简单的脚本工具
学习新技术做实验
一锤子买卖的代码

快使用Spec-kit完善你的opencode吧。