OpenSpec:AI 编程助手的规范驱动开发框架,比 Spec Kit 更轻量
标签: AI编程 / OpenSpec / 规范驱动 / SDD / Claude Code / Codex
GitHub: https://github.com/Fission-AI/OpenSpec
NPM: @fission-ai/openspec
Discord: https://discord.gg/YctCnvvshC
核心亮点
OpenSpec 是一个规范驱动开发(SDD, Spec-Driven Development)框架,为 AI 编程助手提供轻量级的 spec 层,让人类和 AI 在写代码之前先对齐"要做什么"。
核心哲学:
- 🌊 流动而非僵化(fluid not rigid)
- 🔄 迭代而非瀑布(iterative not waterfall)
- ✅ 简单而非复杂(easy not complex)
- 🏗️ 支持存量项目而非只适合新项目(brownfield not just greenfield)
- 📈 从个人项目到企业级均可扩展
问题:AI 编程助手的"需求只在对话里"
AI 编程助手很强大,但有一个根本性问题:需求只活在对话历史里。
当你让 Claude Code 或 Codex 写代码时,需求理解全靠 prompt。如果对话很长,上下文腐烂;如果换一个会话,需求又要重新说一遍。结果就是模糊的 prompt + 不可预测的结果。
OpenSpec 的解决方案:在写代码之前,先建一套轻量 spec。
三步工作流
第一步:提出提案 /opsx:propose
You: /opsx:propose add-dark-mode
AI: Created openspec/changes/add-dark-mode/
✓ proposal.md — 为什么要做、改什么
✓ specs/ — 需求和场景
✓ design.md — 技术方案
✓ tasks.md — 实现清单
Ready for implementation!
第二步:执行实现 /opsx:apply
You: /opsx:apply
AI: Implementing tasks.md...
✓ 1.1 Add theme context provider
✓ 1.2 Create toggle component
✓ 2.1 Add CSS variables
✓ 2.2 Wire up localStorage
All tasks complete!
第三步:归档变更 /opsx:archive
You: /opsx:archive
AI: Archived to openspec/changes/archive/2025-01-23-add-dark-mode/
Specs updated. Ready for the next feature.
核心理念:流动而非僵化
OpenSpec 和传统 SDD 工具最大的区别在于哲学。
| 维度 | 传统 SDD | OpenSpec |
|---|---|---|
| 流程 | 瀑布式,阶段门控 | 流动式,随时可改 |
| 文档 | 大量 Markdown,仪式感强 | 轻量,只写必要的 |
| 适用项目 | 主要是新项目 | 新项目 + 存量项目 |
| 迭代 | 难 | 随时更新任何 artifact |
每个变更都有自己的文件夹,包含 proposal、specs、design、tasks,随时可以更新任何一个 artifact,没有僵化的阶段门控。
vs. 竞品
vs. Spec Kit(GitHub 官方)
| 维度 | Spec Kit | OpenSpec |
|---|---|---|
| 重量 | 重,大量 Markdown | 轻量 |
| 阶段门控 | 有,严格 | 无,流动 |
| 技术栈 | Python setup | Node.js,npm 安装 |
| 适用场景 | 严谨的大项目 | 广泛 |
vs. Kiro(AWS)
| 维度 | Kiro | OpenSpec |
|---|---|---|
| IDE 锁定 | 是,只能用他们的 IDE | 否,用你现有的工具 |
| 模型锁定 | 主要是 Claude | 20+ AI 助手 |
| 开放程度 | 封闭 | 开源,MIT |
vs. 什么都不用
AI 编程没有 spec = 模糊的 prompt + 不可预测的结果。OpenSpec 带来可预测性,而且没有繁文缛节。
支持 20+ AI 助手
OpenSpec 通过 slash commands 集成,支持:
- Claude Code
- Codex
- Cursor
- Windsurf
- GitHub Copilot
- OpenClaw
- 以及更多...
安装方式:
# 全局安装
npm install -g @fission-ai/openspec@latest
# 在项目目录初始化
cd your-project
openspec init
# 告诉你的 AI:/opsx:propose <what-you-want-to-build>
扩展工作流
除了核心三步,OpenSpec 还支持:
| 命令 | 功能 |
|---|---|
/opsx:new | 新建变更 |
/opsx:continue | 继续未完成的变更 |
/opsx:ff | 快进到某一步 |
/opsx:verify | 验证实现是否符合 spec |
/opsx:bulk-archive | 批量归档 |
/opsx:onboard | 新成员上手指南 |
可以通过 openspec config profile 选择不同的工作流组合。
多语言支持
OpenSpec 支持多语言项目——spec 和代码可以跨语言对齐,适合微服务、全栈项目等场景。
社区 schema 包
第三方可以通过独立的仓库分发 schema 包——类似于 GitHub Spec Kit 的社区扩展目录。
这些 schema 包提供有主见的 workflow,将 OpenSpec 与其他工具集成。
遥测与隐私
OpenSpec 收集匿名使用统计:
- 只收集命令名称和版本
- 不收集参数、路径、内容或 PII
- CI 环境中自动禁用
选择退出
export OPENSPEC_TELEMETRY=0
# 或
export DO_NOT_TRACK=1
模型建议
OpenSpec 在高推理能力模型上效果最好。
| 用途 | 推荐模型 |
|---|---|
| 规划 | Codex 5.5 / Claude Opus 4.7 |
| 实现 | Codex 5.5 / Claude Opus 4.7 |
上下文卫生
OpenSpec 受益于干净的上下文窗口。在开始实现之前清除上下文,并在整个会话中保持良好的上下文卫生习惯。
快速开始
# 1. 安装(需要 Node.js 20.19.0+)
npm install -g @fission-ai/openspec@latest
# 2. 初始化项目
cd your-project
openspec init
# 3. 开始使用
# 告诉你的 AI:/opsx:propose <what-you-want-to-build>
升级
npm install -g @fission-ai/openspec@latest
openspec update # 刷新 agent 指令
参与贡献
小修复
Bug 修复、错别字纠正、小改进——可以直接提交 PR。
大改动
新功能、重大重构、架构变更——请先提交 OpenSpec 变更提案,在对齐意图和目标后再开始实现。
写提案时请记住 OpenSpec 的哲学:我们服务于使用不同编码代理、模型和用例的广泛用户。改动应该对所有人都有用。
AI 生成的代码
欢迎 AI 生成的代码——只要经过测试和验证。提交 PR 时应注明使用的编码代理和模型(例如:"Generated with Claude Code using claude-opus-4-5-20251101")。
写在最后
AI 编程助手已经很强大了,但**"需求只在对话里"这个问题不解决,就永远不可预测**。
OpenSpec 的解法很优雅:在对话之前先建 spec,而且建 spec 的过程本身也是流动的、可迭代的。
比 Spec Kit 轻量,比 Kiro 开放,比"什么都不用"可预测——如果你在用 Claude Code 或 Codex,值得试一下。
GitHub: https://github.com/Fission-AI/OpenSpec
NPM: https://www.npmjs.com/package/@fission-ai/openspec
Discord: https://discord.gg/YctCnvvshC
License: MIT