# T5 Memory Web Lab 增强设计（入门→精通）

> 日期：2026-10-20（Asia/Shanghai）  
> 定位：独立培训工具 · 非爱德万官方 · 不含 FutureSuite/TESIM · 非真机时序  
> 默认端口：**8766**（避免与 Windows 上 RevitAgent 的 8765 冲突）

## 1. 目标

把 MVP（五章 + 基础跑测）升级为「入门→精通」完整路径：

1. **讲义**：每章可读段落（`docs/tutorial.md`）
2. **练习**：选择题 / 步骤排序题 / 场景任务题（`curriculum.json` → `exercises[]`）
3. **模拟器**：阶段与章节 ID 同步；接触→漏电→March→Fail Map→分档→简化冗余→综合

## 2. 章节 ID（稳定契约）

权威三角：`tutorial.md` `<!-- chapter:ID -->` ≡ `curriculum.chapters[].id` ≡ `scenarios/<primary>.stages[].id`

| order | id | 中文标题 | 有测项 step？ | 模拟器动作 |
|------:|----|----------|:------------:|------------|
| 1 | `intro` | 概述与定位 | 否 | 读免责 + 产业地图 |
| 2 | `hw_sw` | 硬件与软件概念 | 否 | 看 Test Head / Site / ALPG 示意卡 |
| 3 | `msp` | Main / Socket / Pattern | 否 | 读程序三件套卡片 |
| 4 | `continuity` | 接触 / 开短路 | 是 | 跑接触；对照 os-fail-demo |
| 5 | `leakage` | 输入漏电 | 是 | 看漏电结果；可对照泄漏场景 |
| 6 | `march_func` | March 功能测 | 是 | 跑 March C- 教学变体 |
| 7 | `failmap` | Fail Map | 否（可视化 march） | 看假热力图 |
| 8 | `bin` | SoftBin / HardBin 分档 | 是 | 读分档胶囊 |
| 9 | `redundancy` | 冗余修复概念 | 是（新） | 假故障→spare 行/列→重测 |
| 10 | `mastery` | 综合练习 | 混合 | 闯关：选场景 + 答对期望 bin |

保留既有 id：`msp` / `continuity` / `march_func` / `failmap` / `bin`（不改名）。

主场景仍为 `continuity-march-bin`，`stages[]` 扩至上表 10 项；`steps[]` 增加可选 `redundancy`（教学步，默认主场景可含简化演示或由专项场景覆盖）。

## 3. 练习模型

```json
{
  "id": "msp-q1",
  "type": "choice|order|scenario",
  "prompt": "...",
  "options": ["..."],          // choice
  "answer": 0,                 // choice 正确下标
  "items": ["A","B","C"],      // order 乱序展示源
  "answerOrder": [0,1,2],      // order 正确顺序（相对 items 原下标）
  "scenarioId": "...",         // scenario
  "expect": { "label": "OS_FAIL", "softbin": 10 },
  "explain": "答完后展示"
}
```

API：`POST /api/quiz/grade` `{ chapterId, answers: { [exerciseId]: number|number[]|object } }`  
返回每题对错与讲解；不持久化分数（仍无多租户）。

## 4. 引擎增强

- 保持零 npm 依赖；`PORT` 默认 **8766**，`HOST` 默认 `0.0.0.0`
- 新增 `lib/redundancy.js`：对 fail 坐标做教学用贪心行/列覆盖（非产线最优）
- `engine` 支持 `type: "redundancy"`：输入 fail 列表或前置 march 失败，输出 `repairable` / `plan` / 可选 `retestPass`
- 既有 continuity / leakage / march / idd / binning 行为不变

## 5. UI

- Tab：实验台 | 教程 | **练习** | 同步课堂 | 说明
- 教程：章节列表 + 讲义；跟随 `tutorialChapterId`
- 练习：按当前章加载题目；提交后显示对错与讲解
- 实验台：阶段导航与章 id 高亮；Fail Map；冗余结果卡
- 中文 UI

## 6. 场景文件

| id | 用途 |
|----|------|
| `continuity-march-bin` | 主培训（对齐 10 章 stages） |
| `all-pass-golden` | GOOD 对照 |
| `os-fail-demo` | DQ3 开路 → OS_FAIL |
| `leakage-fail-demo` | 漏电超限 → LEAK_FAIL |
| `redundancy-lab` | 可修复故障 → 冗余演示 |
| `mastery-mix` | 综合：接触过、功能有 stuck |

## 7. Smoke

覆盖：health（service 名不变）、curriculum `aligned`、主场景 bin=FUNC_FAIL、quiz grade、tutorial 含 `chapter:intro` 与 `chapter:mastery`、房间推章 `failmap` 的 stageIndex 与新序一致。

## 8. 非目标（不变）

真机时序、FutureSuite/TESIM、客户图样、多租户持久化、远程 merge。
