# 历史 Triage 经验规则

本文件记录经过验证、可复用的历史 triage 经验。AI 分析失败时应同时
阅读本文件，但只能在当前证据满足触发条件时应用规则。规则不能覆盖更
直接的请求、响应、断言或 `do action failed` 证据。

新增经验时使用以下字段，确保规则可以审查和维护：

- 触发条件：日志、步骤结论和 workflow 上下文必须满足的条件。
- 排除条件：哪些更直接的失败证据应优先。
- 分类与级别：内部分类以及飞书卡片的展示级别。
- 根因判断：可向用户展示、且不与现象重复的原因。
- 责任归属：应由哪个角色继续处理。
- 建议操作：具体、可执行的排查顺序。

## GHA-SIGNAL-INTERRUPT：任务被其他失败中断

- 触发条件：
  - 失败发生在 `Run scenario cases`；
  - GitHub Actions 步骤结论为 `cancelled`；
  - 日志包含 `signal: interrupt`，通常同时包含
    `The operation was canceled`；
  - 当前 job 没有更早、更直接的请求失败、断言失败或
    `do action failed` 根因证据。
- 排除条件：如果当前 job 已存在明确的场景请求或断言失败，应优先分析
  该真实失败，不能让后续 interrupt 覆盖它。
- 分类与级别：
  - `category = infrastructure_error`
  - `component = gha-workflow`
  - `problem_key = sibling-failure-interrupted-job`
  - 作为 warning 展示，飞书卡片标题使用橙色。
- 现象：任务执行过程中收到 `signal: interrupt`，GitHub Actions 随后将
  该步骤标记为取消。
- 根因判断：同一 workflow 中的其他任务先失败，当前任务因此被动中断；
  interrupt 是连带现象，不是独立的产品或 testcase 根因。
- 责任归属：不路由产品 Team，也不建议 Case Owner 排查；由 CI/工作流
  维护者先定位同一 workflow 中最早出现的非取消失败。
- 建议操作：
  1. 打开同一 workflow run，按完成时间寻找最早的真实失败任务。
  2. 优先 triage 该任务的请求、响应、断言和日志。
  3. 当前被中断任务无需作为独立产品问题排查；修复首要失败后再按需重跑。
