name: spec-driven-development description: 基于GitHub SpecKit的规范驱动开发(SDD)方法论。用于结构化AI辅助开发,包含宪法治理、分阶段工作流和多智能体协调。实现从宪法到实施的7阶段流程。 author: Joseph OBrien status: unpublished updated: ‘2025-12-23’ version: 1.0.1 tag: skill type: skill
规范驱动开发(SDD)
本技能实现了GitHub的SpecKit方法论,用于结构化、AI辅助的软件开发。SpecKit通过系统化的、基于阶段的方法,将规范转化为可执行工件,内置质量门和多智能体协调。
核心理念
“规范变为可执行,直接生成工作实现,而不仅仅是指导它们。”
何时使用此技能
- 启动需要结构化开发的新项目
- 在复杂功能上协调多个AI智能体或开发者
- 通过宪法治理确保一致的质量
- 将复杂功能分解为可管理的、并行的工作
- 在明确规范之前防止过早实施
- 具有严格治理要求的企业项目
- 需要跨多个功能实时可见性的团队
7阶段工作流
阶段0:项目初始化
目的: 创建项目结构并配置开发环境
工件:
.specify/目录结构- Git仓库
- 自动化脚本
- 模板
关键操作:
- 设置目录结构
- 初始化版本控制
- 配置AI智能体偏好
- 生成脚本变体(bash/powershell)
阶段1:宪法
目的: 建立项目治理和开发原则
工件: memory/constitution.md
核心原则:
- 库优先原则: 每个功能都作为独立的库开始
- CLI接口强制要求: 所有库必须具有基于文本的接口
- 测试优先要求: 测试必须先于实现
- 简单性和反抽象: 最小化复杂性
- 集成优先测试: 优先考虑真实的测试环境
版本控制: 语义化版本控制(主版本.次版本.修订号)
- 主版本:向后不兼容的治理变更
- 次版本:新原则或实质性扩展
- 修订号:小的澄清或改进
编排: 交互式原则定义,对所有工件进行验证
阶段2:规范
目的: 创建详细的功能规范,专注于“是什么”和“为什么”,而不是“如何做”
工件: specs/[功能]/spec.md
必需部分:
- 功能分支名称(2-4个单词)
- 用户场景(P1、P2、P3优先级排序)
- 验收场景(Given/When/Then格式)
- 边界情况
- 功能需求(FR-XXX)
- 关键实体
- 成功标准(可衡量、与技术无关)
关键约束:
- 关注业务价值,而非实现
- 为利益相关者编写,而非开发者
- 最多3个澄清标记用于关键未知项
- 每个用户故事必须可独立测试
质量门:
- 内容质量验证
- 需求完整性检查
- 功能就绪度评估
- 成功标准可衡量性
阶段3:澄清
目的: 系统性地识别和解决规范中的模糊之处
工件: 更新 specs/[功能]/spec.md
澄清维度:
- 功能范围
- 数据模型
- 用户体验(UX)
- 非功能属性(性能、安全性等)
- 集成点
关键约束:
- 每次会话最多5个问题
- 多项选择或简答格式
- 关注高影响、实施关键的不确定性
- 一次一个问题,进行迭代改进
编排: 交互式提问工作流,每次回答后增量更新规范
阶段4:规划
目的: 创建技术实施策略并解决技术未知项
子阶段:
阶段0 - 研究:
- 识别和研究技术未知项
- 输出:
research.md,所有不确定性已解决 - 门: 未解决的澄清项导致ERROR
阶段1 - 设计:
- 创建数据模型和API契约
- 输出:
data-model.md、契约模式、智能体特定上下文
工件:
specs/[功能]/plan.mdspecs/[功能]/research.mdspecs/[功能]/data-model.mdspecs/[功能]/contracts/
计划部分:
- 功能摘要
- 技术上下文(语言、依赖项、平台)
- 项目结构
- 仓库布局
- 非标准方法的复杂性跟踪
阶段5:分析
目的: 在实施前验证跨工件的一致性
分析的工件:
specs/[功能]/spec.mdspecs/[功能]/plan.mdspecs/[功能]/tasks.md
检测过程:
- 重复项
- 模糊性
- 未充分指定的项
- 宪法冲突
输出: 分析报告,包含按严重性排序的发现(最多50个高信号问题)
关键约束:
- 只读操作(无法修改文件)
- 必须在任务分解后运行
- 优先考虑宪法原则
阶段6:任务分解
目的: 从计划生成可操作的、依赖关系排序的任务列表
工件: specs/[功能]/tasks.md
任务结构:
- 用于完成跟踪的复选框
- 顺序任务ID
- 可选并行化标记(
||) - 故事标签(适用时标注P1、P2、P3)
- 精确的文件路径
- 清晰的描述
阶段结构:
- 阶段1: 项目设置
- 阶段2: 基础先决条件(阻塞性 - 必须在用户故事之前完成)
- 阶段3+: 用户故事实施(优先级顺序:P1 → P2 → P3)
- 最终阶段: 优化和跨领域关注点
关键原则:
- 任务按用户故事分组,以便独立实施
- 每个故事可独立测试和交付
- 清晰的依赖关系跟踪
- 明确的并行化标记
- 基础阶段完成前不开始用户故事工作
阶段7:实施
目的: 分阶段执行实施,内置验证
8阶段流程:
- 先决条件检查: 验证项目就绪度
- 清单验证: 计算已完成/未完成项,如果未完成则要求确认
- 上下文分析: 读取必需的工件(tasks.md、plan.md)和可选的工件
- 项目设置: 为检测到的技术创建/验证忽略文件
- 任务处理: 解析任务,提取阶段、依赖关系、执行流程
- 分阶段实施: 遵循TDD分阶段执行任务
- 错误处理: 报告进度,处理失败,提供调试上下文
- 最终验证: 确认完成,验证实施,检查测试覆盖率
编排: 系统化的多阶段执行,内置检查和平衡
编排与并行执行
核心编排理念
顺序阶段推进,在依赖关系允许的情况下,阶段内并行执行。
协调机制
1. 基于阶段的门
- 每个阶段必须完成并验证后才能开始下一阶段
- 门在错误或未解决的问题上阻塞
- 实施:模板验证、清单要求、宪法一致性检查
2. 依赖关系跟踪
- 任务标记有必须在执行前解决的依赖关系
- 基础阶段阻塞所有用户故事工作
- 任务明确引用先决条件
3. 并行化标记
- 当不存在依赖关系时,任务明确标记为并行执行
- 任务格式中的可选
||标记 - 表示任务可以并发运行
4. 用户故事分组
- 任务按用户故事分组,以便独立、并行实施
- 每个用户故事可独立测试和交付
- 允许多个智能体/开发者同时工作
5. 宪法一致性
- 所有阶段都引用宪法以保持一致的实践
- 在所有命令中加载和验证宪法
- 确保并行工作流之间的一致性
并行执行模式
模式1:用户故事并行化
基础阶段完成后,用户故事(P1、P2、P3)可以由不同的智能体并行实施
好处:
- 独立可测试性
- 增量交付
- 减少阻塞
- 可扩展的团队协调
示例:
基础:✓ 项目设置、数据库模式、认证框架
并行工作:
├─ 智能体1:P1故事 - 用户注册流程
├─ 智能体2:P1故事 - 用户登录流程
└─ 智能体3:P2故事 - 个人资料管理
模式2:任务级并行化
在一个阶段内,没有依赖关系的任务可以并发执行
示例:
阶段3:P1 用户注册
├─ [ ] T3.1 || 创建用户模型(tests/models/test_user.py)
├─ [ ] T3.2 || 创建注册端点(tests/api/test_register.py)
└─ [ ] T3.3 || 创建验证服务(tests/services/test_validation.py)
模式3:多智能体协调
不同的AI智能体可以使用共享的工件格式处理不同的方面
示例:
功能“用户认证”:
├─ Claude:生成 spec.md 和 plan.md(推理优势)
├─ Copilot:实施认证端点(代码生成)
└─ Gemini:编写集成测试(测试覆盖)
同步点
并行工作必须同步的关键点:
- 宪法之后: 所有后续工作必须与原则保持一致
- 规范之后: 澄清必须在规划前解决
- 规划研究之后: 所有未知项必须在设计前解决
- 任务之后: 分析必须在实施前验证
- 基础任务之后: 用户故事工作可以开始
- 实施过程中: 清单验证会阻塞执行
智能体协调模式
模式1:模板驱动的交接
结构化的Markdown模板确保不同AI智能体之间一致的工件格式
好处: 智能体互操作性、一致的文档、减少模糊性
模式2:宪法一致性
宪法作为所有智能体和阶段之间的共享上下文
好处: 一致的质量标准、可预测的行为、跨团队/智能体的一致性
模式3:分阶段推进
线性阶段推进,在智能体之间有明确的交接点
好处: 明确的职责、减少混淆、质量门
模式4:增量改进
在阶段内进行迭代改进,然后再向前推进
好处: 更高质量的工件、减少返工、早期错误检测
模式5:工件驱动的上下文
上下文通过工件引用传递,而非对话
好处: 无状态执行、上下文恢复、长期运行的项目
目录结构
.specify/
├── memory/
│ └── constitution.md # 项目治理和原则
├── scripts/
│ ├── *.sh # Bash自动化脚本
│ └── *.ps1 # PowerShell自动化脚本
├── specs/
│ └── [功能名称]/
│ ├── spec.md # 功能规范
│ ├── plan.md # 技术实施计划
│ ├── tasks.md # 可操作的任务分解
│ ├── research.md # 研究发现(可选)
│ ├── data-model.md # 数据结构设计(可选)
│ ├── quickstart.md # 快速入门(可选)
│ └── contracts/ # API/接口定义(可选)
└── templates/ # 命令和工件模板
最佳实践
- 尽早建立宪法 以指导所有后续决策
- 使用澄清命令 在规划前解决模糊性
- 在实施前运行分析命令 以尽早发现问题
- 构建用户故事 以实现独立可测试性
- 用
||明确标记可并行任务 - 完全完成基础阶段 后再开始用户故事工作
- 在所有阶段保持宪法一致性
- 在规范中使用具体、可衡量的成功标准
- 在规范阶段避免实施细节
- 利用多个AI智能体 发挥不同优势
需要避免的陷阱
- 跳过澄清阶段会导致模糊的规范
- 规范中过早的实施细节会降低灵活性
- 忽略宪法会导致不一致的实践
- 没有适当依赖关系跟踪的并行工作会导致冲突
- 不完整的基础阶段会阻塞所有用户故事工作
- 实施前不运行分析会浪费精力在错误的计划上
- 早期阶段过度规范会限制AI智能体的创造力
- 不充分的成功标准会使验证变得主观
- 不使用用户故事分组会限制并行化潜力
实施场景
场景1:启动新项目
使用完整的7阶段工作流和宪法治理。专注于尽早建立原则。
场景2:拥有多个开发者/智能体的团队
强调用户故事并行化和工作树隔离。使用仪表板实现实时可见性。
场景3:具有治理要求的企业
包含企业约束的全面宪法。强制要求在实施前进行分析阶段。
场景4:快速原型制作
详细的规范以对齐愿景,但规划较轻。小的用户故事以快速验证。
参考文献
基于GitHub SpecKit(spec-kit)方法论 - 一个用于规范驱动开发的开源工具包,支持15+个AI编码智能体,包括Claude Code、GitHub Copilot、Gemini和Cursor。