关于 sdd
面向希望在实现前先审批需求与设计的规范驱动开发技能。它以 Markdown 文件组织工作,并提供初始化、需求、设计、任务和状态命令。
主要功能
- 01创建 spec 和 steering 文件结构
- 02根据意图生成 EARS 需求
- 03编写设计和顺序任务
- 04在各阶段请求审批
- 05报告规范进度
适用场景
- 01在项目中建立规范工作流
- 02将产品意图转为可验证需求
- 03规划可追溯的实现任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ meleantonio/ awesome-econ-ai-stuff --skill sdd安装后在 Claude Code 中输入/sdd确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
index.mdreference.mdtemplates/spec/design.mdrequirements.mdtasks.mdtemplates/steering/coding-standards.md详细介绍
规范驱动开发(SDD)
核心理念
- 先明确,再编码: 在需求和设计获批之前,绝不生成代码。
- 迭代完善: 在需求 → 设计 → 任务之间循环迭代,直至内容完善。
- 以文档为准: 以 Markdown 文件为准,而不是聊天内容。
命令
在项目根目录(spec/ 和 steering/ 所在位置)执行。
init
搭建 SDD 文件夹结构并创建模板文件。
- 如果
spec/已存在,则跳过或先询问是否覆盖。 - 创建
spec/和steering/。 - 创建
spec/intent.md(空文件或最简占位内容)。 - 将此技能
templates/目录(与SKILL.md位于同一文件夹,或将技能复制到项目后,从~/.cursor/skills/sdd/下的安装路径)中的模板复制到项目:templates/spec/requirements.md→spec/requirements.mdtemplates/spec/design.md→spec/design.mdtemplates/spec/tasks.md→spec/tasks.mdtemplates/steering/coding-standards.md→steering/coding-standards.md
reqs
根据意图生成 EARS 需求。
- 读取
spec/intent.md和steering/*.md。 - 将意图转换为 EARS 需求(参见下文的 EARS 快速参考)。添加一个 Properties(不变量)部分。
- 写入
spec/requirements.md。 - 继续之前,请求用户批准。
design
根据需求生成技术设计。
- 读取
spec/requirements.md和steering/*.md。 - 创建技术设计,涵盖架构、数据模型、组件接口、错误处理和安全性。应用下文的设计检查清单。
- 写入
spec/design.md。 - 继续之前,请求用户批准。
tasks
根据设计生成实现任务。
- 读取
spec/design.md和spec/requirements.md。 - 创建顺序任务列表:最多两级(任务 > 子任务)。将每项任务关联到需求 ID(例如
REQ-001)。遵循下文的任务规则。 - 写入
spec/tasks.md。 - 继续之前,请求用户批准。
status
报告规范当前状态。
- 列出
spec/中的文件(也可列出steering/中的文件)。 - 如果
spec/tasks.md存在,统计未勾选的[ ]与已勾选的[x]数量并进行概述。
EARS 快速参考
- 通用:
<系统> 应 <响应> - 事件驱动:
WHEN <触发条件> [前置条件] the <系统> shall <响应> - 非预期情况:
IF <非预期条件> THEN the <系统> shall <响应> - 状态驱动:
WHILE <系统状态>, the <系统> shall <响应> - 可选:
WHERE <包含该功能>, the <系统> shall <响应>
使用类似 [REQ-001] 的 ID;添加 Properties(不变量) 部分,写明普遍适用的正确性声明。
设计检查清单
- 严格编辑(移除过度设计)。
- 检查循环依赖;通过提取接口、分层或事件解决。
- 确保与指导文档保持一致。
任务规则
- 最多两级层级(任务 > 子任务)。
- 按顺序排列(每项任务都建立在前一项任务的基础上)。
- 可追溯性:每项任务或子任务都关联到需求 ID(例如 可追溯性: 实现
REQ-001)。
其他资源
- 有关框架的完整详情(工作流、完善过程、迭代触发条件),请参阅 reference.md。
评论
支持 Markdown