| name | analyzing-test-coverage |
| description | Analyze code coverage metrics and identify untested code paths.
Use when analyzing untested code or coverage gaps.
Trigger with phrases like "analyze coverage", "check test coverage", or "find untested code".
|
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash(test:coverage-*) |
| version | 1.24.0 |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| license | MIT |
| tags | ["testing","analyzing-test"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Test Coverage Analyzer
Current State
!ls package.json pyproject.toml Cargo.toml go.mod 2>/dev/null || echo 'No project manifest found'
!node -v 2>/dev/null || python3 --version 2>/dev/null || echo 'No runtime detected'
Overview
Analyze code coverage metrics to identify untested code paths, dead code, and coverage gaps across line, branch, function, and statement dimensions. Supports Istanbul/nyc (JavaScript/TypeScript), coverage.py (Python), JaCoCo (Java), and Go coverage tools.
Prerequisites
- Coverage tool installed and configured (Istanbul/nyc, c8, coverage.py, JaCoCo, or
go test -cover)
- Test suite that can run with coverage instrumentation enabled
- Coverage threshold targets defined (recommended: 80% lines, 70% branches)
- Coverage output format set to JSON or LCOV for programmatic analysis
- Git history available for coverage trend comparison
Instructions
- Run the test suite with coverage instrumentation enabled:
- JavaScript:
npx jest --coverage --coverageReporters=json-summary,lcov
- Python:
pytest --cov=src --cov-report=json --cov-report=term-missing
- Go:
go test -coverprofile=coverage.out ./...
- Java: Configure JaCoCo Maven/Gradle plugin with XML report output.
- Parse the coverage report and extract per-file metrics:
- Line coverage percentage per file.
- Branch coverage percentage per file.
- Function coverage percentage per file.
- Uncovered line ranges (specific line numbers).
- Identify critical coverage gaps by prioritizing:
- Files with coverage below the threshold (sort ascending by coverage %).
- Files with high complexity but low coverage (use cyclomatic complexity if available).
- Recently modified files with decreasing coverage trends.
- Public API functions and exported modules lacking any tests.
- Analyze uncovered branches specifically:
- Find
if/else blocks where only one branch is tested.
- Identify
switch/case statements with missing case coverage.
- Locate error handling paths (
catch, except) never exercised.
- Check
|| and && short-circuit conditions.
- Generate a prioritized action plan: