用 Claude Code、Cursor 等 AI 编程工具时,一个常见问题是:需求只存在于聊天记录里,Agent 根据模糊的 prompt 直接开始写代码,结果方向偏离、反复重写、上下文窗口被无效迭代耗尽。
OpenSpec(github.com/Fission-AI/OpenSpec)解决的就是这个痛点——它给 AI 编码引入了一层轻量级规范(spec)机制,让人和 AI 在动手之前先对齐”要做什么”,然后再进入实现阶段。该项目已获得 43,956 星标,npm 月下载量持续增长,是目前 GitHub 上最受欢迎的 spec-driven 开发框架。
它怎么工作
OpenSpec 的核心理念是 “fluid not rigid, iterative not waterfall”——不追求传统软件工程中繁琐的阶段门控,而是用一套灵活的工件系统让规范随项目演进而迭代。
每个功能变更对应 openspec/changes/ 下的一个文件夹,包含四个工件:
- proposal.md — 为什么做、什么在变
- specs/ — 需求和验收场景
- design.md — 技术实现方案
- tasks.md — 实现清单
工作流程直观:
你: /opsx:propose add-dark-mode
AI: Created openspec/changes/add-dark-mode/
✓ proposal.md — 为什么做、什么在变
✓ specs/ — 需求和场景
✓ design.md — 技术方案
✓ tasks.md — 实现清单
Ready for implementation!
你: /opsx:apply
AI: Implementing tasks...
✓ 1.1 Add theme context provider
✓ 1.2 Create toggle component
All tasks complete!
你: /opsx:archive
AI: Archived to openspec/changes/archive/2025-01-23-add-dark-mode/
Specs updated. Ready for the next feature.
完成实现后,/opsx:archive 将变更归档,同时自动更新项目规范。整个流程不需要离开你的编码工具。
与替代方案对比
vs. GitHub Spec Kit — Spec Kit 功能全面但偏重,要求严格的阶段门控和 Python 环境。OpenSpec 更轻量,Node.js 即可运行,且允许在任何阶段迭代任何工件。
vs. AWS Kiro — Kiro 功能强大但锁定在自家 IDE 和 Claude 模型。OpenSpec 兼容 25+ AI 编码工具,包括 Claude Code、Codex、Cursor、Windsurf 等。
vs. 不用规范 — 没有规范的 AI 编码意味着模糊的 prompt 和不可预测的结果。OpenSpec 在不增加仪式感的代价下,提供了可复现的开发节奏。
适用场景
- 多人协作项目:spec 文件本身就是文档,新成员可以通过阅读
openspec/changes/了解项目演进 - 复杂功能开发:涉及多个模块的变更,先用 spec 理清依赖和边界
- Agent 驱动的 brownfield 项目:在已有代码库中做增量改动,spec 能防止 Agent 破坏既有约定
- 个人项目:轻量到不增加负担,但能提供结构化思考
快速上手
# 安装(需要 Node.js 20.19.0+)
npm install -g @fission-ai/openspec@latest
# 进入项目目录并初始化
cd your-project
openspec init
# 用 slash command 开始
# 在 Claude Code / Codex / Cursor 中:
/opsx:propose <你想构建的功能>
也支持 pnpm、yarn、bun 和 nix 安装。关闭遥测:export OPENSPEC_TELEMETRY=0。
值得观察
OpenSpec 最近推出了新的 artifact-guided 工作流(/opsx:propose → /opsx:apply → /opsx:archive),比初版的 slash command 更结构化。项目维护活跃,最近一周有多个版本发布。社区推荐搭配高推理能力的模型(Opus 4.5、GPT 5.2)使用效果最佳。