From ci
Fetch a Prow job run summary from Sippy showing all failed tests grouped by SIG with error messages
How this skill is triggered — by the user, by Claude, or both
Slash command
/ci:fetch-job-run-summaryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill fetches a summary of a Prow job run from the Sippy API, listing all tests that failed (excluding flakes) along with their error messages.
This skill fetches a summary of a Prow job run from the Sippy API, listing all tests that failed (excluding flakes) along with their error messages.
Use this skill when you need to:
https://sippy.dptools.openshift.orgscript_path="plugins/ci/skills/fetch-job-run-summary/fetch_job_run_summary.py"
# Text output (AI-readable)
python3 "$script_path" <prow_job_run_id>
# JSON output (structured)
python3 "$script_path" <prow_job_run_id> --format json
| Parameter | Required | Description |
|---|---|---|
prow_job_run_id | Yes | The Prow job run ID (numeric, e.g., 2030845545290928128) |
--format | No | Output format: text (default) or json |
The job run ID can be extracted from a Prow job URL:
https://prow.ci.openshift.org/view/gs/test-platform-results/logs/<job-name>/<job_run_id>
The last path segment is the job run ID.
Endpoint: https://sippy.dptools.openshift.org/api/job/run/summary
Query Parameter: prow_job_run_id (required)
Response Fields:
| Field | Type | Description |
|---|---|---|
id | int | Prow job run ID |
name | string | Full job name |
release | string | OpenShift release (e.g., 4.22) |
cluster | string | Build cluster (e.g., build01) |
url | string | Prow job URL |
startTime | string | ISO 8601 start time |
durationSeconds | int | Job duration in seconds |
overallResult | string | S (success) or F (failure) |
reason | string | Human-readable result reason |
infrastructureFailure | bool | Whether this was an infrastructure failure |
testCount | int | Total number of tests run |
testFailureCount | int | Number of failed tests |
testFailures | dict | Map of test name to error message (excludes flakes) |
variants | list | Job variant tags |
The Sippy API automatically handles flake detection. When a test has both a failure and a pass in the same job run's junit results (the standard flake pattern), it is not included in testFailures. Only true failures — tests that failed without a corresponding pass — appear in the results.
The text output is structured for AI consumption with:
Structured JSON with the same data:
{
"success": true,
"job_name": "periodic-ci-openshift-hypershift-...",
"job_run_id": "2030845545290928128",
"release": "4.22",
"test_count": 3827,
"failure_count": 400,
"pass_rate": 89.5,
"failed_tests": [
{"test_name": "[sig-cli] example test name", "error": "error message..."}
],
"dominant_error_patterns": [
{"pattern": "stale GroupVersion discovery: ...", "count": 50, "percentage": 12.5}
]
}
# Get the summary of a job run that triggered mass test failures
python3 plugins/ci/skills/fetch-job-run-summary/fetch_job_run_summary.py 2030845545290928128
# Fetch summaries for a failing and passing run to diff
python3 plugins/ci/skills/fetch-job-run-summary/fetch_job_run_summary.py 2030845545290928128 --format json > failing.json
python3 plugins/ci/skills/fetch-job-run-summary/fetch_job_run_summary.py 2030845542774345728 --format json > passing.json
testFailureCount may be slightly higher than the number of entries in testFailures due to internal deduplicationfetch-test-runs skill insteadfetch-test-runs - Fetch raw outputs for a specific test across multiple job runsfetch-regression-details - Fetch Component Readiness regression details/ci:analyze-prow-job-test-failure - Deep analysis of test failures in a Prow jobnpx claudepluginhub saschagrunert/ai-helpers --plugin ciCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.