标题(20-200 字符) · 锁定 title 仅 draft 状态可编辑。如需修改,请先回退到 draft。 描述(背景/上下文) ## 问题 ALLOWED_TRANSITIONS 严格单向设计,verified 只能 → complete,导致无法表达"已验证但发现需重新评估"的场景。 ## 影响 2026-06-23 发现 9 条 verified REQ 在 git 历史中 0 commits(aace22c5 / 26f78556 / fd7011ae / 37ebf2a9 / c5cc5775 / d560644e / b9a407b1 / e81018e2 / d99a4825),当前无法走完整状态机重新评估: - 转 complete 会污染数据(无对应实现) - 保持 verified 是悬空态,统计/反馈循环失真 ## 解决方案 1. `ALLOWED_TRANSITIONS["verified"]` 加 `{triaged, rejected}` 两个转换 2. 新增 Pydantic 字段 `reason`,打回时必填(写进 description 拼接 + decided_at) 3. CLI 加 `--reason` 4. 完整业务规则:reason 长度 ≥ 10,描述打回原因 5. 测试用例:verified → triaged (带 reason) 200 / verified → triaged (无 reason) 422 / verified → rejected (带 reason) 200 ## 存量引用 新转换上线后,这 9 条 REQ 立即可用,无需回滚 DB。 ## 关联 - 父 REQ: REQ-b871169e(complete 状态机设计,2026-06-23) - 阻塞: 9 条 verified REQ 的清理 用户故事 作为架构师,我想在 verified 状态发现需求需要重新评估时,能够打回 triaged 并附 reason,以便后续重新走完 SDLC 流程。 验收标准(JSON,数组,每项 given/when/then) [] 支持 JSON 数组格式。空数组表示无 AC。 非功能需求(JSON 对象,key/value 字符串) {} 优先级 P0 P1 P2 P3 负责人 截止日期 标签(逗号分隔) 保存修改 取消