mcpField
D
diagnose-ci-failures

diagnose-ci-failures

github.com/warpdotdevテスト・品質63628.4k 回インストール1 週間前に更新
リポジトリ

diagnose-ci-failures について

diagnose-ci-failuresは、プルリクエストのCI状態を確認し、失敗ログを収集してエラーを分類するスキルです。コードを直接変更せず、レビュー可能な修正計画を作成します。

主な機能

  1. 01プルリクエストのCI状態確認
  2. 02失敗したチェックのログ取得
  3. 03ビルドとテストのエラー分類
  4. 04レビュー用計画の作成
  5. 05検証手順の提案

活用シーン

  1. 01プルリクエストのチェック失敗の調査
  2. 02lint、ビルド、テスト失敗の切り分け
  3. 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 tests
  • Run Linux tests
  • Run Windows tests
  • Check 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:"

コメント