test-gap-analysis

Analyzes production code via pseudo-mutation reasoning to find tests that miss code changes.

Updated Aug 9, 2026
One-click install
npx skills add https://github.com/adinj00/player-performance --skill test-gap-analysis-adinj00
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: test-gap-analysis
Source: https://github.com/adinj00/player-performance/tree/main/.agents/skills/test-gap-analysis
Command: npx skills add https://github.com/adinj00/player-performance --skill test-gap-analysis-adinj00

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Code coverage shows which lines ran during tests but not whether tests would fail if the code were wrong. This Skill performs static pseudo-mutation analysis — reasoning about hypothetical changes like boundary flips, boolean inversions, and removed null checks — to reveal test gaps where bugs would slip through undetected. ## Core Features & Use Cases - Mutation Point Catalog: Identifies boundary, boolean, return value, exception, arithmetic, and null-check mutation points across .NET, Python, TS/JS, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, and C++. - Kill/Survive Classification: Classifies each mutation as Killed, Survived, No coverage, or Equivalent, with risk-based prioritization of findings. - Actionable Reporting: Produces a mutation score summary plus concrete recommended test assertions for every survived mutation. - Use Case: Before merging a payment calculation change, ask whether existing tests would catch an off-by-one error or a removed guard clause, and get a prioritized list of weak tests to strengthen. ## Quick Start Analyze my production code and its test files to determine whether the existing tests would catch subtle bugs like boundary changes or removed null checks.

Frequently Asked Questions about test-gap-analysis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if my tests would catch a bug in my code?

Pseudo-mutation analysis reasons about hypothetical code changes — like flipping a comparison operator or removing a null check — and checks whether any existing test assertion would fail. Mutations no test would catch are classified as survived, revealing test gaps.

What is the difference between code coverage and mutation testing?

Line coverage measures which lines executed during tests, while mutation testing measures whether tests detect actual code changes. A method can have 100% line coverage but zero tests that would catch a sign flip or off-by-one error.

Does pseudo-mutation analysis work with Python, Go, or Rust tests?

Yes, the analysis is polyglot and supports .NET, Python, TS/JS, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, and C++. Language-specific extension files map concepts like null versus None versus nil and framework-specific assertion APIs.

When should I use a real mutation testing tool instead of static analysis?

Use actual mutation frameworks like Stryker, mutmut, PIT, go-mutesting, or cargo-mutants when you need executed, verified mutation scores. Static pseudo-mutation is faster and suits code review, but does not run the mutated code.

Why are some mutations marked as equivalent and excluded from the score?

An equivalent mutation produces identical behavior, such as changing x * 1 to x / 1, or a boundary change where the equal case is impossible in the domain. These are not real test gaps, so they are marked Equivalent and skipped.