用途
该技能用于检查指定仓库 staging 分支上的 GitHub Actions 工作流,识别最近一次运行为失败的工作流,并自动派发 /babysitter:yolo 进行修复。它面向需要快速定位并修复 CI 流水线失败的场景。
主要能力
- 使用 gh CLI 列出 staging 分支上最近的 50 条工作流运行记录。
- 按 workflowName 分组,仅保留每个工作流最近一次运行。
- 筛选出最近一次已完成运行结论为 failure 的工作流,跳过成功、已取消或仍在进行中的运行。
- 对失败运行获取失败作业与失败步骤详情,并抓取失败日志尾部内容以了解错误。
- 向用户展示失败工作流列表,包括工作流名称、运行 ID 与链接、失败作业与步骤名称、错误摘要。
- 对每个失败工作流调用 babysitter:yolo,附带失败上下文,要求调查根因、修复并直接提交到 staging 分支。
- 多个失败工作流按顺序逐个处理,每次修复后给出摘要。
- 推送修复后检查是否触发新运行,并报告其状态。
- 若修复后新运行仍失败,则迭代修复直至成功。
使用方式
该技能通过 gh CLI 与 babysitter:yolo 协作完成。主要步骤包括:
-
获取每个工作流最近一次运行: gh run list --repo a5c-ai/babysitter --branch staging --limit 50 --json databaseId,workflowName,status,conclusion,createdAt,headBranch
-
识别失败:仅选择最近一次已完成运行结论为 failure 的工作流。
-
获取失败详情: gh run view <run_id> --repo a5c-ai/babysitter --json jobs --jq '.jobs[] | select(.conclusion == "failure") | {name, conclusion, steps: [.steps[] | select(.conclusion == "failure") | .name]}' gh run view <run_id> --repo a5c-ai/babysitter --log-failed 2>&1 | tail -100
-
展示失败列表。
-
通过 babysitter 修复,调用示例: /babysitter:yolo fix the failing "<workflow_name>" pipeline on staging. The most recent run (<run_id>) failed in job "<job_name>" at step "<step_name>". Error details: <brief_error_summary>. Investigate the failure, fix the root cause, and push a fix to the staging branch. Do not create a new branch -- commit directly to staging.
-
验证修复: gh run list --repo a5c-ai/babysitter --branch staging --workflow "<workflow_file>" --limit 1 --json databaseId,status,conclusion
-
汇总结果。
适用场景
- 需要批量检查 staging 分支 CI 状态并修复失败流水线。
- 希望以非交互方式自动完成流水线修复,无需人工介入或断点。
- 需要将修复直接提交到 staging 分支,不创建特性分支或 PR。
限制与注意事项
- 仅关注每个工作流最近一次运行;已被成功运行取代的旧失败不处理。
- 进行中的运行会被跳过;已取消的运行不视为失败。
- gh CLI 必须已认证,若认证失败需提示用户运行 gh auth login。
- 每个修复交由 /babysitter:yolo 非交互执行。
- 修复直接提交到 staging 分支,不创建特性分支或 PR。
- 整个流程应无用户交互或断点。
- 若修复后新运行仍失败,需迭代修复直至成功。