A skill your agent uses when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green

Apache-2.0Auto-check passedTesting & QA

Install Mutation Testing

skills CLI
$ npx skills add SebastienDegodez/copilot-instructions --skill mutation-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SebastienDegodez/copilot-instructions mutation-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/superpowers-whetstone/skills/mutation-testing .claude/skills/mutation-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mutation-testing
GitHub stars
197
Token cost
~4.1k tokens
SKILL.md length
1,340 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green

  • Works in 6 steps: Verify Prerequisites → Set Mutation Scope → Run Mutations → …
  • Running mutation testing
  • SKILL.md covers Core Concept, When to Use, Approach for .NET/C and Core Mutation Categories, plus 9 more sections
  • Calls dotnet and jq

What it does

Mutation Testing is an agent skill from SebastienDegodez/copilot-instructions. Use when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Test coverage. The repository describes itself as: A comprehensive codebase of best practices, coding rules, and workflow automation for AI-assisted development with GitHub Copilot. Includes DDD, Clean Architecture, testing… The licence is Apache-2.0.

When your agent uses it

  • Running mutation testing
  • Killing mutants
  • Verifying test quality
  • Checking mutation score

Example prompts

  • “/mutation-testing”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Verify Prerequisites
  2. Set Mutation Scope
  3. Run Mutations
  4. Analyze Survivors
  5. Kill Surviving Mutants
  6. Report & Document

What it can do on your machine

Read from SKILL.md and the folder at commit 0f0dccf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • stryker-mutator.io
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mutation Testing loads about 4.1k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 1,340 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~43
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SebastienDegodez/copilot-instructions at commit 0f0dccf, republished under its Apache-2.0 licence (© SebastienDegodez). 1,340 words, ~4,123 tokens.

