你是一名资深前端原型工程师。你的任务是：生成一个“场景确认”用的网页，用于业务方逐条确认场景列表；必须单独生成一个 `scenario.html`，用于访问与串联其他页面（包含移动端页面入口时也应能从此页进入）。

输入信息包含：
- 场景列表（/specs/background/scenarios.md）
- 场景细节（/specs/background/scenario_details/ 或 /specs/background/scenario_details.md（旧版））
- 角色与功能（/specs/background/roles.md、/specs/functions/*）

实现目标：
1. 在原型工程根目录新增：`/specs/prototypes/scenario.html`，可直接访问
2. `scenario.html` 页面布局固定为：
   - 左侧：场景列表（展示编号、名称）
   - 右侧：当前选中场景的详细展开，包含：
     - 场景节点链条（按顺序展示 apply/approve/cancel/change/execute-start/execute-end 等节点）
     - 点击节点：在右侧的“原型预览”区域展示对应界面原型（可切换 Web/Mobile；并可一键新标签页打开）
3. 左侧场景列表必须与 `/specs/background/scenarios.md` 完全一致：
   - 不允许遗漏任何一条场景（即使原型未实现该场景的全部页面，也必须显示在列表中）
   - 编号、场景名、节点链条的文本必须逐条对齐 scenarios.md（允许做必要的格式化，但不得改写含义）
   - 若原型数据源为手工转写（方式 A），必须先逐行校验总数与编号连续性；发现不一致时必须修正后再输出
   - 若原型数据源为 json（方式 B），必须确保 json 是从 scenarios.md 全量生成而来
3. 支持对每个场景进行确认操作：
   - 状态：待确认 / 已确认 / 需修改
   - 备注：可填写文本

实现约束：
- 必须使用固定 HTML 模板以保证预览页面稳定性（必须）：
  - 模板内置了中日英三语切换功能。在生成时必须逐字节复制 `prompts/vspec_verify/scenario.html` 并写入 `/specs/prototypes/scenario.html`。
  - 严禁使用任何其他目录下的 `scenario.html` 模板（必须）。
  - 禁止改动模板的 DOM 结构与样式；场景数据必须通过外部 JSON 文件加载，文件名固定为 `scenario.json`（与 `scenario.html` 同目录）。
- `scenario.html` 不要做成简单跳转页，必须承载上述左右布局与交互。
- 场景数据必须来源于 `/specs/background/scenarios.md`（必要时结合 `/specs/background/scenario_details/` 或旧版 `scenario_details.md` 进行节点补齐/纠正）。
- 不需要实现登录与后端存储；确认结果保存在浏览器 localStorage 即可（模板已实现）。

页面节点映射规则（必须）：
1. 为每种节点类型建立默认页面映射（可用路由路径或页面组件名表达）：
   - apply → `/apply`
   - approve → `/approve`
   - execute-start / execute-end → `/execute`
   - change → `/change`
   - cancel → `/cancel`
2. 若原型中按 functions 拆分出更细页面（例如 apply/list、apply/form、approve/detail），则在 `scenario.html` 的右侧为每个节点选择“最贴近该节点操作”的页面作为缩略图来源
3. 原型查看方式（必须）：
  - 节点列表必须展示页面名称与路由路径（route/mobileRoute/pageName）
  - 节点必须提供“新标签页打开”入口：点击后跳转到该路由的正常页面（全屏内容，带完整 Header + Menu）
4. 移动端入口（命中则必须）：
   - 若存在移动端页面（`/m/*`），必须在场景详情区为相关节点提供“打开移动端页面”入口（跳转到对应 `/m/*` 路由），方便评审直接访问移动端页面。

输出与写入要求：
1. 将页面代码与工程改动写入到 `/specs/prototypes/` 目录下的原型工程中
2. 必须在 `/specs/prototypes/` 下额外生成外部数据文件：`/specs/prototypes/scenario.json`（与 `scenario.html` 同目录，文件名固定不得改），并在 `scenario.html` 中通过相对路径 `./scenario.json` 加载。
3. `scenario.json` 数据结构要求如下（必须）：
   - `{ meta: { generatedAt: string }, scenarios: Scenario[] }`
   - `Scenario = { id: string, name: string, nodes: Node[] }`
   - `Node = { type: string, label: string, route?: string, mobileRoute?: string, pageName?: string }`
   - `scenarios` 必须覆盖 `/specs/background/scenarios.md` 全量条目，不得遗漏；`id` 与 `name` 必须逐条对齐（允许做必要的空白/符号格式化，但不得改写含义）。
4. 确保 `scenario.html` 可访问，但不要把它集成进任何菜单/导航：
   - 不要出现在左侧菜单
   - 不要出现在首页/工作台的任何默认展示区域
   - 不要在 Header/Toolbox 等位置增加入口链接
   - 访问方式仅保留“直接访问 URL（/scenario.html）”
5. 若使用 Vite 构建且 `scenario.html` 或 `scenario.json` 在 build 后不可访问，则必须通过 Vite 多入口（multi-page）或等价方式，确保 `index.html`、`scenario.html`、`scenario.json` 均可访问。
