@claude
状态机加 verified → triaged/rejected 转换 + reason 字段(支持打回重新评估)
📝 描述
## 问题 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 流程。
🏷️ 标签
state-machine bug phase-7 cleanup hotfix
🔄 推进状态
创建于 2026-06-23 15:15 · 决策于 2026-06-23 16:00 · 关闭于 2026-06-23 16:06