M-QUIZ-01 Quiz 答题闭环与跨端契约收口

背景

现有 Quiz 生成引擎已完成(M-AI-07),但跨端审计发现:

  • 历史 Attempt 会导致新 Attempt 提前看到答案
  • 同一 Attempt 并发提交可能重复结算
  • iOS 使用的详情接口不返回 Questions,答题区无法正常加载
  • choice / fill / judge 缺少统一跨端契约
  • fill 判分和结果展示不完整
  • 学习分析未计算题型维度正确率

目标

完成以下闭环:

开始答题
→ 创建独立 Attempt
→ 加载脱敏题目
→ choice / fill / judge 正确作答
→ 服务端原子判分
→ QuizAnswer 持久化
→ 结果页展示
→ 学习分析读取题型表现

范围

  • Attempt 级答案可见性
  • 提交原子性与幂等
  • iOS 题目加载和 Attempt 生命周期
  • 三种题型跨端格式(choice / fill / judge)
  • fill 判分与结果展示
  • 题型维度学习分析
  • 真实 E2E 与最终 Gate

非目标

  • 新增多选题 / 主观题
  • AI Quiz Prompt 重构
  • Quiz 生成引擎重构
  • 单题停留时间 / 修改答案次数 / 信心程度 / 错误类型诊断
  • 会员订阅 / 错题本完整重构

Issue 列表

# Issue 风险 仓库
01 Attempt 生命周期与答案可见性控制 P0 api-server
02 提交原子性与幂等控制 P0 api-server
03 iOS 题目加载与 Attempt 生命周期对接 P1 ios-projects + api-server
04 冻结 choice、fill、judge 跨端契约并完善 fill 题型 P1 api-server + ios-projects
05 接入 Quiz 题型维度学习分析 P1 api-server
06 GATE Quiz 跨端答题闭环最终验收 P0 全栈 E2E

依赖关系

01 (Attempt + 答案隐藏) P0
  ├── 02 (原子提交 + 幂等) P0
  ├── 03 (iOS 加载 + 生命周期) P1 —— 可与 04 并行
  └── 04 (跨端契约 + fill) P1 —— 可与 03 并行
        └── 05 (题型学习分析) P1
              └── 06 (GATE 最终验收) P0

完成标准

  1. 新 Attempt 不受历史 Attempt 影响
  2. 未提交前不返回答案和解析
  3. 同一 Attempt 只能结算一次
  4. iOS 可以正常加载并完成 Quiz
  5. choice、fill、judge 格式统一
  6. fill 判分规则明确且可用
  7. 结果页展示用户答案和正确答案
  8. 学习分析包含题型维度正确率
  9. 核心 E2E 0 failed、0 skipped
  10. M-QUIZ-01-GATE PASS
No due date
100% Completed