AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Coverage Analyzer

skill-bestdeejay-design-agent-skills-coverage-analyzer · by bestdeejay-design

Parse coverage.py XML reports (coverage.xml) into a human-readable coverage analysis: total line/branch percent, files with zero coverage, worst-10 ranking, delta vs a stored JSON baseline, and a PASS/FAIL verdict against an optional threshold. Stdlib-only Python script (xml.etree.ElementTree, json, argparse) that closes the loop after test-generator.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-bestdeejay-design-agent-skills-coverage-analyzer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-bestdeejay-design-agent-skills-coverage-analyzer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
today

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Coverage Analyzer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Coverage Analyzer — coverage.py XML → readable analysis

Load this skill when you need to turn a coverage.xml report into a human-readable coverage analysis: overall line/branch percent, files with zero coverage, the 10 worst-covered files, a delta vs a previously stored baseline, and a PASS/FAIL verdict against a threshold for CI.

The analyzer is pure Python 3 stdlib (xml.etree.ElementTree, json, argparse) — no dependencies, no network. It reads the exact XML format that coverage.py emits via coverage xml (Cobertura-style DTD), so it works with any tool that produces that format (pytest-cov --cov-report=xml, coverage run -m pytest && coverage xml).


The analyzer script

scripts/coverage_analyzer.py — pure Python 3 stdlib (no dependencies).

| Mode | Command | |---|---| | Basic analysis | python3 coverage_analyzer.py --xml coverage.xml | | Delta vs stored baseline | python3 coverage_analyzer.py --xml coverage.xml --baseline baseline.json | | Threshold gate (CI) | python3 coverage_analyzer.py --xml coverage.xml --threshold 80 | | Store current totals as baseline | python3 coverage_analyzer.py --xml coverage.xml --save-baseline baseline.json |

Output sections

  • Totalline-rate (and branch-rate when branches were actually

measured; a branch-rate="0" with branches-valid="0" is treated as "not measured", not as 0%), file count, files_with_zero_lines (files with line-rate == 0) with their names

  • Worst 10 files — lowest line-rate first, ascending
  • Delta vs baseline — per-file before → after → Δ table plus a total

row; files absent from the baseline are marked new

  • VerdictPASS/FAIL when --threshold is given

Exit codes

| Code | Meaning | | --- | --- | | 0 | analysis succeeded (threshold PASS, or no threshold) | | 1 | parse/read error, or threshold FAIL | | 2 | internal error |


Usage example (typical)

# 1. Produce the XML (coverage.py installed):
coverage run -m pytest && coverage xml

# 2. Analyze:
python3 coverage_analyzer.py --xml coverage.xml

# 3. Store a baseline on the first run:
python3 coverage_analyzer.py --xml coverage.xml --save-baseline baseline.json

# 4. On later runs, diff against the baseline and gate CI:
python3 coverage_analyzer.py --xml coverage.xml --baseline baseline.json --threshold 80

Baseline tracking workflow

  1. First run--save-baseline baseline.json writes

{"files": [{"name": "...", "line_rate": 0.42}, ...], "total": 0.42}. Commit the baseline file so it is reviewable.

  1. Later runs--baseline baseline.json prints a per-file

before → after → Δ table. A file that appears in the current report but not in the baseline is marked new; a file that disappeared is simply absent from the table.

  1. Trend — the total row shows the overall delta in percentage points,

so a regression (e.g. -5.0 pp) is visible at a glance.

Threshold gate for CI

python3 coverage_analyzer.py --xml coverage.xml --threshold 80
echo "exit=$?"   # 0 = PASS, 1 = FAIL

Use it as the last step of a test job: the script exits 1 when the total line-rate percent is below the threshold, failing the pipeline. This closes the loop after test-generator — generate tests, measure coverage, gate on the result.

Do NOT use

  • If you don't have a coverage.xml — this skill only parses the

coverage.py XML format; it does not run your tests or measure coverage itself. Run coverage run -m pytest && coverage xml (or pytest --cov) first.

  • If you want branching visualization (branch-by-branch coverage maps,

HTML reports with per-line coloring) — use coverage.py's own coverage html/coverage report or a dedicated coverage UI. This tool is a text/markdown summary + CI gate, not a visualizer.

  • If your report is in a different format (lcov, JaCoCo, Cobertura from

other tools) — the parser targets the coverage.py XML schema; other Cobertura-style files may parse but attribute names differ.

Canonical patterns

Full deep dive with upstream sources in references/canonical-patterns.md. Key canons:

  • coverage.py XML schema (Ned Batchelder) — the line-rate/branch-rate

attribute semantics this tool parses verbatim

  • Cobertura DTD — the XML shape coverage.py emits (``,

`, , `)

  • pytest-cov — the --cov-report=xml pipeline that produces the input
  • codecov / coveralls — the baseline-diff + threshold-gate CI model
  • coverage-badge — the "percent → verdict" rendering idea (we stay text)

Files

  • SKILL.md — this file
  • skill.json — manifest
  • scripts/coverage_analyzer.py — the stdlib analyzer (XML parse + baseline

diff + threshold gate)

  • references/canonical-patterns.md — coverage.py/pytest-cov/codecov/

coveralls/coverage-badge deep dive with sources

Canonical analogues

Full source depth — in references/canonical-patterns.md. Backbone:

AnalogWhat we borrow coverage.py (Ned Batchelder, Apache-2.0)XML schema, line-rate/branch-rate semantics, coverage xml output pytest-covTest-runner integration path (--cov-report=xml) that produces the input codecov / coverallsBaseline-diff + trend + threshold-gate CI model (we stay offline, no upload) coverage-badgeRate → verdict/badge conversion (we emit PASS/FAIL text instead of an SVG)

Installation

# For opencode
cp -r skills/coverage-analyzer ~/.config/opencode/skills/

# For other agents
# Copy the skill folder to your skills directory; requires Python 3.

> Note: this tool analyzes, it does not generate tests or coverage. It > expects a real coverage.xml produced by coverage.py (or a compatible > tool) and reports what the numbers mean — including a CI exit-code gate so > coverage regressions fail the build.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.