让行为变化可审阅
把一项工作的意图、行为增量、设计和任务保存在独立 change 中,实现前后都能核对。
Tool profile + deep guide · 02 / 05
一个面向 AI coding assistants 的轻量规格框架:用主 specs 表达当前事实,用 changes 表达候选变化,并在归档时把增量规格合入长期事实。
01 · Why included
OpenSpec 明确围绕 specs、change artifacts、delta specs 和 archive 组织开发,是本研究中最直接处理“当前系统事实如何随变更演进”的对象。
02 · Problem
把一项工作的意图、行为增量、设计和任务保存在独立 change 中,实现前后都能核对。
归档不是简单移动文件;它使 delta specs 成为主 specs 的一部分,并保留变更历史。
03 · Core assets
openspec/specs/已经生效的系统行为与当前事实来源。
openspec/changes/<name>/候选变更及 proposal、specs、design、tasks。
archive完成后的 change 历史,以及 delta 与主 specs 的合并结果。
04 · Workflow
05 · Installation
npx openspec@latest init运行 CLI、创建 OpenSpec 项目结构,并为所选 coding agent 生成适配的 skills 或 commands。
npx skills add Fission-AI/OpenSpec安装 skills.sh 兼容的 workflow skills;它不会等价完成 CLI、项目脚手架和完整工具配置。
06 · CLI & host
官方将 CLI 描述为工作流引擎,skills/commands 是驱动入口。只阅读方法或手工维护 Markdown 可以不用 CLI,但这不等于完整运行官方 workflow。
下方已经合并完整概念、调用方式与 13 个 Skill:查看安装与调用细节
07 · Early strengths
08 · Limits
verify 关注 artifacts 与实现一致性,不替代测试、TDD 或代码审查。09 · Scenarios
当团队需要跨多次变更维护可审阅的产品行为规格、保留 change 历史,或在棕地项目中逐步建立规格事实时,OpenSpec 可能更有价值。只需要一次性实现纪律而不维护长期规格时,应比较其额外成本。
10 · Relations
OpenSpec 更靠近“做什么、系统事实如何变化”。Superpowers 更偏可靠执行;Spec Kit 也有结构化规格阶段;Trellis 同样在仓库保存 specs 与任务。它们之间的重叠和权威边界需要同题实验后再判断。
OpenSpec · Deep guide
这一部分面向第一次接触 SDD 的读者,也可作为有经验开发者的工作流速查表。正文离线可读;搜索、筛选、复制与目录定位由本地 JavaScript 渐进增强。
01 · Mental model
OpenSpec 不是代码生成器或测试框架,而是人、团队与 AI 之间的一层轻量协议:先把预期行为和变化边界落盘,再围绕它推进实现。
Specs 记录系统现在如何表现;Changes 记录系统准备如何改变。
按能力域保存已经生效的 requirements 与 scenarios。
集中保存 proposal、delta specs、design 和 tasks。
由 Requirement 与 Scenario 组成,是已经生效的系统事实。
一次功能、修复或调整一个目录,可与其他 change 并行。
proposal 讲原因,specs 讲行为,design 讲方案,tasks 讲步骤。
用 ADDED、MODIFIED、REMOVED 表达增量,不重写全系统。
规定产物及其依赖;默认 spec-driven,也可按团队流程扩展。
将 delta 合入主 specs,并把完整 change 移入历史目录。
02 · Setup & invocation
CLI 是工作流引擎,Skill 是让 coding agent 调用引擎的操作说明;二者角色不同。
完整工作流需要 CLI 可调用,但不强制全局安装。
npm install -g @fission-ai/openspec@latest
cd your-project
openspec init
openspec --versionnpx openspec@latest init 也可以直接运行最新 CLI。
初始化生成或安装 skill 后,在对话中调用工作流入口。
$openspec-propose add-dark-mode
$openspec-apply-change add-dark-mode
$openspec-verify-change add-dark-mode
$openspec-archive-change add-dark-mode$openspec-* 不是 shell 命令,不要粘贴到终端。
npx skills add Fission-AI/OpenSpec 只安装 skills.sh 兼容的操作说明。可以用于阅读或宿主发现,但完整的状态读取、校验、同步和归档仍要求 OpenSpec CLI 可调用。相比之下,Superpowers 的核心能力主要由宿主 skills 提供,没有同等角色的独立工作流 CLI。
03 · Workflow map
Core 适合日常工作,Expanded 适合教学、审计和逐个批准 artifacts;二者最终都落到 apply、verify 和 archive。
propose 是快捷入口;new-change 只建容器,ff-change 再补齐规划。
sync-specs 提前更新主规格但保留 active change;archive 才结束生命周期。
verify-change 核对实现与 artifacts 的映射;它不替代运行测试、TDD 和代码审查。
04 · Complete example
这个例子展示规格如何从候选变化成为长期事实,而不是规定唯一的 UI 实现。
用 $openspec-explore 确认主题范围、系统现状和待决问题,不写生产代码。
用 $openspec-propose add-dark-mode 生成 proposal、delta specs、design 和 tasks;其中新增“用户可切换主题”的 requirement 与 scenarios。
用 $openspec-apply-change add-dark-mode 读取上下文、逐项修改代码和测试,并勾选 tasks。
若实施中确定必须跟随系统主题,用 $openspec-update-change add-dark-mode 同步调整规格、设计和任务。
用 $openspec-verify-change add-dark-mode 检查完整性、正确性和一致性,同时实际运行项目测试。
用 $openspec-archive-change add-dark-mode 将 delta 合入主 specs,并把 change 移到日期化历史目录。
05 · Skill catalog
先按意图直接定位;需要查找时可再用名称、用途或关键词筛选。
没有匹配的 Skill。
进入思考伙伴模式,调查问题、理解代码库、比较方案和澄清需求,不创建正式 change artifacts。
$openspec-explorepropose 或回到正在进行的 change。创建命名 change,并一次生成进入实施前所需的 proposal、delta specs、design 与 tasks。
$openspec-propose add-dark-modeapply-change。读取 change 上下文并按 tasks 实施代码,在工作中持续更新完成状态。
$openspec-apply-change add-dark-modeupdate-change;完成后验证并归档。根据实施中发现的新信息,修正现有 change 的 specs、design 或 tasks,使规划重新与现实一致。
$openspec-update-change add-dark-modeapply-change 继续实施。把 active change 的 delta specs 同步到主 specs,同时保留 change 继续工作。
$openspec-sync-specs add-dark-modearchive-change。在工作完成后核对状态、同步 delta specs,并把 change 移入日期化归档目录。
$openspec-archive-change add-dark-mode创建一个新的 change 容器、选择 schema 并显示 artifact 状态,但不生成规划内容。
$openspec-new-change add-dark-modecontinue-change 逐份推进,或用 ff-change 快进。查看 artifact 依赖和当前状态,只创建下一份已解锁的产物,便于逐份确认。
$openspec-continue-change add-dark-modeapply-change。在已有 change 上沿依赖图快速生成所有进入实施前所需的剩余 planning artifacts。
new 建立 change,但决定不再逐份确认,想直接准备实施。$openspec-ff-change add-dark-modeapply-change。从完整性、正确性与一致性检查实现是否匹配 tasks、requirements、scenarios 与 design。
$openspec-verify-change add-dark-modearchive-change。一次检查并归档多个 changes,识别同一 capability 的冲突,并结合实现证据决定合入顺序。
$openspec-bulk-archive-change在当前真实代码库选择一项小任务,边解释边走完探索、规划、实现与归档的完整周期。
$openspec-onboard驱动 OpenSpec 项目自身的可恢复发布状态机:审计 changeset、版本 PR、beta/正式包和 GitHub Release。
$release-openspec06 · Boundaries
多数误用来自输入位置、流程边界和两套规划同时存在。
把 $openspec-* 输进终端:它是 Codex skill 调用;终端使用 openspec ... CLI。
只装 skill,不准备 CLI:workflow skill 不是独立执行引擎,完整流程需要 OpenSpec CLI 可调用。
以为 propose 会顺手实现:它有明确 planning boundary,完成 artifacts 后必须停止。
把 verify 当成测试套件:它检查规格映射与实现证据,不替代执行测试、TDD 或 code review。
混淆 sync 与 archive:sync 保持 change 活跃;archive 才结束生命周期并保存历史。
两套 design/tasks 都当真:与其他方法组合时应指定唯一权威,否则规划会漂移。
用 release-openspec 发布业务应用:它只服务 OpenSpec 官方仓库自身的包发布。
11 · Next research
12 · Official sources
OpenSpec 仍在迭代,命令、profile 和 Skill 边界应以官方仓库当前版本为准;本页用于建立心智模型和快速查询。