适合对象:用过 Spec-Kit,能完成四阶段生成,但质量不稳定
宪法越具体,AI 产出越规范
模糊的宪法 = 模糊的代码
差的规范:"系统支持用户登录"
好的规范:"作为用户,我希望通过邮箱密码登录,登录失败 3 次后锁定账号 15 分钟"
不仅写"用什么",还要写"为什么用"
哪些任务可以并行?哪些必须串行?
# 功能规范 ## 功能:用户登录 - 支持邮箱密码登录 - 支持手机验证码登录 - 登录成功后返回 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 可以根据这些标准自动生成测试用例