mcpField
C
coverage

coverage

github.com/helderbertoTesting & quality1941 installsUpdated 3d ago
Repository

About coverage

A skill for checking test coverage of unstaged code changes. It runs the test and coverage commands, maps LCOV data to changed lines, and reports uncovered locations.

Key features

  1. 01Collect unstaged files and changed lines
  2. 02Run CI tests and coverage commands
  3. 03Map LCOV coverage to changed lines
  4. 04Report uncovered code lines

Use cases

  1. 01Check test coverage of changes before committing
  2. 02Find changed code lines without coverage

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/helderberto/agent-skills --skill coverage

After installing, type/coveragein Claude Code to confirm it loaded.

Bundled filesscripts/parse-lcov.py

Details

From the project README

Coverage Check

Context

Run in parallel:

  • git diff --name-only - get unstaged files
  • git diff -U0 --no-color - get changed line numbers

Commands

Sequential:

  1. npm run test:ci - vitest with coverage
  2. npm run coverage:report - generate lcov/text reports

Workflow

  1. Get unstaged files and line ranges (parallel):
    • git diff --name-only
    • git diff -U0 --no-color
  2. Run coverage:
    • npm run test:ci
    • npm run coverage:report
  3. Save diff to a temp file, then run:
    git diff -U0 --no-color > /tmp/changes.diff
    python3 scripts/parse-lcov.py --lcov coverage/lcov.info --diff /tmp/changes.diff
    
  4. Report uncovered lines from stdout: file.ts:42
  5. Summary from stderr: X/Y changed lines covered

LCOV Format

Parse coverage/lcov.info:

SF:src/utils/helper.ts
DA:10,1    # line 10, covered (hit 1 time)
DA:11,0    # line 11, NOT covered
DA:12,5    # line 12, covered (hit 5 times)
end_of_record

Key fields:

  • SF: -- source file path
  • DA:line,hits -- 0 = uncovered, >0 = covered
  • end_of_record -- end of file section

Match SF: paths to git diff files. For each changed line, check DA: entry. If hits is 0, report as uncovered.

Anti-Rationalization

ExcuseRebuttal
"Coverage doesn't guarantee quality"True, but uncovered code guarantees zero automated verification.
"It's just a config change"Config changes break production too. If there's logic, check coverage.
"100% is overkill"Nobody asked for 100%. Check that changed lines are covered.
"The test suite is already green"Green suite with uncovered changes = false confidence.

Rules

  • Only analyze unstaged changes (git diff)
  • Use sequential commands: test:ci then coverage:report
  • Use scripts/parse-lcov.py to parse lcov data and map to changed lines
  • Report uncovered lines: file.ts:42
  • Ignore files without coverage data (non-code files)

Error Handling

  • npm run test:ci fails -- report test failures and stop
  • coverage/lcov.info not found -- verify coverage.reporter includes lcov in test runner config
  • git diff returns no changes -- report no unstaged changes to check

Comments

Markdown supported