CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/coverage-py-analysis

Use when a Python project (pytest or unittest) needs code coverage: coverage run, branch coverage, combining parallel xdist data, .coveragerc source, omit and fail_under settings, and terminal, HTML, Cobertura XML, LCOV or JSON reports for CI.

Quality

84%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

71%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.

The body is highly actionable with a clearly sequenced 8-step workflow, concrete configs, and a thorough anti-patterns table. Its weaknesses are padding (an introductory definition blockquote and stale-prone version/date details) and a monolithic structure whose referenced scripts/per_file_gate.py does not exist as a bundled file.

Suggestions

Remove the opening blockquote defining Coverage.py and the version/date sentence ("Current version is 7.13.5 (March 2026)... source fetch on 2026-05-05") — Claude already knows what coverage.py is, and version numbers go stale; if version-specific behavior matters, isolate it in a version-compat note.

Bundle the per-file gate as scripts/per_file_gate.py and have SKILL.md reference it in one line instead of inlining 25 lines of Python — the CI step already invokes that path, but no scripts/ directory exists in the bundle, so the reference currently dangles.

Trim explanatory prose such as the branch-coverage rationale ("catches the case where every line is executed but not every condition arm") and the Jest comparison paragraphs to keep only the commands and settings.

DimensionReasoningScore

Conciseness

Mostly efficient command/config content, but it pads with an opening blockquote defining what Coverage.py is, the time-sensitive sentence "Current version is 7.13.5 (March 2026), supporting Python 3.10-3.15... source fetch on 2026-05-05" (version/date info not placed in a deprecated section), and rationale prose such as the branch-coverage explanation. These are more than minor trimmable instances, so it sits at 3 rather than 4.

3 / 5

Actionability

Fully executable throughout: "coverage run --parallel -m pytest -n auto; coverage combine", a complete .coveragerc, the full per_file_gate.py script, and a copy-paste CI YAML block cover the common cases. Not 4 because there are no gaps in concrete, runnable guidance.

5 / 5

Workflow Clarity

Steps 1-8 are clearly sequenced with gate checkpoints ("coverage report --fail-under=80" and the per-file gate exiting 1 on failure). Not 5 because no explicit validate-then-fix-then-retry feedback loop is described; not 3 because checkpoints are present and this is not a destructive/batch operation requiring the cap.

4 / 5

Progressive Disclosure

Well-sectioned but fully monolithic: the per-file gate script is inlined under a "# scripts/per_file_gate.py" path comment and the CI step runs "python scripts/per_file_gate.py", yet no scripts/ (or references/) directory exists in the bundle. Content that should be a separate bundled file is inline with a dangling path reference, matching the 3 anchor.

3 / 5

Total

15

/

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: it states an explicit "Use when" trigger scoped to Python test frameworks and enumerates concrete capabilities across run, config, combine, and reporting. The only gap is modest synonym coverage (missing "coverage.py" as a tool name and dashboard names like Codecov).

DimensionReasoningScore

Specificity

The description lists multiple concrete actions spanning the entire workflow — "coverage run, branch coverage, combining parallel xdist data, .coveragerc source, omit and fail_under settings, and terminal, HTML, Cobertura XML, LCOV or JSON reports" — which is comprehensive coverage of the tool's capabilities. It is not 4 because no meaningful capability area is missing.

5 / 5

Completeness

It explicitly answers both: what ("coverage run, branch coverage, combining parallel xdist data, .coveragerc ... settings, and ... reports") and when ("Use when a Python project (pytest or unittest) needs code coverage") with concrete trigger phrases. It is not 4 because the when-clause is already explicit and specific rather than generic.

5 / 5

Trigger Term Quality

Natural terms like "Python project (pytest or unittest)", "code coverage", ".coveragerc", "xdist", and "CI" are present, but the tool name "coverage.py", the common synonym "test coverage", and dashboard names users actually say (Codecov, Coveralls) are absent. Good keyword coverage with a few natural terms missing, matching the 4 anchor rather than 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

The Python/pytest/unittest scoping inside the trigger carves a clear niche with minimal conflict risk against JS coverage or generic LCOV/Cobertura parsing skills. It is not 4 because the language qualifier is embedded in the trigger condition itself, leaving only minimal overlap risk.

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: 3 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page