Просмотр исходного кода

docs(tdd): 新增自动化状态台账(团队共享) + 本地侧车 .tdd 排除推送

- docs/tdd/test/automation-status.md: 由本地侧车 .tdd/test-progress.json 派生的共享台账,逐条标注自动化状态+执行状态

- docs/tdd/test/inventory.md: 回写机制补充跨引用 automation-status.md

- .gitignore: 排除 .tdd/(本地私有,禁止推送;共享内容只放 docs/tdd/)

- 结构化 json(discovery/inventory) 全部落 .tdd/ 本地,不再放 docs/tdd/
Agnes Agent 1 неделя назад
Родитель
Сommit
a04ab84fd9
3 измененных файлов с 1008 добавлено и 0 удалено
  1. 4 0
      .gitignore
  2. 1003 0
      docs/tdd/test/automation-status.md
  3. 1 0
      docs/tdd/test/inventory.md

+ 4 - 0
.gitignore

@@ -92,6 +92,10 @@ venv/
 .workbuddy/
 .workbuddy/
 outputs/
 outputs/
 
 
+# TDD 本地侧车(含个性化配置 config.json / 进度 test-progress.json / 结构化 json)
+# ⚠️ 本地私有,禁止推送远程;需与测试团队共享的内容只放 docs/tdd/(见 tdd-orchestrator 能力边界)
+.tdd/
+
 # 小红书日报推送本地配置(含飞书密钥,禁止提交)
 # 小红书日报推送本地配置(含飞书密钥,禁止提交)
 运营文案/xhs_daily_config.json
 运营文案/xhs_daily_config.json
 
 

+ 1003 - 0
docs/tdd/test/automation-status.md

