Fission-AI/OpenSpec

发布时间 2026-09-20 11 天前
来源 GitHub TypeScript
字数 3,066 字
查看原文

AI智能总结

Fission-AI 开源的 OpenSpec 是一个面向 AI 编程场景的规格说明框架,强调流畅与迭代,可同时用于遗留项目和全新项目,并支持从个人项目到企业级的扩展。

最受喜爱的规格说明(spec)框架。

我们的理念:

→ 注重流畅,而非僵硬
→ 强调迭代,而非瀑布
→ 追求易用,而非复杂
→ 既支持遗留项目,也支持全新项目
→ 从个人项目到企业级,皆可扩展

[!TIP]
全新工作流已上线! 我们以新的「制品(artifact)驱动工作流」重构了 OpenSpec。

运行 /opsx:propose "你的想法" 即可开始。 → 了解更多

在 X 上关注 @0xTab 获取最新动态 · 加入 OpenSpec Discord 获取帮助与答疑。

实际效果演示

你:/opsx:explore
AI: 你想探索什么?
你: 我想加一个暗色模式,但还不确定怎么实现才最干净。
AI: 让我看一下你的样式设置……
     这里最干净的做法是:CSS 变量 + 一个轻量的主题上下文,
     加上系统偏好检测。无需新增依赖。先定个范围吗?
你: 好的,就这么干。

你:/opsx:propose add-dark-mode
AI: 已创建 openspec/changes/add-dark-mode/
     ✓ proposal.md —— 为什么做、做什么改动
     ✓ specs/       —— 需求与场景
     ✓ design.md    —— 技术方案
     ✓ tasks.md     —— 实施清单
     可以开始实现了!

你:/opsx:apply
AI: 正在执行任务……
     ✓ 1.1 添加主题上下文 Provider
     ✓ 1.2 创建切换组件
     ✓ 2.1 添加 CSS 变量
     ✓ 2.2 接入 localStorage
     所有任务已完成!

你:/opsx:archive
AI: 已归档到 openspec/changes/archive/2025-01-23-add-dark-mode/
     规格已更新,可以开始下一个功能了。

规格文件实际长什么样?

就是朴素的 Markdown——包含具体场景的需求,无需学习任何特殊语法。以下是上面创建的 specs/ 文件夹中的内容示例:

## ADDED Requirements

### Requirement: Theme selection
The app SHALL let users switch between light and dark themes,
defaulting to the system preference.

#### Scenario: User toggles dark mode
- **WHEN** the user clicks the theme toggle
- **THEN** the app switches to dark mode and persists the choice

由你的 AI 撰写这些内容;而你在任何代码被写出之前审阅这份方案。

OpenSpec 本身就是用 OpenSpec 构建的——可浏览本仓库的实时 规格 与进行中的 变更,查看大规模场景下的真实示例。

OpenSpec 仪表盘

OpenSpec 仪表盘预览

为什么团队选择 OpenSpec

对于个人开发者,OpenSpec 让你和你的 AI 在同一个仓库里保持诚实;而在团队中,难题变成了另一个:一个特性横跨 API 服务、Web 应用和共享库;需求由一个团队所有、被其他团队消费;规划在任何代码诞生之前就已经开始。

Stores(仓库) 就是答案——规划放在一个独立的仓库里。你已经熟悉的 openspec/ 结构(规格与变更),通过 git push 就能共享,就像任何普通仓库一样。单一事实来源,团队里的每一个人和每一个编程智能体(coding agent)都能读取,跨所有仓库皆可访问。

  • 跨仓库的特性 —— 一份变更、一份方案,即便代码落在三个仓库里也保持一致。
  • 共享的需求 —— 平台团队拥有规格的所有权;产品团队在其编程智能体可以读取的位置以只读方式引用它们。彻底告别漂移的 Wiki。
  • 先规划,再写代码 —— 现在就把方案存入 Store;代码仓库之后再跟上。

Store 当前处于 beta 阶段。请从 Stores 用户指南 起步。

