CI/CD流水线故障诊断与修复 ci

本技能用于自动化诊断和修复持续集成/持续交付(CI/CD)流水线中的故障。当开发者的代码提交触发自动化构建或测试流程失败时,本技能可以自动分析日志、定位错误根源(如构建错误、测试失败、环境配置问题),并提供合规的修复建议或执行修复操作,确保开发流程的顺畅。关键词:CI/CD,流水线故障,构建错误,测试失败,自动化修复,DevOps,GitHub Actions,GitLab CI。

DevOps 0 次安装 0 次浏览 更新于 3/3/2026

name: ci description: “诊断和修复CI/CD流水线故障。当用户提到’CI’、‘GitHub Actions’、‘GitLab CI’、‘ビルドエラー’、‘テスト失敗’、‘パイプライン’、‘CIが落ちた’,或要求分析构建/测试失败时使用。不要用于:本地构建、常规实现工作、代码审查、环境设置。” allowed-tools: [“Read”, “Grep”, “Bash”, “Task”] context: fork metadata: skillport: category: ci tags: [ci-cd, github-actions, pipeline, debugging] alwaysApply: false

CI/CD 技能

用于解决CI/CD流水线相关问题的技能集合。


触发条件

  • 「CI失败了」「GitHub Actions运行失败」
  • 「构建错误」「测试不通过」
  • 「请修复流水线」

包含的子技能

技能 用途 触发词
ci-analyze-failures 分析失败原因 「查看日志」「调查原因」
ci-fix-failing-tests 提出测试修复建议 「修复测试」「提出修正方案」

路由逻辑

根据用户意图选择合适的子技能:

需要分析调查的情况

→ 参考 ci-analyze-failures/doc.md

示例:

  • 「请告诉我CI失败的原因」
  • 「查看GitHub Actions的日志」
  • 「为什么构建失败了?」

需要修复处理的情况

→ 参考 ci-fix-failing-tests/doc.md

示例:

  • 「请修复测试」
  • 「请修正错误」
  • 「让流水线通过」

执行步骤

  1. 测试 vs 实现判定(第0步)
  2. 对用户意图进行分类(分析 或 修复)
  3. 判定复杂度(参考下文)
  4. 阅读相应子技能的 doc.md,或启动 ci-cd-fixer 子代理
  5. 确认结果,必要时重新执行

第0步:测试 vs 实现判定(质量判定门)

CI失败时,首先进行原因分类:

CI 失败报告
    ↓
┌─────────────────────────────────────────┐
│           测试 vs 实现判定             │
├─────────────────────────────────────────┤
│  分析错误原因:                    │
│  ├── 实现错误 → 修正实现          │
│  ├── 测试过时 → 向用户确认      │
│  └── 环境问题 → 修正环境                │
└─────────────────────────────────────────┘

禁止事项(防止篡改)

⚠️ CI 失败时的禁止事项

以下“解决方案”被禁止:

| 禁止行为 | 示例 | 正确做法 |
|------|-----|-----------|
| 跳过测试 | `it.skip(...)` | 修正实现 |
| 删除断言 | 删除 `expect()` | 确认期望值 |
| 绕过CI检查 | `continue-on-error` | 修复根本原因 |
| 放宽lint规则 | `eslint-disable` | 修正代码 |

判断流程

🔴 CI 运行失败

**需要判断**:

1.  **实现错误** → 修正实现 ✅
2.  **测试期望值过时** → 请求用户确认
3.  **环境问题** → 修正环境设置

⚠️ 禁止篡改测试(跳过、删除断言)

属于哪种情况?

需要批准的情况

当测试/设置的更改不可避免时:

## 🚨 请求批准测试/设置更改

### 原因
[为什么需要此更改]

### 更改内容
[差异]

### 替代方案考虑
- [ ] 确认是否无法通过修正实现来解决

等待用户的明确批准

子代理协作

满足以下条件时,使用Task工具启动 ci-cd-fixer:

  • 修复 → 重新运行 → 失败的循环发生 2次以上
  • 或者,错误涉及多个文件的复杂情况

启动模式:

Task tool:
  subagent_type="ci-cd-fixer"
  prompt="请诊断并修复CI失败。错误日志:{error_log}"

ci-cd-fixer 以安全第一的原则运行(默认dry-run模式)。 详情请参考 agents/ci-cd-fixer.md


致VibeCoder

🔧 关于CI出问题的说法

1.  **「CI失败了」「变红了」**
   - 表示自动化测试失败的状态

2.  **「为什么失败了?」**
   - 希望调查原因

3.  **「请修复」**
   - 尝试自动修复

💡 重要:禁止“糊弄”测试的修复
   - ❌ 删除测试、跳过测试
   - ⭕ 正确修正代码

如果觉得“测试可能错了”,
请先确认再决定如何应对