Skip to content

OpenSpec 与 Spec Kit (Specify CLI) 的 SDD 模式深度对比

归类:Tools / AI 工程化 / SDD 发生时间:2026-05-18 状态:✅ 已沉淀


一、 核心结论:它们都属于 SDD 模式吗?

是的,它们都属于 SDD (Spec-Driven Development,规范驱动开发) 模式。

什么是 SDD 模式?

在传统的 AI 辅助编程中,开发者往往采用“提示词驱动开发”(又称 Vibe Coding,氛围感编程),即通过零散的自然语言 Prompt 直接命令 AI 生成代码。这种模式在复杂场景下极易导致 AI 产生幻觉、上下文丢失以及架构混乱。

SDD (Spec-Driven Development) 是一种应对此痛点的全新研发范式:

  • 规范即契约:将结构化、版本控制的规范 (Spec)(而非代码本身)作为项目的唯一事实来源 (Single Source of Truth)
  • 确定性链路:遵循 Spec (规格) -> Plan (计划) -> Tasks (任务) -> Implement (执行) 的确定性链路,让 AI Agent 严格按照既定蓝图进行编码,确保输出精准对齐业务设计。

二、 什么是 Spec Kit (Specify CLI)?

Spec Kit 是由 GitHub 官方 开源的 SDD 配套工具套件,其唯一的命令行工具为 Specify CLI(执行命令为 specify)。

  • 核心定位:全生命周期的规范治理与重度 SDD 全能套件。
  • 适用场景“新项目 / 绿地项目 (Greenfield)” 的初始化与全局规范管控。
  • 核心工作流
    1. Constitution (宪法):定义全局技术选型、目录规范和不可逾越的红线。
    2. Specify (规格):编写标准化的功能 Spec 文件(如 spec.md)。
    3. Clarify (澄清):让 AI 扫描 Spec 中的模糊需求或边界条件,并通过多轮问答进行澄清补全。
    4. Plan (计划):基于 Spec 生成技术实现方案(如数据模型、接口契约)。
    5. Tasks (拆解):将 Plan 拆解为具有依赖顺序的可执行任务列表。
    6. Implement (实施):启动 AI 自动编码,线性执行任务。

三、 什么是 OpenSpec?

OpenSpec(源自 intent-driven.dev 社区发起的开源项目)是一个轻量级的 SDD 规范变更工作流工具。

  • 核心定位:轻量级增量变更管理工具。
  • 适用场景“老项目 / 棕地项目 (Brownfield)” 的日常迭代、Bug 修复和功能渐进式扩展。
  • 核心机制(Delta Specs): 在成熟的现有项目中,我们不可能每次修改都去重写或阅读完整的全局规范。OpenSpec 引入了 Delta Specs(增量规格) 机制,要求通过 ADDEDMODIFIEDREMOVED 三种精确的状态定义变更点。
  • 核心工作流
    1. Proposal (提议):创建一个轻量级 Markdown 说明,定义此次修改的意图和设计。
    2. Definition (增量定义):明确指出哪些规格需要新增、修改或移除。
    3. Apply (应用):把这些增量规格投喂给 AI 助手(如 Claude Code, Cursor),AI 仅根据增量执行精准修改。
    4. Archive (归档):修改完成后,将变更自动合并归档至主规格库中,保持文档与代码同步更新。

四、 核心多维度对比

对比维度Spec Kit (Specify CLI)OpenSpec
发起/出品方GitHub 官方开源intent-driven.dev 开源社区
运行环境Python 3.11+ (基于 specify 命令)轻量级二进制 / CLI 工具
设计理念全局性、系统性。重度工程治理,强调全局一致性契约。渐进性、轻量级。即插即用,通过差分降低 AI 阅读上下文成本。
首选场景新项目启动、大版本重构、企业规范落地(Greenfield现有成熟系统功能迭代、Bug 修复(Brownfield
最小变更单位整个模块或特性规格 (Features / Components)增量变更包 (ADDED / MODIFIED / REMOVED Deltas)
IDE 协同深度集成特定编辑器(如 Claude Code、Cursor),提供内置 /speckit.* 斜杠指令工具无关(Tool-Agnostic),无缝兼容 20+ 以上的 AI 助手与 CLI
授权许可MIT 开源协议MIT 开源协议

五、 团队落地建议:如何选择?

在实际的企业研发生态中,这两个工具并不是非此即彼的对立关系,而是互补的:

mermaid
graph TD
    A[项目生命周期] --> B{项目属性?}
    B -- 新项目 / 重大重构 --> C[优先使用 Spec Kit]
    B -- 成熟老项目迭代 --> D[优先使用 OpenSpec]
    C --> E[用 specify init 全局建档,制定项目 Constitution]
    D --> F[用 Delta Specs 机制拆解任务,避免 AI 全局扫描产生幻觉]
  1. 新项目冷启动:使用 Spec Kit 搭建底层骨架,通过 specify init 初始化标准的 SDD 目录,并用 /speckit.constitution 约束项目的代码风格和接口风格。
  2. 日常业务敏捷迭代:在后续的功能新增和 Bug 修复中,采用 OpenSpec 的增量变更理念。只提供本次改动的 Delta Specs,防止因投喂过大的全局文档导致 AI 迷失在冗余的上下文中,从而大幅提升编码准确率和响应速度。