关于 devops-engineer
devops-engineer 是面向 CI/CD 和部署自动化的技能,适用于设计、生成、审查和排查流水线的工程师。它覆盖工作流生成、优化、部署策略、审计及失败日志分析,并将基础设施配置排除在范围之外。
主要功能
- 01生成 CI/CD 工作流与 GitHub Action
- 02分析并优化流水线耗时
- 03设计部署策略及回滚方案
- 04审查流水线安全与可靠性
- 05解析 CI 失败日志并定位原因
适用场景
- 01为项目创建 CI/CD 工作流
- 02查找缓存或并行执行优化点
- 03规划部署检查与回滚流程
- 04根据失败日志排查流水线问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wyattowalsh/ agents --skill devops-engineer安装后在 Claude Code 中输入/devops-engineer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/debug-mode.jsonevals.jsonexplicit-pipeline.jsonimplicit-trigger.jsonnegative-control.jsonpipeline-create.jsonreview-mode.jsonreferences/artifact-management.mdci-failure-triage.mddeployment-strategies.mdgithub-actions-patterns.mdgitlab-ci-patterns.mdpipeline-optimization.mdpipeline-review-checklist.mdscripts/check.pylog-parser.pypipeline-cost-estimator.pyworkflow-analyzer.pyscripts/asset_toolkit/__init__.py_shared.pycommon.pypackage.pyvalidate_evals.pyvalidate_hooks.pyvalidate_skill.pytemplates/dashboard.html详细介绍
DevOps 工程师
CI/CD 流水线设计、优化和部署策略。6 种模式:生成工作流、缩短构建时间、设计部署策略、审查现有流水线、调试 CI 故障。
**范围:**仅限 CI/CD 流水线和部署自动化。不包括基础设施配置(infrastructure-coder)、应用程序代码、监控设置或数据库迁移(database-architect)。
规范术语
在所有模式中准确使用以下术语:
| 术语 | 定义 |
|---|---|
| 工作流 | CI/CD 流水线定义文件(.github/workflows/*.yml、.gitlab-ci.yml) |
| 作业 | 工作流中的命名工作单元,包含一个或多个步骤 |
| 步骤 | 作业中的单个操作(运行命令、使用操作) |
| 阶段 | 作业的逻辑分组(构建、测试、部署) |
| 构件 | 在作业或阶段之间传递的构建输出 |
| 缓存 | 在多次运行间持久保存的依赖项/构建缓存,用于缩短构建时间 |
| 矩阵 | 按多个配置扩展参数化作业 |
| 并发组 | 防止并行运行的互斥机制 |
| 环境 | 带有保护规则的部署目标(预发布、生产) |
| 晋级 | 在各环境间传递构件(开发 -> 预发布 -> 生产) |
| 回滚 | 将部署恢复到先前已知良好的状态 |
| 金丝雀发布 | 将流量逐步切换到新版本(1% -> 5% -> 25% -> 100%) |
| 蓝绿部署 | 两个相同的环境,可即时切换流量 |
| 滚动部署 | 逐个实例逐步替换 |
| 关卡 | 部署继续前的手动或自动审批检查点 |
| 运行器 | 执行 CI/CD 作业的环境(GitHub 托管、自托管) |
| 可复用工作流 | 可从其他工作流调用的工作流模板 |
| 复合操作 | 打包为单个可复用单元的多步骤操作 |
分派
| $ARGUMENTS | 模式 |
|---|---|
pipeline <requirements> | 生成:根据需求创建新的 CI/CD 工作流 |
action <description> | 操作:生成 GitHub Action 步骤/作业 |
optimize <workflow> | 优化:优化流水线构建时间 |
deploy <strategy> | 部署:设计部署策略 |
review <workflow> | 审查:审计现有流水线 |
debug <logs> | 调试:分析 CI 故障日志 |
| 关于 CI/CD 的自然语言描述 | 自动检测适当模式 |
| 空 | 显示带示例的模式菜单 |
模式 1:生成(pipeline)
根据需求设计并生成 CI/CD 工作流文件。
步骤
- 收集需求 -- 语言、框架、测试套件、部署目标、分支策略
- 选择平台 -- GitHub Actions(默认)、GitLab CI 或两者
- 加载模式 -- 读取
references/github-actions-patterns.md或references/gitlab-ci-patterns.md - 设计结构 -- 作业、阶段、依赖项、触发器、缓存策略
- 生成工作流 -- 完整的 YAML 文件,并添加行内注释说明不明显的选择
- 验证 -- 对生成的输出运行
uv run python scripts/workflow-analyzer.py <file>
输出
写入适当位置的完整工作流 YAML 文件。
模式 2:操作(action)
生成单独的 GitHub Action 步骤或作业。
- 解析描述 -- 说明该操作应完成的任务
- 加载模式 -- 读取
references/github-actions-patterns.md - 生成 -- 生成步骤或作业 YAML,并正确配置
uses、with、env - 检查上下文 -- 如果引用了现有工作流,则读取该工作流并集成新操作
输出:可插入工作流文件的 YAML 片段。
模式 3:优化(optimize)
分析并优化流水线构建时间。
分析
- 分析 —— 运行
uv run python scripts/workflow-analyzer.py <workflow> - 估算成本 —— 运行
uv run python scripts/pipeline-cost-estimator.py <workflow> - 加载技巧 —— 阅读
references/pipeline-optimization.md
优化机会
- 识别机会:
- 缺少缓存(依赖项、构建产物、Docker 层)
- 可并行运行的串行作业
- 多版本测试缺少矩阵策略
- 不必要的完整检出(使用稀疏检出或浅克隆)
- 各作业之间存在冗余步骤
- 缺少用于选择性运行的路径过滤器
- 轻量任务使用了规格过高的运行器
- 提出计划 —— 按优先级排列优化建议,并估算节省的时间
- 实施 —— 将获批的优化应用到工作流文件
模式 4:部署(deploy)
设计部署策略和回滚计划。
- 评估需求 —— 正常运行时间 SLA、回滚速度、流量管理能力
- 加载策略 —— 阅读
references/deployment-strategies.md - 推荐策略 —— 根据需求选择蓝绿部署、金丝雀发布或滚动发布
| 因素 | 蓝绿部署 | 金丝雀发布 | 滚动发布 |
|---|---|---|---|
| 回滚速度 | 即时 | 快 | 慢 |
| 资源成本 | 2x | 1.1-1.5x | 1x |
| 风险敞口 | 无(切换前) | 逐步增加 | 逐步增加 |
| 复杂度 | 中 | 高 | 低 |
| 适用场景 | 关键服务 | 高流量 API | 成本敏感型应用 |
- 生成 —— 生成包含健康检查、关卡和回滚触发条件的部署工作流
- 编写文档 —— 编写包含回滚流程和升级路径的运行手册
模式 5:审查(review)
审查现有 CI/CD 管道中的问题和改进空间。
审计流程
- 读取工作流 —— 解析目标工作流文件
- 分析 —— 运行
uv run python scripts/workflow-analyzer.py <workflow> - 加载检查清单 —— 阅读
references/pipeline-review-checklist.md
评估维度
- 评估各个维度:
- 安全性:机密信息管理、权限范围、未固定版本的操作、脚本注入
- 可靠性:重试逻辑、超时配置、并发处理
- 性能:缓存、并行化、选择性触发
- 可维护性:DRY(可复用工作流/复合操作)、可读性、文档
- 成本:运行器选择、不必要的矩阵组合、构件保留期限
- 呈现审查结果 —— 按严重程度(严重/警告/信息)分类,并提供修复建议
- 实施 —— 应用获批的修复
模式 6:调试(debug)
分析 CI 失败日志,以找出根本原因和修复方法。
- 读取日志 —— 读取提供的日志文件或内联内容。对于较大的日志(超过 500 行):截取最后 200 行和最前面 50 行,然后围绕错误模式抽取中间部分
- 解析错误 —— 运行
uv run python scripts/log-parser.py <logfile> - 加载分类处理流程 —— 阅读
references/ci-failure-triage.md - 按类别对失败进行分类:
| 类别 | 示例 | 常见修复方法 |
|---|---|---|
| dependency | 版本冲突、缺少软件包、注册表超时 | 固定版本、添加重试、使用缓存 |
| build | 编译错误、类型错误、内存不足 | 修复代码、增加运行器内存 |
| test | 断言失败、测试不稳定、超时 | 修复测试、为不稳定测试添加重试、延长超时时间 |
| lint | 格式违规、规则违规 | 运行格式化工具、更新配置 |
| deploy | 权限被拒绝、健康检查失败、资源限制 | 修复权限、检查配置、扩展资源 |
- 追踪根本原因 —— 沿错误链追溯至最初的失败
- 建议修复方法 —— 提供具体可行的步骤,包括代码/配置更改
参考文件
每次只加载一个参考文件。不要将所有参考文件预先加载到上下文中。
| 文件 | 内容 | 读取时机 |
|---|---|---|
references/github-actions-patterns.md | 工作流模式、可复用工作流、复合操作、安全加固 | Generate、Action、Review 模式 |
references/gitlab-ci-patterns.md | GitLab CI 流水线模式、包含项、规则、环境 | Generate 模式(GitLab) |
references/deployment-strategies.md | 蓝绿、金丝雀、滚动发布策略,包含比较和回滚 | Deploy 模式 |
references/pipeline-optimization.md | 缓存、并行化、选择性运行、矩阵优化 | Optimize 模式 |
references/pipeline-review-checklist.md | 安全性、可靠性、性能、可维护性、成本检查清单 | Review 模式 |
references/ci-failure-triage.md | 错误类别分类、根因模式、修复方案 | Debug 模式 |
references/artifact-management.md | 制品传递、保留、环境晋级模式 | Generate、Deploy 模式 |
| 脚本 | 运行时机 |
|---|---|
scripts/workflow-analyzer.py | 分析工作流结构、检测问题、寻找优化机会 |
scripts/pipeline-cost-estimator.py | 估算 CI 分钟数并识别节省成本的机会 |
scripts/log-parser.py | 从 CI 故障日志中提取可执行的错误信息 |
| 模板 | 渲染时机 |
|---|---|
templates/dashboard.html | 分析后——将流水线健康数据注入仪表板 |
关键规则
- 绝不生成未固定第三方操作的工作流——始终使用完整 SHA 固定版本(
uses: actions/checkout@<sha>) - 绝不将
pull_request_target与用于检出 PR 头部的actions/checkout搭配使用——存在脚本注入风险 - 始终设置明确的
permissions块——绝不依赖默认权限(权限范围过宽) - 绝不在工作流文件中硬编码机密——使用
${{ secrets.NAME }}或环境变量 - 部署工作流始终包含
concurrency组,以防止并行部署 - 始终为每个作业添加
timeout-minutes——防止作业失控并耗尽配额 - 除非用户明确要求,否则绝不生成
runs-on: self-hosted——这会带来安全影响 - 在呈现生成的 YAML 前,始终运行
workflow-analyzer.py进行验证 - 部署工作流必须包含健康检查和回滚触发条件
- Debug 模式必须在分析前截断或抽样大型日志(超过 500 行)——不要将完整的 CI 日志加载到上下文中
- 在用户批准修复之前,Review 模式为只读(审批关卡)
- 每次只加载一个参考文件——不要将所有参考文件预先加载到上下文中
- 每条优化建议都必须包含预计节省的时间
- 生成的工作流必须包含行内注释,解释不明显的配置选项
评论
支持 Markdown