Skip to content
Machine Learning
Skill

/analyze-ci

Analyze failed GitHub Action jobs. Takes one or more GitHub URLs (job, workflow-run, or PR) and summarizes each failure with root cause and log paths.

BOOST
From plugin
mlflow
28k8 skills
Install
$ npx -y skills add mlflow/mlflow --skill analyze-ci --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/analyze-ci

Context preview

The summary Claude sees to decide when to auto-load this skill.

Analyze failed GitHub Action jobs. Takes one or more GitHub URLs (job, workflow-run, or PR) and summarizes each failure with root cause and log paths.

SKILL.md

analyze-ci.SKILL.md
name: analyze-ci
description: Analyze failed GitHub Action jobs. Takes one or more GitHub URLs (job, workflow-run, or PR) and summarizes each failure with root cause and log paths.
when_to_use: When CI is red or a check failed, when the user pastes a GitHub Actions job or run URL, or when asked why a PR's checks are failing.
argument-hint: "url(s) of failed GitHub Action jobs, workflow runs, or PRs"

Analyze CI Failures

Fetch logs from failed GitHub Action jobs and produce a focused per-job failure summary.

URLs provided: $ARGUMENTS

If no URLs are listed above, ask for a job, run, or PR URL and stop. `fetch-logs` requires at least one and exits 2 without.

Prerequisites

  • **GitHub Token**: Auto-detected via `gh auth token`, or set `GH_TOKEN`.

Steps

1. **Fetch logs.** Run, single-quoting each URL so the shell does not interpret `?` or other special characters in it:

   uv run --package skills skills fetch-logs '<url>' ['<url>' ...]

The command prints one block per failed job containing the workflow/job name, URL, failed step, and paths to the cached raw log, failed-step log, and (optional) package versions file.

2. **Read each failed-step log and summarize it.** For every block, Read the file at its `Failed step log:` path, then identify:

  • The root cause.
  • Specific error messages (assertion errors, exceptions, stack traces).
  • Full pytest test names where applicable (e.g. `tests/test_foo.py::test_bar`).
  • A short log snippet showing the error context.

3. **Format each summary** with these fields, then a blank line, then the 1-2 paragraph summary.

  • `Failed job: <workflow name> / <job name>`
  • `Failed step: <step name>`
  • `URL: <job_url>`
  • `Raw log: <raw_log_path>`
  • `Failed step log: <failed_step_log_path>`
  • `Package versions: <package_versions_path>` (if present)

Preserve the `Raw log:`, `Failed step log:`, and `Package versions:` paths verbatim from step 1 so downstream agents can grep deeper.

Invocation examples

# All failed jobs on a PR
/analyze-ci https://github.com/mlflow/mlflow/pull/19601

# All failed jobs in one workflow run
/analyze-ci https://github.com/mlflow/mlflow/actions/runs/22626454465

# Specific job by URL
/analyze-ci https://github.com/mlflow/mlflow/actions/runs/12345/job/67890

# Multiple URLs at once
/analyze-ci https://github.com/mlflow/mlflow/actions/runs/123/job/456 https://github.com/mlflow/mlflow/actions/runs/789/job/012
Read more
Ships withmlflow

The open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.

Get the whole plugin
Stats
28,244
Stars
6,416
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
5m ago
Last commit
8y ago
Created
3h ago
Added

Repo: mlflow/mlflow

Other skills on mlflow.