OpenSpec、Superpowers 和 Spec Kit:SDD 实践模式

OpenSpec、Superpowers、Spec Kit 与 Spec Coding 的 SDD 模式对比
Spec Coding Editorial Team · Spec-driven development notes

OpenSpec、Superpowers 和 GitHub Spec Kit 的实现方式不同,但它们指向同一个工程问题:不要让 AI 编码工具直接从一句提示词跳到生产代码。先把意图、边界、任务、测试和评审证据写成可检查的 artifact。

发布于 2026-05-11 · 更新 2026-05-11 · 8 分钟阅读 · 作者:Spec Coding Editorial Team · 审稿说明:Editorial Policy

SDD 有价值的不是名字,而是 artifact 链

现在很多项目都在讲 spec-driven development。有人强调形式化规格,有人强调验收标准,有人强调 AI agent 的工作流。真正有用的问题不是哪个名词更准确,而是:代码开始之前是否有稳定 artifact,谁负责批准它,最后的 diff 如何证明自己遵守了这个 artifact。

OpenSpecSuperpowersGitHub Spec Kit 值得放在一起看。它们不是同一种产品,Spec Coding 也不是它们的包装层。但它们暴露出一组可以复用的工作流模式。

模式 1:实现前先生成稳定文件

OpenSpec 把一次变更组织成 proposal、specs、design 和 tasks。Spec Kit 强调 constitution、specify、plan、tasks、implement 的生命周期。Superpowers 会先从对话里澄清规格,再进入计划和编码。词汇不同,本质相同:不要让 agent 直接从聊天上下文跳到代码修改。

团队可以用很简单的规则落地:生成代码之前,至少要有一个文件写清目标、非目标、验收标准、负责人、依赖和证据要求。聊天记录不够。需求只存在于模型上下文里,就无法被复查、重跑,也无法和最终代码对照。

模式 2:把产品意图和技术计划分开

Spec Kit 明确把“写什么和为什么”放在“怎么实现”之前。OpenSpec 也把 proposal/specs 和 design/tasks 分开。这一点很重要,因为 AI 编码工具很容易把产品模糊性直接压成实现细节。一旦模型在产品问题还没定时就替你决定数据库结构、API 边界和 UI 行为,团队就失去了决策路径。

层级要回答的问题产物
原则哪些规则约束后续决策?constitution.md 或工程原则
意图用户或系统行为要发生什么变化?spec.md
计划如何安全实现?design.md 或实现计划
任务哪些步骤可以被执行和验证?tasks.md
证据评审者如何知道它做对了?evidence.md、测试、日志、截图

模式 3:按风险选择流程重量

OpenSpec 强调流程应该是流动、迭代、适合已有代码库的,而不是僵硬瀑布。这一点值得保留。最差的 SDD 是一堆 Markdown,阻塞工作却不提升评审质量。好的 spec 流程应该跟风险匹配:认证、支付、数据迁移、公开 API、AI 生成代码,需要比文案修正更强的门禁。

最小版本可以只是一页 spec packet。最大版本可以包含 constitution、需求规格、技术设计、任务拆分、迁移计划、风险登记和测试证据。关键是选择最小但足够的 artifact 组合。

模式 4:任务必须能被验证

Superpowers 的强项是让 agent 不能跳过澄清、计划、TDD 和 review。很多 AI 编码流程缺的就是这一步。一个 spec 本身还不够,如果下一步是让模型“把所有东西都做了”,范围仍然会失控。

Task: add timeout retry to refund worker
Write scope:
- src/billing/refund-worker.ts
- src/billing/refund-worker.test.ts

Acceptance:
- timeout once -> retry with same idempotency key
- timeout twice -> keep pending status, no duplicate refund_id

Evidence:
- test: refund_timeout_replay
- log query: duplicate_refund_attempts remains zero

这样的任务给实现留出了空间,但没有把产品策略交给模型决定。

模式 5:评审证据是流程的一部分

三个项目最终都在缩小同一个差距:AI 写出了代码,团队是否能够信任这次变更。这里缺的词是 evidence。规格不应该止步于实现方案,还要写清评审者要看的证据:测试、fixture、日志、截图、契约检查、迁移 dry-run 或灰度指标。

ticket.md
  -> spec.md
  -> design.md
  -> tasks.md
  -> tests + evidence.md
  -> PR review

如果 AI 生成的 PR 不能把每个修改映射回任务和验收标准,这个 PR 就还没准备好。

三个项目各自最值得借鉴的点

