API 进程不再启动任何 BullMQ Processor。所有 Processor 只运行在独立 NestJS Worker 进程。Docker 与生产 systemd 使用相同部署拓扑。不改变现有业务接口、数据库结构和 AI 工作流。
本批不做:不修改 AiAnalysisJob/AiRuntimeJob;不接入统一 AiJob;不迁移 Active Recall、Feynman 或 Quiz;不停止 Heavy Runtime;不修改 iOS;不删除任何数据库表。
在 AiAnalysisJob 表基础上扩展统一任务字段。新增 AiJobArtifact、AiJobSnapshot、OutboxEvent。扩展 AiUsageLog 与 Job 关联。本批只 Expand,不切换生产调用方,不删除 AiRuntimeJob。
实现 AiJobService、Job Definition Registry、Outbox Dispatcher。实现 ai-interactive 和 ai-background 队列。实现统一状态查询、取消、重试和 Admin 查询。本批先用测试 JobDefinition 验证基础设施。
将现有 Active Recall AI 分析链路从旧 ai-analysis 执行路径迁移到 M-AI-03 统一 Job Engine。
入口: POST /api/active-recalls/:id/submit → ActiveRecallService → AiJobCreationService → AiJob + Snapshot + Outbox → Outbox Dispatcher → ai-interactive → AiJobExecutionEngine → ActiveRecall Executor → Validation → ActiveRecall Projector → 业务结果 + Artifact
核心约束: HTTP 接口不变、统一 Job 创建、Feature Flag 灰度、Snapshot 不可变、Projector 原子幂等、旧链路保留
非目标: Feynman/Quiz/ReviewCard 迁移、数据库 Migration、Heavy Runtime 下线、客户端 UI 重构
完成标准: 原接口兼容、Unified 模式端到端通过、Legacy/Unified 可配置切换、M-AI-04-GATE PASS
Feynman 接入统一 Job。明确独立输出 Schema。ReviewCard 生成改为子 Job。使用 Outbox 替代仅依赖进程内 EventEmitter 的关键链路。保留 ReviewCard 和 SM-2。建立 AnalysisResult→FocusItem→ReviewCard 可追踪关系。iOS 移除 Mock。
将 Feynman ReviewCard 生成从 EventBus 旧链路迁移为统一 AiJob Engine 中的子 Job,实现 Parent/Child 原子创建、失败隔离、幂等卡片生成和 Feature Flag 互斥路由。
目标
- Parent Projector 原子创建 Child Job / Snapshot / Outbox
- 一个 Parent 最多一个 Child Job
- Child Definition 正确注册
- Child Executor 只通过 AiGateway
- 保持旧 ReviewCard Prompt 和 cheap tier
- Child Projector 原子创建 ReviewCard 和 Artifact
- 重复消费不重复卡片
- Parent 成功不依赖 Child 成功
- Child 失败可独立重试
- Legacy Event 与 Child Job 不双执行
- Feature Flag 可快速回滚
- Parent/Child 状态可查询
- 真实 Feynman → Child Job → ReviewCard 链路通过
- M-AI-01 至 M-AI-05 回归通过
- M-AI-06-GATE 为 PASS
非目标
- Quiz 生成 / 迁移
- Active Recall ReviewCard 重构
- 复习算法升级 / SM-2 升级
- 整个 EventBus 平台重构
- 通用消息总线建设
- ReviewCard 表大规模重构
- 删除 Legacy Subscriber / Workflow / ai-analysis Worker
- Heavy Runtime 清理
- 压力测试
- Worker SIGKILL 全场景硬化
将现有 Quiz / 测验生成链路迁移到统一 AiJob Engine。
范围
- 审计现有 Quiz 生成入口和 Legacy 链路
- 冻结 Quiz、Question、Option 等真实数据契约
- 注册 Quiz Generation Job Definition
- 构建不可变输入 Snapshot
- 使用 AiGateway 调用现有 Quiz Prompt
- 验证题型、选项、答案和解析
- 原子创建 Quiz 和题目
- 建立 AiJobArtifact
- 实现请求级与投影级幂等
- 保持旧客户端查询兼容
- Feature Flag: QUIZ_GENERATION_ENGINE_MODE (legacy / unified)
- 真实 E2E 与 CI 门禁
- M-AI-07-GATE 验收
非目标
- Quiz 答题链路重构 / 评分算法重构 / 错题分析
- 学习分析 / 推荐系统
- Active Recall / Feynman / ReviewCard 修改
- Heavy Runtime 下线 / 旧 Quiz Worker 删除
- 数据库大规模重构 / 压力测试
- 原则上不新增 Prisma Migration
处理剩余核心 AI 能力:学习行为数据 + 学习进度 + 复习数据 + Quiz 数据 + Active Recall 数据 + Feynman 数据 → 学习综合分析 → 薄弱点、趋势与风险 → 下一步学习建议。同时盘点全部剩余 AI Workflow,确认为本阶段最后一批核心迁移。
范围
- 全量 AI Workflow 盘点与 Inventory
- LearningAnalysis/Recommendation 数据聚合、Snapshot
- Definition 注册 (learning_analysis, ai-background)
- Executor + Schema/Business/Evidence Validation
- Projector + 原子幂等
- 手动/定时触发 + Feature Flag (LEARNING_ANALYSIS_ENGINE_MODE)
- 查询兼容 + 答案安全 + 回滚
- E2E + CI
- M-AI-08-GATE + AI 业务迁移闭环验收
非目标
- 分析页 UI / 首页 UI / 推送通知
- 自动执行学习建议 / 自动删除修改用户资料
- 复习算法重构 / Quiz 评分重构 / RAG 重构
- Legacy 删除 / 压力测试 / 极端故障测试
审查结论:M-API-ADMIN-INFO 为 M-API-INFO 的管理面 API,不独立可做。当前 admin 基础设施齐全但核心数据表/聚合服务未建。
可先做(4): API-ADMIN-INFO-000/016/018/020
已有基础(2): API-ADMIN-INFO-005(partial)/018(partial)
阻塞于 api-info-schema(9): API-ADMIN-INFO-002/003/006/012/014/017 + 005/007 扩展
阻塞于 api-info-core(6): API-ADMIN-INFO-001/008/009/010/011/013
阻塞于 api-info-ops(2): API-ADMIN-INFO-004/015
阻塞于 api-info-core(1): API-ADMIN-INFO-019
执行顺序:先 M-API-INFO 建表→聚合→再本里程碑
目标
完成 App Store 自动续订 → iOS StoreKit 2 购买 → JWS 验证 → 账号绑定 → Grant 生效 → 统一权益额度 → Server Notifications V2 → 续订/宽限期/到期/退款/撤销 → 恢复购买 → Sandbox/TestFlight 验收。
范围
- Product ID 与 Premium 权益数值冻结
- 账号令牌、商品映射、会员 Grant、PlanQuota Schema Expand
- 不可变 App Store 交易、通知 Inbox、Payload 审计模型
- EffectiveMembership 与普通用户会员只读 API
- App Store JWS 交易验证与幂等会员发放
- Server Notifications V2 Durable Inbox 与生命周期投影
- EffectiveQuota 与 Legacy/Shadow/Enforced 额度引擎
- AI/Chat/OCR/Vision/存储/知识库接入统一额度
- iOS StoreKit 2 核心、交易监听、恢复与测试基础
- iOS 会员中心、额度展示、购买状态与合规入口
- Sandbox/TestFlight 最终 Gate
非目标
- 微信/支付宝/Stripe 外部支付
- 充值余额、消耗型 IAP、终身会员
- 家庭共享、多级 VIP、优惠券/促销
- Android 支付
- 自动账号换绑
Issue 列表
| # | Issue | 风险 |
|---|---|---|
| 01 | 冻结 App Store 商品、Premium 权益数值与额度窗口 | P0 |
| 02 | Expand 账号令牌、商品映射、会员 Grant 与 PlanQuota Schema | P0 |
| 03 | 新增不可变 App Store 交易、通知 Inbox 与 Payload 审计模型 | P0 |
| 04 | 实现 EffectiveMembership 与普通用户会员只读 API | P1 |
| 05 | 实现 App Store JWS 交易验证与幂等会员发放 | P0 |
| 06 | 实现 App Store Server Notifications V2 Durable Inbox 与生命周期投影 | P0 |
| 07 | 实现 EffectiveQuota、额度预占返还与 Legacy/Shadow/Enforced | P1 |
| 08 | 将 AI、Chat、OCR、Vision、存储和知识库接入统一额度 | P1 |
| 09 | 实现 iOS StoreKit 2 核心、交易监听、恢复与测试基础 | P1 |
| 10 | 完成 iOS 会员中心、额度展示、购买状态与合规入口 | P1 |
| 11 | GATE 会员订阅、权益、额度与恢复购买最终验收 | P0 |
依赖关系
01(产品数值)→ 02(Schema)→ 03(交易模型)→ 05(JWS验证)→ 06(通知)
02 → 04(会员API)→ 07(额度引擎)→ 08(接入)→ 10(iOS页面)
09(iOS StoreKit)∥ 06-08
11(GATE)← 全部
背景
现有 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
完成标准
- 新 Attempt 不受历史 Attempt 影响
- 未提交前不返回答案和解析
- 同一 Attempt 只能结算一次
- iOS 可以正常加载并完成 Quiz
- choice、fill、judge 格式统一
- fill 判分规则明确且可用
- 结果页展示用户答案和正确答案
- 学习分析包含题型维度正确率
- 核心 E2E 0 failed、0 skipped
- M-QUIZ-01-GATE PASS
M0:后端基础能力与架构规范闭环(P0)
目标:建立后端基础能力与架构规范闭环,支撑后续模块并行开发。
14 个 Issue:
M0-01 Common Architecture Foundation
M0-02 Event Bus & Reliability 基础版
M0-03 Config & Feature Flag 基础版
M0-04 Audit & Security 基础版
M0-05 Traffic Protection & Resilience 基础版
M0-06 Content Safety & Moderation 基础版
M0-07 Observability 基础版
M0-08 AI Gateway 基础版
M0-09 File Storage 基础版
M0-10 Task Queue & Worker 基础版
M0-11 Quota, Billing & Cost 基础版
M0-12 Secret & Vendor Asset 基础版
M0-13 Admin Auth & RBAC 基础版
M0-14 User & Account 基础身份能力
验收标准:按模块性质交付
禁止事项:不上Nacos、不上Tempo/Loki/Grafana、不上第三方审核API、不做全链路细粒度限流
目标:夯实 AI 调用与向量检索的运行时能力,为知识库主链路提供生产级支撑。
6 个 Issue:
M1-01 AI Gateway 深化(基础主备 fallback)
M1-02 Vector & Retrieval Module
M1-03 Task Queue 深化
M1-04 Content Safety 深化
M1-05 Observability 深化
M1-06 Quota/Cost 闭环
验收标准:AI 调用全部经过 AI Gateway 且成本全部记录;向量检索打通 embedding→检索→rerank→citation 全链路;Content Safety 覆盖用户输入和 AI 输出。
禁止事项:不做 hybrid search、不做 RAG 查询缓存、不做生产级熔断系统
M2:知识库主链路闭环(P1)
目标:打通知识库从资料创建、导入解析、索引、知识点生成到 RAG 问答的完整链路。
8 个 Issue:
M2-01 User & Account 深化
M2-02 Workspace & KnowledgeBase Module
M2-03 Material & Source Module
M2-04 Ingestion & Indexing Module(Vision fallback预留)
M2-05 Vector & Retrieval 对接
M2-06 Artifact & KnowledgeItem 基础版(预留learnable标识)
M2-07 RAG Chat Module
M2-08 Knowledge Ops Module
验收主链路:创建知识库→上传资料→解析→chunk→embedding→Qdrant upsert→ImportCandidate→用户确认KnowledgeItem→RAG问答带引用→Admin可见完整任务状态
禁止事项:不做全量Quiz/StudyGuide/PracticeTest、不做全文搜索、不做知识库分享协作
M3:学习复习闭环(P2)
目标:打通知习核心产品闭环——从知识点学习、主动回忆、AI 诊断、到长期复习调度和掌握度追踪。
6 个 Issue:
M3-01 Learning Engine Module(发布AIAnalysisCompleted事件)
M3-02 Review Engine Module(订阅AIAnalysisCompleted事件生成ReviewCard)
M3-03 Growth & Retention Module
M3-04 Workspace Experience Module
M3-05 Notification Module
M3-06 Cache Module 基础版
验收主链路:打开KnowledgeItem→LearningSession→主动回忆→AI诊断→FocusItem→ReviewCard→今日复习→作答→更新ScheduleState→MasterySnapshot→DailyTask/Streak
禁止事项:不做完整排程算法、不做成就系统、不做生产级推送、不做学习路线
M4:Admin 生产级运维深化(P3)
目标:在已有 Admin 基础上深化运维、合规、发布、监控能力,把系统变成生产就绪状态。
11 个 Issue:
M4-01 Admin Dashboard Module
M4-02 Admin Data View Module
M4-03 Server Monitor Module
M4-04 Backup & Cleanup Module
M4-05 Reporting & Export Module
M4-06 Project Center Module(已有能力深化)
M4-07 Hermes Agent Module(补AgentTask/AgentApproval,不是重做)
M4-08 Release & Decision Module
M4-09 Compliance & Safety Module
M4-10 Notification 深化
M4-11 Secret/Vendor Asset 深化
验收标准:Admin 能看全维度数据报表、能管理 Gitea 项目、能发布版本、能处理合规请求。Hermes Agent 能自动生成 Issue 草稿并写入 Gitea。
禁止事项:不改C端核心逻辑、不做多租户、不做Grafana嵌入、Project Center/Hermes是深化不是重做
知习 AI 对话不是普通聊天,而是学习对象绑定的上下文会话。每个会话必须明确知道它在问谁——整个知识库、某份资料、某个知识点、某个分类,还是多个来源。
核心规则:同一学习对象,继续上次会话;不同学习对象,打开或创建对应会话。
设计文档:见完整 ChatScope 规划(Scope 类型、入口规则、打开/新建决策、检索范围、切换规则、会话列表)。
M8:学习信息收集与基础分析闭环
审查结论:M-API-INFO 基本为全新学习信息系统建设。可复用:JWT Guard、LearningSession 基础表、DailyLearningActivity 基础表、ActivityController 部分接口、LearningRecord schema。
执行顺序:
第0批设计: API-INFO-000/001/008
第1批Schema: API-INFO-002/003/004/005/006/007
第2批上报: API-INFO-009/010/011/024
第3批聚合: API-INFO-012/013/014/015
第4批查询: API-INFO-016/017/018/019/020/021
第5批运维: API-INFO-022/023
第6批测试文档: API-INFO-025/026/027/028