## 诊断流程样例\n\n### 场景\n\n生成 `商品域最终体系_生命周期映射_session复核_2026-05-06_v2.html` 后,用户反馈页面空白。\n\n### 工具入口\n\n```bash\npython3 scripts/smoke_product_review_html.py \\\n data-analysis-workspace/adhoc/2026-04-28_商品域生命周期映射/商品域最终体系_生命周期映射_session复核_2026-05-06_v2.html\n```\n\n### 检查过程\n\n1. 读取 HTML,定位 `const DATA = ...`。\n2. 抽取 DATA 字面量,检查是否存在未转义真实换行、控制字符或截断。\n3. 解析 DATA,输出记录数,例如 `DATA rows=9335`。\n4. 对页面脚本执行 `node --check`。\n5. 用浏览器打开 `file://...v2.html`,监听 console error,并检查首屏是否出现汇总区和迁桶标签。\n\n### 成功输出\n\n```text\nPASS product-review-html-smoke\nhtml=.../商品域最终体系_生命周期映射_session复核_2026-05-06_v2.html\nDATA rows=9335\nnode_check=pass\nconsole_errors=0\nfirst_screen=rendered\n```\n\n### 失败输出\n\n```text\nFAIL product-review-html-smoke\nDATA parse failed near byte 184223: unescaped newline in string literal\nLikely cause: session text was interpolated into JS without JSON escaping.\nSuggested fix: emit DATA with json.dumps(data, ensure_ascii=False), then regenerate HTML.\n```\n\n### 落地收益\n\n原来是用户打开页面后用截图反馈“为空”,agent 再临时复现定位。升级后,生成脚本可以在交付前自动发现白屏、空数据和 console error,把问题收敛在本地生成阶段。