← Back to Skills Marketplace
daniellummis

CI Flake Triage

by Daniel Lummis · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
280
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install ci-flake-triage
Description
Detect flaky tests from JUnit XML retries and emit a triage report with top unstable cases.
README (SKILL.md)

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 (text or json, default: text)
  • FAIL_ON_PERSISTENT (0 or 1, default: 0) — exit non-zero when persistent failures exist
  • FAIL_ON_FLAKE (0 or 1, 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 0 when no fail gates are enabled (default)
  • Exit 1 if FAIL_ON_PERSISTENT=1 and persistent failures are found
  • Exit 1 if FAIL_ON_FLAKE=1 and flaky candidates are found
  • In text mode, prints summary + top flaky + persistent failures
  • In json mode, prints machine-readable summary and testcase details
Usage Guidance
This skill appears coherent and safe for use: it only reads JUnit XML files (based on the provided JUNIT_GLOB), parses them with Python, and emits reports. Before running in CI, confirm the JUNIT_GLOB only matches the intended test artifacts (it can read any files the glob matches). No network calls or credential access are present, so there is no obvious data exfiltration risk from the skill itself.
Capability Analysis
Type: OpenClaw Skill Name: ci-flake-triage Version: 1.0.0 The skill is a legitimate utility designed to analyze JUnit XML test results and identify flaky tests in CI pipelines. It uses a bash wrapper (scripts/triage-flakes.sh) to execute an inline Python script that aggregates test statuses and generates triage reports. The code performs basic input validation, lacks any network or exfiltration capabilities, and its behavior is entirely consistent with its stated purpose.
Capability Assessment
Purpose & Capability
The name/description (CI Flake Triage) aligns with the included script and SKILL.md: both parse JUnit XML, aggregate statuses, classify flaky vs persistent failures, and emit text or JSON reports. Required binaries (bash, python3) are appropriate for the provided shell+Python implementation.
Instruction Scope
SKILL.md instructs the agent to run the bundled script against a JUnit file glob. The script only reads files matched by the glob, parses XML, and prints/returns results. It does not reference unrelated system paths, environment secrets, or external endpoints.
Install Mechanism
There is no install spec (instruction-only plus bundled script). Nothing is downloaded or written to disk beyond running the included script; this is low-risk and proportionate.
Credentials
The skill requests no environment variables or credentials by default. Optional runtime variables (JUNIT_GLOB, TRIAGE_TOP, OUTPUT_FORMAT, FAIL_ON_PERSISTENT, FAIL_ON_FLAKE) are reasonable and scoped to the task.
Persistence & Privilege
The skill does not request persistent presence (always:false) and does not modify other skills or system config. Autonomous invocation is allowed (platform default) but combined with the script's limited scope this is not a concern.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ci-flake-triage
  3. After installation, invoke the skill by name or use /ci-flake-triage
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of ci-flake-triage. - Detects flaky tests from JUnit XML retries and generates a triage report highlighting unstable cases. - Aggregates and flags tests with both failing and passing outcomes. - Separates persistent failures from flaky failures for clearer prioritization. - Supports configurable report format (text or JSON) and result filtering. - Includes options to control CI exit behavior based on failures or flakes. - Provides easy-to-run scripts and bundled fixtures for testing.
Metadata
Slug ci-flake-triage
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is CI Flake Triage?

Detect flaky tests from JUnit XML retries and emit a triage report with top unstable cases. It is an AI Agent Skill for Claude Code / OpenClaw, with 280 downloads so far.

How do I install CI Flake Triage?

Run "/install ci-flake-triage" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is CI Flake Triage free?

Yes, CI Flake Triage is completely free (open-source). You can download, install and use it at no cost.

Which platforms does CI Flake Triage support?

CI Flake Triage is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created CI Flake Triage?

It is built and maintained by Daniel Lummis (@daniellummis); the current version is v1.0.0.

💬 Comments