用途:审计页面的渲染策略与 JavaScript 依赖,判断内容是否只存在于 hydration 之后,从而影响不执行 JS 的消费者(如部分 AI 爬虫)与抓取效率。
主要能力:基于 PageSnapshot 的 parsed 与 parsed_rendered,以及脚本已算出的 render{needed,signals,used,confidence,hint,delta},对比 raw_html_path 与 rendered_html_path,测量仅在 JS 运行后出现的主要文本、内链、h1–h3 标题和 application/ld+json 块的占比;将策略分类为 CSR-only、SSR、SSG、ISR,依据原始 HTML 完整度与框架信号(如 NEXT_DATA、hydration 标记、data-reactroot、构建清单);识别 hydration 阻塞文本、需滚动或交互才加载的懒加载主内容;若 h1、正文或 JSON-LD 仅存在于渲染后 HTML,则标记为对非 JS AI 爬虫不可靠消费。
使用方式:从 dispatch envelope 指定的 PageSnapshot 读取;若直接以 URL/路径调用且无快照,先运行 node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs",使用输出的快照路径。不要重复输出 audit.mjs 已生成的确定性 findings,只添加模型判断的 findings。
修复与限制:本模块仅为 advisory,只诊断和排优先级,不自动修改构建或服务端代码;给出框架相关建议(如将 CSR-only 路由改为 SSG/ISR 或 SSR),推荐预渲染或部分预渲染,客户端孤岛仅用于真正交互的组件;数据新鲜度等无法从快照判断时留 TODO,不臆造 revalidate 间隔。验证用 render_diff 计算内容差异比;准确渲染需 headless 浏览器数据层,不可用时状态为 needs_api,不得误判通过。
诚实性:Googlebot 会渲染 JS(已文档化),CSR-only 应视为对 AI 消费者与抓取效率的风险,而非 Google 必然失败;“多数 AI 爬虫不执行 JS”属方向性判断,非厂商声明;不应声称 SSR 比 CSR 排名更高。