🧪 Skills
CI Flake Triage
--- name: ci-flake-triage description: Detect flaky tests from JUnit XML retries and emit a triage report with top unstable cases. version: 1.0.0 metadata: {"openclaw":{"requires":{"bins":["bash","pyt
v1.0.0
Description
name: ci-flake-triage description: Detect flaky tests from JUnit XML retries and emit a triage report with top unstable cases. version: 1.0.0 metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}}
CI Flake Triage
Use this skill to turn noisy JUnit retry artifacts into a focused flaky-test report.
What this skill does
- Reads one or more JUnit XML files (for example: first run + rerun artifacts)
- Aggregates status per test case (
passed,failed,skipped,error) - Flags flaky candidates when a test has both fail-like and pass outcomes
- Separates persistent failures from flaky failures
- Prints top flaky tests to prioritize stabilization work
Inputs
Optional:
JUNIT_GLOB(default:test-results/**/*.xml)TRIAGE_TOP(default:20)OUTPUT_FORMAT(textorjson, default:text)FAIL_ON_PERSISTENT(0or1, default:0) — exit non-zero when persistent failures existFAIL_ON_FLAKE(0or1, default:0) — exit non-zero when flaky candidates exist
Run
Text report:
JUNIT_GLOB='artifacts/junit/**/*.xml' \
TRIAGE_TOP=15 \
bash skills/ci-flake-triage/scripts/triage-flakes.sh
JSON output for CI ingestion:
JUNIT_GLOB='artifacts/junit/**/*.xml' \
OUTPUT_FORMAT=json \
FAIL_ON_PERSISTENT=1 \
bash skills/ci-flake-triage/scripts/triage-flakes.sh
Run with bundled fixtures:
JUNIT_GLOB='skills/ci-flake-triage/fixtures/*.xml' \
bash skills/ci-flake-triage/scripts/triage-flakes.sh
Output contract
- Exit
0when no fail gates are enabled (default) - Exit
1ifFAIL_ON_PERSISTENT=1and persistent failures are found - Exit
1ifFAIL_ON_FLAKE=1and flaky candidates are found - In
textmode, prints summary + top flaky + persistent failures - In
jsonmode, prints machine-readable summary and testcase details
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!