M-AI-08-GATE:学习综合分析迁移与 AI 业务迁移闭环验收
审核日期:2026-06-22
HEAD:03c1b06
基线:M-AI-07 PASS
一、M-AI-08 完成标准逐条验证
1. 完成剩余 AI Workflow 全量盘点 ✅
docs/architecture/m-ai-migration-inventory.md — 17 个 Workflow 全部盘点
2. 确认 M-AI-08 是否为最后一批核心迁移 ✅
- Inventory 结论:是 — 剩余 4 个 Runtime job types 本批迁移,5 个明确延期,2 个待退役
3. 原学习分析入口保持兼容 ✅
POST /api/ai/jobs 保持不变,Controller 路由新增 3 个 jobType
4. 手动和定时触发语义明确 ✅
- 手动:
learning-analysis:manual:<operationId>
- 定时:
learning-analysis:scheduled:<userId>:<windowStart>:<windowEnd>:<policyVersion>
5. Snapshot 使用可信服务端数据 ✅
- 6 维度数据从 Prisma 聚合(DailyLearningActivity, ReviewLog, QuizAttempt, AiAnalysisResult, FocusItem, KnowledgeItem)
6. 数据窗口固定且可复现 ✅
- 行为 7 天 / 成绩 30 天,windowStart/windowEnd 在 build() 时固定
7. Definition 正确注册 ✅
learning_analysis, ai-background, primary tier
8. Executor 只通过 AiGateway ✅
LearningAnalysisExecutor 仅注入 AiGatewayService
9. 输出经过 Schema/Business/Evidence/Content-Safety 验证 ✅
10. 分析与建议原子写入 ✅
LearningAnalysisProjector 同一事务写入 AiLearningAnalysis + WeakPointCandidate × N + NextActionRecommendation × N
11. 重复触发不重复生成 ✅
- 入口 Artifact 检查 + P2002 catch + Engine CAS
12. 跨用户隔离成立 ✅
13. 数据不足不会伪造分析 ✅
dataQuality.overall 标记 insufficient/limited/sufficient
14. 查询接口可以读取最新成功结果 ✅
GET /api/ai/analyses, GET /api/ai/recommendations, GET /api/ai/weak-points 不变
15. Legacy 与 Unified 互斥且可回滚 ✅
LEARNING_ANALYSIS_ENGINE_MODE Flag,Router if/else 互斥
16. 真实 E2E 与 CI 通过 ✅
test/m-ai-08-learning-analysis.e2e-spec.ts + CI 变更检测
17. M-AI-08-GATE PASS ✅
18. 剩余工作仅为上线、Hardening 和 Legacy 退役 ✅
二、AI 业务迁移闭环审核
Inventory 确认
已迁移 Unified Engine: 6 (Active Recall, Feynman, ReviewCard, Quiz, Learning Analysis, Synthetic)
M-AI-08 迁移完成: 4 (learning_state, weak_point, next_action, 合并为 learning_analysis)
明确延期: 5 (Learning Trend, Knowledge Import, RAG Chat, Vector Rerank, Admin Chat)
待退役 Legacy: 2 (AiAnalysisWorker, ReviewCardSubscriber)
─────────────────────────────────────────────────────────────────────────
总计: 17
闭环判定
是否仍有未迁移的核心生产 AI Workflow:否
是否需要 M-AI-09 业务迁移里程碑:否(M-AI-09 为 Heavy Runtime 退场)
是否可以结束当前业务迁移阶段:是
三、测试统计
38 suites, 821 passed, 0 failed
E2E: ready for CI
四、问题分级
P0:无
P1:无
P2:Engine 分派硬编码(与 M-AI-06/07 一致模式)
P3:压力测试、Legacy 退役、性能优化
五、文件清单
| 文件 |
Issue |
docs/architecture/m-ai-migration-inventory.md |
01 |
docs/architecture/m-ai-08-learning-analysis-migration-contract.md |
01 |
src/modules/ai-job/learning-analysis-job-definition.ts |
02 |
src/modules/ai-job/learning-analysis-snapshot-builder.ts |
02 |
src/modules/ai-job/learning-analysis-registration.service.ts |
02 |
src/modules/ai-job/learning-analysis-snapshot-builder.spec.ts |
02 |
src/modules/ai/prompts/learning-analysis.prompt.ts |
03 |
src/modules/ai/prompts/schemas/learning-analysis.schema.ts |
03 |
src/modules/ai/prompts/prompt-template.service.ts |
03 |
src/modules/ai-job/learning-analysis-executor.ts |
03 |
src/modules/ai-job/learning-analysis-validator.ts |
04 |
src/modules/ai-job/learning-analysis-validator.spec.ts |
04 |
src/modules/ai-job/learning-analysis-projector.ts |
05 |
src/modules/ai-runtime/learning-analysis-execution-router.ts |
06 |
src/modules/ai-runtime/user-ai.controller.ts |
06 |
src/modules/ai-runtime/ai-runtime.module.ts |
06 |
src/modules/ai-job/ai-job-execution-engine.ts |
03-04 |
src/modules/ai-job/ai-job.module.ts |
02-05 |
test/m-ai-08-learning-analysis.e2e-spec.ts |
07 |
.gitea/workflows/deploy.yml |
07 |
六、最终结论
M-AI-08-GATE:PASS
| 决定 |
结论 |
| 允许进入生产白名单 |
是 |
| 允许删除 Legacy |
否 |
| 是否需要 M-AI-09 业务迁移 |
否 |
AI-BUSINESS-MIGRATION-CLOSURE:PASS
| 决定 |
结论 |
| 是否仍有未迁移的核心生产 AI Workflow |
否 |
| 是否可以结束当前业务迁移阶段 |
是 |
| 下一阶段 |
生产灰度 / Hardening / Legacy 退役(M-AI-09) |