SuperAPI AI 工具集

triage

测试与质量

查看项目

更新于 10-15 18:09

技能介绍

用途

Triage 用于复现、诊断和修复失败的 Shiplight YAML 测试。如果应用本身已损坏,或当前行为与规格冲突,应报告这一不匹配,而不是围绕现状重写测试。

何时使用

在以下情况使用 /triage:

  • 一次 Shiplight 测试运行失败
  • 部署或 UI 变更破坏了既有测试
  • 多个测试可能共享同一失败来源
  • CI 需要一次尽力而为的修复/报告流程

在以下情况跳过 /triage:

  • 从零创建新测试;改用 /create-yaml-tests
  • 在没有失败测试的情况下验证 UI 代码变更;改用 /verify
  • 测试已通过,任务只是质量改进
  • 产品正在被有意重新设计,测试需要有计划地重写

所需上下文

在编辑 YAML 之前:

  • 阅读 create-yaml-tests 参考指南 project-layout.md、updating-tests.md、test-implementation-guide.md 和 knowledge.md。
  • 阅读失败区域、环境、认证、数据和工具相关的 knowledge/ 笔记。
  • 阅读 specs/tests/ 下匹配的规格(如果存在)。
  • 阅读 shiplight://yaml-test-spec 和 shiplight://schemas/action-entity。

事实优先级

当来源之间不一致时,按以下优先级处理:

  1. 明确的用户指令
  2. specs/tests/ 中的功能或旅程规格
  3. 现有 YAML 测试目标、步骤意图和 VERIFY 断言
  4. 当前应用行为
  5. specs/context.md 和 knowledge/ 中的项目上下文
  6. 智能体文档
  7. 智能体推断

如果当前应用行为与规格或测试目标冲突,应报告不匹配。不要静默改写意图以匹配当前行为。

工作流程

  1. 复现——运行指定目标;若未提供目标,则运行最窄的相关套件。如果失败看起来是暂时性的,在编辑前对最小受影响目标重跑一次。
  2. 理解——在打开浏览器或修改文件之前,阅读失败输出、相关 YAML、匹配规格、相关测试以及共享模板/函数/钩子。
  3. 按需检查——当日志和文件不足时,在浏览器中检查实时应用。使用失败所需的证据:DOM、操作、定位器、控制台日志、网络日志、截图或录制。
  4. 最小化修复——改动最小且正确的表面:YAML、模板、辅助函数、认证设置、环境数据或规格。除非共享同一损坏来源,否则不要触碰通过的测试。
  5. 验证并重跑——用 validate_yaml_test 验证编辑后的 YAML,然后重跑最窄的已变更目标。批量修复后,重跑原始目标一次。
  6. 反思——当本次会话产生持久性学习或纠正了过时假设时,更新 specs、specs/context.md 或 knowledge/。

护栏

  • 当失败依赖当前浏览器行为时,不要猜测渲染后的 UI。
  • 不要仅为让测试通过而删除断言、跳过必需步骤或降低覆盖。
  • 如果预期产品行为已变更,先更新匹配规格,再更新 YAML。
  • 如果应用已损坏,报告应用问题,而不是用测试改动掩盖它。
  • 保留用户改动和无关工作。
  • 优先聚焦修复,而非大范围重写。
  • 编辑受影响步骤时,保持 ACTION 定位器和 VERIFY js: 缓存为最新,但不要搅动无关缓存。
  • 在 CI 或非交互模式下,不要因等待用户输入而阻塞。做出保守的尽力决策并记录不确定性。

常见原因包括定位器过时、用户流程变更、断言漂移、认证过期、时序问题、共享模板/钩子、参数数据无效、环境问题以及真实应用缺陷。用证据决定最小正确修复。

报告

分诊后报告:

  • 运行的目标命令及通过/失败结果
  • 变更的文件
  • 已修复、已跳过、仍失败或原本已通过的测试
  • 覆盖或恢复的行为
  • 应用/规格不匹配或未解决的阻塞项
  • 已更新的 knowledge、context 或 specs