SDD 工作流
规格驱动开发将规格视为活跃的开发契约。实现的每个阶段都由明确定义的标准把关,并在每次过渡时自动验证。
生命周期
澄清 → create_spec → DoR 检查 → 实现 (PLAN.md) → 验证 → 漂移检测 → 完成每个箭头都是一个关卡。不满足上一阶段的完成定义,就无法推进到下一阶段。
第 1 阶段 — 澄清
工具: clarify_requirements、reality_check
在编写任何一行规格之前,先发现模糊之处。
提示词:"使用 specforge 澄清项目 [id] 中 [功能] 的需求"clarify_requirements 生成一份有针对性的问题清单 — 涵盖范围边界、边缘情况、非功能性需求、外部依赖 — 确保规格从清晰、无歧义的意图开始。
reality_check 评估需求在当前项目上下文中是否可行。它会在"周五之前不可能完成"的情况变成技术债务之前就发现问题。
第 2 阶段 — 创建规格
工具: create_spec、design_schema、define_ui_contract、generate_adr
提示词:"为项目 [id] 中的 [功能] 创建规格"create_spec 生成一个结构化的 HU.md,包含:
| 章节 | 内容 |
|---|---|
| 用户故事 | 谁、什么、为什么 |
| 验收标准 | 可测试、无歧义的标准 |
| DoR 检查列表 | 准备就绪定义关卡 |
| 数据库架构提示 | 表、列、关系 |
| UI 契约 | 组件契约、状态管理 |
| 架构决策记录提示 | Architecture Decision Records |
| PLAN.md | 逐步执行计划 |
当项目检测到 AI 原生架构时,规格还会生成:
- 延迟预算和回退链
- 提示词版本控制标准
- LLM 可观测性需求
第 3 阶段 — DoR 检查
工具: check_readiness、detect_contradictions
在实现开始之前,验证规格是否真正准备好了。
提示词:"检查项目 [id] 中的规格 SPEC-003 是否已准备好实现"check_readiness 评估:
- 验收标准的完整性
- 标准质量(可测试、无歧义)
- 依赖状态(阻塞规格是否已解决?)
- 章程合规性
detect_contradictions 扫描所有规格中的语义冲突 — 捕获 SPEC-A 说"用户可以删除账号"而 SPEC-B 说"账号不可更改"的情况。
第 4 阶段 — 实现
工具: generate_execution_plan、package_handoff、generate_tests
提示词:"为项目 [id] 中的规格 SPEC-003 生成执行计划"generate_execution_plan 生成一个 PLAN.md,包含:
- RED/GREEN/VERIFY 循环步骤
- 识别出可并行的步骤
- 每个步骤的文件归属
- 每个步骤的估算工作量
package_handoff 将规格打包成 AI 代理的结构化交接包 — 目标、标准、文件列表、约束 — 准备好进行自主实现。
generate_tests 根据规格的验收标准生成测试计划和测试文件框架。
第 5 阶段 — 验证
工具: validate、audit、security_check
实现完成后,验证覆盖率:
提示词:"根据 /path/to/src 的代码验证规格 SPEC-003"validate 检查:
- 哪些验收标准被代码覆盖
- 哪些缺失或只是部分实现
- 整体规格覆盖率百分比
audit 对实现进行 0–100 评分,评分维度包括:
- SOLID 原则
- 清洁代码
- 架构合规性
- 章程违规
security_check 通过 OWASP Top 10 运行规格,并扫描代码中不安全的模式,生成安全评分(A–F)。
第 6 阶段 — 漂移检测
工具: detect_drift、reconcile_spec
随着需求演进,保持规格和代码对齐:
提示词:"检测项目 [id] 中规格 SPEC-003 的漂移"detect_drift 报告:
- 不再与代码匹配的标准
- 自上次检查以来引入的章程违规
- 下游影响:哪些其他规格受到漂移影响
当漂移是有意为之时(规格需要更新):
提示词:"将项目 [id] 中的规格 SPEC-003 与实现变更协调"reconcile_spec 逐项变更提交审批,并在保存前检查章程合规性。
项目章程
章程是一组从你的 CLAUDE.md、.cursorrules 或其他 AI 代理配置文件中提取的不可变架构原则。
提示词:"从 CLAUDE.md 初始化项目 [id] 的章程"一旦设置,章程会在 create_spec、audit 和 detect_drift 中自动执行。违规会在到达代码审查之前被标记出来。
状态流转
| 状态 | 描述 |
|---|---|
draft | 规格已创建,尚未准备好 |
ready | 通过 DoR 检查 |
in_progress | 实现已开始 |
review | 实现完成,等待验证 |
done | 已验证并接受 |
blocked | 被依赖项阻塞 |
提示词:"将项目 [id] 中规格 SPEC-003 的状态更新为 in_progress"每次状态转换都会运行 DoR/DoD 验证。在满足 DoD 标准之前,无法将规格标记为 done。