Skip to content
Back to skills

Test Gap Finder

ASecurity

Use when the user asks what to test next, where coverage is weak, or before a refactor of untested code. Maps source modules to existing tests, ranks untested modules by churn and size, and proposes the five highest-value tests with concrete names and cases, without writing them unasked.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 12, 2026
ai-agentspythongobashgitapi

Works with

  • api

Security analysis

A100/100

Scanned October 12, 2026

npx -y skills add Skillkeel/skillkeel-starter --skill test-gap-finder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Test Gap Finder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Test Gap Finder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/skillkeel-test-gap-finder/badge)](https://www.skillsdirectory.com/skills/skillkeel-test-gap-finder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: test-gap-finder
description: Use when the user asks what to test next, where coverage is weak, or before a refactor of untested code. Maps source modules to existing tests, ranks untested modules by churn and size, and proposes the five highest-value tests with concrete names and cases, without writing them unasked.
---

# test-gap-finder

## Procedure
1. Detect test layout: `tests/`, `__tests__/`, `*_test.go`, `*.test.ts`, `test_*.py`, `spec/`. Detect the runner from config (`jest`, `vitest`, `pytest`, `go test`, `cargo test`).
2. Build the map: list source files (exclude generated, vendored, migrations). For each, find tests that import or name it (grep the module path/name inside test files). Result: `module | test files | test count (rough: count of test functions)`.
3. If a coverage report is cheap, run it: `pytest --cov --cov-report=term-missing -q`, `npx vitest run --coverage`, `go test -cover ./...`. Skip if it takes > 2 min or needs services.
4. Rank untested/under-tested modules by: recent churn (`git log --since=90.days --format='' --name-only | sort | uniq -c`), size (`wc -l`), and whether they sit on a critical path (auth, payments, data writes, public API).
5. For the top 5, propose tests: file path, test names, and 2 to 4 concrete cases each (happy path, boundary, failure). Reference the module's real function signatures (read the code).
6. Output a table plus the proposals. Ask before writing any test files; if approved, write them following the repo's existing test style and run them.

## Rules
- Do not claim a coverage percentage unless a coverage tool produced it.
- Do not propose tests for generated code, vendored code, or trivial getters.
- Proposed cases must be derivable from the code read in this session.

## Verify
Maintainers: `bash evals/run.sh /tmp/skillkeel-evals test-gap-finder` from the plugin root runs this case and grades it; records and transcripts sit in `evals/test-gap-finder/`.
`evals/test-gap-finder/`: fixture Python package with `auth.py` (untested, high churn), `utils.py` (tested), `payments.py` (untested); expected: auth.py and payments.py ranked top, utils.py not proposed, ≥2 concrete cases per proposal, no test files written.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.