用途:用于修复失败或失稳的 Shiplight YAML 测试。当 UI 变更、定位器过期、流程改动或断言漂移导致测试变红时,系统化定位原因并修复测试;若应用本身有问题,则报告缺陷而不改动测试。
主要能力:五阶段流程——REPRODUCE(运行 npx shiplight test [target] 确认可复现失败并过滤环境抖动)、DIAGNOSE(据错误输出分类为断言漂移、时序、认证过期、模板/钩子/函数失败、参数用例等)、INVESTIGATE(用浏览器会话 inspect_page、get_locators、act 等核对真实 UI)、FIX(改 YAML 并写入真实定位器)、VERIFY(重跑到预算上限并出报告)。默认最多 3 次修复-重跑循环。
使用方式:通过 /shiplight:triage 调用。修改 YAML 前必须先用 ReadMcpResourceTool 读取 shiplight://yaml-test-spec-v1.3.0 与 shiplight://schemas/action-entity。新增或修改步骤应写带 intent、action、locator、xpath 的完整 ACTION,避免仅写 intent 的 DRAFT(约 10 秒且易超时),ACTION 约 1 秒且可确定性回放;无法获得稳定定位器时才退用 DRAFT。缓存过期不影响通过,但会触发自动修复变慢,可在通过测试上更新 locator 与 js 缓存提速。
适用场景:CI 中自动修复阻断合并的破损测试;部署后 UI 变化导致的大批测试失败;同一页面区域的批量修复。
限制与前置:需要已脚手架的 Shiplight Playwright 项目(含 playwright.config.ts)、已有 .test.yaml、被测应用可访问、如需登录则配置 storage state。创建新测试用 /shiplight:create_e2e_tests,验证代码改动用 /shiplight:verify,主动改版场景应重写测试。CI 无交互模式下不做阻塞式询问,倾向保守修复,模糊失败标记为跳过并始终产出报告供人复核。