diagnose-ci-failures について
diagnose-ci-failuresは、プルリクエストのCI状態を確認し、失敗ログを収集してエラーを分類するスキルです。コードを直接変更せず、レビュー可能な修正計画を作成します。
主な機能
- 01プルリクエストのCI状態確認
- 02失敗したチェックのログ取得
- 03ビルドとテストのエラー分類
- 04レビュー用計画の作成
- 05検証手順の提案
活用シーン
- 01プルリクエストのチェック失敗の調査
- 02lint、ビルド、テスト失敗の切り分け
- 03コード変更前の修正案の準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ warpdotdev/ common-skills --skill diagnose-ci-failuresインストール後、Claude Code で/diagnose-ci-failuresを入力して読み込まれたか確認します。
詳細
diagnose-ci-failures
PR の CI 失敗をプログラムで診断し、修正計画を作成します。
概要
このスキルでは、PR の CI 状況を確認し、失敗ログを抽出してエラーを分析し、問題を解決するための計画(コード変更は含みません)を作成する、一貫性のあるワークフローを提供します。出力は常に計画書であり、実行前にレビューできます。
ワークフロー
1. 現在のブランチに PR があることを確認する
現在のブランチを取得し、PR があるかどうかを確認します。
# Get current branch
git branch --show-current
# Check for PR
GH_PAGER=cat gh pr view <branch-name> --json number,title,url,state
PR がない場合はユーザーに伝え、create-pr スキルを使って作成することを提案します。
2. CI の状況を確認する
すべての CI チェックの状況を取得します。
GH_PAGER=cat gh pr view <branch-name> --json statusCheckRollup
出力を解析して、次の項目を特定します。
- 完了したチェックと進行中のチェック
- 成功したチェック
- 失敗したチェックの名前と詳細 URL
CI がまだ実行中の場合は、すでに失敗または成功したチェックと、まだ実行中のチェックをユーザーに伝え、診断を始める前に完了を待つよう提案します。
3. 失敗ログを抽出する
失敗したチェックごとに、ステータスチェックの run ID を使ってログを取得します。
GH_PAGER=cat gh run view <run-id> --log-failed
次の情報の抽出に重点を置きます。
- エラーメッセージと発生箇所(ファイルパス、行番号)
- コンパイルエラー(未使用のインポート、型の不一致など)
- 具体的な lint 名が記載された lint/clippy エラー
- テスト失敗のメッセージとスタックトレース
- ビルド失敗とその根本原因
4. エラーを分類する
エラーを種類ごとに分類します。
- フォーマットの問題:
cargo fmtの失敗 - Lint の問題:
cargo clippyの警告/エラー - コンパイルエラー:型エラー、インポートの不足、シグネチャの不一致
- テストの失敗:失敗したテストとその名前、失敗の理由
- プラットフォーム固有の問題:WASM、Linux、macOS、Windows 固有の失敗
5. 修正計画を作成する
create_plan ツールを使って、次の内容を含む計画書を作成します。
- 問題の概要:失敗したチェックの要約
- 現在の状態:見つかったエラーとその発生箇所
- 提案する変更:各エラーカテゴリーに必要な具体的な修正
- 検証手順:修正を確認するためのコマンド(fmt、clippy、テスト、presubmit)
この計画では、各エラーの種類に応じた詳細な解決方法について、fix-errors スキルを参照してください。
重要な注意事項
- GitHub CLI のページング:すべての
gh呼び出しでGH_PAGER=catを設定してください。GitHub CLI はグローバルオプションとして--no-pagerをサポートしていません。ページング制御としてドキュメント化されているのはGH_PAGERとPAGERです - 必ず最初に計画を作成する:コードを直接変更しないでください。ユーザーがレビューできるよう、計画を作成してください
- CI でのテスト状況を確認する:ローカルでテストが失敗しても、問題として指摘する前に CI で成功しているか確認してください
- 無関係なテスト失敗:CI ではテストが成功しているのにローカルで失敗する場合、環境固有の問題または不安定なテストの可能性があります
- 複数のエラー種別がある場合:一度に 1 つのカテゴリーずつ修正してください(例:テストの前に、すべての clippy エラーを修正する)
- fix-errors スキルを相互参照する:エラーの詳細な解決方法については、
fix-errorsスキルを使用してください
よくある CI チェック名
Formatting + Clippy (MacOS)Formatting + Clippy (Linux)Run MacOS testsRun Linux testsRun Windows testsCheck CI results(サマリーチェック)WASM build
コマンド例
詳細を含む PR の状況を取得する:
GH_PAGER=cat gh pr view --json number,title,state,statusCheckRollup
特定の失敗した run のログを取得する:
GH_PAGER=cat gh run view 12345678 --log-failed
ログ内の特定のエラーを確認する:
GH_PAGER=cat gh run view 12345678 --log-failed 2>&1 | grep -A 5 "error:"
コメント
Markdown 対応