coverage-gap-finder

Installation
SKILL.md

Coverage Gap Finder

Find the untested paths that would actually hurt, ranked by risk - never chase a line-coverage percentage. Coverage is necessary but not sufficient: a line can execute under test while nothing asserts its output, and a percentage says nothing about whether the uncovered 15% is dead config or the payment splitter. The costly mistake this skill prevents is a team burning a sprint raising 85% to 95% while the branch that corrupts money stays dark.

Operating procedure

Step 1: Gather inputs

  • The coverage report - and whether it includes branch coverage. If it is line-only, regenerate before anything else (Step 2). No report means no prescription.
  • Repo access for churn analysis, or at minimum the list of recently active files.
  • The domain's crown jewels: where money moves, auth decisions happen, data is deleted or migrated. If the user cannot name them, propose a list and label it a guess.
  • Release timeline, which sets how deep the ranked list must go.

Step 2: Generate a real branch-coverage report

Turn on branch/condition coverage - Istanbul/nyc branches, coverage.py --branch, JaCoCo, SimpleCov branch mode - and read the uncovered-branch report. Branch beats line because a line with an if/else can be 100% line-covered while one arm never runs; compound conditions (a && b) additionally need condition coverage to confirm each operand was exercised both ways. Do not prescribe from line coverage.

Step 3: Risk-weight every gap

Risk = blast radius × change frequency × ambiguity.

Installs
1
GitHub Stars
19
First Seen
Oct 9, 2026