@@ -0,0 +1,1003 @@
+# CFC · 测试用例自动化状态台账(团队共享 · 本地侧车发布)
+
+> 由 `tdd-orchestrator/scripts/test_inventory.py --automation-status` 从本地侧车 `.tdd/test-progress.json`
+> 派生并发布到 `docs/tdd/`,供测试团队共享。**原始测试用例文件不改动**;`.tdd/` 本地私有、不推送远程。
+
+> **两列含义**:
+> - **自动化状态**:`已自动化`=已有脚本(Playwright/pytest/@Test);`已关联自动化`=文档用例已 e2e 关联脚本;`文档/场景(待自动化)`=仅 markdown,待补脚本。
+> - **执行状态**:来自本地侧车进度回写(未跟踪/已执行/通过/失败/阻塞)。
+
+## 一、汇总(按来源类型)
+
+| 来源类型 | 文件数 | 用例/方法数 | 已自动化 | 待自动化 | 未跟踪 | 已执行 | 通过 | 失败 | 阻塞 |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| 结构化测试用例(md) | 9 | 678 | 53 | 625 | 678 | 0 | 0 | 0 | 0 |
+| 用户场景(md) | 8 | 0 | 0 | 8 | 8 | 0 | 0 | 0 | 0 |
+| Playwright(e2e/integration) | 70 | 411 | 70 | 0 | 70 | 0 | 0 | 0 | 0 |
+| Python(pytest) | 12 | 55 | 12 | 0 | 12 | 0 | 0 | 0 | 0 |
+| Java后端测试 | 182 | 1371 | 182 | 0 | 182 | 0 | 0 | 0 | 0 |
+| **合计** | — | **2515** | **317** | **633** | 950 | 0 | 0 | 0 | 0 |
+
+## 二、结构化测试用例自动化状态(`tests/test-cases/*.md`)
+
+| 锚点(TC) | 模块 | 角色 | 优先级 | 自动化状态 | 执行状态 | 备注(关联设计/e2e) |
+| --- | --- | --- | --- | --- | --- | --- |
+| `tests/test-cases/admin.md#TC-A-01` | 认证 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:`AdminAuthController`|e2e:`e2e/roles/admin/login.spec.js` |
+| `tests/test-cases/admin.md#TC-A-02` | 统计 | 运营 | P1 | 已关联自动化 | 未跟踪 | 设计:`StatsController`|e2e:`e2e/admin-panel.spec.js` |
+| `tests/test-cases/admin.md#TC-A-03` | 方案管理 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理(全量)|e2e:— |
+| `tests/test-cases/admin.md#TC-A-04` | 方案激活 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案激活|e2e:— |
+| `tests/test-cases/admin.md#TC-A-05` | 报告解析 | 运营 | P1 | 已关联自动化 | 未跟踪 | 设计:`AdminReportParserController`|e2e:`e2e/health-report-audit.spec.js` |
+| `tests/test-cases/admin.md#TC-A-06` | 报告解析 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告类型注册|e2e:— |
+| `tests/test-cases/admin.md#TC-A-07` | 报告解析 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:未知聚类自学习|e2e:— |
+| `tests/test-cases/admin.md#TC-A-08` | 文章 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:文章发布-审核|e2e:`e2e/article-management.spec.js` |
+| `tests/test-cases/admin.md#TC-A-09` | 文章·去重 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:文章标题去重|e2e:— |
+| `tests/test-cases/admin.md#TC-A-10` | 关系类型 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:关系类型 CRUD|e2e:`e2e/roles/admin/../relationship` |
+| `tests/test-cases/admin.md#TC-A-11` | 勋章 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:勋章管理;黑盒回归|e2e:`e2e/points-system.spec.js`(参考) |
+| `tests/test-cases/admin.md#TC-A-12` | 供应商 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:供应商管理;黑盒回归|e2e:`e2e/roles/admin/vendor/management.spec.js` |
+| `tests/test-cases/admin.md#TC-A-13` | 活动 | 运营 | P1 | 已关联自动化 | 未跟踪 | 设计:活动审核撤回;黑盒回归|e2e:`e2e/roles/admin/activity-review.spec.js` |
+| `tests/test-cases/admin.md#TC-A-14` | 知识库 | 运营 | P1 | 已关联自动化 | 未跟踪 | 设计:知识库管理;黑盒回归|e2e:`e2e/health-knowledge-base.spec.js` |
+| `tests/test-cases/admin.md#TC-A-15` | 数据迁移 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:多数据源/SfmsDataSourceConfig|e2e:— |
+| `tests/test-cases/admin.md#TC-A-16` | 参数校验 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:统一 `Result<T>`+全局异常;黑盒回归|e2e:`e2e/admin-panel.spec.js` |
+| `tests/test-cases/admin.md#TC-A-17` | /api/admin/report-parser/* | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:/api/admin/report-parser/*|e2e:— |
+| `tests/test-cases/admin.md#TC-A-18` | 优惠券/活动管理 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券/活动管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-19` | 内容安全 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+| `tests/test-cases/admin.md#TC-A-20` | GDPR 工单 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:GDPR 工单|e2e:— |
+| `tests/test-cases/admin.md#TC-A-21` | 网关/限流 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:网关/限流|e2e:— |
+| `tests/test-cases/admin.md#TC-A-22` | 模型管理 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:模型管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-23` | 知识库 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:知识库|e2e:— |
+| `tests/test-cases/admin.md#TC-A-01-E` | 认证 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AdminAuthController`|e2e:— |
+| `tests/test-cases/admin.md#TC-A-02-E` | 统计 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`StatsController`|e2e:— |
+| `tests/test-cases/admin.md#TC-A-03-E` | 方案管理 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理(全量)|e2e:— |
+| `tests/test-cases/admin.md#TC-A-04-E` | 方案激活 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案激活|e2e:— |
+| `tests/test-cases/admin.md#TC-A-05-E` | 报告解析 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AdminReportParserController`|e2e:— |
+| `tests/test-cases/admin.md#TC-A-06-E` | 报告解析 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告类型注册|e2e:— |
+| `tests/test-cases/admin.md#TC-A-07-E` | 报告解析 | 运营 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:未知聚类自学习|e2e:— |
+| `tests/test-cases/admin.md#TC-A-08-E` | 文章 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:文章发布-审核|e2e:— |
+| `tests/test-cases/admin.md#TC-A-09-E` | 文章·去重 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:文章标题去重|e2e:— |
+| `tests/test-cases/admin.md#TC-A-10-E` | 关系类型 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:关系类型 CRUD|e2e:— |
+| `tests/test-cases/admin.md#TC-A-11-E` | 勋章 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:勋章管理;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-12-E` | 供应商 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:供应商管理;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-13-E` | 活动 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:活动审核撤回;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-14-E` | 知识库 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:知识库管理;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-15-E` | 数据迁移 | 运营 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:多数据源/SfmsDataSourceConfig|e2e:— |
+| `tests/test-cases/admin.md#TC-A-16-E` | 参数校验 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:统一 `Result<T>`+全局异常;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-17-E` | /api/admin/report-parser/* | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:/api/admin/report-parser/*|e2e:— |
+| `tests/test-cases/admin.md#TC-A-18-E` | 优惠券/活动管理 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券/活动管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-19-E` | 内容安全 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+| `tests/test-cases/admin.md#TC-A-20-E` | GDPR 工单 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:GDPR 工单|e2e:— |
+| `tests/test-cases/admin.md#TC-A-21-E` | 网关/限流 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:网关/限流|e2e:— |
+| `tests/test-cases/admin.md#TC-A-22-E` | 模型管理 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:模型管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-23-E` | 知识库 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:知识库|e2e:— |
+| `tests/test-cases/admin.md#TC-A-01-P` | 认证 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AdminAuthController`|e2e:— |
+| `tests/test-cases/admin.md#TC-A-02-P` | 统计 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`StatsController`|e2e:— |
+| `tests/test-cases/admin.md#TC-A-03-P` | 方案管理 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理(全量)|e2e:— |
+| `tests/test-cases/admin.md#TC-A-04-P` | 方案激活 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案激活|e2e:— |
+| `tests/test-cases/admin.md#TC-A-05-P` | 报告解析 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AdminReportParserController`|e2e:— |
+| `tests/test-cases/admin.md#TC-A-06-P` | 报告解析 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告类型注册|e2e:— |
+| `tests/test-cases/admin.md#TC-A-07-P` | 报告解析 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:未知聚类自学习|e2e:— |
+| `tests/test-cases/admin.md#TC-A-08-P` | 文章 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:文章发布-审核|e2e:— |
+| `tests/test-cases/admin.md#TC-A-09-P` | 文章·去重 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:文章标题去重|e2e:— |
+| `tests/test-cases/admin.md#TC-A-10-P` | 关系类型 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:关系类型 CRUD|e2e:— |
+| `tests/test-cases/admin.md#TC-A-11-P` | 勋章 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:勋章管理;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-12-P` | 供应商 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:供应商管理;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-13-P` | 活动 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:活动审核撤回;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-14-P` | 知识库 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:知识库管理;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-15-P` | 数据迁移 | 运营 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:多数据源/SfmsDataSourceConfig|e2e:— |
+| `tests/test-cases/admin.md#TC-A-16-P` | 参数校验 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:统一 `Result<T>`+全局异常;黑盒回归|e2e:— |
+| `tests/test-cases/admin.md#TC-A-17-P` | /api/admin/report-parser/* | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:/api/admin/report-parser/*|e2e:— |
+| `tests/test-cases/admin.md#TC-A-18-P` | 优惠券/活动管理 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券/活动管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-19-P` | 内容安全 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+| `tests/test-cases/admin.md#TC-A-20-P` | GDPR 工单 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:GDPR 工单|e2e:— |
+| `tests/test-cases/admin.md#TC-A-21-P` | 网关/限流 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:网关/限流|e2e:— |
+| `tests/test-cases/admin.md#TC-A-22-P` | 模型管理 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:模型管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-23-P` | 知识库 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:知识库|e2e:— |
+| `tests/test-cases/admin.md#TC-A-N01` | 配置CRUD | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:配置管理|e2e:— |
+| `tests/test-cases/admin.md#TC-A-N02` | 报告解析中台 | 运营 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/admin.md#TC-A-N03` | 登录统计 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:统计聚合|e2e:— |
+| `tests/test-cases/admin.md#TC-A-N04` | 限流熔断 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:限流熔断|e2e:e2e/api/nonfunc-perf-compat.spec.js |
+| `tests/test-cases/admin.md#TC-A-N05` | 登录统计 | 运营 | P0 | 已关联自动化 | 未跟踪 | 设计:后台鉴权|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/admin.md#TC-A-N06` | 文章审核 | 运营 | P1 | 已关联自动化 | 未跟踪 | 设计:内容安全|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/admin.md#TC-A-N07` | 内容安全 | 运营 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:SSRF 防护|e2e:— |
+| `tests/test-cases/admin.md#TC-A-N08` | 知识库 | 运营 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:上传校验|e2e:— |
+| `tests/test-cases/admin.md#TC-A-N09` | 注销导出 | 运营 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出合规|e2e:— |
+| `tests/test-cases/child.md#TC-C-01` | 权限/双角色 | 孩子 | P0 | 已关联自动化 | 未跟踪 | 设计:双角色铁律:孩子端不能切家长|e2e:`e2e/roles/child/login.spec.js` |
+| `tests/test-cases/child.md#TC-C-02` | 任务 | 孩子 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:`e2e/roles/child/../tasks` |
+| `tests/test-cases/child.md#TC-C-03` | 小游戏 | 孩子 | P1 | 已关联自动化 | 未跟踪 | 设计:`pages/games/*`|e2e:`e2e/roles/child/mini-games.spec.js` |
+| `tests/test-cases/child.md#TC-C-04` | 心愿 | 孩子 | P1 | 已关联自动化 | 未跟踪 | 设计:`WishController`|e2e:`e2e/roles/parent/wish-management.spec.js` |
+| `tests/test-cases/child.md#TC-C-05` | 心愿 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`RewardController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-06` | 能量 | 孩子 | P1 | 已关联自动化 | 未跟踪 | 设计:`EnergyController`|e2e:`e2e/roles/parent/energy-dashboard.spec.js`(参考) |
+| `tests/test-cases/child.md#TC-C-07` | 报告/权限 | 孩子 | P1 | 已关联自动化 | 未跟踪 | 设计:报告查看权限隔离|e2e:`e2e/roles/teacher/dan-report-flow.spec.js`(参考) |
+| `tests/test-cases/child.md#TC-C-08` | 打卡/方案 | 孩子 | P0 | 已关联自动化 | 未跟踪 | 设计:健康打卡/方案进度|e2e:`e2e/roles/child/daily-checkin.spec.js` |
+| `tests/test-cases/child.md#TC-C-09` | 勋章 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`RewardController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-10` | 勋章提醒 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MedalController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-11` | 成长记录 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-12` | 食谱查看 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/child.md#TC-C-13` | AI 对话 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-14` | 任务重做 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-15` | 消息接收 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/child.md#TC-C-16` | 个人资料 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-17` | 退出 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-18` | 设备校验 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-19` | 消息服务 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/child.md#TC-C-20` | GrowthController | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:GrowthController|e2e:— |
+| `tests/test-cases/child.md#TC-C-21` | 舌诊情绪识别 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/child.md#TC-C-22` | MallController | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:MallController|e2e:— |
+| `tests/test-cases/child.md#TC-C-23` | 客服 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:客服|e2e:— |
+| `tests/test-cases/child.md#TC-C-01-E` | 权限/双角色 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:双角色铁律:孩子端不能切家长|e2e:— |
+| `tests/test-cases/child.md#TC-C-02-E` | 任务 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-03-E` | 小游戏 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`pages/games/*`|e2e:— |
+| `tests/test-cases/child.md#TC-C-04-E` | 心愿 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`WishController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-05-E` | 心愿 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`RewardController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-06-E` | 能量 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`EnergyController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-07-E` | 报告/权限 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告查看权限隔离|e2e:— |
+| `tests/test-cases/child.md#TC-C-08-E` | 打卡/方案 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:健康打卡/方案进度|e2e:— |
+| `tests/test-cases/child.md#TC-C-09-E` | 勋章 | 孩子 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`RewardController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-10-E` | 勋章提醒 | 孩子 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`MedalController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-11-E` | 成长记录 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-12-E` | 食谱查看 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/child.md#TC-C-13-E` | AI 对话 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-14-E` | 任务重做 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-15-E` | 消息接收 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/child.md#TC-C-16-E` | 个人资料 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-17-E` | 退出 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-18-E` | 设备校验 | 孩子 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-19-E` | 消息服务 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/child.md#TC-C-20-E` | GrowthController | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:GrowthController|e2e:— |
+| `tests/test-cases/child.md#TC-C-21-E` | 舌诊情绪识别 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/child.md#TC-C-22-E` | MallController | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:MallController|e2e:— |
+| `tests/test-cases/child.md#TC-C-23-E` | 客服 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:客服|e2e:— |
+| `tests/test-cases/child.md#TC-C-01-P` | 权限/双角色 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:双角色铁律:孩子端不能切家长|e2e:— |
+| `tests/test-cases/child.md#TC-C-02-P` | 任务 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-03-P` | 小游戏 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`pages/games/*`|e2e:— |
+| `tests/test-cases/child.md#TC-C-04-P` | 心愿 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`WishController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-05-P` | 心愿 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`RewardController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-06-P` | 能量 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`EnergyController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-07-P` | 报告/权限 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告查看权限隔离|e2e:— |
+| `tests/test-cases/child.md#TC-C-08-P` | 打卡/方案 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:健康打卡/方案进度|e2e:— |
+| `tests/test-cases/child.md#TC-C-09-P` | 勋章 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`RewardController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-10-P` | 勋章提醒 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MedalController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-11-P` | 成长记录 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-12-P` | 食谱查看 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/child.md#TC-C-13-P` | AI 对话 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-14-P` | 任务重做 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-15-P` | 消息接收 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/child.md#TC-C-16-P` | 个人资料 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-17-P` | 退出 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-18-P` | 设备校验 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/child.md#TC-C-19-P` | 消息服务 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/child.md#TC-C-20-P` | GrowthController | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:GrowthController|e2e:— |
+| `tests/test-cases/child.md#TC-C-21-P` | 舌诊情绪识别 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/child.md#TC-C-22-P` | MallController | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:MallController|e2e:— |
+| `tests/test-cases/child.md#TC-C-23-P` | 客服 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:客服|e2e:— |
+| `tests/test-cases/child.md#TC-C-N01` | 任务打卡 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:TaskController|e2e:— |
+| `tests/test-cases/child.md#TC-C-N02` | 消息通知 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息中心|e2e:— |
+| `tests/test-cases/child.md#TC-C-N03` | 孩子端 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:孩子端|e2e:— |
+| `tests/test-cases/child.md#TC-C-N04` | 只读报告 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告前端|e2e:— |
+| `tests/test-cases/child.md#TC-C-N05` | 心愿 | 孩子 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:心愿鉴权|e2e:— |
+| `tests/test-cases/child.md#TC-C-N06` | 消息通知 | 孩子 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息渲染|e2e:— |
+| `tests/test-cases/child.md#TC-C-N07` | 孩子端 | 孩子 | P0 | 已关联自动化 | 未跟踪 | 设计:双角色铁律|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/cross-role-e2e.md#TC-X-01` | 规划师 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-02` | 规划师 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-03` | 家长 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-04` | 规划师 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-05` | 孩子 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-06` | 规划师 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-07` | 运营 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-08` | 多角色 | P0 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-09` | 多角色 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-10` | 多角色 | P2 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-11` | 多角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-12` | 多角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-13` | 跨角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-14` | 跨角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-15` | 跨角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-16` | 跨角色 | P0 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-17` | 跨角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-18` | 跨角色 | P1 | 功能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-01-E` | 规划师 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-02-E` | 规划师 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-03-E` | 家长 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-04-E` | 规划师 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-05-E` | 孩子 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-06-E` | 规划师 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-07-E` | 运营 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-08-E` | 多角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-09-E` | 多角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-10-E` | 多角色 | P3 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-11-E` | 多角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-12-E` | 多角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-13-E` | 跨角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-14-E` | 跨角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-15-E` | 跨角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-16-E` | 跨角色 | P1 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-17-E` | 跨角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-18-E` | 跨角色 | P2 | 异常 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-01-P` | 规划师 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-02-P` | 规划师 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-03-P` | 家长 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-04-P` | 规划师 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-05-P` | 孩子 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-06-P` | 规划师 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-07-P` | 运营 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-08-P` | 多角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-09-P` | 多角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-10-P` | 多角色 | P2 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-11-P` | 多角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-12-P` | 多角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-13-P` | 跨角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-14-P` | 跨角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-15-P` | 跨角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-16-P` | 跨角色 | P0 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-17-P` | 跨角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-18-P` | 跨角色 | P1 | 权限 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N01` | 跨角色 | P0 | 性能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N02` | 跨角色 | P0 | 性能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N03` | 跨角色 | P0 | 性能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N04` | 跨角色 | P1 | 性能 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N05` | 跨角色 | P0 | 安全 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N06` | 跨角色 | P0 | 安全 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N07` | 跨角色 | P1 | 兼容 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/cross-role-e2e.md#TC-X-N08` | 跨角色 | P0 | 安全 | 文档用例(待自动化) | 未跟踪 | 设计:—|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-01` | 预约/权限 | 家长A vs 家长B | P0 | 文档用例(待自动化) | 未跟踪 | 设计:F1|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-02` | 预约/状态机 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:F2|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-03` | 预约/额度 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:修正口径|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-04` | 预约/幂等 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:F4|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-05` | 预约/权限 | 非指派用户 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:既有|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-06` | 预约/校验 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:既有|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-07` | 列表/权限 | 非 teacher | P2 | 文档用例(待自动化) | 未跟踪 | 设计:F5|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-08` | 预约/校验 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:F6|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-09` | 预约/状态机 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:状态机|e2e:— |
+| `tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-10` | 订单↔额度↔预约 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:修正口径|e2e:— |
+| `tests/test-cases/deep-dive-plan-activation.md#TC-PA-01` | 激活/拆任务 | 规划师 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:G1|e2e:— |
+| `tests/test-cases/deep-dive-plan-activation.md#TC-PA-02` | 激活/幂等 | 规划师 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:G1|e2e:— |
+| `tests/test-cases/deep-dive-plan-activation.md#TC-PA-03` | 激活/并发幂等 | 规划师×2 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:G2|e2e:— |
+| `tests/test-cases/deep-dive-plan-activation.md#TC-PA-04` | 激活/取消 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:G3|e2e:— |
+| `tests/test-cases/deep-dive-plan-activation.md#TC-PA-05` | 拆任务/边界 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:G3|e2e:— |
+| `tests/test-cases/deep-dive-plan-activation.md#TC-PA-06` | 拆任务/数据 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:G4|e2e:— |
+| `tests/test-cases/guest.md#TC-G-01` | 启动/首页 | 游客 | P1 | 已关联自动化 | 未跟踪 | 设计:JwtInterceptor 拦截 `/api/**`|e2e:`e2e/roles/child/login.spec.js`(反向) |
+| `tests/test-cases/guest.md#TC-G-02` | 认证 | 游客 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`/`API_REFERENCE` 1.1|e2e:`e2e/roles/parent/../login` |
+| `tests/test-cases/guest.md#TC-G-03` | 认证 | 游客 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:统一 POST/JWT|e2e:— |
+| `tests/test-cases/guest.md#TC-G-04` | 家庭/邀请 | 游客 | P1 | 已关联自动化 | 未跟踪 | 设计:`FamilyInviteController`|e2e:`e2e/roles/teacher/family-binding.spec.js`(参考) |
+| `tests/test-cases/guest.md#TC-G-05` | 权限 | 游客 | P0 | 已关联自动化 | 未跟踪 | 设计:JWT;8 公开路径白名单(1.1)|e2e:`e2e/debug-control.spec.js`(参考) |
+| `tests/test-cases/guest.md#TC-G-06` | 权限 | 游客 | P0 | 已关联自动化 | 未跟踪 | 设计:`JwtInterceptor`|e2e:`e2e/debug-control.spec.js`(参考) |
+| `tests/test-cases/guest.md#TC-G-07` | 测试模式 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:AGENTS.md 测试模式|e2e:— |
+| `tests/test-cases/guest.md#TC-G-08` | 环境切换 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`config.js`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-09` | 认证 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-10` | 注册 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-11` | 协议页/AgreementController | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:协议页/AgreementController|e2e:— |
+| `tests/test-cases/guest.md#TC-G-12` | config.js | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:config.js|e2e:— |
+| `tests/test-cases/guest.md#TC-G-01-E` | 启动/首页 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:JwtInterceptor 拦截 `/api/**`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-02-E` | 认证 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`/`API_REFERENCE` 1.1|e2e:— |
+| `tests/test-cases/guest.md#TC-G-03-E` | 认证 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:统一 POST/JWT|e2e:— |
+| `tests/test-cases/guest.md#TC-G-04-E` | 家庭/邀请 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-05-E` | 权限 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:JWT;8 公开路径白名单(1.1)|e2e:— |
+| `tests/test-cases/guest.md#TC-G-06-E` | 权限 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`JwtInterceptor`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-07-E` | 测试模式 | 游客 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:AGENTS.md 测试模式|e2e:— |
+| `tests/test-cases/guest.md#TC-G-08-E` | 环境切换 | 游客 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`config.js`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-09-E` | 认证 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-10-E` | 注册 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-11-E` | 协议页/AgreementController | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:协议页/AgreementController|e2e:— |
+| `tests/test-cases/guest.md#TC-G-12-E` | config.js | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:config.js|e2e:— |
+| `tests/test-cases/guest.md#TC-G-01-P` | 启动/首页 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:JwtInterceptor 拦截 `/api/**`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-02-P` | 认证 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`/`API_REFERENCE` 1.1|e2e:— |
+| `tests/test-cases/guest.md#TC-G-03-P` | 认证 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:统一 POST/JWT|e2e:— |
+| `tests/test-cases/guest.md#TC-G-04-P` | 家庭/邀请 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-05-P` | 权限 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:JWT;8 公开路径白名单(1.1)|e2e:— |
+| `tests/test-cases/guest.md#TC-G-06-P` | 权限 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`JwtInterceptor`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-07-P` | 测试模式 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:AGENTS.md 测试模式|e2e:— |
+| `tests/test-cases/guest.md#TC-G-08-P` | 环境切换 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`config.js`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-09-P` | 认证 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-10-P` | 注册 | 游客 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/guest.md#TC-G-11-P` | 协议页/AgreementController | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:协议页/AgreementController|e2e:— |
+| `tests/test-cases/guest.md#TC-G-12-P` | config.js | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:config.js|e2e:— |
+| `tests/test-cases/guest.md#TC-G-N01` | 落地页 | 游客 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:落地页/邀请|e2e:— |
+| `tests/test-cases/guest.md#TC-G-N02` | 浏览转化 | 游客 | P2 | 已关联自动化 | 未跟踪 | 设计:登录注册|e2e:e2e/api/nonfunc-perf-compat.spec.js |
+| `tests/test-cases/guest.md#TC-G-N03` | 非微信H5 | 游客 | P2 | 已关联自动化 | 未跟踪 | 设计:H5 兜底|e2e:e2e/api/nonfunc-perf-compat.spec.js |
+| `tests/test-cases/guest.md#TC-G-N04` | 落地页 | 游客 | P0 | 已关联自动化 | 未跟踪 | 设计:接口鉴权|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/guest.md#TC-G-N05` | 登录注册 | 游客 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:登录限流|e2e:— |
+| `tests/test-cases/parent.md#TC-P-01` | 家庭 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:`FamilyInviteController`|e2e:`e2e/roles/parent/family-management.spec.js` |
+| `tests/test-cases/parent.md#TC-P-02` | 家庭/成员 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-03` | 成员资料 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:`FamilyMembersController`|e2e:`e2e/family-member-management.spec.js` |
+| `tests/test-cases/parent.md#TC-P-04` | 关系图 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:关系类型 CRUD/前端选择器|e2e:— |
+| `tests/test-cases/parent.md#TC-P-05` | 任务 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:`e2e/roles/parent/../tasks` |
+| `tests/test-cases/parent.md#TC-P-06` | 任务审核 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`/`PointsController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-07` | 心愿 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:`WishController`/`RewardController`|e2e:`e2e/roles/parent/wish-management.spec.js` |
+| `tests/test-cases/parent.md#TC-P-08` | 能量 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:`EnergyController`|e2e:`e2e/roles/parent/energy-dashboard.spec.js` |
+| `tests/test-cases/parent.md#TC-P-09` | 测评订单 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:`e2e/assessment-order-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-10` | 健康报告 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:健康报告上传解析|e2e:`e2e/dan-report-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-11` | 报告查看 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-12` | 饮食推荐 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐系统|e2e:— |
+| `tests/test-cases/parent.md#TC-P-13` | AI 方案 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:AI 统一走 LangGraph;`AiGateway`|e2e:`e2e/ai-plan-task-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-14` | 方案提交 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/parent.md#TC-P-15` | 双角色 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:`POST /api/family/member/switch`(替代废弃 switch-mode);双角色铁律|e2e:`e2e/roles/parent/family-management.spec.js` |
+| `tests/test-cases/parent.md#TC-P-16` | 会员 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MembershipController`/`ProductOrderController`|e2e:`e2e/roles/parent/../membership` |
+| `tests/test-cases/parent.md#TC-P-17` | 积分/成长 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:`PointsController`/`GrowthController`|e2e:`e2e/roles/parent/points.spec.js` |
+| `tests/test-cases/parent.md#TC-P-18` | AI 对话 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`;LangGraph RAG|e2e:— |
+| `tests/test-cases/parent.md#TC-P-19` | 能量配置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:维度配置|e2e:— |
+| `tests/test-cases/parent.md#TC-P-20` | 健康报告 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:报告解析中台/`POST /api/media/upload`|e2e:`e2e/dan-report-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-21` | 报告解析 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`/api/admin/report-parser/types`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-22` | 报告预览 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/parent.md#TC-P-23` | 报告入库 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/parent.md#TC-P-24` | 报告管理 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-25` | 报告趋势 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:成长/报告|e2e:— |
+| `tests/test-cases/parent.md#TC-P-26` | 饮食推荐 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐系统|e2e:— |
+| `tests/test-cases/parent.md#TC-P-27` | 家庭食谱 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐/家庭食谱|e2e:— |
+| `tests/test-cases/parent.md#TC-P-28` | 食谱筛选 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-29` | 食谱收藏 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-30` | 食谱营养 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-31` | 测评类型 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`DanAssessmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-32` | 测评规划师 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:测评订单|e2e:— |
+| `tests/test-cases/parent.md#TC-P-33` | 测评下单 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:`AssessmentOrder`|e2e:`e2e/assessment-order-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-34` | 测评支付 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:支付/`AssessmentQuota`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-35` | 测评额度 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentQuota`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-36` | 测评预约 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:`e2e/assessment-order-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-37` | 预约状态 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-38` | 预约取消 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-39` | DAN报告 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`DanAssessmentResultDTO`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-40` | AI方案 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:`AIChatController`/`AiGateway`|e2e:`e2e/ai-plan-task-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-41` | 方案迭代 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-42` | 方案编辑 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-43` | 方案查看 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-44` | 方案确认 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/parent.md#TC-P-45` | 方案发布 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-46` | 方案激活 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:方案激活任务分解|e2e:`e2e/ai-plan-task-flow.spec.js` |
+| `tests/test-cases/parent.md#TC-P-47` | 方案任务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-48` | 方案版本 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-49` | AI对话 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-50` | 成长记录 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-51` | 成长里程碑 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-52` | 商城浏览 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:`MallController`/`danshop`|e2e:`e2e/product-purchase.spec.js` |
+| `tests/test-cases/parent.md#TC-P-53` | 商品详情 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-54` | 商城下单 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-55` | 订单支付 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:支付|e2e:— |
+| `tests/test-cases/parent.md#TC-P-56` | 订单退款 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-57` | 优惠券 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券|e2e:— |
+| `tests/test-cases/parent.md#TC-P-58` | 会员购买 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:`e2e/../membership` |
+| `tests/test-cases/parent.md#TC-P-59` | 会员权益 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-60` | 会员续费 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-61` | 联系人 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactCard`/`contact-detail`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-62` | 联系人导入 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactImport`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-63` | 联系人权限 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactCard`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-64` | 个人资料 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-65` | 通知设置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-66` | 隐私设置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:隐私设置|e2e:— |
+| `tests/test-cases/parent.md#TC-P-67` | 报告代传/report-proxy | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:报告代传/report-proxy|e2e:— |
+| `tests/test-cases/parent.md#TC-P-68` | 家庭天盘 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:家庭天盘|e2e:— |
+| `tests/test-cases/parent.md#TC-P-69` | 精准营养 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:精准营养|e2e:— |
+| `tests/test-cases/parent.md#TC-P-70` | 舌诊情绪识别 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/parent.md#TC-P-71` | AuthController | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:AuthController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-72` | 数据导出(GDPR) | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出(GDPR)|e2e:— |
+| `tests/test-cases/parent.md#TC-P-73` | 家庭/成员 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:家庭/成员|e2e:— |
+| `tests/test-cases/parent.md#TC-P-74` | 规划师绑定 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:规划师绑定|e2e:— |
+| `tests/test-cases/parent.md#TC-P-75` | 优惠券 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券|e2e:— |
+| `tests/test-cases/parent.md#TC-P-76` | 活动管理 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:活动管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-77` | 活动 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:活动|e2e:— |
+| `tests/test-cases/parent.md#TC-P-78` | 消息服务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-79` | 消息服务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-80` | 会员/订单 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:会员/订单|e2e:— |
+| `tests/test-cases/parent.md#TC-P-81` | 方案/任务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案/任务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-82` | 搜索 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:搜索|e2e:— |
+| `tests/test-cases/parent.md#TC-P-83` | 客服 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:客服|e2e:— |
+| `tests/test-cases/parent.md#TC-P-84` | 分享 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:分享|e2e:— |
+| `tests/test-cases/parent.md#TC-P-85` | AuthController | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:AuthController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-86` | 勋章/排行 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:勋章/排行|e2e:— |
+| `tests/test-cases/parent.md#TC-P-01-E` | 家庭 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-02-E` | 家庭/成员 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-03-E` | 成员资料 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyMembersController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-04-E` | 关系图 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:关系类型 CRUD/前端选择器|e2e:— |
+| `tests/test-cases/parent.md#TC-P-05-E` | 任务 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-06-E` | 任务审核 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`/`PointsController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-07-E` | 心愿 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`WishController`/`RewardController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-08-E` | 能量 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`EnergyController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-09-E` | 测评订单 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-10-E` | 健康报告 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:健康报告上传解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-11-E` | 报告查看 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-12-E` | 饮食推荐 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐系统|e2e:— |
+| `tests/test-cases/parent.md#TC-P-13-E` | AI 方案 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:AI 统一走 LangGraph;`AiGateway`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-14-E` | 方案提交 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/parent.md#TC-P-15-E` | 双角色 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`POST /api/family/member/switch`(替代废弃 switch-mode);双角色铁律|e2e:— |
+| `tests/test-cases/parent.md#TC-P-16-E` | 会员 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MembershipController`/`ProductOrderController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-17-E` | 积分/成长 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`PointsController`/`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-18-E` | AI 对话 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`;LangGraph RAG|e2e:— |
+| `tests/test-cases/parent.md#TC-P-19-E` | 能量配置 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:维度配置|e2e:— |
+| `tests/test-cases/parent.md#TC-P-20-E` | 健康报告 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析中台/`POST /api/media/upload`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-21-E` | 报告解析 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`/api/admin/report-parser/types`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-22-E` | 报告预览 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/parent.md#TC-P-23-E` | 报告入库 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/parent.md#TC-P-24-E` | 报告管理 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-25-E` | 报告趋势 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:成长/报告|e2e:— |
+| `tests/test-cases/parent.md#TC-P-26-E` | 饮食推荐 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐系统|e2e:— |
+| `tests/test-cases/parent.md#TC-P-27-E` | 家庭食谱 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐/家庭食谱|e2e:— |
+| `tests/test-cases/parent.md#TC-P-28-E` | 食谱筛选 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-29-E` | 食谱收藏 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-30-E` | 食谱营养 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-31-E` | 测评类型 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`DanAssessmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-32-E` | 测评规划师 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:测评订单|e2e:— |
+| `tests/test-cases/parent.md#TC-P-33-E` | 测评下单 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentOrder`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-34-E` | 测评支付 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:支付/`AssessmentQuota`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-35-E` | 测评额度 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentQuota`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-36-E` | 测评预约 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-37-E` | 预约状态 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-38-E` | 预约取消 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-39-E` | DAN报告 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`DanAssessmentResultDTO`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-40-E` | AI方案 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`/`AiGateway`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-41-E` | 方案迭代 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-42-E` | 方案编辑 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-43-E` | 方案查看 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-44-E` | 方案确认 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/parent.md#TC-P-45-E` | 方案发布 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-46-E` | 方案激活 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案激活任务分解|e2e:— |
+| `tests/test-cases/parent.md#TC-P-47-E` | 方案任务 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-48-E` | 方案版本 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-49-E` | AI对话 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-50-E` | 成长记录 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-51-E` | 成长里程碑 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-52-E` | 商城浏览 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`/`danshop`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-53-E` | 商品详情 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-54-E` | 商城下单 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-55-E` | 订单支付 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:支付|e2e:— |
+| `tests/test-cases/parent.md#TC-P-56-E` | 订单退款 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-57-E` | 优惠券 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券|e2e:— |
+| `tests/test-cases/parent.md#TC-P-58-E` | 会员购买 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-59-E` | 会员权益 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-60-E` | 会员续费 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-61-E` | 联系人 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactCard`/`contact-detail`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-62-E` | 联系人导入 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactImport`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-63-E` | 联系人权限 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactCard`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-64-E` | 个人资料 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-65-E` | 通知设置 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-66-E` | 隐私设置 | 家长 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:隐私设置|e2e:— |
+| `tests/test-cases/parent.md#TC-P-67-E` | 报告代传/report-proxy | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告代传/report-proxy|e2e:— |
+| `tests/test-cases/parent.md#TC-P-68-E` | 家庭天盘 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:家庭天盘|e2e:— |
+| `tests/test-cases/parent.md#TC-P-69-E` | 精准营养 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:精准营养|e2e:— |
+| `tests/test-cases/parent.md#TC-P-70-E` | 舌诊情绪识别 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/parent.md#TC-P-71-E` | AuthController | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:AuthController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-72-E` | 数据导出(GDPR) | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出(GDPR)|e2e:— |
+| `tests/test-cases/parent.md#TC-P-73-E` | 家庭/成员 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:家庭/成员|e2e:— |
+| `tests/test-cases/parent.md#TC-P-74-E` | 规划师绑定 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:规划师绑定|e2e:— |
+| `tests/test-cases/parent.md#TC-P-75-E` | 优惠券 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券|e2e:— |
+| `tests/test-cases/parent.md#TC-P-76-E` | 活动管理 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:活动管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-77-E` | 活动 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:活动|e2e:— |
+| `tests/test-cases/parent.md#TC-P-78-E` | 消息服务 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-79-E` | 消息服务 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-80-E` | 会员/订单 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:会员/订单|e2e:— |
+| `tests/test-cases/parent.md#TC-P-81-E` | 方案/任务 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案/任务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-82-E` | 搜索 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:搜索|e2e:— |
+| `tests/test-cases/parent.md#TC-P-83-E` | 客服 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:客服|e2e:— |
+| `tests/test-cases/parent.md#TC-P-84-E` | 分享 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:分享|e2e:— |
+| `tests/test-cases/parent.md#TC-P-85-E` | AuthController | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:AuthController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-86-E` | 勋章/排行 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:勋章/排行|e2e:— |
+| `tests/test-cases/parent.md#TC-P-01-P` | 家庭 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-02-P` | 家庭/成员 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-03-P` | 成员资料 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyMembersController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-04-P` | 关系图 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:关系类型 CRUD/前端选择器|e2e:— |
+| `tests/test-cases/parent.md#TC-P-05-P` | 任务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-06-P` | 任务审核 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`/`PointsController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-07-P` | 心愿 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`WishController`/`RewardController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-08-P` | 能量 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`EnergyController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-09-P` | 测评订单 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-10-P` | 健康报告 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:健康报告上传解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-11-P` | 报告查看 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-12-P` | 饮食推荐 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐系统|e2e:— |
+| `tests/test-cases/parent.md#TC-P-13-P` | AI 方案 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:AI 统一走 LangGraph;`AiGateway`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-14-P` | 方案提交 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/parent.md#TC-P-15-P` | 双角色 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`POST /api/family/member/switch`(替代废弃 switch-mode);双角色铁律|e2e:— |
+| `tests/test-cases/parent.md#TC-P-16-P` | 会员 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MembershipController`/`ProductOrderController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-17-P` | 积分/成长 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`PointsController`/`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-18-P` | AI 对话 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`;LangGraph RAG|e2e:— |
+| `tests/test-cases/parent.md#TC-P-19-P` | 能量配置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:维度配置|e2e:— |
+| `tests/test-cases/parent.md#TC-P-20-P` | 健康报告 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析中台/`POST /api/media/upload`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-21-P` | 报告解析 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`/api/admin/report-parser/types`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-22-P` | 报告预览 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/parent.md#TC-P-23-P` | 报告入库 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:解析中台|e2e:— |
+| `tests/test-cases/parent.md#TC-P-24-P` | 报告管理 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-25-P` | 报告趋势 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:成长/报告|e2e:— |
+| `tests/test-cases/parent.md#TC-P-26-P` | 饮食推荐 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐系统|e2e:— |
+| `tests/test-cases/parent.md#TC-P-27-P` | 家庭食谱 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐/家庭食谱|e2e:— |
+| `tests/test-cases/parent.md#TC-P-28-P` | 食谱筛选 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-29-P` | 食谱收藏 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-30-P` | 食谱营养 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-31-P` | 测评类型 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`DanAssessmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-32-P` | 测评规划师 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:测评订单|e2e:— |
+| `tests/test-cases/parent.md#TC-P-33-P` | 测评下单 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentOrder`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-34-P` | 测评支付 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:支付/`AssessmentQuota`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-35-P` | 测评额度 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentQuota`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-36-P` | 测评预约 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-37-P` | 预约状态 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-38-P` | 预约取消 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-39-P` | DAN报告 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`DanAssessmentResultDTO`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-40-P` | AI方案 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`/`AiGateway`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-41-P` | 方案迭代 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-42-P` | 方案编辑 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-43-P` | 方案查看 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-44-P` | 方案确认 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/parent.md#TC-P-45-P` | 方案发布 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-46-P` | 方案激活 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案激活任务分解|e2e:— |
+| `tests/test-cases/parent.md#TC-P-47-P` | 方案任务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-48-P` | 方案版本 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-49-P` | AI对话 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AIChatController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-50-P` | 成长记录 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-51-P` | 成长里程碑 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-52-P` | 商城浏览 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`/`danshop`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-53-P` | 商品详情 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-54-P` | 商城下单 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MallController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-55-P` | 订单支付 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:支付|e2e:— |
+| `tests/test-cases/parent.md#TC-P-56-P` | 订单退款 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-57-P` | 优惠券 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券|e2e:— |
+| `tests/test-cases/parent.md#TC-P-58-P` | 会员购买 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-59-P` | 会员权益 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-60-P` | 会员续费 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`MemberController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-61-P` | 联系人 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactCard`/`contact-detail`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-62-P` | 联系人导入 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactImport`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-63-P` | 联系人权限 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ContactCard`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-64-P` | 个人资料 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/parent.md#TC-P-65-P` | 通知设置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-66-P` | 隐私设置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:隐私设置|e2e:— |
+| `tests/test-cases/parent.md#TC-P-67-P` | 报告代传/report-proxy | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:报告代传/report-proxy|e2e:— |
+| `tests/test-cases/parent.md#TC-P-68-P` | 家庭天盘 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:家庭天盘|e2e:— |
+| `tests/test-cases/parent.md#TC-P-69-P` | 精准营养 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:精准营养|e2e:— |
+| `tests/test-cases/parent.md#TC-P-70-P` | 舌诊情绪识别 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/parent.md#TC-P-71-P` | AuthController | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:AuthController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-72-P` | 数据导出(GDPR) | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出(GDPR)|e2e:— |
+| `tests/test-cases/parent.md#TC-P-73-P` | 家庭/成员 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:家庭/成员|e2e:— |
+| `tests/test-cases/parent.md#TC-P-74-P` | 规划师绑定 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:规划师绑定|e2e:— |
+| `tests/test-cases/parent.md#TC-P-75-P` | 优惠券 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:优惠券|e2e:— |
+| `tests/test-cases/parent.md#TC-P-76-P` | 活动管理 | 家长 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:活动管理|e2e:— |
+| `tests/test-cases/parent.md#TC-P-77-P` | 活动 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:活动|e2e:— |
+| `tests/test-cases/parent.md#TC-P-78-P` | 消息服务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-79-P` | 消息服务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-80-P` | 会员/订单 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:会员/订单|e2e:— |
+| `tests/test-cases/parent.md#TC-P-81-P` | 方案/任务 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案/任务|e2e:— |
+| `tests/test-cases/parent.md#TC-P-82-P` | 搜索 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:搜索|e2e:— |
+| `tests/test-cases/parent.md#TC-P-83-P` | 客服 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:客服|e2e:— |
+| `tests/test-cases/parent.md#TC-P-84-P` | 分享 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:分享|e2e:— |
+| `tests/test-cases/parent.md#TC-P-85-P` | AuthController | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:AuthController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-86-P` | 勋章/排行 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:勋章/排行|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N01` | 健康报告 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:健康报告上传解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N02` | AI 方案 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:AiGateway/LangGraph|e2e:e2e/ai-plan-task-flow |
+| `tests/test-cases/parent.md#TC-P-N03` | 任务 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:TaskController|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N04` | 全局搜索 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:搜索接口|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N05` | 报告查看 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N06` | 双角色 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:双角色铁律|e2e:e2e/family-management |
+| `tests/test-cases/parent.md#TC-P-N07` | 饮食推荐 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:饮食推荐|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N08` | 设置 | 家长 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:前端适配|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N09` | 报告闭环 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:报告鉴权|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/parent.md#TC-P-N10` | AI 对话 | 家长 | P1 | 已关联自动化 | 未跟踪 | 设计:AIChatController|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/parent.md#TC-P-N11` | 健康报告 | 家长 | P0 | 已关联自动化 | 未跟踪 | 设计:上传校验|e2e:e2e/api/nonfunc-security.spec.js |
+| `tests/test-cases/parent.md#TC-P-N12` | 双角色 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:switch 接口鉴权|e2e:— |
+| `tests/test-cases/parent.md#TC-P-N13` | 设置 | 家长 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:数据安全|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-01` | 认证/双角色 | 规划师 | P0 | 已关联自动化 | 未跟踪 | 设计:`AuthController`;规划师可切回家长|e2e:`e2e/roles/teacher/login.spec.js` |
+| `tests/test-cases/teacher.md#TC-T-02` | 家庭绑定 | 规划师 | P1 | 已关联自动化 | 未跟踪 | 设计:`FamilyInviteController`|e2e:`e2e/roles/teacher/family-binding.spec.js` |
+| `tests/test-cases/teacher.md#TC-T-03` | 健康报告 | 规划师 | P0 | 已关联自动化 | 未跟踪 | 设计:报告上传解析;规划师代传|e2e:`e2e/roles/teacher/dan-report-flow.spec.js` |
+| `tests/test-cases/teacher.md#TC-T-04` | 报告审核 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告审核|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-05` | 方案管理 | 规划师 | P0 | 已关联自动化 | 未跟踪 | 设计:方案管理;黑盒回归项|e2e:`e2e/admin-panel.spec.js`(参考) |
+| `tests/test-cases/teacher.md#TC-T-06` | 方案审核 | 规划师 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-07` | 方案激活 | 规划师 | P0 | 已关联自动化 | 未跟踪 | 设计:激活拆任务|e2e:`e2e/ai-plan-task-flow.spec.js` |
+| `tests/test-cases/teacher.md#TC-T-08` | 方案激活·幂等 | 规划师 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:幂等约束(黑盒回归)|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-09` | 任务审核 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-10` | 测评录入 | 规划师 | P0 | 已关联自动化 | 未跟踪 | 设计:`AssessmentAppointmentController`/`DanAssessmentController`|e2e:`e2e/assessment-order-flow.spec.js` |
+| `tests/test-cases/teacher.md#TC-T-11` | 成长计划 | 规划师 | P1 | 已关联自动化 | 未跟踪 | 设计:`GrowthPlanController`;黑盒回归|e2e:`e2e/guide-family-list.spec.js`(参考) |
+| `tests/test-cases/teacher.md#TC-T-12` | 套餐 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GuidePackageController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-13` | 数据隔离 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:控制器内 role 检查|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-14` | 方案编辑 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-15` | 套餐任务 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GuidePackageController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-16` | 健康总览 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:仪表板|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-17` | 计划进度 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-18` | 批量任务 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-19` | 消息推送 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-20` | 退出/切换 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-21` | 报告对比 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-22` | 方案归档 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-23` | 报告代传/report-proxy | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告代传/report-proxy|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-24` | 规划师绑定 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:规划师绑定|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-25` | 舌诊情绪识别 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-26` | 精准营养 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:精准营养|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-27` | 家庭天盘 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:家庭天盘|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-28` | 内容安全 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-29` | 数据导出(GDPR) | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出(GDPR)|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-01-E` | 认证/双角色 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`;规划师可切回家长|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-02-E` | 家庭绑定 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-03-E` | 健康报告 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告上传解析;规划师代传|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-04-E` | 报告审核 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告审核|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-05-E` | 方案管理 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理;黑盒回归项|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-06-E` | 方案审核 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-07-E` | 方案激活 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:激活拆任务|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-08-E` | 方案激活·幂等 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:幂等约束(黑盒回归)|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-09-E` | 任务审核 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-10-E` | 测评录入 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`/`DanAssessmentController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-11-E` | 成长计划 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`;黑盒回归|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-12-E` | 套餐 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GuidePackageController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-13-E` | 数据隔离 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:控制器内 role 检查|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-14-E` | 方案编辑 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-15-E` | 套餐任务 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GuidePackageController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-16-E` | 健康总览 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:仪表板|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-17-E` | 计划进度 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-18-E` | 批量任务 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-19-E` | 消息推送 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-20-E` | 退出/切换 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-21-E` | 报告对比 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-22-E` | 方案归档 | 规划师 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-23-E` | 报告代传/report-proxy | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:报告代传/report-proxy|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-24-E` | 规划师绑定 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:规划师绑定|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-25-E` | 舌诊情绪识别 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-26-E` | 精准营养 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:精准营养|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-27-E` | 家庭天盘 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:家庭天盘|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-28-E` | 内容安全 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-29-E` | 数据导出(GDPR) | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出(GDPR)|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-01-P` | 认证/双角色 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`;规划师可切回家长|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-02-P` | 家庭绑定 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`FamilyInviteController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-03-P` | 健康报告 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告上传解析;规划师代传|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-04-P` | 报告审核 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告审核|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-05-P` | 方案管理 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理;黑盒回归项|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-06-P` | 方案审核 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-07-P` | 方案激活 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:激活拆任务|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-08-P` | 方案激活·幂等 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:幂等约束(黑盒回归)|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-09-P` | 任务审核 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-10-P` | 测评录入 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AssessmentAppointmentController`/`DanAssessmentController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-11-P` | 成长计划 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`;黑盒回归|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-12-P` | 套餐 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GuidePackageController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-13-P` | 数据隔离 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:控制器内 role 检查|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-14-P` | 方案编辑 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-15-P` | 套餐任务 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GuidePackageController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-16-P` | 健康总览 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:仪表板|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-17-P` | 计划进度 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`GrowthPlanController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-18-P` | 批量任务 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`TaskController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-19-P` | 消息推送 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:消息服务|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-20-P` | 退出/切换 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`AuthController`|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-21-P` | 报告对比 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-22-P` | 方案归档 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:方案管理|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-23-P` | 报告代传/report-proxy | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告代传/report-proxy|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-24-P` | 规划师绑定 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:规划师绑定|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-25-P` | 舌诊情绪识别 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:舌诊情绪识别|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-26-P` | 精准营养 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:精准营养|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-27-P` | 家庭天盘 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:家庭天盘|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-28-P` | 内容安全 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-29-P` | 数据导出(GDPR) | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:数据导出(GDPR)|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N01` | 健康报告 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:报告解析中台|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N02` | 方案审核 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案状态机|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N03` | 绑定家庭 | 规划师 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:绑定家庭|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N04` | 报告代传 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:代传入口|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N05` | 健康报告 | 规划师 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:规划师鉴权|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N06` | 方案审核 | 规划师 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:方案鉴权|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N07` | 舌诊录入 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:上传校验|e2e:— |
+| `tests/test-cases/teacher.md#TC-T-N08` | 精准营养 | 规划师 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:方案内容安全|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-01` | 入驻 | 服务商 | P1 | 已关联自动化 | 未跟踪 | 设计:`ServiceRoleApplicationController`/`AdminEcomSupplierController`|e2e:`e2e/roles/admin/vendor/management.spec.js` |
+| `tests/test-cases/vendor.md#TC-S-02` | 商品 | 服务商 | P0 | 已关联自动化 | 未跟踪 | 设计:`ProductController`/`AdminProductController`|e2e:`e2e/product-purchase.spec.js` |
+| `tests/test-cases/vendor.md#TC-S-03` | 订单 | 服务商 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:`ProductOrderController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-04` | 订单核销 | 服务商 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-05` | 库存 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:库存服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-06` | 售后 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:售后|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-07` | 活动报名 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:活动管理|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-08` | 对账 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:结算|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-9` | 服务商集成/解析中台 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:服务商集成/解析中台|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-10` | 食谱库 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:食谱库|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-11` | 合规 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:合规|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-01-E` | 入驻 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ServiceRoleApplicationController`/`AdminEcomSupplierController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-02-E` | 商品 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ProductController`/`AdminProductController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-03-E` | 订单 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:`ProductOrderController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-04-E` | 订单核销 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-05-E` | 库存 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:库存服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-06-E` | 售后 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:售后|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-07-E` | 活动报名 | 服务商 | P3 | 文档用例(待自动化) | 未跟踪 | 设计:活动管理|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-08-E` | 对账 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:结算|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-9-E` | 服务商集成/解析中台 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:服务商集成/解析中台|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-10-E` | 食谱库 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:食谱库|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-11-E` | 合规 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:合规|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-01-P` | 入驻 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ServiceRoleApplicationController`/`AdminEcomSupplierController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-02-P` | 商品 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ProductController`/`AdminProductController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-03-P` | 订单 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:`ProductOrderController`|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-04-P` | 订单核销 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-05-P` | 库存 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:库存服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-06-P` | 售后 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:售后|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-07-P` | 活动报名 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:活动管理|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-08-P` | 对账 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:结算|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-9-P` | 服务商集成/解析中台 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:服务商集成/解析中台|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-10-P` | 食谱库 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:食谱库|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-11-P` | 合规 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:合规|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-N01` | 商品 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:商品管理|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-N02` | 订单履约 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:订单服务|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-N03` | 入驻 | 服务商 | P2 | 文档用例(待自动化) | 未跟踪 | 设计:服务商后台|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-N04` | 订单履约 | 服务商 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:商户隔离|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-N05` | 报告解析接入 | 服务商 | P0 | 文档用例(待自动化) | 未跟踪 | 设计:上传校验|e2e:— |
+| `tests/test-cases/vendor.md#TC-S-N06` | 营养食谱 | 服务商 | P1 | 文档用例(待自动化) | 未跟踪 | 设计:内容安全|e2e:— |
+
+## 三、Playwright 端到端/集成(`tests/**/*.spec.js`)
+
+| 来源 | 用例数 | 自动化状态 | 执行状态 | 备注 |
+| --- | --- | --- | --- | --- |
+| `tests/e2e/_smoke_browser.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/activity-registration.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-activity-review.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-butler-review.spec.js` | 6 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-commission-config.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-ecom-supplier.spec.js` | 3 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-menu-survey.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-panel.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/admin-promotion-config.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/ai-plan-task-flow.spec.js` | 7 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/api-smoke.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/article-api.spec.js` | 7 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/contact-api.spec.js` | 6 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/energy-api.spec.js` | 9 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/family-member-api.spec.js` | 14 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/nonfunc-perf-compat.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/api/nonfunc-security.spec.js` | 11 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/article-management.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/assessment-appointment-functional.spec.js` | 7 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/assessment-appointment.spec.js` | 6 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/assessment-order-flow.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/consignee-management.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/contact-management.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/daily-checkin-streak.spec.js` | 9 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/dan-assessment-vendor-flow.spec.js` | 10 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/dan-report-flow.spec.js` | 9 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/debug-admin-spa.spec.js` | 1 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/debug-control.spec.js` | 1 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/debug-full-instrument.spec.js` | 1 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/energy-rules-config.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/energy-system.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/family-earnings-flow.spec.js` | 6 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/family-member-management.spec.js` | 10 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/flora-microbiome-flow.spec.js` | 9 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/growth-record-sync.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/guide-family-list.spec.js` | 7 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/health-knowledge-base.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/health-report-audit.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/mass-create-users.spec.js` | 1 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/membership-system.spec.js` | 3 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/mini-games-full.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/mini-games-playwright.spec.js` | 12 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/mini-games.spec.js` | 14 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/nutritionist-apply.spec.js` | 3 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/nutritionist-flow.spec.js` | 10 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/planner-bind-invite.spec.js` | 9 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/points-system.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/product-purchase.spec.js` | 9 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/publish-dimension-articles.spec.js` | 1 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/admin/article/workflow.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/admin/login.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/admin/vendor/management.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/child/daily-checkin.spec.js` | 3 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/child/login.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/child/mini-games.spec.js` | 3 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/parent/assessment-order.spec.js` | 6 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/parent/energy-dashboard.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/parent/family-management.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/parent/points.spec.js` | 6 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/parent/wish-management.spec.js` | 5 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/teacher/family-binding.spec.js` | 4 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/roles/teacher/login.spec.js` | 2 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/teacher-dashboard.spec.js` | 10 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/unified-audit-center.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/vendor-onboarding.spec.js` | 3 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/vendor-product-manage.spec.js` | 8 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/e2e/wish-exchange-flow.spec.js` | 12 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/integration/mini-games-api.spec.js` | 13 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/integration/plan-chain.spec.js` | 10 | 已自动化(e2e) | 未跟踪 | — |
+| `tests/unit/games/1a2b.spec.js` | 1 | 已自动化(e2e) | 未跟踪 | — |
+
+## 四、Python 测试(`cfc-langgraph/tests` · `tools/xaf_agent_hub/tests`)
+
+| 来源 | 用例数 | 自动化状态 | 执行状态 | 备注 |
+| --- | --- | --- | --- | --- |
+| `cfc-langgraph/tests/qna/test_graph.py` | 4 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_analyze.py` | 2 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_auto_tag.py` | 5 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_chat.py` | 1 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_graph.py` | 5 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_health_plan.py` | 13 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_intent.py` | 5 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_memory.py` | 3 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_recommend.py` | 3 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_report_parse.py` | 5 | 已自动化(pytest) | 未跟踪 | — |
+| `cfc-langgraph/tests/test_tongue.py` | 1 | 已自动化(pytest) | 未跟踪 | — |
+| `tools/xaf_agent_hub/tests/test_smart_cleanup.py` | 8 | 已自动化(pytest) | 未跟踪 | — |
+
+## 五、Java 后端测试(`cfc-backend/src/test/java`)
+
+| 来源 | 用例数 | 自动化状态 | 执行状态 | 目标类 |
+| --- | --- | --- | --- | --- |
+| `cfc-backend/src/test/java/com/etotem/cfc/common/AdminRolesTest.java` | 9 | 已自动化(@Test) | 未跟踪 | AdminRoles |
+| `cfc-backend/src/test/java/com/etotem/cfc/common/TestRoles.java` | 0 | 已自动化(@Test) | 未跟踪 | TestRoles.java |
+| `cfc-backend/src/test/java/com/etotem/cfc/config/AttributionStage1FoundationTest.java` | 7 | 已自动化(@Test) | 未跟踪 | AttributionStage1Foundation |
+| `cfc-backend/src/test/java/com/etotem/cfc/config/DatabaseInitializerSeedTest.java` | 6 | 已自动化(@Test) | 未跟踪 | DatabaseInitializerSeed |
+| `cfc-backend/src/test/java/com/etotem/cfc/config/FamilyAccessInterceptorTest.java` | 11 | 已自动化(@Test) | 未跟踪 | FamilyAccessInterceptor |
+| `cfc-backend/src/test/java/com/etotem/cfc/config/JwtInterceptorLoginRequiredTest.java` | 5 | 已自动化(@Test) | 未跟踪 | JwtInterceptorLoginRequired |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/AttributionControllerTest.java` | 1 | 已自动化(@Test) | 未跟踪 | AttributionController |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/AttributionSurveyRoutingTest.java` | 3 | 已自动化(@Test) | 未跟踪 | AttributionSurveyRouting |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthCheckinCfEarnCallSiteTest.java` | 6 | 已自动化(@Test) | 未跟踪 | HealthCheckinCfEarnCallSite |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthPlanDeleteControllerTest.java` | 6 | 已自动化(@Test) | 未跟踪 | HealthPlanDeleteController |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthReportControllerProxyParseBindingTest.java` | 6 | 已自动化(@Test) | 未跟踪 | HealthReportControllerProxyParseBinding |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/IndicatorControllerTest.java` | 2 | 已自动化(@Test) | 未跟踪 | IndicatorController |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/IndicatorFavoriteControllerTest.java` | 10 | 已自动化(@Test) | 未跟踪 | IndicatorFavoriteController |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/admin/AdminProductControllerBatchShelveTest.java` | 4 | 已自动化(@Test) | 未跟踪 | AdminProductControllerBatchShelve |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/admin/ReportParserAdminControllerTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ReportParserAdminController |
+| `cfc-backend/src/test/java/com/etotem/cfc/controller/family/FamilyMembersControllerListTest.java` | 4 | 已自动化(@Test) | 未跟踪 | FamilyMembersControllerList |
+| `cfc-backend/src/test/java/com/etotem/cfc/dto/ActivityDTOTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ActivityDTO |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/DailyCheckinStreakFlowTest.java` | 6 | 已自动化(@Test) | 未跟踪 | DailyCheckinStreakFlow |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/EnergySystemFlowTest.java` | 7 | 已自动化(@Test) | 未跟踪 | EnergySystemFlow |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/GrowthRecordSyncFlowTest.java` | 10 | 已自动化(@Test) | 未跟踪 | GrowthRecordSyncFlow |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/GuideModuleIntegrationTest.java` | 4 | 已自动化(@Test) | 未跟踪 | GuideModule |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/PlannerBindInviteFlowTest.java` | 9 | 已自动化(@Test) | 未跟踪 | PlannerBindInviteFlow |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AIChatControllerTest.java` | 17 | 已自动化(@Test) | 未跟踪 | AIChatController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ActivityControllerTest.java` | 16 | 已自动化(@Test) | 未跟踪 | ActivityController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AdminFamilyOverviewControllerTest.java` | 3 | 已自动化(@Test) | 未跟踪 | AdminFamilyOverviewController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AdminSpecialPriceControllerTest.java` | 8 | 已自动化(@Test) | 未跟踪 | AdminSpecialPriceController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ArticleCategoryControllerTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ArticleCategoryController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ArticleControllerTest.java` | 11 | 已自动化(@Test) | 未跟踪 | ArticleController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AuthControllerTest.java` | 39 | 已自动化(@Test) | 未跟踪 | AuthController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/DailyTaskControllerTest.java` | 2 | 已自动化(@Test) | 未跟踪 | DailyTaskController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/DimensionAdminControllerTest.java` | 13 | 已自动化(@Test) | 未跟踪 | DimensionAdminController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/FamilyControllerTest.java` | 8 | 已自动化(@Test) | 未跟踪 | FamilyController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideFamilyTaskControllerTest.java` | 20 | 已自动化(@Test) | 未跟踪 | GuideFamilyTaskController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideOrderControllerTest.java` | 8 | 已自动化(@Test) | 未跟踪 | GuideOrderController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideRolePermissionTest.java` | 21 | 已自动化(@Test) | 未跟踪 | GuideRolePermission |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideTeamControllerTest.java` | 9 | 已自动化(@Test) | 未跟踪 | GuideTeamController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/HealthDimensionControllerTest.java` | 15 | 已自动化(@Test) | 未跟踪 | HealthDimensionController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/PaymentControllerTest.java` | 12 | 已自动化(@Test) | 未跟踪 | PaymentController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ProductControllerTest.java` | 16 | 已自动化(@Test) | 未跟踪 | ProductController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ProductOrderControllerTest.java` | 20 | 已自动化(@Test) | 未跟踪 | ProductOrderController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/SpecialPriceControllerTest.java` | 3 | 已自动化(@Test) | 未跟踪 | SpecialPriceController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/StatsControllerTest.java` | 6 | 已自动化(@Test) | 未跟踪 | StatsController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/WishControllerTest.java` | 29 | 已自动化(@Test) | 未跟踪 | WishController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/mind/MindFortuneControllerTest.java` | 1 | 已自动化(@Test) | 未跟踪 | MindFortuneController |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ActivityAdminServiceTest.java` | 10 | 已自动化(@Test) | 未跟踪 | ActivityAdminService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ActivityServicePublishTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ActivityServicePublish |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ArticleWorkflowTest.java` | 14 | 已自动化(@Test) | 未跟踪 | ArticleWorkflow |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ChallengeScoreServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | ChallengeScoreService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DailyOverviewServiceTest.java` | 1 | 已自动化(@Test) | 未跟踪 | DailyOverviewService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DanReportParseServiceTest.java` | 38 | 已自动化(@Test) | 未跟踪 | DanReportParseService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DataMigrationServiceTest.java` | 11 | 已自动化(@Test) | 未跟踪 | DataMigrationService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DimensionEnergySyncServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | DimensionEnergySyncService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DimensionScoreServiceTest.java` | 21 | 已自动化(@Test) | 未跟踪 | DimensionScoreService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FamilyFoodOverviewServiceTest.java` | 9 | 已自动化(@Test) | 未跟踪 | FamilyFoodOverviewService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FiveDimensionSelfCheckServiceTest.java` | 2 | 已自动化(@Test) | 未跟踪 | FiveDimensionSelfCheckService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FoodRecommendServiceTest.java` | 18 | 已自动化(@Test) | 未跟踪 | FoodRecommendService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FoodServiceTest.java` | 12 | 已自动化(@Test) | 未跟踪 | FoodService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FortuneServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | FortuneService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuideApplicationServiceTest.java` | 8 | 已自动化(@Test) | 未跟踪 | GuideApplicationService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuideFamilyServiceTest.java` | 7 | 已自动化(@Test) | 未跟踪 | GuideFamilyService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuideHierarchyServiceTest.java` | 10 | 已自动化(@Test) | 未跟踪 | GuideHierarchyService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuidePackageServiceTest.java` | 13 | 已自动化(@Test) | 未跟踪 | GuidePackageService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuidePackageTemplateServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | GuidePackageTemplateService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/MiniGameServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | MiniGameService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/NutritionDeficiencyServiceTest.java` | 14 | 已自动化(@Test) | 未跟踪 | NutritionDeficiencyService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/PdfParseServiceTest.java` | 11 | 已自动化(@Test) | 未跟踪 | PdfParseService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/RelationshipQuestionnaireServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | RelationshipQuestionnaireService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ReportBlockAssemblerTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ReportBlockAssembler |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ServiceContentServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ServiceContentService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ServiceTypeServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | ServiceTypeService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/SupplySystemServiceTest.java` | 18 | 已自动化(@Test) | 未跟踪 | SupplySystemService |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/TaskServiceMinigameTest.java` | 5 | 已自动化(@Test) | 未跟踪 | TaskServiceMinigame |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/TeacherLoginTest.java` | 4 | 已自动化(@Test) | 未跟踪 | TeacherLogin |
+| `cfc-backend/src/test/java/com/etotem/cfc/integration/service/impl/DimensionScoreServiceImplTest.java` | 6 | 已自动化(@Test) | 未跟踪 | DimensionScoreServiceImpl |
+| `cfc-backend/src/test/java/com/etotem/cfc/orchestration/OrchestrationEngineTest.java` | 8 | 已自动化(@Test) | 未跟踪 | OrchestrationEngine |
+| `cfc-backend/src/test/java/com/etotem/cfc/orchestration/OrchestrationIntegrationTest.java` | 7 | 已自动化(@Test) | 未跟踪 | Orchestration |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ActivityOrderServiceTest.java` | 15 | 已自动化(@Test) | 未跟踪 | ActivityOrderService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ActivityRegistrationQuotaConcurrencyTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ActivityRegistrationQuotaConcurrency |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/AiGatewayTimeoutTest.java` | 1 | 已自动化(@Test) | 未跟踪 | AiGatewayTimeout |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ArticleAudioServiceChunkFilterTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ArticleAudioServiceChunkFilter |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfBalanceServiceTest.java` | 25 | 已自动化(@Test) | 未跟踪 | CfBalanceService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfCommissionServiceSettleTest.java` | 12 | 已自动化(@Test) | 未跟踪 | CfCommissionServiceSettle |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfCommissionServiceTest.java` | 2 | 已自动化(@Test) | 未跟踪 | CfCommissionService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfEarnDispatchServiceTest.java` | 8 | 已自动化(@Test) | 未跟踪 | CfEarnDispatchService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfGrowthPathwayEarnServiceTest.java` | 16 | 已自动化(@Test) | 未跟踪 | CfGrowthPathwayEarnService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfLegacyLedgerMigrationServiceTest.java` | 3 | 已自动化(@Test) | 未跟踪 | CfLegacyLedgerMigrationService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfLegacyLedgerWiringTest.java` | 5 | 已自动化(@Test) | 未跟踪 | CfLegacyLedgerWiring |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfPathwayEarnServiceTest.java` | 32 | 已自动化(@Test) | 未跟踪 | CfPathwayEarnService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfReferralServiceSalesTierTest.java` | 11 | 已自动化(@Test) | 未跟踪 | CfReferralServiceSalesTier |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfSpendDispatchServiceTest.java` | 11 | 已自动化(@Test) | 未跟踪 | CfSpendDispatchService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CfTransferServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | CfTransferService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CommissionDistService410Test.java` | 4 | 已自动化(@Test) | 未跟踪 | CommissionDistService410 |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/CommissionServiceReferralF24Test.java` | 5 | 已自动化(@Test) | 未跟踪 | CommissionServiceReferralF24 |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ConsigneeServiceBackfillTest.java` | 2 | 已自动化(@Test) | 未跟踪 | ConsigneeServiceBackfill |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/EnergyServiceFamilyTest.java` | 2 | 已自动化(@Test) | 未跟踪 | EnergyServiceFamily |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/EnergyServiceWealthIncomeTest.java` | 4 | 已自动化(@Test) | 未跟踪 | EnergyServiceWealthIncome |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/FamilyAdminOverviewServiceTest.java` | 3 | 已自动化(@Test) | 未跟踪 | FamilyAdminOverviewService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/FamilyJoinRequestServiceReferrerBindTest.java` | 5 | 已自动化(@Test) | 未跟踪 | FamilyJoinRequestServiceReferrerBind |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/FamilyPlatformPointsServiceCouponTest.java` | 5 | 已自动化(@Test) | 未跟踪 | FamilyPlatformPointsServiceCoupon |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceAuditConfirmTest.java` | 8 | 已自动化(@Test) | 未跟踪 | HealthReportServiceAuditConfirm |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceBackfillResilienceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | HealthReportServiceBackfillResilience |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceIndicatorsTest.java` | 3 | 已自动化(@Test) | 未跟踪 | HealthReportServiceIndicators |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceTest.java` | 8 | 已自动化(@Test) | 未跟踪 | HealthReportService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorChangeServiceSemanticTest.java` | 20 | 已自动化(@Test) | 未跟踪 | IndicatorChangeServiceSemantic |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorChangeServiceTest.java` | 23 | 已自动化(@Test) | 未跟踪 | IndicatorChangeService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorCorrelationServiceTest.java` | 1 | 已自动化(@Test) | 未跟踪 | IndicatorCorrelationService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorFavoriteServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | IndicatorFavoriteService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorMappingServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | IndicatorMappingService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorTimelineServiceTest.java` | 12 | 已自动化(@Test) | 未跟踪 | IndicatorTimelineService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorTrendServiceTest.java` | 9 | 已自动化(@Test) | 未跟踪 | IndicatorTrendService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorValueMapperTest.java` | 1 | 已自动化(@Test) | 未跟踪 | IndicatorValueMapper |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/MembershipPaySwitchTest.java` | 6 | 已自动化(@Test) | 未跟踪 | MembershipPaySwitch |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/MembershipServiceTest.java` | 17 | 已自动化(@Test) | 未跟踪 | MembershipService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/NormalizeIndicatorPipelineTest.java` | 3 | 已自动化(@Test) | 未跟踪 | NormalizeIndicatorPipeline |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/NumSoulCalculatorTest.java` | 5 | 已自动化(@Test) | 未跟踪 | NumSoulCalculator |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/PaymentServiceORDRoutingTest.java` | 3 | 已自动化(@Test) | 未跟踪 | PaymentServiceORDRouting |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/PlatformPointsServiceTest.java` | 9 | 已自动化(@Test) | 未跟踪 | PlatformPointsService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/PointsExchangeServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | PointsExchangeService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderComboStockTest.java` | 5 | 已自动化(@Test) | 未跟踪 | ProductOrderComboStock |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderServiceFulfillmentMultiModeTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ProductOrderServiceFulfillmentMultiMode |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderServiceSpecialDealTest.java` | 8 | 已自动化(@Test) | 未跟踪 | ProductOrderServiceSpecialDeal |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderServiceUpdateExpressFieldTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ProductOrderServiceUpdateExpressField |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/RealNameBackfillServiceTest.java` | 8 | 已自动化(@Test) | 未跟踪 | RealNameBackfillService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ReportAnalyzeQuotaServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ReportAnalyzeQuotaService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ReportDateExtractorTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ReportDateExtractor |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/ReportSummaryServiceCompletenessTest.java` | 1 | 已自动化(@Test) | 未跟踪 | ReportSummaryServiceCompleteness |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/SpecialPriceServiceTest.java` | 9 | 已自动化(@Test) | 未跟踪 | SpecialPriceService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/TaskServiceCfEarnTest.java` | 4 | 已自动化(@Test) | 未跟踪 | TaskServiceCfEarn |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/TencentTtsServiceAuthorizationTest.java` | 4 | 已自动化(@Test) | 未跟踪 | TencentTtsServiceAuthorization |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/UserAddressServiceBackfillTest.java` | 2 | 已自动化(@Test) | 未跟踪 | UserAddressServiceBackfill |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/UserServiceEffectiveFamilyIdsTest.java` | 5 | 已自动化(@Test) | 未跟踪 | UserServiceEffectiveFamilyIds |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/UserServiceFamilyNameLinkTest.java` | 2 | 已自动化(@Test) | 未跟踪 | UserServiceFamilyNameLink |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/WishServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | WishService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/WithdrawalServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | WithdrawalService |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/impl/CfGrowthEarnCallSiteTest.java` | 4 | 已自动化(@Test) | 未跟踪 | CfGrowthEarnCallSite |
+| `cfc-backend/src/test/java/com/etotem/cfc/service/impl/PurchaseServiceImplRenewalTest.java` | 4 | 已自动化(@Test) | 未跟踪 | PurchaseServiceImplRenewal |
+| `cfc-backend/src/test/java/com/etotem/cfc/task/OrderTimeoutCancelTaskSpecialDealTest.java` | 3 | 已自动化(@Test) | 未跟踪 | OrderTimeoutCancelTaskSpecialDeal |
+| `cfc-backend/src/test/java/com/etotem/cfc/task/TaskCheckinWebhookReminderTaskTest.java` | 7 | 已自动化(@Test) | 未跟踪 | TaskCheckinWebhookReminderTask |
+| `cfc-backend/src/test/java/com/etotem/cfc/task/VirtualPayTimeoutTaskTest.java` | 5 | 已自动化(@Test) | 未跟踪 | VirtualPayTimeoutTask |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityAuditTest.java` | 10 | 已自动化(@Test) | 未跟踪 | ActivityAudit |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityRegistrationListTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ActivityRegistrationList |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityRegistrationQuotaUnitTest.java` | 8 | 已自动化(@Test) | 未跟踪 | ActivityRegistrationQuotaUnit |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityRegistrationRejectTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ActivityRegistrationReject |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityTagServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | ActivityTagService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ArticleAutoTagServiceTest.java` | 8 | 已自动化(@Test) | 未跟踪 | ArticleAutoTagService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ArticleBackfillTest.java` | 2 | 已自动化(@Test) | 未跟踪 | ArticleBackfill |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ArticleRelatedServiceTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ArticleRelatedService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionAdjustServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | AttributionAdjustService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionPipelineMockTest.java` | 2 | 已自动化(@Test) | 未跟踪 | AttributionPipelineMock |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionPlanServiceTest.java` | 2 | 已自动化(@Test) | 未跟踪 | AttributionPlanService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionRedlinesTest.java` | 8 | 已自动化(@Test) | 未跟踪 | AttributionRedlines |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/BundlePricingCalculatorTest.java` | 9 | 已自动化(@Test) | 未跟踪 | BundlePricingCalculator |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/BundlePricingServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | BundlePricingService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/CartServiceTest.java` | 3 | 已自动化(@Test) | 未跟踪 | CartService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/CfBalanceControllerTest.java` | 8 | 已自动化(@Test) | 未跟踪 | CfBalanceController |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ConditionEvaluatorServiceTest.java` | 12 | 已自动化(@Test) | 未跟踪 | ConditionEvaluatorService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/FamilyMemberDimensionBaseScoreServiceTest.java` | 7 | 已自动化(@Test) | 未跟踪 | FamilyMemberDimensionBaseScoreService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/FamilyNamingSupportTest.java` | 5 | 已自动化(@Test) | 未跟踪 | FamilyNamingSupport |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/FiveDimensionScoreServiceTest.java` | 12 | 已自动化(@Test) | 未跟踪 | FiveDimensionScoreService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/GuideFamilyAccessGuardTest.java` | 9 | 已自动化(@Test) | 未跟踪 | GuideFamilyAccessGuard |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/GuideFamilyQueryServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | GuideFamilyQueryService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/GuideFamilyServiceBindTest.java` | 3 | 已自动化(@Test) | 未跟踪 | GuideFamilyServiceBind |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/GuidePlanReviewControllerAuthTest.java` | 6 | 已自动化(@Test) | 未跟踪 | GuidePlanReviewControllerAuth |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/HealthPlanDeleteCascadeTest.java` | 6 | 已自动化(@Test) | 未跟踪 | HealthPlanDeleteCascade |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/HealthPlanLazyBackfillTest.java` | 5 | 已自动化(@Test) | 未跟踪 | HealthPlanLazyBackfill |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/HealthPlanReviewGuardTest.java` | 10 | 已自动化(@Test) | 未跟踪 | HealthPlanReviewGuard |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/KnowledgeBaseBackfillTest.java` | 9 | 已自动化(@Test) | 未跟踪 | KnowledgeBaseBackfill |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/MemberPriceResolverTest.java` | 6 | 已自动化(@Test) | 未跟踪 | MemberPriceResolver |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductDTOMappingTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ProductDTOMapping |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductListNutritionTagFilterTest.java` | 2 | 已自动化(@Test) | 未跟踪 | ProductListNutritionTagFilter |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductOrderServiceTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ProductOrderService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductSkuComboServiceTest.java` | 5 | 已自动化(@Test) | 未跟踪 | ProductSkuComboService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductUpdateClearTest.java` | 5 | 已自动化(@Test) | 未跟踪 | ProductUpdateClear |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/RecommendationNutritionTagTest.java` | 1 | 已自动化(@Test) | 未跟踪 | RecommendationNutritionTag |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/RepeatTaskGeneratorPassThroughTest.java` | 3 | 已自动化(@Test) | 未跟踪 | RepeatTaskGeneratorPassThrough |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ReviewCenterSummaryTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ReviewCenterSummary |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ServiceRoleApproveTest.java` | 6 | 已自动化(@Test) | 未跟踪 | ServiceRoleApprove |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/ServiceRoleFilterTest.java` | 3 | 已自动化(@Test) | 未跟踪 | ServiceRoleFilter |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/TaskPlanServiceTest.java` | 4 | 已自动化(@Test) | 未跟踪 | TaskPlanService |
+| `cfc-backend/src/test/java/com/etotem/cfc/unit/TaskProgressUpdateTest.java` | 3 | 已自动化(@Test) | 未跟踪 | TaskProgressUpdate |
+| `cfc-backend/src/test/java/com/etotem/cfc/util/CfFormulaEvaluatorTest.java` | 8 | 已自动化(@Test) | 未跟踪 | CfFormulaEvaluator |
+| `cfc-backend/src/test/java/com/etotem/cfc/util/SpearmanUtilTest.java` | 6 | 已自动化(@Test) | 未跟踪 | SpearmanUtil |
+
+## 六、用户场景(`tests/user-scenarios/*.md`,上游输入)
+
+| 来源 | 用例数 | 自动化状态 | 执行状态 | 备注 |
+| --- | --- | --- | --- | --- |
+| `tests/user-scenarios/01-guest.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 6 个 |
+| `tests/user-scenarios/02-parent.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 13 个 |
+| `tests/user-scenarios/03-child.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 9 个 |
+| `tests/user-scenarios/04-teacher.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 9 个 |
+| `tests/user-scenarios/05-admin.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 8 个 |
+| `tests/user-scenarios/06-vendor.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 4 个 |
+| `tests/user-scenarios/README.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 4 个 |
+| `tests/user-scenarios/应用场景总览.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 23 个 |
+
+## 七、回写与发布流程(本地侧车 → 共享台账)
+
+1. **本地工作(私有,不推送)**:在 `.tdd/test-progress.json` 的 `progress[anchor]` 写执行状态。
+   - `anchor` = `source_path#local_id`(如 `tests/test-cases/admin.md#TC-A-01`)。
+   - 重新播种 anchors(保留已有 progress):`python test_inventory.py --emit-progress`。
+2. **发布共享(推送给测试团队)**:运行本脚本(默认即生成此文件),把 `docs/tdd/` 下文档提交推送。
+   - 命令:`python test_inventory.py --automation-status`(或直接 `python test_inventory.py`)。
+3. **原始用例零侵入**:`.md/.spec.js/.py/.java` 一律不改;`.tdd/` 已在 `.gitignore` 排除。

+ 1 - 0
docs/tdd/test/inventory.md

@@ -1011,3 +1011,4 @@
 - `anchor` = `source_path#local_id`(如 `tests/test-cases/admin.md#TC-A-01`)。
 - `anchor` = `source_path#local_id`(如 `tests/test-cases/admin.md#TC-A-01`)。
 - 回写时仅更新 `progress[anchor]`;原始 `.md/.spec.js/.py` 一律不动,原项目结构零侵入。
 - 回写时仅更新 `progress[anchor]`;原始 `.md/.spec.js/.py` 一律不动,原项目结构零侵入。
 - 用 `test_inventory.py --emit-progress` 可(重新)播种 anchors(保留已有 progress)。
 - 用 `test_inventory.py --emit-progress` 可(重新)播种 anchors(保留已有 progress)。
+- **共享自动化状态**:本脚本默认生成 `docs/tdd/test/automation-status.md`(团队共享),按 anchor 标注「自动化状态 + 执行状态」;本地侧车 `.tdd/test-progress.json` 不推送。