同样的OpenCode,为什么有人能写出工业级代码,有人只能写出玩具项目?差距就在这个方法论。
你是否也遇到过这些痛点?

使用OpenCode写代码时,你是否也有这些困惑:

场景一:需求说不清楚

"帮我写个用户管理系统" AI生成了一套代码,你一看,数据库设计不合理、API命名混乱、完全没有扩展性...

场景二:需求变更灾难

做到一半PM说"加个功能" 你硬着头皮让AI改代码,结果牵一发动全身,之前的代码全乱了

场景三:同样的需求,代码质量忽高忽低

昨天写的代码结构清晰,今天写的却是一坨屎山 你也不知道为什么,就是感觉AI今天"心情不太好"

场景四:团队协作头疼

队友接手你的项目,完全不知道你当时是怎么想的 代码注释几乎没有,prompt历史也找不到了

如果你有以上任何一种情况,这篇文章就是为你写的。

解决方案:SDD规范驱动开发

GitHub官方推出的Spec-Kit工具,完美适配OpenCode,把AI编程变成了一套标准化的工程流程。

SDD的核心就是:先想清楚,再动手写

5个核心命令,嵌入到OpenCode中:

命令

作用

什么时候用

/speckit.constitution

定义项目开发原则

项目开始时

/speckit.specify

写清楚功能需求

需求明确阶段

/speckit.plan

规划技术方案

技术选型阶段

/speckit.tasks

拆解任务清单

开始编码前

/speckit.implement

逐个完成任务

编码执行阶段

5分钟快速上手OpenCode + SDD第一步:安装specify工具

打开终端,输入:

# 安装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 创建项目开发原则:- 代码优先使用TypeScript- 遵循函数式编程范式- 所有API必须有类型定义- 单元测试覆盖率不低于80%

这个命令会生成 .specify/memory/constitution.md,相当于给AI定下"家规",之后的代码生成都会遵循这些原则。

2️⃣ 写清楚功能需求

/speckit.specify 开发一个博客系统后端API:- 支持用户注册、登录、获取个人信息- 支持文章的增删改查- 支持标签分类和全文搜索- 实现基于JWT的认证机制- API返回格式统一为 {code, message, data}

重点:这里只说"做什么",不说"怎么做"。技术细节交给下一步。

3️⃣ 规划技术方案

/speckit.plan 使用以下技术栈:- Node.js + Express框架- TypeORM + SQLite(便于本地开发)- class-validator进行参数校验- JWT进行身份认证- 使用标准的RESTful API设计
4️⃣ 生成任务清单

/speckit.tasks

AI会自动把大需求拆成可执行的小任务:

✅ 任务清单已生成:任务1:项目基础结构搭建├─ 创建Express应用入口├─ 配置TypeORM数据库连接├─ 设置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中开发一个待办事项API场景需求

开发一个待办事项管理API,功能包括:

  • 创建待办事项(标题、描述、截止日期、优先级)
  • 查询待办事项列表(支持按状态、优先级筛选)
  • 更新待办事项状态
  • 删除待办事项
对话实录

:打开OpenCode,进入项目目录

:/speckit.constitution 创建简洁的项目原则:代码保持简单,函数不超过50行,所有公开API必须有注释

:/speckit.specify 开发一个待办事项管理API:

  • 用户可以创建待办事项(标题、描述、截止日期、优先级)
  • 支持查询、筛选、更新、删除
  • 使用SQLite本地存储
  • 提供RESTful API接口

:/speckit.plan 使用Node.js + Express + TypeScript + SQLite

:/speckit.tasks

AI:[自动生成任务清单]

:/speckit.implement

结果:AI自动生成了完整的待办事项API,代码结构清晰、类型定义完整、符合RESTful规范。

为什么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:
  • 快速原型验证
  • 简单的脚本工具
  • 学习新技术做实验
  • 一锤子买卖的代码
效果对比

维度

直接Prompt

OpenCode + SDD

需求明确度

❌ 模糊

✅ 清晰

代码一致性

❌ 忽高忽低

✅ 稳定

需求变更

❌ 痛苦

✅ 轻松

团队协作

❌ 靠猜

✅ 看文档

学习成本

稍高

长期维护

❌ 很难

✅ 轻松

常见问题FAQ

Q:specify init失败怎么办?

# 升级到最新版本uv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git# 忽略工具检查specify init my-project --ai opencode --ignore-agent-tools

Q:5个命令必须按顺序用吗?建议按顺序来。SDD的核心是"先想清楚再动手",顺序是有工程逻辑的。

Q:可以只用一个命令吗?可以。但如果只用/speckit.implement而没有前面的规范,AI可能会"自由发挥"。

Q:specify会不会让开发变慢?短期看,写规范确实需要一些时间。长期看,返工少了、协作顺了、质量高了,总体效率提升明显。

总结

OpenCode本身已经很强大了,但配合SDD方法论,能让你的AI编程从"玄学"变成"工程"。

核心要点:

  1. 先想清楚,再动手写- SDD的铁律
  2. 5个命令搞定一切- constitution → specify → plan → tasks → implement
  3. 规范文档是核心- 让AI有据可依
  4. 适合正式项目- 长期维护、团队协作场景

从今天开始,试试用SDD方法开发你的下一个项目吧!

你在OpenCode中使用SDD有什么心得?欢迎评论区分享!

#OpenCode #SpecKit #AI编程 #效率工具 #程序员