SDD 进阶指南

适合对象:用过 Spec-Kit,能完成四阶段生成,但质量不稳定

你需要知道什么?

1. 宪法的质量决定最终代码质量

宪法越具体,AI 产出越规范

模糊的宪法 = 模糊的代码

2. 规范要写"用户故事",不是"功能列表"

差的规范:"系统支持用户登录"

好的规范:"作为用户,我希望通过邮箱密码登录,登录失败 3 次后锁定账号 15 分钟"

3. 计划要包含架构决策的理由

不仅写"用什么",还要写"为什么用"

4. 任务要标注依赖关系

哪些任务可以并行?哪些必须串行?

熟练者的典型问题

宪法写了原则,但不够具体
规范写了功能,但缺验收标准
计划写了技术栈,但缺架构设计
任务写了步骤,但缺依赖关系

熟练者的进阶方向

范例对比:规范(Specification)

❌ 差的规范

# 功能规范

## 功能:用户登录
- 支持邮箱密码登录
- 支持手机验证码登录
- 登录成功后返回 token

只有功能列表,没有用户场景

没有验收标准

没有异常场景处理

AI 无法判断"完成"的标准

✅ 好的规范

# 功能规范:用户登录

## 功能概述
实现用户登录功能,支持邮箱密码和手机验证码两种方式,
登录成功后返回 JWT Token。

## 用户场景

### 场景 1:邮箱密码登录(主流程)
**作为** 已注册用户  
**我希望** 通过邮箱和密码登录系统  
**以便** 访问我的个人功能

**Given** 用户已注册且邮箱已验证  
**When** 用户输入正确的邮箱和密码  
**Then** 系统返回 JWT Token(有效期 24 小时)

### 场景 2:邮箱密码登录(失败)
**Given** 用户已注册  
**When** 用户输入错误密码累计 3 次  
**Then** 系统锁定账号 15 分钟,并发送邮件提醒

### 场景 3:手机验证码登录
**Given** 用户已绑定手机号  
**When** 用户输入手机号和正确的验证码  
**Then** 系统返回 JWT Token

## 验收标准

### 功能性
- [ ] 邮箱密码登录成功返回 Token
- [ ] 密码错误 3 次后锁定账号 15 分钟
- [ ] 手机验证码 5 分钟内有效
- [ ] Token 包含用户 ID、角色、过期时间

### 安全性
- [ ] 密码使用 bcrypt 加密存储
- [ ] Token 使用 HS256 签名
- [ ] 登录失败不返回具体错误原因(防枚举)
- [ ] 验证码每日发送上限 10 次

### 性能
- [ ] 登录接口响应时间 < 100ms(P95)
- [ ] 支持 1000 并发登录请求

### 异常处理
- [ ] 邮箱不存在时返回"邮箱或密码错误"
- [ ] 验证码过期返回明确提示
- [ ] 网络异常返回友好错误信息

使用用户故事格式(As a... I want... So that...)

Given-When-Then 场景描述

明确的验收标准(功能性、安全性、性能)

异常场景处理

AI 可以根据这些标准自动生成测试用例

上一篇:小白篇 下一篇:精通篇