一、SDD 诞生的配景:AI 期间软件工程的范式厘革
2.1、传统开发范式的痛点
在 AI 编码助手(如 GitHub Copilot、Claude Code、Cursor)遍及之前,软件开发依照 "代码优先、文档次之" 的模式,面临三大核心痛点:
痛点具体体现影响意图与实现鸿沟需求文档暗昧、变更频仍,代码与文档长期摆脱沟通本钱高,重构风险大,维护困难协作服从低下团队成员对需求明白不划一,缺乏同一 "毕竟泉源"重复工作多,辩论频仍,交付周期长质量保障滞后测试在编码后举行,缺陷发现晚,修复本钱高产物稳固性差,用户体验受损随着 AI 编码工具的遍及,这些标题被进一步放大:AI 能快速天生代码,但缺乏对团体体系架构和业务逻辑的明白,轻易产生 "局部精确但全局错误" 的代码;同时,开发者过分依靠 AI 提示词,导致代码质量七零八落,可维护性急剧降落。
2.2、SDD 的核心界说与代价
规范驱动开发 (Spec-Driven Development, SDD) 是天生式 AI 期间下适配工程化开发的新型软件开发方法论,核心是先由技能职员界说简便、可测试、情势化的体系规格分析 (Spec),将其作为人、团队与 AI 之间的 "动态左券" 和开发过程的唯一毕竟泉源。
SDD 带来三大革命性变化:
- 权利反转:将软件开发的 "单一毕竟泉源" 从易变的代码转移到人类意图的直接表达 —— 规范自己
- 流程重构:从 "编码→测试→修复→文档" 变化为 "规范→计划→实现→验证" 的线性流程
- 人机协同:规范成为 AI 的 "使用手册",消除 AI 推测意图的本钱,提拔代码天生质量
2.3、SDD 的发展进程
SDD 并非全新概念,而是在传统软件工程理论底子上的进化:
- 早期开端:可追溯至 20 世纪 80 年代的 "左券式计划"(Design by Contract) 和 "测试驱动开发"(TDD) 理念
- 当代演进:2025 年,GitHub 发布 Spec-Kit 工具,正式将 SDD 从理论推向实践
- 生态成熟:2026 年,OpenSpec、Superpowers 等工具相继出现,形成完备的 SDD 工具生态
- 行业承认:微软、亚马逊等科技巨头开始在内部推广 SDD 方法论,将其纳入官方培训课程
二、SDD 工具对比分析:Spec-Kit、OpenSpec 与 Superpowers
2.1 核心定位与计划理念对比
对比维度Spec-Kit (GitHub)OpenSpecSuperpowers核心定位"蓝图派":从零开始的完备规划,得当 0-1 项目"园丁派":现有体系的增量改造,得当 1-n 项目"全流程管家":从需求到交付的完备开发流程管理计划理念"规格即法律"(固定规则体系),夸大门控流程和细致文档"OPSX 机动工作流"(动作而非阶段),围绕变更提案,流程简便"测试优先,证据驱动",体系化低落复杂度哲学底子深度规范驱动,寻求流程完备性和可控性轻量级规范驱动,寻求快速迭代和极简主义方法论驱动 (技能体系),夸大生理学引导 AI 举动实用团队构造美满、有严酷流程合规的大型团队灵敏团队、初创企业、须要快速迭代的项目独立开发者、质量导向团队、AI 署理麋集型项目2.2 技能架构与功能特性对比
对比维度Spec-Kit (GitHub)OpenSpecSuperpowers技能栈Python (uv 包管理器),CLI 驱动,支持多平台TypeScript (npm),Web UI+CLI 双模式,轻量级Markdown+JavaScript 插件,编辑器集成,跨平台核心流程7 步线性流程:spec→plan→tasks→implement→verify→document→evolve3 步增量流程:propose→apply→archive,管理规范增量5 步闭环流程:brainstorm→isolate→plan→TDD→review规范情势结构化 Markdown,支持复杂场景和束缚条件极简 YAML,聚焦变更点,最小化文档量天然语言 + 测试用例,夸大可实验性和证据验证AI 集成内置支持 15+AI 编码助手,同一接口管理专注 Claude 和 Copilot,夸大轻量级集成深度集成 GitHub Copilot,支持苏格拉底式对话变更管理动态宪法机制,规范版本化,完备审计追踪变更隔离,共识驱动,风险控制优先微使命隔离,自动辩论办理,快速回滚机制学习曲线陡峭,得当有流程意识的团队平缓,得当快速上手的场景中等,须要明白测试驱动理念2.3 选型发起:根据场景选择符合的 SDD 工具
针对差异场景,发起联合项目范例、团队规模、规范复杂度等多维度因素,综合评估选择最得当的 SDD 工具:
- 选择Spec-Kit:得当新项目、企业级项目,夸大流程规范和架构控制的团队,尤其是企业级项目和跨团队协作场景。
- 选择OpenSpec:得当遗留体系改造、兼容性要求高的项目,夸大快速迭代和风险控制的灵敏团队。
- 选择Superpowers:得当质量优先的团队,夸大自动化和测试驱动开发的项目,尤其得当原型开发和AI麋集型项目。
决定因素选择 Spec-Kit选择 OpenSpec选择 Superpowers项目范例全新项目、企业级项目增量变更、遗留体系原型开发、AI 麋集型团队规模10 人以上、跨团队3-10 人、灵敏团队1-3 人、独立开发者规范复杂度高 (须要具体束缚)低 (聚焦变更点)中 (夸大测试用例)流程要求严酷 (门控机制)机动 (增量流程)自动化 (全流程)学习本钱高 (须要培训)低 (快速上手)中 (明白测试驱动)三、Spec-Kit 架构深度解读:规范驱动的工程化基石
3.1 核心特性:规范驱动的全流程管控
3.1.1 可实验规范 (Executable Specifications)
Spec-Kit 的核心创新在于将规范从静态文档变化为可实验的开发指令:
- 规范接纳结构化 Markdown 格式,包罗需求、场景、束缚、验收尺度等要素
- 规范可直接驱动 AI 天生代码、测试用例和文档,无需人工翻译
- 规范变更自动触发代码和测试的更新,确保划一性
3.1.2 门控流程 (Gated Workflow)
Spec-Kit 的核心是七阶段门控开发流程,每一阶段均对应可验证的工程产出,形成从需求到实现的强束缚链。各环节严酷序次实验,未经前一阶段验收,不得进入下一阶段。
阶段编号阶段名称核心目的产出文件关键束缚1Constitution创建项目宪法与技能红线constitution.md界说克制项、审批项、允许范围;需团队共识签订2Specify将天然语言需求转化为情势化规范spec.md必须使用结构化语义模板,克制暗昧表述3Clarify消除歧义,确认界限与破例clarification.md全部暗昧点必须由产物/架构师具名确认4Plan计划技能实现路径与架构选型plan.md必须包罗技能栈、数据流、依靠图、风险评估5Tasks拆解为可实验、可追踪的开发使命tasks.md每项使命需绑定负责人、预估工时、验收尺度6Analyze验证规范划一性与变更影响自动化分析陈诉情势化验证通过率 ≥95%,影响范围必须可视化7Implement由AI天生代码并提交查察天生代码 + 测试用例代码必须与 spec.md 保持双向追溯,克制手动覆盖全部阶段均通过 specify CLI 工具驱动,每个环节的交付物自动纳入版本控制,形成可审计、可回溯、可验证的工程左券链。
恣意环节未通过门控查抄,体系将阻断后续流程,确保“规范即权势巨子”。
3.1.3 动态宪法机制 (Dynamic Constitution)
Spec-Kit 引入项目宪法 (Project Constitution) 概念,作为项目的 "最高法律":
- 宪法界说项目的架构原则、编码尺度、安全规范、测试计谋等核心规则
- 全部规范和代码必须符合宪法要求,宪法合规查抄器自动验证
- 宪法支持版本化管理,变更须要团队共识,确保项目方向的划一性
3.2 核心概念:构建规范驱动的头脑模子
3.2.1 单一毕竟泉源 (Single Source of Truth)
Spec-Kit 的核心哲学是规范即唯一毕竟泉源,全部开发运动都围绕规范睁开:
- 规范是需求、计划、实现、测试、文档的唯一依据
- 消除代码与文档、计划与实现之间的不划一性
- 团队成员通过规范告竣共识,淘汰沟通本钱
3.2.2 意图优先 (Intent-First)
Spec-Kit 夸大先明白意图,再思量实现,与传统 "实现优先" 模式形成光显对比:
- 规范阶段专注于业务需求和用户代价,不涉及技能细节
- 筹划阶段才将业务意图转换为技能实现方案
- 制止过早陷入技能选型,确保办理方案符合业务目的
3.2.3 人机协同 (Human-AI Collaboration)
Spec-Kit 重新界说了开发者与 AI 的协作模式,从 "AI 辅助编码" 升级为 "规范驱动 AI 开发":
- 开发者负责界说清楚、正确的规范,AI 负责实验实现细节
- 规范成为开发者控制 AI 举动的 "护栏",确保代码质量和划一性
- 开发者从繁琐的编码工作中解放出来,专注于架构计划和业务逻辑
3.3 技能架构:分层计划与组件化实现
Spec-Kit 接纳模块化、可扩展的架构计划,核心分为四层,从底层到上层依次为:
3.3.1 核心引擎层 (Core Engine)
- 规范剖析器 (Spec Parser):剖析结构化 Markdown 规范,提取需求、束缚、场景等关键信息
- 宪法合规查抄器 (Constitutional Compliance Checker):确保全部规范符合项目宪法 (Constitution) 界说的架构原则和编码尺度
- 使命天生器 (Task Generator):将规范和筹划转换为 AI 可实验的原子使命,支持使命依靠和优先级管理
- 验证引擎 (Validation Engine):实验自动化测试,验证代码实现是否符合规范要求
3.3.2 工具集成层 (Tool Integration Layer)
- AI 署理适配器 (AI Agent Adapter):提供同一接口,支持 15 + 主流 AI 编码助手,如 Claude Code、GitHub Copilot、Amazon Q 等
- 版本控制集成器 (VCS Integrator):与 Git 无缝集成,自动管理规范和代码的版本汗青,支持分支计谋和归并辩论办理
- IDE 插件 (IDE Plugins):提供 VS Code、IntelliJ 等主流编辑器的集成支持,及时规范查抄和提示
3.3.3 下令行界面层 (CLI Layer)
- specify CLI:核心下令行工具,提供 init、spec、plan、tasks、implement 等 7 个核心下令,引导开发流程
- 交互式终端 (Interactive Terminal):支持天然语言交互,简化规范编写和使命实验流程
- 陈诉天生器 (Report Generator):天生规范合规陈诉、测试覆盖率陈诉、代码质量陈诉等
3.3.4 扩展层 (Extension Layer)
- 模板体系 (Template System):提供规范模板、筹划模板、使命模板,支持自界说扩展
- 插件框架 (Plugin Framework):允许开发者编写自界说插件,扩展 Spec-Kit 功能,如集成特定测试工具、摆设流程等
- 自界说规则引擎 (Custom Rule Engine):支持添加项目特定的合规规则,如安全尺度、性能指标等
四、Spec-Kit安装
Spec-Kit 是 GitHub 官方开源的规格驱动开发(Spec-Driven Development, SDD)工具包。 它通过尺度化的工作流(Specify → Plan → Tasks → Implement),资助开发者使用 AI 编码助手(如 claude、opencode 等)构建高质量软件,办理“氛围编码”(Vibe Coding)导致的代码质量不一和流程缺失标题。
- 官网:https://github.github.com/spec-kit/
- Github:https://github.com/github/spec-kit
Step1:安装核心依靠 uv
Spec-Kit 基于Python 开发,依靠 uv 作为包管理器和工具运行器,由于它比传统的 pip/venv 更快且更易于管理。- # 安装 uv
- curl -LsSf https://astral.sh/uv/install.sh | sh
- # 验证安装
- uv --version
复制代码 Step2:安装 Spec-Kit (Specify CLI)
- # 使用 uv 安装 Spec-Kit
- uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
- # 验证安装
- specify --version
复制代码 Step3:初始化项目
初始化现有项目:- # 在当前目录初始化
- specify init .
- # 指定特定的 AI 助手
- specify init . --ai opencode
复制代码 创建并初始化新项目:- # 基本初始化
- specify init project01
- # 指定特定的 AI 助手
- specify init project01 --ai claude
- # 指定脚本类型 (Mac/Linux默认sh,Windows默认ps,也可强制指定)
- specify init project01 --script sh
复制代码 初始化过程中的交互提示:
- 选择 AI Agent:假如你未在下令行指定 --ai,它会提示你选择已检测到的 AI 工具。
- 选择脚本范例:Mac/Linux 用户通常选择 sh (Bash);Windows 用户通常选择 ps (PowerShell)。
- 文件归并:假如目次下已有文件,Spec-Kit 会实验归并或提示覆盖,请根据提示使用。
- 安全设置(告急):初始化后,AI 助手大概会在项目根目次天生包罗 API Key 或敏感信息的文件夹(比方 .opencode/, .claude/ 等)。务必将这些文件夹参加 .gitignore 防止敏感信息泄漏:
- # 编辑 .gitignore 文件,添加以下内容(根据你使用的 AI 工具调整)
- .opencode
- .omo
- .claude
- .specify
- specs
复制代码 Step4:验证与开始使用
初始化完成后,打开你的 AI 编码助手(如在终端输入 opencode、claude 启动对应编程工具,或在 VS Code/Cursor 中打开项目)。
查抄是否可用以下 Slash Commands(斜杠下令):
下令功能形貌阶段/speckit.constitution [必须]创建项目原则和非会商性准则0. 预备/speckit.specify [必须]界说“做什么”和“为什么”,天生规格文档1. 规格化/speckit.clarify在规划前通过提问澄清暗昧需求1.5 澄清/speckit.plan [必须]基于规格和技能栈天生技能实行筹划2. 规划/speckit.tasks [必须]将筹分别解为可实验的、有序的使命列表3. 使命分解/speckit.analyze分析使命划一性和覆盖率3.5 分析/speckit.implement [必须]实验使命,天生代码和测试4. 实现典范工作流示例:
- /speckit.constitution - 设定项目原则(比方:代码质量、测试尺度)
- /speckit.specify - 形貌你的需求(比方:“创建一个用户注册体系...”)
- /speckit.plan - 订定实行筹划
- /speckit.tasks - 天生待办使命
- /speckit.implement - AI编写代码
标题:怎样指定Spec文档的语言和风格 ?
- 打开 .specify/memory/constitution.md。在文件中添加或修改以下规则(发起放在文件顶部或 "Communication" 部门)
- ## Communication Guidelines
- - **Language**: All specifications, plans, tasks, code comments, and commit messages MUST be written in **Simplified Chinese (zh-CN); unless explicitly requested otherwise.
- - **Tone**: Professional, concise, and direct.
复制代码 五、Spec-Kit案例实践
我们以 "XXL-API 项目代码重构" 为例,展示 Spec-Kit 的完备实践流程。
本次改造项目为正式开源项目,对代码规范性与质量存在要求;别的,该重构需求涉及 “9个功能模块”、“前后端代码逻辑修改”,累计须要修改 130+ 项目文件,为中型颗粒度需求。本次改造需求存在肯定复杂度。
Step1:Spec-Kit 初始化
进入项目根目次,实验如下下令天生 Spec-Kit 工程左券链:实验后,会天生 .specify 左券链文件目次:
Step2:Constitution - 天生项目宪法
实验如下下令天生 “项目宪法”(比方:项目约定、技能栈与束缚、开发工作流等),确保后续规范和代码实现的划一性和可控性。- # 创建项目宪法
- /speckit.constitution
-
- # 创建项目宪法,补充指定中文约束(否则默认生成 英文 内容)
- /speckit.constitution 补充1条规则:所有规范文档使用中文描述
复制代码 实验后将会天生 .specify/memory/constitution.md 文件,内容如下:
Step3:Specify - 天生功能规格
实验如下下令 + 填写功能需求形貌,天生 “功能规格(Spec)”:- /speckit.specify 针对XXL-API项目按照如下要求重构:
- 1、按照下面项目规范结构,重构重构项目目录结构:
- xxl-api-admin/src/main/java/com/xxl/api/admin
- - /framework: 基础框架代码,包含公共的 登录、util、过滤器等组件。
- - /business:业务代码,包含具体业务模块的 controller、service、model、mapper 子分层代码。
- xxl-api-admin/src/main/resources/templates
- - /framework:基础模板,基础框架实体 对应的。
- - /business:业务模板,业务领域实体对应的。
- xxl-api-admin/src/main/resources/mapper
- - /framework:基础Mapper文件,基础框架实体 对应的。
- - /business:业务Mapper文件,业务领域实体对应的。
- 2、业务代码分类判断逻辑:Java代码部分,当前 com/xxl/api/admin/controller/biz 下除了 UserController 都是 业务领域,保留User相关Java代码不变,其他按照规范调整。模板部分,当前 help.ftl、index.ftl、login.ftl 属于基础框架,其他属于业务领域;Mapper部分,当前 XxlApiUserMapper.xml 属于基础框架,其他属于业务部分。
复制代码 实验后将会天生 .specify/specs/001-project-structure-refactor/spec.md 文件,内容如下:
Step4:Plan - 天生技能规划
实验如下下令,天生 “技能规划”:实验后将会天生 .specify/plans/001-project-structure-refactor/plan.md 文件,内容如下:
Step4:Tasks - 拆解使命
实验如下下令,天生 “使命清单”:实验后将会天生 .specify/tasks/001-project-structure-refactor/tasks.md 文件,内容如下:
Step5:Implement - 天生代码实现
实验如下下令,将会按照拆解使命(tasks.md)举行 “代码天生”:Agent会按照使命清单(tasks.md)逐个实现,每个使命完成后自动对照requirements.md查抄。
全部使命完成后,人工举行Review验收,确认符合要求后归并代码(当前该PR已合入 XXL-API master分支,交付符合预期)。
Spec-Kit履历总结
- 项目宪法要保持稳固:constitution.md一旦确定不要频仍修改,确保全部参加者都依照同一规则
- 规格只写做什么不写怎么做:SPEC.md制止过分束缚实现细节,给AI留出技能优化空间
- 不要跳过澄清和查抄阶段:这两个阶段是淘汰返工的关键,提前发现暗昧点和弊端比后期修改本钱低很多
原文地点:https://www.xuxueli.com/blog/?blog=ai/speckit
免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金. |