HomeBrowseUpload
← Back to registry
// Skill profile

GitHub Actions Failure Matrix

name: github-actions-failure-matrix

by daniellummis · published 2026-03-22

开发工具数据处理
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:daniellummis/daniellummis-github-actions-failure-matrix
View on GitHub
// Full documentation

---

name: github-actions-failure-matrix

description: Summarize GitHub Actions matrix job failures across runs so you can spot unstable OS/runtime axes fast.

version: 1.7.0

metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}}

---

# 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 `text` or `json`
  • Inputs

    Optional:

  • `RUN_GLOB` (default: `artifacts/github-actions/*.json`)
  • `TOP_N` (default: `20`)
  • `OUTPUT_FORMAT` (`text` or `json`, default: `text`)
  • `FAIL_ON_FAILURES` (`0` or `1`, default: `0`) — exit non-zero when failure groups exist
  • `MIN_OCCURRENCES` (default: `1`) — hide groups below this repeat count
  • `WORKFLOW_MATCH` (regex, optional) — include only workflows whose names match
  • `WORKFLOW_EXCLUDE` (regex, optional) — drop workflows whose names match
  • `BRANCH_MATCH` (regex, optional) — include only runs whose branch names match
  • `BRANCH_EXCLUDE` (regex, optional) — drop runs whose branch names match
  • `JOB_MATCH` (regex, optional) — include only base job names that match
  • `JOB_EXCLUDE` (regex, optional) — drop base job names that match
  • `AXIS_MATCH` (regex, optional) — include only parsed matrix-axis strings that match
  • `AXIS_EXCLUDE` (regex, optional) — drop parsed matrix-axis strings that match
  • `CONCLUSION_MATCH` (regex, optional) — include only specific failure conclusions (`failure`, `timed_out`, `cancelled`, etc.)
  • `CONCLUSION_EXCLUDE` (regex, optional) — drop specific failure conclusions
  • `FAILED_STEP_MATCH` (regex, optional) — include only jobs whose terminal failed step matches
  • `FAILED_STEP_EXCLUDE` (regex, optional) — drop jobs whose terminal failed step matches
  • `RUN_ID_MATCH` (regex, optional) — include only runs whose run id matches
  • `RUN_ID_EXCLUDE` (regex, optional) — drop runs whose run id matches
  • `RUN_URL_MATCH` (regex, optional) — include only runs whose URL matches
  • `RUN_URL_EXCLUDE` (regex, optional) — drop runs whose URL matches
  • `HEAD_SHA_MATCH` (regex, optional) — include only runs whose `headSha` matches
  • `HEAD_SHA_EXCLUDE` (regex, optional) — drop runs whose `headSha` matches
  • `REPO_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 <run-id> --json databaseId,workflowName,headBranch,headSha,url,repository,jobs \
      > artifacts/github-actions/run-<run-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 `0` by default (reporting mode)
  • Exit `1` if `FAIL_ON_FAILURES=1` and at least one failure group is found
  • In `text` mode, prints summary + top failure matrix groups
  • In `json` mode, prints machine-readable summary and grouped failures
  • // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band