什么是规范驱动开发?OpenSpec 又是什么?
规范驱动开发(Specification-Driven Development)以机器可读的规范为唯一真相:需求、设计、实现与测试都以规范为依据。 而 OpenSpec 是用来达到这个目的的工具。它本质就是提示词工程。可以让 AI Agent 严格根据规范来生成代码,从而解决 AI 生成代码质量不可控,代码不达预期等等的一系列问题。
为什么要引入规范驱动开发?
- 为了让 AI 代码交付质量符合预期
- 代码生成可控
- 有复用效应,利于团队协作。只要制定一次规范上传 git,那么所有成员都可以共享。随着时间增长,规范越来越多,AI 会越来越聪明知道你的编码习惯。
- 减少团队新人上手门槛。试想一下只要规范足够多,约束够多。新人只要会用 AI 就可以生成近似于半个老手程序员的代码了。
忍住!不要写代码!
在接到需求时候,我们不应该马上动笔写代码。而是改变行为习惯从”面向代码实现编程”变成”面向文档编程”。一份优质的需求文档,可以让 AI 更容易生成符合预期的代码!虽然你可能觉得这么简单为什么我还有走和这个流程,几行代码的事情。为了复利效应忍住!你虽然知道怎么写,不代表你团队的新人知道怎么写。从团队利益最大化角度上看我们应该忍住不要写代码走流程让 AI 实现。
Claude Code + OpenSpec 最佳实践提人效工作流
了解 OpenSpec 流程
上来不要叫 AI 写代码,先提案!每一个流程对应一个斜线指令。
text
┌────────────────────┐
│ Draft Change │
│ Proposal │
└────────┬───────────┘
│ share intent with your AI
▼
┌────────────────────┐
│ Review & Align │
│ (edit specs/tasks) │◀──── feedback loop ──────┐
└────────┬───────────┘ │
│ approved plan │
▼ │
┌────────────────────┐ │
│ Implement Tasks │──────────────────────────┘
│ (AI writes code) │
└────────┬───────────┘
│ ship the change
▼
┌────────────────────┐
│ Archive & Update │
│ Specs (source) │
└────────────────────┘
项目初始化
Step 1: 安装 OpenSpec
shell
npm install -g @fission-ai/openspec@latest
Step 2: 用 OpenSpec 初始化你的项目
shell
cd my-project
openspec init
这样 OpenSpec 就会把一些工作流的提示词植入到你项目中,以后 Agent 开发就会按照工作流走了。
他会建一个 openspec 文件夹存放。
Step 3: 填充 project.md
进入 Claude Code,让 AI 帮你填充 openspec/project.md 提示词示例:
text
填写你的项目上下文:
“请阅读 openspec/project.md,并帮我用有关我项目、技术栈和规范的详细信息进行补充。”
使用命令执行 openspec 流程
进入 Claude Code 执行斜线指令(初始化时候 OpenSpec 已经植入了)
shell
# 提案
/openspec:proposal 你的需求
# 实现
/openspec:apply
# 归档
/openspec:archive
然后把这个流程循环就好了。
下集预告
你第一次使用这个流程是不是觉得生成代码还是没有符合你的预期。那是因为规范还是不到位约束太少了。下一期我们聊一下怎么提高规范的约束准确度。得闲喝茶 🍵