用途:compare 是 claude-seo-ai 插件中的对比技能,用一条脚本完成四类比较——站点与自身基线、与预发布部署、与最多四个竞品、或与已能回答某查询的页面(内容缺口)。全程只读,产物写入 ${CLAUDE_PLUGIN_DATA}/runs,比较结果落在 <root>/compare/<a>__<b>/compare.json,不写入用户项目。
主要能力:根据参数决定形态。两个 URL/run 引用时同主机视为基线、疑似预发布主机视为 staging、两个站点视为竞品;三到五个引用生成竞品矩阵(最多 5 个);"since my last audit" 用 --baseline latest --against <url|run>;staging vs production 用 --prod <ref> --staging <ref>,主机不相关时加 --map staging.example.com=example.com;"排名页面有什么我没有"走内容缺口流程。ref 可以是 run 目录、report.json、latest[:<host>]、baseline[:<host>] 或 URL。常用参数:--mode auto|baseline|staging|competitor|gap、--map、--no-host-normalize、--format md、--data、--fail-on-regression(退出码 3)、--set-baseline。
使用方式:先为每一侧取得 run;对没有 run 的 URL 先审计:node "${CLAUDE_PLUGIN_ROOT}/scripts/audit.mjs" <url> --pages 3 --checks deterministic --render static --out "${CLAUDE_PLUGIN_DATA}/runs",否则 compare.mjs 会以相同设置自行审计。比较命令:node "${CLAUDE_PLUGIN_ROOT}/scripts/compare.mjs" --baseline <refA> --against <refB> --out "${CLAUDE_PLUGIN_DATA}/runs"。内容缺口流程:先用 WebSearch 取前 3–5 个非本主机自然结果,跳过聚合站、市场与榜单页并说明原因;对每个页面执行 node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <url> --run gap-<slug> --render static --out "${CLAUDE_PLUGIN_DATA}/runs";再执行 node "${CLAUDE_PLUGIN_ROOT}/scripts/compare.mjs" --mode gap --subject <ref> --set <ref,ref,ref> --query "<the query>" --out "${CLAUDE_PLUGIN_DATA}/runs"。
结果呈现:按顺序给出结论(improved/regressed/mixed/unchanged 及两个分数差与区间,不混合维度)、变动类别、findings(先 regressed 与 new,再 fixed 与 improved,最后 unchanged 计数)、覆盖变化单列并声明其不是结果、结构缺口(schema 类型、agentic/discovery 端点、AI 爬虫姿态、标题主题重叠、答案块、实体链接、字数、渲染模式、hreflang;gaps.available 为 false 时说明哪一侧没有页面快照)、按规范化路径的页面变动与 only_a/only_b、页面覆盖(same_pages 为 false 时两套汇总平均了不同页面集,轴差不计入结论)。竞品模式无 findings diff(findings: null),展示分数/类别表、存在矩阵与 subject vs best in set 缺口。
限制与诚实性:比较是两次测量而非排名,分数只描述被抓取页面的结构,高分不预测排名高低。WebSearch 只是某一时刻的一个引擎,比较集是单个结果页的快照,不是排名跟踪也不是抽样。未测量不等于通过:needs_api 与 manual_review 转换位于 coverage_changes,按构造排除在 fixed/regressed 之外;另一侧未访问的页面不得描述为 fixed;停止返回 2xx 的页面同理。覆盖为确定性时说明模型判断模块未被评估;coverage_warning 需读出;state 为 partial 的临时区间需与覆盖百分比同句报告。缺口行均为方向性结构差异,不得升级为"会提升排名"。回复使用用户语言(EN/ES)。