import fs from 'node:fs'; const dir='reports/bridge-introduction-20260918',read=name=>JSON.parse(fs.readFileSync(dir+'/'+name+'.json','utf8')); const result=read('result'),operations=read('operation-regression'),upload=read('upload-result'),migration=read('migration'),health=read('health'); if(!result.pass||!operations.pass||!upload.pass)throw new Error('Verification incomplete'); const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c])); const shots=[['task-86-background.png','005 · 项目背景'],['task-86-lecture.png','005 · 原理讲解'],['task-87-background.png','006 · 项目背景'],['task-88-background.png','007 · 项目背景'],['task-89-background.png','008 · 项目概览'],['video-lecture.png','受控视频播放验证(隔离响应配置)'],['authoring.png','训练编排 · 背景与前置讲解'],['authoring-uploaded-video.png','真实上传、发布及重新打开验证']]; const html=`背景与前置讲解 · 验收记录

背景 → 讲解1…N → 操作步骤

2026-09-18 · 本地环境 6180 / Gateway 6100 · 内部维护账号验收

通过:四个现有任务、005新模型入口、视频切换、编排保存、媒体上传与发布、005完整操作回归。

背景及每段讲解支持下一步、上一步、跳过讲解;跳过后仍从当前未完成操作继续。操作编号、动作、评分、已有记录不变。讲解期间不会播放隐藏的步骤数字教员,切页停止视频。

${migration.records.map(r=>``).join('')}
入口前置内容原操作发布内容版本
${esc(r.code)}背景 + ${r.lectures} 段讲解${r.steps} 步${r.contentVersionId}

内容依据与范围

005、006讲解取自图片转录MD;007、008原稿缺少独立讲解,未补写。008背景页为原稿四组操作归纳的项目概览。配图使用各场景封面;原稿要求的液压原理图和专用讲解视频尚无素材,可在编排中上传替换。

编排入口:内容制作 → 训练编排 → 编辑 → 背景与前置讲解。应用后保存草稿、发布。已发布教学任务固定版本不会因编辑草稿自动改变。

图片原文:脚本Markdown索引;接口及维护:背景与前置讲解

实际验证

证据:页面测试 · 操作回归 · 媒体上传 · 版本更新 · 服务健康

${shots.map(([file,title])=>`
${esc(title)}
${esc(title)}
`).join('')}
`; fs.writeFileSync(dir+'/index.html',html);console.log(dir+'/index.html');