Download SKILL.mdSave it as .claude/skills/mutation-testing/SKILL.md (or your agent's skills folder).
name
mutation-testing
description
Use when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green

Mutation Testing

Add a third validation layer to Outside-In TDD workflow. Acceptance tests verify WHAT (observable behavior), Domain tests verify HOW (business rules), mutation testing verifies tests actually catch bugs.

Core Concept

Mutation testing introduces deliberate bugs (mutants) into source code, then runs the test suite. If tests fail, the mutant is killed ✓. If tests pass despite the bug, the mutant survives ✗ (test gap found).

Source code → introduce mutation → run tests
                                     ├── tests FAIL → mutant killed ✓
                                     └── tests PASS → mutant survived ✗

A project with 100% code coverage can still have a 60% mutation score — meaning 40% of introduced bugs go undetected.

When to Use

Run mutation testing after the relevant test baseline is green:

  1. ✅ Core behavior tests pass
  2. ✅ Rule-focused tests pass
  3. 🧬 Mutation testing — verify tests detect regressions

Never run on red baseline — mutation assumes tests work correctly first.

Approach for .NET/C#

For .NET projects, Stryker.NET is the established mutation framework with excellent C# support. No config file needed — all options are passed via CLI.

Install (only if not already available):

bash
# Check first — if this succeeds, skip installation entirely. Do NOT manipulate PATH.
dotnet stryker --version

# Only run if the above command fails (tool not found)
dotnet tool install -g dotnet-stryker

Run on changed code only (default workflow — use after every story):

bash
# Mutate only files changed since main — fast, targeted
dotnet stryker \
  --project src/YourProject.Domain/YourProject.Domain.csproj \
  -tp tests/YourProject.UnitTests/YourProject.UnitTests.csproj \
  --mutate "**/*.cs" --mutate "!**/*Marker.cs" --mutate "!**/DependencyInjection.cs" \
  --since:main \
  --break-at 100 \
  -r json

--since:main — only mutants within git-diff vs main are tested. Unchanged code produces no result. Fast.

Run full business logic (use before merge):

bash
dotnet stryker \
  --project src/YourProject.Core/YourProject.Core.csproj \
  -tp tests/YourProject.UnitTests/YourProject.UnitTests.csproj \
  --mutate "src/YourProject.Core/**/*.cs" \
  --mutate "src/YourProject.Application/**/*.cs" \
  --mutate "!**/*Marker.cs" --mutate "!**/DependencyInjection.cs" \
  --break-at 100 \
  --threshold-high 90 --threshold-low 80 \
  -r json -r cleartext

Cumulative baseline — full picture after incremental runs:

bash
# --with-baseline combines --since with a persistent baseline report
# Use this in CI to keep a full history while only re-testing changed code
dotnet stryker \
  --project src/YourProject.Core/YourProject.Core.csproj \
  -tp tests/YourProject.UnitTests/YourProject.UnitTests.csproj \
  --with-baseline:main \
  --break-at 100 \
  -r json

--with-baseline = --since + saves/loads a baseline report. Gives a complete score even when only changed files were re-tested.

Alternative: Custom Mutation Tool (For Specific Needs)

Build a custom tool only when:

  • Stryker doesn't cover domain-specific mutation patterns
  • You need tight integration with custom test infrastructure
  • Performance optimization requires targeted mutation scope

Architecture (3 modules):

  1. Mutations — rules table (+ → -, true → false, >= → >)
  2. Runner — source-to-test mapping, targeted test execution
  3. Core — orchestration: apply mutation → run tests → restore → report

For full custom tool reference, see Uncle Bob's empire-2025 mutation testing.

Core Mutation Categories

CategoryExamples
Arithmetic+ ↔ -, * ↔ /, ++ ↔ --
Comparison> ↔ >=, < ↔ <=, == ↔ !=
Booleantrue ↔ false, && ↔ ||, !x ↔ x
Conditionalnegate conditions, swap if/else branches
Constant0 ↔ 1, "" ↔ "mutant", null ↔ new()
Return valuereturn true → return false
Void methodremove method call entirely
LINQ.Any() ↔ .All(), .First() ↔ .Last()

Workflow

Universal prerequisite — applies to every step, every scenario: Before any mutation activity (first run, CI setup, killing survivors, analyzing reports), the test suite for the affected scope must be green. If tests are failing, fix them first. Mutation results on a red baseline are meaningless — failing tests cannot kill mutants they already can't run.

Step 1: Verify Prerequisites

Before running mutation testing, confirm:

  • ✅ Baseline tests are green for the mutated scope
  • ✅ Meaningful unit tests exist (mutation runs against unit tests)
  • ✅ No uncommitted changes (mutations modify source temporarily)
  • ✅ Tests are fast (< 100ms each) — slow tests = slow mutation runs
Step 2: Set Mutation Scope

Target critical business logic first:

  • Domain policies, decision engines, pricing/risk calculators
  • Application orchestration with complex conditionals
  • Validation rules and boundary behavior

Exclude from mutation:

  • DTOs, data structures without logic
  • Infrastructure (repositories, adapters)
  • Configuration, DependencyInjection files
  • Generated code, marker interfaces

Progressive scoping:

PhaseScopeGoal
Week 1-2One critical rule moduleBaseline + learning
Week 3-4All core rule modulesEstablish quality gate
OngoingCore + critical orchestration handlersFull confidence
Step 3: Run Mutations

During development (fast, on changed code only):

bash
dotnet stryker \
  --project src/YourProject.Core/YourProject.Core.csproj \
  -tp tests/YourProject.UnitTests/YourProject.UnitTests.csproj \
  --since:main \
  --break-at 100 \
  -r json

Before merge (full business logic scope):

bash
dotnet stryker \
  --project src/YourProject.Core/YourProject.Core.csproj \
  -tp tests/YourProject.UnitTests/YourProject.UnitTests.csproj \
  --mutate "src/YourProject.Core/**/*.cs" \
  --mutate "src/YourProject.Application/**/*.cs" \
  --mutate "!**/*Marker.cs" --mutate "!**/DependencyInjection.cs" \
  --break-at 100 \
  -r json -r cleartext

Metrics:

  • Total mutants generated
  • Mutants killed (tests caught the bug ✓)
  • Mutants survived (test gap ✗)
  • Mutation score: (killed / total) × 100

--since note: unchanged files produce no result — this is expected. Survivors and kills only apply to the diff scope.

Expected duration: --since run: ~1-3 min. Full run: ~5-15 min (depends on test suite speed).

Step 4: Analyze Survivors

Query survivors directly from the JSON report — do not read the full file:

bash
jq '[.files | to_entries[] | {file: .key, survivors: [.value.mutants[] | select(.status == "Survived") | {mutator: .mutatorName, line: .location.start.line, replacement: .replacement}]}] | map(select(.survivors | length > 0))' \
  StrykerOutput/$(ls -t StrykerOutput | head -1)/reports/mutation-report.json

For each surviving mutant:

  1. Read the mutation — what was changed? (e.g., >= → >, removed if branch)
  2. Identify unguarded behavior — which business rule isn't tested?
  3. Categorize:
    • Real gap — behavior change not caught by tests
    • Equivalent mutant — mutation doesn't change observable behavior

Equivalent mutant examples:

  • x = x + 0 changed to x = x + 1 (dead code)
  • Logging statements removed (no observable effect)
  • Defensive null checks when value is guaranteed non-null by type

After classifying survivors, always include a targeted re-run command scoped to the files that contain real gaps — this confirms kills after you write new tests and gives reviewers a runnable artifact:

bash
dotnet stryker \
  --project <YourProject.Domain.csproj> \
  -tp <path/to/YourProject.UnitTests/YourProject.UnitTests.csproj> \
  --mutate "**/<FileWithRealGap>.cs" \
  --mutate "!**/*Marker.cs" --mutate "!**/DependencyInjection.cs" \
  --break-at 100 \
  -r cleartext
Step 5: Kill Surviving Mutants

For each real survivor (not equivalent):

  1. Write a new test targeting the unguarded behavior
  2. Run test against mutated code (using Stryker's mutation operator):
    • Expected: test FAILS (catches the bug)
  3. Run test against original code:
    • Expected: test PASSES
  4. Re-run Stryker to confirm kill

Example:

Survivor: if (age >= 18) mutated to if (age > 18) → survived

csharp
// New test to kill the boundary mutant
[Fact]
public void WhenDriverIsExactly18_ShouldBeEligible()
{
    var policy = new EligibilityPolicy();
    var driver = new DriverInfo(Age: 18, LicenseYears: 1);
    var vehicle = new VehicleInfo(Type: "sedan", Age: 1);

    var result = policy.Evaluate(driver, vehicle);

    Assert.True(result.IsEligible); // Fails if mutant uses `age > 18`
}
Step 6: Report & Document

Present summary with before/after metrics:

Mutation Testing Report — Core Business Layer
═══════════════════════════════════════
Scope: YourProject.Core.Policies

Score:  68% → 82% (after killing survivors)
Killed:   82 / 100
Survived:  18 → 10

New tests added: 8
- Boundary tests for age/experience thresholds: 4
- Edge cases for vehicle type combinations: 3
- Null/empty validation: 1

Remaining survivors (equivalent mutants — documented):
- EligibilityPolicy.cs:L42 — removed log statement (no observable effect)
- DriverAge.cs:L15 — defensive null check (guaranteed non-null by type)

Document legitimate survivors in code comments or architecture decision records.

Mutation Score Targets

Set thresholds based on team policy and risk profile. Common practice is to start with a progressive threshold and tighten it over time.

ScoreAssessmentAction
High threshold metHealthy signalKeep survivor review discipline
Near thresholdPotential gapsAdd targeted tests for risky survivors
Below thresholdQuality riskBlock merge or require mitigation plan

Equivalent mutants are the only legitimate exception — document them explicitly.

Show full SKILL.md (505 more words)Show less

Progressive Threshold Strategy

PhaseThresholdEnforcement
Week 1-2Baseline onlyMeasure, learn mutation categories
Week 3-4Team-defined threshold (e.g., 80%)Block PR if below
Month 2Tightened threshold (e.g., 90%)Ramp up
Steady stateRisk-based target per moduleBlock merge when policy is not met

CI/CD integration:

bash
# In CI pipeline - fail build if below 100%
dotnet stryker --break-at [team-threshold]

When the CI gate fails, it means survivors remain. Do not raise the threshold to pass — investigate each survivor first. Classify them as real gap (write a test) or equivalent mutant (document). Only equivalent mutants are an acceptable reason to adjust the threshold.

Integration with Outside-In TDD

Mutation testing is the third validation layer:

1. Gherkin scenarios (WHAT)       → Acceptance tests
2. Business rules (HOW)            → Domain tests  
3. Test effectiveness (REAL?)     → Mutation testing

Workflow integration:

  1. Write Gherkin scenario (outside-in-tdd)
  2. RED → validate → SYNTHESIZE GREEN (red-synthesize-green)
  3. After story complete: Run mutation testing on affected business logic modules
  4. Kill critical survivors before merge

Anti-Patterns

"Let me mutate before tests are green"

No. Fix failing tests first. Mutation assumes a green baseline.

"100% is unrealistic"

Aggressive targets can be appropriate for critical logic, but thresholds are a policy decision. Equivalent mutants remain the only valid exception to survivor cleanup.

"Mutate everything including Infrastructure"

Never mutate repositories, adapters, and pure plumbing. Focus on business logic first.

"Run mutations on every commit"

Too slow. Run on feature completion or weekly. CI runs only on PR.

"Ignore all survivors as equivalent"

Rationalization. Most survivors are real gaps. Investigate each one.

"Chase the score, not the quality"

Mutation score is a signal, not the goal. Focus on killing mutants that represent real behavioral gaps.

Common Mistakes

MistakeFix
Running mutation on failing testsGreen baseline required — fix tests first
Mutating test filesConfigure Stryker to mutate source only
Treating all survivors as equivalentOnly equivalent mutants are exempt — document them, kill the rest
Mutation testing without fast testsOptimize test speed — slow tests = slow mutations
Not scoping mutations progressivelyStart small (one policy), expand gradually
Accepting < 100% on business logic100% is the target — find the gap and test it

Tools & Commands

Install / update Stryker.NET:

bash
dotnet tool install -g dotnet-stryker
dotnet tool update -g dotnet-stryker

On changed code only (fast — during development):

bash
dotnet stryker \
  --project <YourProject.Domain.csproj> \
  -tp <path/to/YourProject.UnitTests/YourProject.UnitTests.csproj> \
  --since:main \
  --break-at 100 \
  -r json

Full business logic scope (before merge):

bash
dotnet stryker \
  --project <YourProject.Domain.csproj> \
  -tp <path/to/YourProject.UnitTests/YourProject.UnitTests.csproj> \
  --mutate "src/<YourProject>.Domain/**/*.cs" \
  --mutate "src/<YourProject>.Application/**/*.cs" \
  --mutate "!**/*Marker.cs" --mutate "!**/DependencyInjection.cs" \
  --break-at 100 \
  --threshold-high 100 --threshold-low 100 \
  -r json -r cleartext

Cumulative baseline in CI (full picture + incremental speed):

bash
dotnet stryker \
  --project <YourProject.Domain.csproj> \
  -tp <path/to/YourProject.UnitTests/YourProject.UnitTests.csproj> \
  --with-baseline:main \
  --break-at 100 \
  -r json

Scope to a specific file or feature (debug a survivor):

bash
dotnet stryker \
  --project <YourProject.Domain.csproj> \
  -tp <path/to/YourProject.UnitTests/YourProject.UnitTests.csproj> \
  --mutate "**/<TargetFile>.cs" \
  --mutate "!**/*Marker.cs" --mutate "!**/DependencyInjection.cs" \
  --break-at 100 \
  -r cleartext

Inspect JSON report:

bash
jq '.' StrykerOutput/**/reports/mutation-report.json | head -n 120

Key CLI flags reference:

FlagShortPurpose
--project <name.csproj>-pSource project to mutate (filename only)
--test-project <path>-tpTest project(s) — repeatable
--mutate <glob>-mInclude/exclude files (prefix ! to exclude) — repeatable
--since:<committish>Only test mutants in git-diff vs committish
--with-baseline:<committish>Like --since + persist baseline for full cumulative report
--break-at <0-100>-bExit code 1 if score < value
--threshold-high <0-100>Score ≥ this → green
--threshold-low <0-100>Score < high but ≥ this → warning
--reporter <name>-rjson, cleartext, dots, markdown, html — repeatable
--concurrency <n>-cParallel worker count
--verbosity <level>-Verror, warning, info, debug, trace

References

Integration

REQUIRED BACKGROUND: superpowers-whetstone:outside-in-tdd — defines the two test streams (Application + Domain) REQUIRED BACKGROUND: superpowers-whetstone:red-synthesize-green — TDD cycle that produces tests to mutate

WORKFLOW:
Run mutation testing after story completion, before PR/merge. Use as quality gate, not coverage metric.

© SebastienDegodez, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/superpowers-whetstone/skills/mutation-testing of SebastienDegodez/copilot-instructions.

Open the folder on GitHubat commit 0f0dccf

Compare with similar skills

Mutation Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mutation Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mutation Testing this skillSebastienDegodez/copilot-instructions197—~4.1kAutomated safety check: PassApache-2.0
Requirementsrizsotto/Bear6.5k—~2kAutomated safety check: PassGPL-3.0
Crap Analysisardalis/RiverBooks1342 repos~3.4kAutomated safety check: PassNone
Code Coverages3s-project/s3s311—~789Automated safety check: PassApache-2.0
Project Statusbactopia/bactopia522—~787Automated safety check: PassMIT
Check Coverageldayton/Dippy243—~403Automated safety check: PassMIT

Similar skills

  • Requirements

    rizsotto/Bear

    Write, modify, or review a requirement file under docs/requirements -- pick the single owning file, keep the text contract-only, name IDs so they need no explanation, and verify cross-references and…

    6.5k GitHub stars~2k tokensUpdated today
    Testing & QAAuto-check passed
  • Crap Analysis

    ardalis/RiverBooks

    Analyze code coverage and CRAP (Change Risk Anti-Patterns) scores to identify high-risk code.

    134 GitHub starsUsed in 2 repos~3.4k tokens
    Testing & QAAuto-check passed
  • Code Coverage

    s3s-project/s3s

    Measure and grow the line coverage of the s3s crate. An agent skill from s3s-project/s3s.

    311 GitHub stars~789 tokensUpdated today
    Testing & QAAuto-check passed
  • Project Status

    bactopia/bactopia

    Show a live snapshot of the Bactopia project state — component counts, GroovyDoc coverage, nf-test coverage, and structural issues.

    522 GitHub stars~787 tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Check Coverage

    ldayton/Dippy

    Ensure comprehensive test coverage for a CLI handler. An agent skill from ldayton/Dippy.

    243 GitHub stars~403 tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Guarding Destructive Operations

    kajisho5/ffmpeg-skill

    Add and review preconditions on operations that delete, overwrite, rewrite history, or resolve a caller-supplied name to a filesystem path — refusing instead of warning, placing the guard ahead of…

    1.9k GitHub stars~2.6k tokensUpdated 2 days ago
    Testing & QAAuto-check passed

More from SebastienDegodez/copilot-instructions

All 19 skills in this repo
  • Setup Husky Dotnet

    SebastienDegodez/copilot-instructions

    A skill your agent uses when configuring Git hooks in .NET projects before team commits occur, to enforce commit message standards and code formatting automatically

    197 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Clean Architecture Dotnet

    SebastienDegodez/copilot-instructions

    A skill your agent uses when domain logic leaks into API/Infrastructure, project references violate layer boundaries, or you need to decide between CQS (always), CQRS bus (complex domains), and DDD…

    197 GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Outside In TDD

    SebastienDegodez/copilot-instructions

    A skill your agent uses when writing tests from the outside-in, defining behavior before code, or any feature where tests should start from observable business behavior and let internal design emerge

    197 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Creating Dotnet MCP Servers

    SebastienDegodez/copilot-instructions

    A skill your agent uses when building Model Context Protocol (MCP) servers in .NET, configuring tools, transports (SSE/stdio), JSON serialization for AOT, or testing MCP endpoints

    197 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Generate Microcks Openapi Samples

    SebastienDegodez/copilot-instructions

    A skill your agent uses when creating OpenAPI mock examples for Microcks, setting up request/response routing with dispatchers, or mapping request fields to mock responses

    197 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Analyzing Code

    SebastienDegodez/copilot-instructions

    A skill your agent uses when understanding project composition by language, measuring code change impact, or generating code statistics for CI/CD metrics

    197 GitHub stars~1k tokensUpdated today
    Auto-check passed

Categories

Questions about Mutation Testing

What does Mutation Testing do?

A skill your agent uses when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green. Mutation Testing is an agent skill from SebastienDegodez/copilot-instructions.

When should I use Mutation Testing?

Mutation Testing fits situations like: running mutation testing; killing mutants; verifying test quality; checking mutation score.

How do I install Mutation Testing in Claude Code?

Run `npx skills add SebastienDegodez/copilot-instructions --skill mutation-testing -a claude-code`. Or copy the skill folder (plugins/superpowers-whetstone/skills/mutation-testing in SebastienDegodez/copilot-instructions) into .claude/skills/mutation-testing in your project. Claude Code loads it when a task matches its description.

How do I install Mutation Testing in Codex?

Run `npx skills add SebastienDegodez/copilot-instructions --skill mutation-testing -a codex`. Or copy the skill folder (plugins/superpowers-whetstone/skills/mutation-testing in SebastienDegodez/copilot-instructions) into .agents/skills/mutation-testing in your project. Codex loads it when a task matches its description.

Can I use Mutation Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SebastienDegodez/copilot-instructions --skill mutation-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mutation-testing, .gemini/skills/mutation-testing, .github/skills/mutation-testing and .opencode/skills/mutation-testing in your project.

What does Mutation Testing need to run?

Going by SKILL.md and its folder, Mutation Testing needs the command-line tools its instructions call (dotnet and jq).

Does Mutation Testing access the network?

SKILL.md names 2 domains. As links in the text: stryker-mutator.io and github.com. This is read from the text; nothing was executed.

Is Mutation Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Mutation Testing use?

Mutation Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mutation Testing use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Mutation Testing?

Skills that share tags, products or a category with Mutation Testing: Requirements (rizsotto/Bear, 6.5k stars), Crap Analysis (ardalis/RiverBooks, 134 stars), Code Coverage (s3s-project/s3s, 311 stars) and Project Status (bactopia/bactopia, 522 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mutation Testing?

SebastienDegodez (a GitHub user) maintains it in SebastienDegodez/copilot-instructions, which has 197 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 6, 2026.

Source: SebastienDegodez/copilot-instructions on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.