From Napkin
Runs pytest with coverage, identifies uncovered lines via annotated source files, and iteratively adds tests to reach 100% line coverage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/napkin:pytest-coverageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The goal is for the tests to cover all lines of code.
The goal is for the tests to cover all lines of code.
Generate a coverage report with:
pytest --cov --cov-report=annotate:cov_annotate
If you are checking for coverage of a specific module, you can specify it like this:
pytest --cov=your_module_name --cov-report=annotate:cov_annotate
You can also specify specific tests to run, for example:
pytest tests/test_your_module.py --cov=your_module_name --cov-report=annotate:cov_annotate
Open the cov_annotate directory to view the annotated source code. There will be one file per source file. If a file has 100% source coverage, it means all lines are covered by tests, so you do not need to open the file.
For each file that has less than 100% test coverage, find the matching file in cov_annotate and review the file.
If a line starts with a ! (exclamation mark), it means that the line is not covered by tests. Add tests to cover the missing lines.
Keep running the tests and improving coverage until all lines are covered.
npx claudepluginhub ani1797/forge --plugin copilot-sdk3plugins reuse this skill
First indexed Jun 6, 2026
Runs pytest with coverage, identifies uncovered lines via annotated source files, and iteratively adds tests to reach 100% line coverage.
Analyzes test coverage reports from Jest, Vitest, pytest, and Go. Identifies gaps in lines/branches/functions, prioritizes tests for business logic, security, and errors.
Guides coverage-driven test writing for existing codebases: discovers untested user-facing behavior via coverage reports, writes one meaningful test per iteration, marks low-value code with ignore annotations.