Agent skill

mutation-testing

Use PROACTIVELY when checking if tests catch real bugs, assessing test suite quality, finding weak tests, or measuring mutation score. Validates test effectiveness beyond coverage metrics by introducing code mutations. Supports Stryker (JS/TS), PIT (Java), mutmut (Python). Not for projects without existing test suites.

Stars 4
Forks 2

Install this agent skill to your Project

npx add-skill https://github.com/cskiro/claudex/tree/main/plugins/mutation-testing/skills/mutation-testing

SKILL.md

Mutation Testing

Overview

This skill sets up mutation testing to evaluate test suite quality by introducing deliberate code changes (mutants) and verifying tests catch them. A high mutation score indicates tests are effective at catching real bugs.

Version: 0.1.0 Status: Initial Release

What This Skill Does

Mutation Testing Workflow:

  1. Analyze codebase to identify mutation targets
  2. Generate mutants (deliberate code changes)
  3. Run test suite against each mutant
  4. Report mutation score and surviving mutants
  5. Recommend test improvements for weak spots

When to Use This Skill

Use when:

  • Coverage is high but confidence in tests is low
  • Validating test suite effectiveness
  • Finding tests that pass but don't catch real bugs
  • Preparing for production release
  • Improving test quality beyond coverage metrics

Don't use if:

  • No existing test suite
  • Test coverage below 50% (improve coverage first)
  • CI pipeline can't afford extra runtime

Trigger Phrases

  • "Set up mutation testing"
  • "Are my tests catching bugs?"
  • "Check test effectiveness" / "Test quality analysis"
  • "Run mutation analysis" / "Mutation score"
  • "Find weak tests"

Supported Frameworks

Language Framework Command
JavaScript/TypeScript Stryker npx stryker run
Java PIT mvn org.pitest:pitest-maven:mutationCoverage
Python mutmut mutmut run

Mutation Score

Score Interpretation
90%+ Excellent - tests catch most bugs
75-89% Good - some gaps to address
50-74% Fair - significant testing gaps
<50% Poor - tests need major improvement

Common Mutations

Type Example Tests Should Catch
Arithmetic +- Math logic errors
Conditional >>= Boundary conditions
Boolean truefalse Logic inversions
Return return xreturn null Null handling
Remove call validate() → removed Missing validations

Installation Summary

For JavaScript/TypeScript (Stryker):

bash
npm install --save-dev @stryker-mutator/core
npx stryker init

For Python (mutmut):

bash
pip install mutmut
mutmut run

Quick Start

  1. Ensure test suite exists and passes
  2. Install mutation testing framework
  3. Configure mutation targets (critical code paths)
  4. Run mutation analysis
  5. Review surviving mutants
  6. Add/improve tests for uncaught mutations

Performance Considerations

  • Mutation testing is compute-intensive
  • Start with critical modules only
  • Use incremental mode for CI
  • Cache results between runs
  • Consider parallel execution

Success Criteria

  • Mutation testing framework installed
  • Configuration targets critical code paths
  • Initial mutation run completes
  • Mutation score reported
  • Action plan for surviving mutants

Additional Resources

  • Workflow guide: workflow/mutation-analysis.md
  • Configuration reference: reference/stryker-config.md
  • Example report: examples/mutation-report.md

Version History

  • 0.1.0 - Initial release with Stryker, PIT, mutmut support

Expand your agent's capabilities with these related and highly-rated skills.

cskiro/claudex

e2e-testing

Use PROACTIVELY when setting up end-to-end testing, debugging UI issues, creating visual regression suites, or automating browser testing. Uses Playwright with LLM-powered visual analysis, screenshot capture, and fix recommendations. Zero-setup for React, Next.js, Vue, Node.js, and static sites. Not for unit testing, API-only testing, or mobile native apps.

4 2
Explore
cskiro/claudex

github-repo-setup

Use PROACTIVELY when user needs to create a new GitHub repository or set up a project with best practices. Automates repository creation with four modes - quick public repos (~30s), enterprise-grade with security and CI/CD (~120s), open-source community standards (~90s), and private team collaboration with governance (~90s). Not for existing repo configuration or GitHub Actions workflow debugging.

4 2
Explore
cskiro/claudex

sub-agent-creator

Use PROACTIVELY when creating specialized Claude Code sub-agents for task delegation. Automates agent creation following Anthropic's official patterns with proper frontmatter, tool configuration, and system prompts. Generates domain-specific agents, proactive auto-triggering agents, and security-sensitive agents with limited tools. Not for modifying existing agents or general prompt engineering.

4 2
Explore
cskiro/claudex

accessibility-audit

Use PROACTIVELY when user asks for accessibility review, a11y audit, WCAG compliance check, screen reader testing, keyboard navigation validation, or color contrast analysis. Audits React/TypeScript applications for WCAG 2.2 Level AA compliance with risk-based severity scoring. Includes MUI framework awareness to avoid false positives. Not for runtime accessibility testing in production, automated remediation, or non-React frameworks.

4 2
Explore
cskiro/claudex

otel-monitoring-setup

Use PROACTIVELY when setting up OpenTelemetry monitoring for Claude Code usage tracking, cost analysis, or productivity metrics. Provides local PoC mode (full Docker stack with Grafana) and enterprise mode (centralized infrastructure). Configures telemetry collection, imports dashboards, and verifies data flow. Not for non-Claude telemetry or custom metric definitions.

4 2
Explore
cskiro/claudex

json-outputs-implementer

Use PROACTIVELY when extracting structured data from text/images, classifying content, or formatting API responses with guaranteed schema compliance. Implements Anthropic's JSON outputs mode with Pydantic/Zod SDK integration. Covers schema design, validation, testing, and production optimization. Not for tool parameter validation or agentic workflows (use strict-tool-implementer instead).

4 2
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results