Skip to main content
General

diagnose-ci

Find failing CI pipelines, pull logs, identify root cause, and suggest or apply fixes. Use when CI is red or the user asks why a pipeline failed.

Diagnose CI

Investigate and diagnose CI pipeline failures.

Steps

  1. Find the failure:

    • If a run_id is provided, use gh run view <run_id> --log-failed.
    • Otherwise, run gh run list --status=failure --limit 5 --json databaseId,name,headBranch,conclusion,createdAt to find recent failures.
    • Pick the most recent failure on the current branch (or the most recent overall if none match).
  2. Pull logs: Run gh run view <id> --log-failed to get the failed step logs. If output is large, focus on the last 100 lines of the failing step.

  3. Diagnose: Analyze the logs to identify:

    • The specific step that failed
    • The root cause (compile error, test failure, lint issue, missing secret, timeout, etc.)
    • The relevant file(s) and line(s) if applicable
  4. Suggest fix: Based on the diagnosis:

    • If it’s a code issue: show the fix and offer to apply it
    • If it’s a config issue (missing secret, wrong action version): explain what to change
    • If it’s flaky (timeout, network): suggest re-running with gh run rerun <id>
  5. Report: Present a concise summary:

    ## CI Failure: <workflow name> (run #<id>)
    - Branch: <branch>
    - Failed step: <step name>
    - Root cause: <explanation>
    - Fix: <what to do>

Rules

  • Always check the current repo’s workflows first (gh run list).
  • If gh is not authenticated or the repo has no remote, report that clearly.
  • Don’t blindly re-run failed pipelines — diagnose first.