文本差异对比与逐条审校
======================
入口：index.html。内嵌 jsdiff 9.0.0 与全部运行代码，按设计可双击使用，无需安装、服务器、账号或 CDN。本次实际检验为本地 HTTP；file:// 被会话安全策略禁止，未验证离线双击冷启动，也未重试或绕过。

完成第一次审校
1. 点「导入 / 粘贴两份文稿」，分别选择 TXT/Markdown 或粘贴原稿与修订稿；选择对应编码，修改文件名后建立对比。
2. 左侧按修改、新增、删除导航，中央对照原文与修订内容。蓝色增加、红色删除；相同文字可设置上下文显示，搜索可查原文、修订、备注与自定义。
3. 对每项接受修订、保留原文，或在右侧写整项自定义合稿并提交。备注随当前变更保存；自定义可以为空，表示删掉这项内容。
4. 未决定的变更在合稿预览里保留原文；「导出确认合稿」和「用合稿开始下一版」必须所有项目决定后才可用。复制是预览，允许未审但会提示。
5. 「保存方案」下载 JSON，含两份原文、决定、自定义文字、备注、名称和输出设置；「打开方案」恢复。确认合稿导出 TXT，审校报告导出独立 HTML，可打印或保存 PDF。
6. 换行可跟随原稿、LF 或 CRLF。文件读入保留原始行尾，即使文本框显示规范化换行，默认确认合稿也正确跟随源稿。显式修改输入时沿用导入稿的行尾形式。

继续下一版
点「用合稿开始下一版」，已确认合稿成为新原稿，保留显示/输出设置，清空旧变更决定、备注与自定义记录；带入下一份修订后重新审。新比较也会清空旧决定，原任务可撤销恢复。
最近 35 次提交可撤销/重做；未提交的输入框内容需先采用或保存备注。浏览器暂存只是便利，长期保留请下载完整方案。

独立验证材料
fixtures/draft-a.txt 是 CRLF 原稿，revision-b.md 是 LF 修订，含修改、独立删除、新增与特殊字符；revision-c.txt 是第二次独立修订。
fixtures/qa-plan.json、expected-merged.txt、expected-second.txt、expected-review.html 来自终端 VM 的实际内嵌模型，作为独立恢复与输出判据，明确不是浏览器下载文件。
fixtures/browser-merged-fixed.txt 和 browser-second-final.txt 来自真实界面「复制合稿预览」后的剪贴板输出；两者实测均 CRLF，无裸 LF，后者继承五天的自定义决定并包含两年归档与校验清单。
browser-merged.txt、browser-next-fixed-input.txt 保留修复前两处换行问题的复现证据，不是最终预期输出。
preview.png、preview-first.png、preview-second.png 为真实 HTTP Browser 截图。regression.cjs 从当前 index.html 内嵌模型运行 38 项回归；无需安装制作依赖，最终用户也无需执行。

边界
每份文字最多 40 万字符，输入文件最多 2 MiB，方案最多 5 MiB。只处理纯文本；Word、PDF 需先提取为文本。对比以行和字符为依据，不判断含义、法律效力或事实真实性。
特别大的差异会降为整篇对照，保留完整两份文字；不冒充精确段落匹配。重排可能呈现为删除和增加，需要人工决定或自定义合稿。
本次已实际触发保存与确认导出，默认下载目录实际落盘留待后续 CI 核实。文件恢复使用 VM 生成的方案 fixture；不把它写成已回读浏览器自动下载文件。

许可
jsdiff 9.0.0 为 BSD-3-Clause，完整许可保留于 index.html。自制应用代码与原创验证文字为 MIT；第三方声明以内嵌许可证为准。

