# M0 基线冻结与风险收口 - 阶段报告

> 日期：2026-03-04
> 状态：✅ 完成（收集阻断已清零，smoke 抽样通过）

---

## 1. M0 目标回顾

1. 锁定当前线上/主干行为基线，避免后续改造引入隐性回归
2. 明确 P0/P1/P2 任务池、负责人、验收标准

---

## 2. 交付物清单

### 2.1 基线证据包

| 文件 | 描述 | 状态 |
|------|------|------|
| `api-routes-inventory.md` | API路由清单（含新旧路由并存现状） | ✅ 完成 |
| `security-scan-report.md` | 安全扫描与依赖扫描快照 | ✅ 完成 |
| `smoke-test-report.md` | 核心用例smoke测试结果 | ✅ 已执行并复核通过 |

### 2.2 任务看板

| 文件 | 描述 | 状态 |
|------|------|------|
| `task-board.md` | 系统完善总看板（后端/前端/测试/运维四泳道） | ✅ 完成 |

### 2.3 风险管理

| 文件 | 描述 | 状态 |
|------|------|------|
| `risk-register.md` | Top 10风险清单及应对策略 | ✅ 完成 |

---

## 3. 关键发现

### 3.1 API路由现状

- **总模块数**：28
- **新旧路由并存模块**：21
- **仅新规范模块**：2（alpha, task_monitor）
- **规范**：`/api/{module}/{resource}/`

**迁移建议**：
1. Phase 1：为旧路由添加 Deprecation Header
2. Phase 2：发布迁移文档和SDK升级说明
3. Phase 3：设置兼容期（如3个月）
4. Phase 4：下线旧路由

### 3.2 安全扫描结果

**整体安全评级**：7.5/10（中等风险）

**高优先级问题**：
| 问题 | 风险级别 | 位置 | 建议修复 |
|------|----------|------|----------|
| Pickle反序列化 | 🔴 高 | qlib_adapter.py:480 | 添加HMAC签名验证 |
| Pickle反序列化 | 🔴 高 | tasks.py:427 | 添加HMAC签名验证 |

**安全亮点**：
- ✅ 环境变量配置（无硬编码密钥）
- ✅ 生产安全头（HSTS, SSL）
- ✅ RestrictedPython沙箱
- ✅ CSRF保护完整
- ✅ SQL注入防护（ORM）

**待改进**：
- ⚠️ 缺少自动化依赖扫描
- ⚠️ 缺少API速率限制

### 3.3 风险清单 Top 5

| ID | 风险 | 影响 | 概率 | 应对策略 |
|----|------|------|------|----------|
| R-01 | 里程碑并行导致冲突 | 高 | 中 | 每周冻结窗口 + 全链路检查 |
| R-02 | 审计日志量增长查询慢 | 高 | 高 | 分页 + 索引 + 保留策略 |
| R-03 | 路由改造影响外部调用 | 高 | 中 | 兼容期 + Deprecation Header |
| R-04 | CI时长过长 | 中 | 高 | PR Gate最小化 + Nightly全量 |
| R-05 | 告警噪声过多 | 中 | 中 | 分级告警 + 抑制策略 |

---

## 4. 任务统计

### 按里程碑

| 里程碑 | 后端 | 前端 | 测试 | 运维 | 总计 |
|--------|------|------|------|------|------|
| M0 | 3 | 0 | 2 | 2 | 7 |
| M1 | 8 | 5 | 7 | 0 | 20 |
| M2 | 8 | 0 | 0 | 2 | 10 |
| M3 | 4 | 0 | 4 | 2 | 10 |
| M4 | 5 | 0 | 0 | 5 | 10 |
| M5 | 6 | 0 | 0 | 0 | 6 |
| **总计** | **34** | **5** | **13** | **11** | **63** |

### 按优先级

| 优先级 | 数量 | 占比 |
|--------|------|------|
| P0 | 28 | 44% |
| P1 | 28 | 44% |
| P2 | 7 | 11% |

---

## 5. 冻结规则

在里程碑完成前，遵循以下规则：

1. **暂停合入**：与本路线图无关的大改动
2. **允许合入**：
   - Bugfix（紧急修复）
   - 里程碑任务
3. **合入要求**：
   - 必须通过CI检查
   - 必须有对应测试
   - 必须更新相关文档

---

## 6. M0 验收（DoD）

| 验收项 | 状态 | 证据 |
|--------|------|------|
| 有完整任务分解和负责人 | ✅ | task-board.md |
| 有可复现基线报告 | ✅ | api-routes-inventory.md, security-scan-report.md |
| 风险列表（前10项）和应对策略已确认 | ✅ | risk-register.md |
| Smoke测试基线 | ✅ | smoke-test-report.md（已执行并复核通过） |

---

## 7. 下一步（M1）

M0 完成后，进入 **M1：审计与安全最小闭环**

### M1 关键任务
1. `OperationLogModel` 模型与仓储
2. Internal ingest 接口（`POST /audit/api/internal/operation-logs/`）
3. 查询接口与权限隔离
4. 入库前脱敏
5. 管理员审计台 + 我的操作日志页

### M1 预计周期
- W1（1周）

---

*报告生成时间：2026-03-04*
*下次审查：M1 完成后*
