← Back to Skills Marketplace
daniellummis

JUnit Failure Fingerprint

by Daniel Lummis · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
280
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install junit-failure-fingerprint
Description
Cluster JUnit failures into stable fingerprints so CI triage focuses on root causes, not noisy one-off logs.
README (SKILL.md)

JUnit Failure Fingerprint

Use this skill to compress noisy JUnit failures/errors into repeatable fingerprints.

What this skill does

  • Scans one or more JUnit XML files
  • Extracts only failing/error test cases
  • Normalizes volatile tokens (IDs, numbers, line numbers, addresses, UUIDs)
  • Generates stable fingerprint hashes for similar root-cause failures
  • Emits grouped triage output (text or json)

Inputs

Optional:

  • JUNIT_GLOB (default: test-results/**/*.xml)
  • TOP_N (default: 20)
  • OUTPUT_FORMAT (text or json, default: text)
  • STACK_LINES (default: 3) — number of normalized stack lines to include in fingerprint seed
  • FAIL_ON_FAILURES (0 or 1, default: 0) — exit non-zero when any failures/errors are found

Run

Text report:

JUNIT_GLOB='artifacts/junit/**/*.xml' \
TOP_N=15 \
bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh

JSON output for CI annotation/upload:

JUNIT_GLOB='artifacts/junit/**/*.xml' \
OUTPUT_FORMAT=json \
FAIL_ON_FAILURES=1 \
bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh

Run with bundled fixtures:

JUNIT_GLOB='skills/junit-failure-fingerprint/fixtures/*.xml' \
bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh

Output contract

  • Exit 0 by default (reporting mode)
  • Exit 1 if FAIL_ON_FAILURES=1 and at least one failure/error is found
  • In text mode, prints summary + top fingerprints
  • In json mode, prints machine-readable groups and per-case detail
Usage Guidance
This skill appears safe and does exactly what it claims: parse JUnit XMLs and produce fingerprints. Before using in CI, verify your JUNIT_GLOB value so it only matches test result files (not / or other sensitive locations). You can test locally with the provided fixtures. If you enable FAIL_ON_FAILURES, be aware it will return a non-zero exit code when failures are found, which can fail CI jobs as intended.
Capability Analysis
Type: OpenClaw Skill Name: junit-failure-fingerprint Version: 1.0.0 The skill is a utility for clustering JUnit test failures into stable fingerprints to assist in CI triage. It uses a bash script to execute an embedded Python script that parses XML files, normalizes volatile data (such as UUIDs, hex addresses, and line numbers), and generates SHA1 hashes for grouping similar errors. No malicious behaviors, data exfiltration, or suspicious network/execution patterns were identified in scripts/fingerprint-junit.sh or the documentation.
Capability Assessment
Purpose & Capability
Name and description (cluster JUnit failures) match the included script and SKILL.md. Required binaries (bash, python3) are appropriate and sufficient for the stated task; there are no unrelated credentials or config paths.
Instruction Scope
Runtime instructions and the script limit actions to scanning JUnit XML files (via a glob), normalizing text, hashing seeds, and printing/grouping results. Caution: JUNIT_GLOB is user-controllable — if set to a broad or sensitive filesystem path, the script will read whatever files match the glob. By default the glob targets test-results/**/*.xml and the bundled fixtures example is safe.
Install Mechanism
No install spec; this is instruction-only plus a bundled script. Nothing is downloaded or written to disk by an installer during skill installation.
Credentials
The skill requests no environment variables or credentials by default. It does accept optional environment inputs (JUNIT_GLOB, TOP_N, OUTPUT_FORMAT, STACK_LINES, FAIL_ON_FAILURES) that are reasonable for its purpose.
Persistence & Privilege
Skill is not always-enabled and does not request elevated persistence or modify other skills or system settings. It only runs when invoked and doesn't persist state or credentials.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install junit-failure-fingerprint
  3. After installation, invoke the skill by name or use /junit-failure-fingerprint
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Version 1.0.0 — Initial release - Cluster JUnit failures and errors into stable, repeatable fingerprints for easier CI triage. - Scans JUnit XML files, normalizes volatile tokens, and groups similar failures. - Supports text or JSON outputs, configurable via environment variables. - Designed for efficient debugging with grouped triage reports and machine-readable output. - Optional non-zero exit for failed cases to integrate with CI pipelines.
Metadata
Slug junit-failure-fingerprint
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is JUnit Failure Fingerprint?

Cluster JUnit failures into stable fingerprints so CI triage focuses on root causes, not noisy one-off logs. It is an AI Agent Skill for Claude Code / OpenClaw, with 280 downloads so far.

How do I install JUnit Failure Fingerprint?

Run "/install junit-failure-fingerprint" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is JUnit Failure Fingerprint free?

Yes, JUnit Failure Fingerprint is completely free (open-source). You can download, install and use it at no cost.

Which platforms does JUnit Failure Fingerprint support?

JUnit Failure Fingerprint is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created JUnit Failure Fingerprint?

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

💬 Comments