JUnit Failure Fingerprint

v1.0.0

Cluster JUnit failures into stable fingerprints so CI triage focuses on root causes, not noisy one-off logs.

0· 264·0 current·0 all-time
byDaniel Lummis@daniellummis
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
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.
Assessment
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.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binsbash, python3
latestvk97cm3k9wkr9501pj2wkc2215582bavh
264downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

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

Comments

Loading comments...