快速开始

需要 Node.js 20.19.0 或更高版本。

全局安装 OpenSpec:

npm install -g @fission-ai/openspec@latest

然后进入你的项目目录并初始化:

cd your-project
openspec init

想让你的 AI 来完成? 把 安装提示词 粘贴到你的编程助手中——它会自动安装 CLI、运行 openspec init,并校验结果。

接下来与你的 AI 对话:

  • 还不确定要做什么? 从 /opsx:explore 开始,它是一个零风险的思考伙伴,会阅读你的代码、权衡方案,并在写代码之前勾勒出计划。(Explore 指南)
  • 已经清楚想要什么? 直接使用 /opsx:propose。

这两条命令都在默认 profile 中。如果你想要扩展工作流(/opsx:new、/opsx:continue、/opsx:ff、/opsx:verify、/opsx:bulk-archive、/opsx:onboard),可以通过 openspec config profile 选中,再用 openspec update 应用。

/opsx:propose 是规范名称;你的工具可能写成 /opsx-propose(Cursor、GitHub Copilot)、@opsx-propose(Amazon Q)或 $openspec-propose(Codex)。openspec init 会为你选定的工具打印出正确的形式——详见 如何调用。

[!NOTE]
不确定你的工具是否被支持?查看完整列表——我们已经支持 30+ 种工具,并且还在增加。

同时兼容 pnpm、yarn、bun 与 nix。查看安装选项。

文档

从这里起步: 文档首页 映射了所有内容。初识 OpenSpec?请先阅读 入门指南,再看 命令是如何工作的(你真正输入 /opsx:propose 的地方)。

→ 入门指南:第一步

→ 先探索:在动手前用 /opsx:explore 想清楚

→ 命令是如何工作的:斜杠命令与 CLI 的分工

→ 核心概念速览:一站式完整心智模型

→ 示例与实践:真实的变更,端到端

→ 工作流:组合与模式

→ 既有项目:在遗留代码库中采用 OpenSpec

→ 编辑一个变更:更新制品、回退、调和手动修改

→ 命令:斜杠命令与技能

→ CLI:终端参考

→ Stores:在独立仓库中规划,跨团队共享(beta)

→ 支持的工具:工具集成与安装路径

→ 概念:一切是如何契合的

→ 多语言:多语言支持

→ 自定义:把它变成你自己的

→ 社区展示:用 OpenSpec 构建的项目与资源

→ 常见问题(FAQ) · 故障排查 · 术语表:速查

社区 schema

通过独立仓库分发的第三方 schema 包——它们提供与 OpenSpec 集成的、带有鲜明主张的工作流,类似于 github/spec-kit 的社区扩展目录 处理工具集成的方式。

→ 在自定义文档中 浏览目录。

为什么选择 OpenSpec?

AI 编程助手功能强大,但当需求仅存在于聊天记录中时,结果难以预测。OpenSpec 增加了一层轻量的规格说明,让你在任何代码被写出之前就「要做什么」达成一致。

  • 构建之前先达成一致 —— 在写代码之前,人与 AI 就规格对齐
  • 井井有条 —— 每个变更都有独立的文件夹,包含 proposal、specs、design 与 tasks
  • 流畅协作 —— 任何时候都可以更新任何制品,没有僵硬的阶段门
  • 用你现有的工具 —— 通过斜杠命令兼容 30+ 种 AI 助手

我们如何对比

对比 Spec Kit(GitHub) —— 完善但偏重。僵硬的阶段门、繁多的 Markdown、Python 环境配置。OpenSpec 更轻量,并允许你自由迭代。

对比 Kiro(AWS) —— 强大,但你会被锁定在他们的 IDE 中,且只能使用 Claude 模型。OpenSpec 可以与你已经在用的工具协同工作。

对比「什么都不用」 —— 没有规格的 AI 编程意味着含糊的提示与不可预测的结果。OpenSpec 在不增加繁文缛节的前提下带来了可预测性。