devops-engineer について
devops-engineerは、CI/CDパイプラインとデプロイ自動化を設計、生成、レビュー、デバッグするエンジニア向けスキルです。ワークフロー作成や最適化、デプロイ戦略、監査、失敗ログ分析を扱い、インフラ構築は対象外です。
主な機能
- 01CI/CDワークフローとGitHub Actionsの生成
- 02パイプライン所要時間の分析と最適化
- 03デプロイ戦略とロールバック計画の設計
- 04パイプラインのセキュリティと信頼性の確認
- 05CI失敗ログの解析と原因追跡
活用シーン
- 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)は対象外です。
標準用語
すべてのモードで、以下の用語を正確に使用してください。
| 用語 | 定義 |
|---|---|
| workflow | CI/CD パイプラインの定義ファイル(.github/workflows/*.yml、.gitlab-ci.yml) |
| job | 1 つ以上のステップを含む、ワークフロー内の名前付き作業単位 |
| step | ジョブ内の単一のアクション(コマンドの実行、アクションの使用) |
| stage | ジョブの論理的なグループ(ビルド、テスト、デプロイ) |
| artifact | ジョブ間またはステージ間で受け渡されるビルド出力 |
| cache | ビルド時間を短縮するため、実行をまたいで保持される依存関係/ビルドキャッシュ |
| matrix | 複数の構成にわたってジョブをパラメーター化して展開すること |
| concurrency group | 並行実行を防ぐ相互排他の仕組み |
| environment | 保護ルールが設定されたデプロイ先(staging、production) |
| promotion | 環境間でアーティファクトを移動すること(dev -> staging -> prod) |
| rollback | デプロイを、以前の正常な状態に戻すこと |
| canary | 新バージョンへトラフィックを段階的に移行すること(1% -> 5% -> 25% -> 100%) |
| blue/green | 即時にトラフィックを切り替えられる、同一構成の 2 つの環境 |
| rolling | インスタンスを 1 つずつ段階的に置き換えること |
| gate | デプロイを進める前に行う、手動または自動の承認チェックポイント |
| runner | CI/CD ジョブを実行する環境(GitHub ホスト型、セルフホスト型) |
| reusable workflow | 他のワークフローから呼び出される、再利用可能なワークフローテンプレート |
| composite action | 複数のステップを単一の再利用可能な単位としてパッケージ化したアクション |
モードの選択
| $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を読む - 生成 -- 正しい
uses、with、envの設定を含むステップまたはジョブの YAML - コンテキストを確認 -- 既存のワークフローが参照されている場合は読み込み、新しいアクションを統合
出力:ワークフローファイルに挿入できる 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 レイヤー)
- 並列実行できる逐次実行のジョブ
- 複数バージョンのテストにおけるマトリックス戦略の不足
- 不要なフルチェックアウト(sparse-checkout または shallow clone を使用)
- ジョブ間で重複しているステップ
- 選択的な実行に必要なパスフィルターの不足
- 軽量なタスクに対して過剰なスペックのランナー
- 計画を提示する -- 推定時間短縮量を添えた最適化の推奨事項を優先度順に示します
- 実装する -- 承認された最適化をワークフローファイルに適用します
モード 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を読みます - 失敗をカテゴリ別に分類する:
| カテゴリ | 例 | 一般的な修正方法 |
|---|---|---|
| 依存関係 | バージョンの競合、パッケージの不足、レジストリのタイムアウト | バージョンを固定する、再試行を追加する、キャッシュを使用する |
| ビルド | コンパイルエラー、型エラー、メモリ不足 | コードを修正する、ランナーのメモリを増やす |
| テスト | アサーションの失敗、不安定なテスト、タイムアウト | テストを修正する、不安定なテストに再試行を追加する、タイムアウトを増やす |
| lint | フォーマット違反、ルール違反 | フォーマッターを実行する、設定を更新する |
| デプロイ | 権限拒否、ヘルスチェック失敗、リソース制限 | 権限を修正する、設定を確認する、リソースをスケールする |
- 根本原因を追跡する -- エラーの連鎖をたどり、発端となった失敗を特定します
- 修正方法を推奨する -- コード/設定の変更を含む、具体的で実行可能な手順を示します
リファレンスファイル
リファレンスは一度に 1 つだけ読み込んでください。すべてのリファレンスをコンテキストに先読みしないでください。
| ファイル | 内容 | 読み込むタイミング |
|---|---|---|
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>)。 actions/checkoutで PR の head をチェックアウトするpull_request_targetは使用しないでください。スクリプトインジェクションのリスクがあります。- 明示的な
permissionsブロックを必ず設定してください。デフォルトの(過剰に広範な)権限に依存しないでください。 - ワークフローファイルにシークレットをハードコードしないでください。
${{ secrets.NAME }}または環境変数を使用してください。 - デプロイワークフローには必ず
concurrencyグループを含め、並行デプロイを防いでください。 - 暴走したジョブによるクォータ消費を防ぐため、すべてのジョブに必ず
timeout-minutesを追加してください。 - ユーザーから明示的に要求されない限り、
runs-on: self-hostedを生成しないでください。セキュリティ上の影響があります。 - 提示する前に、
workflow-analyzer.pyを実行して生成した YAML を必ず検証してください。 - デプロイワークフローには、ヘルスチェックとロールバックのトリガーを含める必要があります。
- Debug モードでは分析前に大きなログ(500 行超)を切り詰めるか、サンプリングしてください。CI ログ全体をコンテキストに読み込まないでください。
- Review モードは、ユーザーが修正を承認するまで読み取り専用です(承認ゲート)。
- リファレンスファイルは一度に 1 つだけ読み込んでください。すべてのリファレンスをコンテキストに先読みしないでください。
- 最適化の推奨事項には、必ず推定時間短縮を含めてください。
- 生成するワークフローには、わかりにくい設定の選択理由を説明するインラインコメントを含めてください。