GitHub Actions Failure Matrix
/install github-actions-failure-matrix
GitHub Actions Failure Matrix
Use this skill to turn noisy GitHub Actions run JSON into a matrix-focused failure report.
What this skill does
- Reads one or more JSON exports from GitHub Actions runs (via
gh run view --json) - Detects failure-like matrix jobs (
failure,timed_out,cancelled, etc.) - Extracts matrix axes from common job-name patterns (
name (a, b),name [a, b],name / a / b) - Groups repeated failures by workflow + job + matrix axis signature
- Emits ranked triage output in
textorjson
Inputs
Optional:
RUN_GLOB(default:artifacts/github-actions/*.json)TOP_N(default:20)OUTPUT_FORMAT(textorjson, default:text)FAIL_ON_FAILURES(0or1, default:0) — exit non-zero when failure groups existMIN_OCCURRENCES(default:1) — hide groups below this repeat countWORKFLOW_MATCH(regex, optional) — include only workflows whose names matchWORKFLOW_EXCLUDE(regex, optional) — drop workflows whose names matchBRANCH_MATCH(regex, optional) — include only runs whose branch names matchBRANCH_EXCLUDE(regex, optional) — drop runs whose branch names matchJOB_MATCH(regex, optional) — include only base job names that matchJOB_EXCLUDE(regex, optional) — drop base job names that matchAXIS_MATCH(regex, optional) — include only parsed matrix-axis strings that matchAXIS_EXCLUDE(regex, optional) — drop parsed matrix-axis strings that matchCONCLUSION_MATCH(regex, optional) — include only specific failure conclusions (failure,timed_out,cancelled, etc.)CONCLUSION_EXCLUDE(regex, optional) — drop specific failure conclusionsFAILED_STEP_MATCH(regex, optional) — include only jobs whose terminal failed step matchesFAILED_STEP_EXCLUDE(regex, optional) — drop jobs whose terminal failed step matchesRUN_ID_MATCH(regex, optional) — include only runs whose run id matchesRUN_ID_EXCLUDE(regex, optional) — drop runs whose run id matchesRUN_URL_MATCH(regex, optional) — include only runs whose URL matchesRUN_URL_EXCLUDE(regex, optional) — drop runs whose URL matchesHEAD_SHA_MATCH(regex, optional) — include only runs whoseheadShamatchesHEAD_SHA_EXCLUDE(regex, optional) — drop runs whoseheadShamatchesREPO_MATCH(regex, optional) — include only runs whose repository matches (repository.nameWithOwner/full_name/name)REPO_EXCLUDE(regex, optional) — drop runs whose repository matches
Collect run JSON
gh run view \x3Crun-id> --json databaseId,workflowName,headBranch,headSha,url,repository,jobs \
> artifacts/github-actions/run-\x3Crun-id>.json
Run
Text report:
RUN_GLOB='artifacts/github-actions/*.json' \
TOP_N=15 \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
JSON output for CI annotation/upload:
RUN_GLOB='artifacts/github-actions/*.json' \
OUTPUT_FORMAT=json \
FAIL_ON_FAILURES=1 \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Filter to a specific workflow + branch + matrix axis (for targeted triage):
RUN_GLOB='artifacts/github-actions/*.json' \
WORKFLOW_MATCH='(CI|Test)' \
BRANCH_MATCH='^(main|release/)' \
AXIS_MATCH='ubuntu-latest \| python-3\.12' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Isolate timeout-only matrix failures:
RUN_GLOB='artifacts/github-actions/*.json' \
CONCLUSION_MATCH='^timed_out$' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Exclude noisy flaky suites while keeping the rest of the matrix view:
RUN_GLOB='artifacts/github-actions/*.json' \
WORKFLOW_EXCLUDE='nightly|experimental' \
JOB_EXCLUDE='lint|docs' \
AXIS_EXCLUDE='windows-latest' \
CONCLUSION_EXCLUDE='^cancelled$' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Focus only on setup/toolchain breakages by failed step name:
RUN_GLOB='artifacts/github-actions/*.json' \
FAILED_STEP_MATCH='setup|install|dependency' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Limit triage to a specific run range or workflow URL pattern:
RUN_GLOB='artifacts/github-actions/*.json' \
RUN_ID_MATCH='^(28419|28420)' \
RUN_URL_MATCH='example/repo/actions/runs' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Scope triage to a commit range by headSha:
RUN_GLOB='artifacts/github-actions/*.json' \
HEAD_SHA_MATCH='^(abc123|def456)' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Scope triage to specific repositories when aggregating exports from multiple repos:
RUN_GLOB='artifacts/github-actions/*.json' \
REPO_MATCH='^flowcreatebot/(yf-api-saas|conspiracy-canvas)$' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Run with bundled fixtures:
RUN_GLOB='skills/github-actions-failure-matrix/fixtures/*.json' \
bash skills/github-actions-failure-matrix/scripts/failure-matrix.sh
Output contract
- Exit
0by default (reporting mode) - Exit
1ifFAIL_ON_FAILURES=1and at least one failure group is found - In
textmode, prints summary + top failure matrix groups - In
jsonmode, prints machine-readable summary and grouped failures
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install github-actions-failure-matrix - After installation, invoke the skill by name or use
/github-actions-failure-matrix - Provide required inputs per the skill's parameter spec and get structured output
What is GitHub Actions Failure Matrix?
Summarize GitHub Actions matrix job failures across runs so you can spot unstable OS/runtime axes fast. It is an AI Agent Skill for Claude Code / OpenClaw, with 368 downloads so far.
How do I install GitHub Actions Failure Matrix?
Run "/install github-actions-failure-matrix" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is GitHub Actions Failure Matrix free?
Yes, GitHub Actions Failure Matrix is completely free (open-source). You can download, install and use it at no cost.
Which platforms does GitHub Actions Failure Matrix support?
GitHub Actions Failure Matrix is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created GitHub Actions Failure Matrix?
It is built and maintained by Daniel Lummis (@daniellummis); the current version is v1.7.0.