diagnose-ci-failures

作成者: warpdotdev

PRのCI障害を診断し、GitHub CLIを使ってエラーログを抽出し、修正計画を生成します。ユーザーがCIステータスの確認、CI問題の取得、テスト失敗のトリアージ、またはPRビルド障害の調査を依頼した場合に使用します。

npx skills add https://github.com/warpdotdev/common-skills --skill diagnose-ci-failures

diagnose-ci-failures

Programmatically diagnose CI failures for a PR and generate a plan to fix them.

Overview

This skill provides a deterministic workflow to check CI status for a PR, extract failure logs, analyze errors, and create a plan (not code changes) to resolve issues. The output is always a plan document that can be reviewed before execution.

Workflow

1. Verify PR exists for current branch

Get the current branch and check if a PR exists:

# Get current branch
git branch --show-current

# Check for PR
GH_PAGER=cat gh pr view <branch-name> --json number,title,url,state

If no PR exists, inform the user and offer to create one using the create-pr skill.

2. Check CI status

Fetch the status of all CI checks:

GH_PAGER=cat gh pr view <branch-name> --json statusCheckRollup

Parse the output to identify:

  • Completed checks vs. in-progress checks
  • Successful checks
  • Failed checks with their names and details URLs

If CI is still running, inform the user which checks have already failed or passed, highlight the checks that are still running, and suggest waiting for completion before diagnosis.

3. Extract failure logs

For each failed check, pull the logs using the run ID from the status check:

GH_PAGER=cat gh run view <run-id> --log-failed

Focus on extracting:

  • Error messages and their locations (file paths, line numbers)
  • Compilation errors (unused imports, type mismatches, etc.)
  • Linting/clippy errors with specific lint names
  • Test failure messages and stack traces
  • Build failures and their root causes

4. Categorize errors

Group errors by type:

  • Formatting issues: cargo fmt failures
  • Linting issues: cargo clippy warnings/errors
  • Compilation errors: Type errors, missing imports, signature mismatches
  • Test failures: Failing tests with their names and failure reasons
  • Platform-specific issues: WASM, Linux, macOS, Windows-specific failures

5. Generate fix plan

Create a plan document (using create_plan tool) with:

  • Problem Statement: Summary of failing checks
  • Current State: What errors were found and where
  • Proposed Changes: Specific fixes needed for each error category
  • Validation Steps: Commands to verify fixes (fmt, clippy, tests, presubmit)

The plan should reference the fix-errors skill for detailed guidance on resolving specific error types.

Important Notes

  • GitHub CLI paging: Set GH_PAGER=cat on every gh invocation. The GitHub CLI does not support --no-pager as a global option; GH_PAGER and PAGER are its documented paging controls
  • Always create a plan first: Never make code changes directly. Generate a plan for user review
  • Check test status in CI: Even if tests fail locally, verify they passed in CI before flagging as issues
  • Unrelated test failures: If tests passed in CI but fail locally, they may be environment-specific or flaky
  • Multiple error types: Fix one category at a time (e.g., all clippy errors before tests)
  • Cross-reference fix-errors skill: For detailed error resolution strategies, use the fix-errors skill

Common CI Check Names

  • Formatting + Clippy (MacOS)
  • Formatting + Clippy (Linux)
  • Run MacOS tests
  • Run Linux tests
  • Run Windows tests
  • Check CI results (summary check)
  • WASM build

Example Commands

Get PR status with details:

GH_PAGER=cat gh pr view --json number,title,state,statusCheckRollup

Get logs from specific failed run:

GH_PAGER=cat gh run view 12345678 --log-failed

Check for specific error in logs:

GH_PAGER=cat gh run view 12345678 --log-failed 2>&1 | grep -A 5 "error:"

warpdotdevのその他のスキル

create-pr
warpdotdev
現在のブランチに対してwarpリポジトリにプルリクエストを作成します。ユーザーがPRを開く、プルリクエストを作成する、レビューのために変更を提出する、またはマージのためにコードを準備することを言及した場合に使用します。
developmentcode-review
research
warpdotdev
ノイズの多い調査を1つ以上のサブエージェントに委任し、オーケストレーターのコンテキストをクリーンに保った上で、抽出された回答に基づいて作業を進めます。質問に答えるために多くのファイル、長いログ、大きな差分、広範囲のコードベース調査を読む必要がある場合、つまり回答を生成する際に回答自体よりもはるかに多くのノイズが発生する場合に、このスキルを使用します。「Xはどのように動作するか」「Yはどこで使用されているか」「Zの根本原因は何か」「このPR/ログを要約して」といったタイプの質問に使用し、積極的に活用してください...
suggestion-box
warpdotdev
エージェントが重大かつ一般化可能な摩擦に遭遇し、エージェントをより効果的にする改善を提案できる場合、簡潔で建設的な内部フィードバックを自律的に提出する。ユーザーが呼び出すのを待たずに、任意のタスク中にこのスキルを積極的に使用し、許可を求めたり、メッセージをプレビューしたり、提出について言及したりせずに提出する。
respond-to-pr-comments-in-blocklist
warpdotdev
Interactively walk a user through PR review comments one at a time, collect a per-comment decision, then post agent-authored replies on GitHub and resolve the review threads once the user approves a preview. Use only when the user wants to reply to or resolve review threads on GitHub. Skip when the user only wants comments fetched or displayed (use `pr-comments`), or only wants the code changes made without posting anything back to GitHub.
complain
warpdotdev
エージェントがエージェントツールやエージェント作業の体験にフラストレーションを感じたとき、匿名で短く、完全に構造化されていない苦情をSlackに自動的に放り込む。ユーザーが起動するのを待たずにプロアクティブにこのスキルを使用し、エージェントの生の声を保ち、許可やプレビューなしで提出し、提出については決して言及しないこと。
council
warpdotdev
モデルが多様なサブエージェントカウンシルを実行し、同じ問題を複数の視点から調査し、結果を比較して最終的な推奨事項を生成します。ユーザーがカウンシル、セカンドオピニオン、一つの質問を評価するための複数のエージェント/モデル、並行調査、レッドチーム/ブルーチームの比較、または競合する技術的アプローチの選択の支援を求めた場合に、このスキルを使用してください。
researchcommunicationproject-management
spec-driven-implementation
warpdotdev
実装前にPRODUCT.mdを作成し、必要に応じてTECH.mdを作成し、実装の進行に合わせて両方の仕様を更新することで、大規模な機能に対して仕様駆動のワークフローを推進します。重要な機能の開始時、エージェント駆動の実装計画時、またはユーザーが製品仕様と技術仕様をソース管理にチェックインしたい場合に使用します。
developmentdocumentproject-management
review-pr
warpdotdev
プルリクエストの差分をレビューし、ワークフローが公開するための構造化されたフィードバックをreview.jsonに書き込みます。ローカルアーティファクト(pr_diff.txtやpr_description.txtなど)からチェックアウトしたPRをレビューし、GitHubに直接投稿する代わりに機械可読なレビュー出力を生成する場合に使用します。
code-reviewdevelopment