如何让AI更精准地理解我的开发需求?
摘要:OpenSpec 能保证 AI 理解了你的需求,但不能保证代码完全正确。用这套工具不会让你完全放手,只是把 debug 的环节从'改 prompt 重跑'变成了'review 代码&am
一、前言
用 AI 写代码,大家都试过。但有一个痛点一直解决不了:AI 经常理解错你的意思。
我之前试过好几个方案:写详细的 prompt、让 AI 先分析需求、反复修改提示词……效果都不太好。AI 输出的代码,要么漏了这个功能,要么理解错了业务逻辑,改来改去比自己写还慢。
后来我发现了 OpenSpec。这是一个专门为 AI 辅助开发设计的规范化工作流工具。它把"需求→方案→执行→归档"整个过程标准化了,AI 只能按这个流程走,理解偏差大大减少。
用了三个月下来,AI 生成代码的可用率从 30% 提到了 80% 以上。今天分享下我是怎么用这套工具的。
二、方案介绍
核心概念
概念
定义
OpenSpec
规范化 AI 辅助开发的框架,通过提案→执行→归档的标准化流程减少 AI 理解偏差
Proposal(提案)
对需求的结构化描述,包含目标、范围、任务清单
Apply(应用)
根据提案执行代码变更
Archive(归档)
将完成的变更合并到项目规范,形成历史记录
解决了什么问题
传统 AI 编程的问题:
Prompt 太长太复杂,AI 容易遗漏细节
多轮对话后 AI 忘记早期上下文
代码分散在对话里,没有集中管理
OpenSpec 的优势:
结构化输入:提案文件模板化,要求你必须把需求写清楚
可审查:AI 生成的提案你可以先审核,确认理解正确再执行
版本管理:每次变更都有记录,随时可回溯
三、安装与初始化
第一步:安装 OpenSpec
通过 npm 全局安装:
npm install -g @fission-ai/openspec@latest
验证安装成功:
openspec --version
第二步:在项目中初始化
进入你的项目根目录:
cd your-project-path
执行初始化:
openspec init
初始化向导会询问你使用的 AI 工具,选择 OpenCode。
完成后,OpenSpec 会在项目中生成:
openspec/
├── changes/ # 变更提案目录
│ └── example-proposal/
│ ├── proposal.md # 提案说明
│ └── tasks.md # 任务清单
├── specs/ # 项目核心规范
└── archives/ # 已完成的变更归档
第三步:配置斜杠命令
初始化后,OpenCode 会自动注册斜杠命令。你可以直接在对话中使用:
/openspec:proposal - 创建新提案
/openspec:apply - 应用提案中的变更
/openspec:archive - 归档完成的提案
四、典型工作流
第一阶段:创建提案
告诉 AI 你想做什么:
/openspec:proposal "实现用户登录功能"
AI 会自动在 openspec/changes/ 下创建提案文件夹,生成:
proposal.md - 提案说明,包含需求背景、目标范围
tasks.md - 任务清单,按优先级排列的具体任务
第二阶段:审查与对齐
这是最关键的步骤。打开 AI 生成的 proposal.md,检查:
✅ 需求理解是否准确
✅ 范围边界是否清晰
✅ 任务拆解是否完整
如果有偏差,直接修改文件内容。AI 在 apply 时会按照你修改后的版本执行。
第三阶段:执行变更
确认提案无误后,执行:
/openspec:apply implement-user-login
把 implement-user-login 替换为你的提案文件夹名
AI 会按照 tasks.md 中的任务清单逐步执行,每完成一个任务会更新状态。
第四阶段:归档
功能开发完成并验证通过后,归档:
/openspec:archive implement-user-login
归档会:
将本次变更的规范合并到 openspec/specs/
将变更文件夹移动到 openspec/archives/
清理 openspec/changes/
五、中文支持
如果习惯用中文,可以安装中文版本:
安装:
npm install -g @studyzy/openspec-cn
初始化:
openspec-cn init
中文版的模板和提示词都是中文的,用起来更顺手。命令还是 /openspec:proposal 这种形式,但支持中文关键词和文档。
