用途
当 Lighthouse 的 node core/scripts/update-ard-spec.js --check 报告与上游 ards-project/ard-spec 不同步时,用本技能把 Lighthouse vendored 的 ARD 一致性测试器 port 恢复为与上游 1:1 对齐,同时保留 third-party/ard/README.md 中列出的 Lighthouse 专属适配。
主要能力
- 展示上游三类文件的差异:
conformance/bin/conformance-test、spec/schemas/ard-entry.schema.json、spec/ard.md。 - 以逐字节方式同步 schema 文件,并输出 conformance-test 的 diff。
- 给出需要移植到
third-party/ard/ard.js的变更分类规则:校验规则、严重级别(error/warning/info)、消息文本需 1:1 复制;CLI/ANSI 输出、argparse、main()、resolve_publisher不移植。 - 说明需要保留的 Lighthouse 适配:非对象根/条目按空处理、推送
{element, message}对象、通过 lighthouse-logger 记录日志、仅导出ConformanceTester与classify_media_type。 - 当
spec/ard.md§5.1 变化时,说明需要同步更新core/gather/gatherers/agentic/ard.js、types/artifacts.d.ts及审计中的LEGACY_SOURCES/UIStrings。 - 提供重建校验器、更新测试与 fixtures、更新文档和
@fileoverview注释的步骤。 - 给出验证命令序列,并强调只有全部通过后才能运行
yarn update:ard-spec --ack-port记录已审核哈希并提升 pinned SHA。
使用方式
按技能给出的九步流程操作:检查差异、同步 schema、移植 conformance-test 变更、处理 spec 变更、重建校验器、更新测试与 fixtures、更新文档、验证并确认、向用户汇报。技能中列出具体命令,如 yarn update:ard-spec、yarn build-ard-schema、yarn mocha ...、yarn smoke ard ardInvalid、yarn type-check、yarn lint --fix、yarn update:sample-json、yarn update:ard-spec --ack-port。
适用场景
适用于 Lighthouse 代码库维护者处理上游 ARD 规范变更时的日常维护,包括 schema 更新、一致性测试规则调整、评分逻辑变化、发现机制变化、测试与文档同步。
限制与注意事项
- 检查比较的是内容而非 commit ID;依赖升级后检查通过不代表有人审核过。
upgrade-deps.sh只运行--check,不能确认变更。run_command拒绝 grep,需改用grep_search、awk或sed。- 上游 v0.91 没有 specVersion 检查,只记录未知根成员,对 collections 发出警告,不检查 HTTPS,也不校验 capabilities;不要把 Lighthouse 专属检查加进 port。
[label]前缀位于 element 而非 message 中。- 未要求时不要提交或开 PR。