CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/junit-xml-analysis

Explains CI test numbers that disagree with what the suite actually did - a 'slowest tests' list dominated by the wrong suite, a release gate or dashboard reading only the summary attributes on the suite element and never the cases below them, or a pass rate that quietly counts skipped tests as passes. Parses JUnit-format XML (the interchange format Jenkins, GitHub Actions, GitLab, Buildkite, and CircleCI all ingest) into per-suite and per-case metrics tables - passed / failed / errored / skipped, time, classname, message, stack - groups failures by classname for trend analysis, and separates new failures from flakes by cross-referencing the `flakyFailure` and rerun elements. Use when a report, gate, or metric derived from test results cannot be trusted.

97

1.02x
Quality

85%

Does it follow best practices?

Impact

99%

1.02x

Average score across 10 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

72%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, largely executable skill body with excellent progressive disclosure (inline Python core, one real one-level-deep reference file) and high-value gotchas. The main gap is the absence of any validation checkpoint in the parse/aggregate pipeline - surprising given the skill's own premise is that summary numbers cannot be trusted - which caps workflow clarity at 3.

Suggestions

Add a validation step after parsing that cross-checks computed per-suite counts (pass/failure/error/skipped) against the suite element's declared tests/failures/errors/skipped attributes, flagging mismatches - this directly addresses the skill's core premise and lifts workflow clarity above the batch-operation cap.

Provide executable code (or at least concrete comparison logic) for the Step 5 cross-run trend analysis and Step 6 slow-test list, which are currently conveyed only via schema examples and a one-line directive.

Deduplicate the hierarchy and result-child explanations shared between the Overview and Step 1 to tighten token efficiency.

DimensionReasoningScore

Conciseness

Mostly lean content that earns its tokens: the Element-falsiness gotcha ("An `Element` with no children is falsy, so `case.find('failure') or case.find('error')` would skip a childless `<failure>`"), the anti-patterns table, and the limitations section are all non-obvious. Minor over-explanation: the Overview and Step 1 both walk the same testsuites/testsuite/testcase hierarchy and result-child catalog, a redundancy that could be trimmed, so it sits at 'efficient; minor instances of over-explanation' rather than fully lean.

4 / 5

Actionability

Steps 2-4 provide copy-paste-ready, executable Python (parse_junit, classify, reliability, per_suite) and the CI wiring is concrete. Minor gaps keep it below fully executable: the Step 5 cross-run trend comparison is conveyed via a JSONL schema and an example table rather than code, and Step 6 is a one-line directive, fitting 'mostly executable; concrete code with minor gaps'.

4 / 5

Workflow Clarity

Steps 1-7 are clearly sequenced (schema, parse, flakes, aggregate, trend, slow tests, CI integration) with the root-shape and falsy-element pitfalls handled. However, parsing large JUnit XML is a batch/XML operation and the workflow has no validation checkpoint (e.g., cross-checking computed counts against the declared `<testsuite tests/failures/errors>` attributes - the exact mismatch failure mode the skill's own description highlights). Per the rubric guideline, missing validation in batch operations caps workflow clarity at 3; it is not lower because the sequence itself is coherent and well-ordered.

3 / 5

Progressive Disclosure

Clean split: the runnable Python core is inline in SKILL.md, while the Node.js parser and the GitHub Actions workflow are pushed to references/junit-xml-parsing.md, a real file that exists in the bundle and is clearly signaled at both mention sites ("is in [references/junit-xml-parsing.md](references/junit-xml-parsing.md)"). References are exactly one level deep with a closing References section, matching the clear-overview anchor.

5 / 5

Total

16

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete, comprehensive capability list paired with an explicit and well-targeted 'Use when' clause, all in third person. The only weakness is a few missing natural trigger variations (e.g., .xml extension, 'test report'), which keeps trigger term quality just below comprehensive.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage: "Parses JUnit-format XML ... into per-suite and per-case metrics tables - passed / failed / errored / skipped, time, classname, message, stack", "groups failures by classname for trend analysis", and "separates new failures from flakes by cross-referencing the `flakyFailure` and rerun elements". This matches the anchor for multiple specific concrete actions with comprehensive coverage, not the level below (minor gaps).

5 / 5

Completeness

It explicitly answers both: the "what" (parses into per-suite/per-case metrics, groups failures by classname, separates new failures from flakes) and the "when" via the explicit clause "Use when a report, gate, or metric derived from test results cannot be trusted". This clearly matches the anchor for both what AND when with concrete trigger phrases.

5 / 5

Trigger Term Quality

Good natural-term coverage: "release gate", "dashboard", "pass rate", "skipped tests", "slowest tests", "flakes", "JUnit", plus CI platform names (Jenkins, GitHub Actions, GitLab). A few natural terms users would say are missing (".xml" file extension, "test report", framework reporter output), so it fits the 'good keyword coverage; a few natural terms missing' anchor rather than comprehensive coverage.

4 / 5

Distinctiveness Conflict Risk

Clear niche (JUnit XML test-result analytics) with distinct triggers: every motivating scenario is specific to test reports ("slowest tests" list, release gate reading summary attributes, pass rate counting skipped tests). Minimal conflict risk with generic CI or document skills; third-person voice throughout with no over-claims.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page