项目最值得借鉴需要避免
OpenSpec用 proposal、specs、design、tasks 管理一次变更,同时保持轻量。让 artifact 文件夹变成存档,而不是评审契约。
Superpowers用技能和强制工作流阻止 agent 跳过澄清、计划、TDD 和 review。把自动化误认为批准。范围和风险仍然由人负责。
Spec Kit把 constitution、spec、plan、tasks、implement 拆成可重复生命周期。给很小的工作套上过重流程。
Spec Coding把这些模式转成可复制模板、验收标准、风险登记和证据门禁。只写方法论,却不给读者能直接使用的产物。

不绑定任何工具也能先落地

你不需要先选定框架,才能采用 SDD 的核心。先在仓库里建立一个简单布局:

/specs
  /active
    refund-retry/
      spec.md
      design.md
      tasks.md
      evidence.md
  /archive
/templates
  feature.spec.md
  api-contract.spec.md
  ai-coding-review.md
/docs
  engineering-principles.md

这个布局借鉴了 OpenSpec 的变更文件夹、Spec Kit 的生命周期拆分,以及 Superpowers 的“先计划再执行”。同时它也保持可迁移,后续换工具不会丢掉核心资产。

团队落地时先选一个高频场景

不要一开始就把所有研发流程都改成 SDD。更稳的方式是选一个反复出问题的高频场景,比如 API 字段变更、支付重试、数据迁移、后台批量操作,或者 AI 生成代码进入 PR 前的审查。先把这个场景固定成一套小流程:谁写 spec,谁确认非目标,谁把任务拆成可执行项,谁负责提供测试证据。

第一次试点时,只要求三个文件:spec.mdtasks.mdevidence.md。如果这个组合已经能减少澄清评论和返工,就不要急着加更重的 governance。如果仍然有人在评审时争论产品策略,再补 design.md 或 constitution。流程不是越完整越好,而是要刚好覆盖团队最容易漏掉的决策。

AI 编码场景下的评审门禁

当 SDD 用在 AI coding 上,最重要的不是模型能力,而是评审门禁是否清楚。一个合格的 AI 任务应该写清允许修改的文件、禁止触碰的接口、验收标准、失败路径和必须运行的测试。模型可以提出实现方案,但不能决定是否新增依赖、改变公开 API、扩大范围或跳过回滚说明。

评审者应该先看 artifact 链,再看代码风格。第一步确认 diff 是否只改了允许的文件。第二步确认每条验收标准是否对应测试、日志、截图或人工检查。第三步确认没有“顺手重构”“顺手改字段”“顺手补功能”。如果这些问题没有过关,代码再整洁也不应该合并。

一份可执行的 SDD 检查清单

决策建议

如果变更很窄、风险低、一个 PR 就能评审完,用轻量 spec packet。需要 proposal、design、tasks 和历史归档时,用 OpenSpec 风格的变更文件夹。需要项目原则和重复治理时,参考 Spec Kit 的生命周期。希望 agent 强制执行澄清、TDD 和 review 时,参考 Superpowers 的 skills 工作流。

不要让流程变成表演。好的 SDD 应该减少澄清评论,让测试更早出现,让 PR 评审更客观。如果只是多了文档,就把流程收窄到每个 artifact 都能改变一个决策或证明一个行为为止。

落地产物示例:同一个变更的三种 SDD 写法

下面用一个很小的需求说明 OpenSpec、Superpowers 和 Spec Kit 分别适合什么场景。重点不是照搬某个工具,而是选一个足够保护评审、又不会增加无效流程的产物。

输入产物选择评审证据
“让管理员可以退失败发票。”Spec Coding 规格包:一份 spec.md、任务拆解、验收标准、证据清单。评审人能一次看清策略、幂等、审计日志和回滚。
退款会影响计费 API、客服后台和账务导出。OpenSpec 风格 change folder:proposal、design、tasks、归档决策。每个受影响面都有 owner 和迁移说明。
准备让 AI agent 实现任务。Superpowers 风格 skill workflow:澄清、计划、写测试、实现、复核。agent 不能在测试和 review note 之前宣布完成。
团队需要可重复治理。Spec Kit 风格 constitution、spec、plan、tasks 顺序。每个功能都有同一套关卡,不用每个 sprint 重新发明流程。
关键词:spec-driven development · OpenSpec vs Spec Kit · Superpowers AI agent workflow · SDD artifacts · AI coding review evidence

主题路径

这篇文章属于 Spec-First Development 和 AI Coding Governance 路线。先看 Hub,再选择当前团队需要的 artifact。