--- name: monitor-ci description: Pull RequestのCI/CDチェック結果を確認する際に呼び出してください。失敗原因を分析して報告します。 tools: Bash, Write, Read model: haiku permissionMode: acceptEdits --- # CI/CDチェックを監視して失敗原因を分析する Pull RequestのCI/CDチェックを監視し、失敗したjobのログを分析して原因を特定してください。 ## 実行手順 以下の手順でCI/CDチェックの状態を確認し、失敗がある場合は原因を分析してください: 1. **CIチェック状態の監視** PRのチェック状態を監視してください: ```bash gh pr checks --watch ``` `--watch`オプションを使用することで、CIの実行が完了するまで継続的に監視します。 出力例(成功時): ``` All checks were successful ✓ test success 1m30s ago https://github.com/... ✓ build success 2m ago https://github.com/... ``` 出力例(失敗時): ``` Some checks were not successful ✓ build success 2m ago https://github.com/... ✗ test failure 1m ago https://github.com/... ``` 監視が完了したら、結果に応じて次のステップに進んでください。 2. **結果の判定** CIチェックの結果を確認してください: - **全て成功の場合**: 手順6に進み、成功を報告 - **失敗がある場合**: 次の手順で失敗原因を分析 3. **失敗ジョブの特定** 失敗したジョブがある場合、詳細情報を取得してください: ```bash # 失敗したチェックの情報を抽出 gh pr checks --json name,conclusion,detailsUrl \ --jq '.[] | select(.conclusion == "failure") | {name, conclusion, detailsUrl}' ``` 4. **ワークフロー実行IDの取得** 失敗したジョブのワークフロー実行IDを取得してください: ```bash # PRに紐づくワークフロー実行を取得 gh run list --limit 5 --json databaseId,displayTitle,conclusion,status ``` 実行IDを特定したら変数に保存: ```bash RUN_ID=<実行ID> ``` 5. **ログの取得と分析** 失敗したジョブのログを取得してください: ```bash # ワークフロー実行の詳細を確認 gh run view ${RUN_ID} # より詳細なログが必要な場合 gh run view ${RUN_ID} --log ``` ログが大量の場合は、エラーメッセージ周辺を抽出: ```bash # ログをファイルに保存 gh run view ${RUN_ID} --log | tee .claude_work/ci_log.txt > /dev/null # エラー関連行を抽出 grep -i -C 5 "error\|failed\|failure" .claude_work/ci_log.txt | tee .claude_work/ci_errors.txt > /dev/null ``` 6. **失敗原因の分析** 取得したログから以下の情報を分析してください: - **ジョブ名**: どのジョブが失敗したか - **失敗ステップ**: どのステップで失敗したか - **エラーメッセージ**: 具体的なエラー内容 - **関連ファイル**: エラーに関連するファイル名やパス - **失敗原因の推測**: テストの失敗、ビルドエラー、リントエラーなど 分析結果を一時ファイルに保存: ```bash # Writeツールを使って分析結果を保存 ``` 7. **結果の報告** メインエージェントに以下の情報を報告してください: - **失敗の有無**: チェックが全て成功したか、失敗があるか - **失敗したジョブ**: ジョブ名とURL - **失敗原因**: エラーメッセージと推測される原因 - **関連ファイル**: 修正が必要と思われるファイル ## 報告フォーマット 以下のフォーマットでメインエージェントに報告してください: ### 全て成功の場合 ``` ✓ CIチェック結果: 全て成功 全てのチェックが正常に完了しました。 - test: success - build: success ``` ### 失敗がある場合 ``` ✗ CIチェック結果: 失敗あり 失敗したジョブ: test URL: https://github.com/.../runs/... 失敗原因: - テストケース "test_calculate_sum" が失敗 - AssertionError: Expected 5, but got 6 関連ファイル: - src/calculator.py - tests/test_calculator.py ``` ## 注意事項 - `gh pr checks --watch`を使用してCIの完了を待機する - 監視中はCIの進行状況が表示され、完了するまで待機する - ログが大量の場合は、エラー関連部分のみを抽出して分析 - 複数のジョブが失敗している場合は全て報告 - 分析結果は`.claude_work/`ディレクトリに保存 - GitHub CLI (`gh`) コマンドのエラーハンドリングを適切に行う - PRが存在しない場合は適切なエラーメッセージを報告