前言¶
在 DeepSeek Harness (DSH) 的开发流程中,前端发布的质量往往依赖“看起来不错”的主观判断,或者难以复现的静态快照。dsh-shipcheck 是一个证据优先的前端发布检查插件。它利用真实浏览器执行确定性检查,生成截图、命名基线和可重现的 JSON 报告,从而为发布门禁提供事实依据。
核心功能¶
插件通过真实浏览器进行多项检查,涵盖可用性、结构与内容质量:
* 页面可用性、标题、可见正文和主要标题检查。
* 缺失图片替代文本和未命名控件/链接检查。
* 捕获视口内的水平溢出检查。
* 检查必需/禁止文本和必需 CSS 选择器。
* 检查相对于命名基线的结构回归。
* 检查浏览器运行时失败,包括控制台错误、未捕获异常和失败的 HTTP 4xx-5xx 请求。
安装与启用¶
安装插件使用以下命令:
dsh plugin --profile web add github:guo6x/dsh-shipcheck
安装后,插件即可在 DSH 环境中调用。
典型用法¶
插件提供以下工具:
shipcheck_run:在真实浏览器中检查 URL,运行检查,比较基线,并保存截图和 JSON 报告。shipcheck_matrix:在单一发布门禁中检查 1-20 个 URL,保留路由级截图、报告和基线。shipcheck_flow:使用真实浏览器操作执行有界用户旅程,包括步骤截图、断言和脱敏证据。shipcheck_baseline:显式捕获已审查 URL 作为命名结构基线。shipcheck_history:列出最近的报告及其通过/失败摘要。
示例用法:
* 运行 shipcheck_run 检查 http://127.0.0.1:3000 作为项目 checkout,要求可见文本 Checkout,禁止 Something went wrong,并告诉是否可以继续人工审查。不修改文件。
* 使用 shipcheck_baseline 捕获当前结账页面作为项目 checkout 的基线。然后再次运行 shipcheck_run 并用证据路径解释任何结构回归。
* 为 http://127.0.0.1:3000/、http://127.0.0.1:3000/login 和 http://127.0.0.1:3000/checkout 运行 shipcheck_matrix 作为矩阵 checkout-release。在每个路由上要求 Checkout,禁止 Something went wrong,并报告哪个路由失败,包括其截图和 JSON 报告路径。
* 从 http://127.0.0.1:3000/login 作为 checkout-login 运行 shipcheck_flow。填写 Email 和 Password 字段,点击 #submit,等待 URL 包含 /dashboard,断言 Logged in 可见,并告诉旅程是否通过。不修改文件。
适用场景与注意¶
- 定位:这是发布门禁,不是完整的视觉回归实验室。第一个基线比较稳定结构和文本漂移,而不是跨操作系统的像素级截图。
- dsh-palate 集成:第一个版本不使用
dsh-palate原则对页面进行评分;它存储了该集成所需证据的形状。 - 运行时检查:运行时遥测使用浏览器的 CDP 事件。如果伴随浏览器未暴露该能力,Shipcheck 会报告明确的警告,而不是假装运行时是干净的。
- 人工审查:通过的自动化运行仍需人工审查产品语义、内容质量和有意例外。
总结¶
dsh-shipcheck 为 DSH 提供了基于证据的前端发布门禁。它通过真实浏览器执行确定性检查,确保在手动审查前存在可重现的失败证据。
- 目录页: https://www.skillhub.cn/plugins/guo6x/dsh-shipcheck
- GitHub: https://github.com/guo6x/dsh-shipcheck