mutation-testing Skill
✓ OffiziellKonfiguriert Mutation-Testing-Kampagnen, analysiert überlebende Mutanten und identifiziert Bugs, die durch Testlücken aufgedeckt werden.
- GitHub Stars
- 8.136
- Dateien
- 12
- Letzter Commit
- 11. Nov. 2026
- Lizenz
- CC-BY-SA-4.0
- Erlaubte Tools
- 4
Was macht der mutation-testing Skill?
mutation-testing ist ein Agent Skill. Konfiguriert Mutation-Testing-Kampagnen, analysiert überlebende Mutanten und identifiziert Bugs, die durch Testlücken aufgedeckt werden.
Zusammenfassung erzeugt aus der SKILL.md des Skills.
Über den mutation-testing skill
Diese Skill ermöglicht es, die Effektivität von Testsuiten zu verbessern, indem Testlücken durch Mutation Testing identifiziert werden. Entwickler nutzen sie, um Mutationskampagnen mit mewt oder muton zu konfigurieren und zu verwalten, wodurch sie analysieren können, wie gut ihre Tests absichtliche Code-Änderungen erkennen. Die Skill leitet Nutzer zu spezifischen Workflows weiter, um Kampagnen aufzusetzen, Bugs in ungetestetem Code zu finden oder formale Analyseberichte basierend auf Kill-Raten und überlebenden Mutanten zu erstellen.
Wenn ein Agent diese Skill lädt, kann er Tools wie Bash, Grep, Read und Write nutzen, um mit der Command Line zu interagieren. Sie hilft Nutzern dabei, zwischen echten Testlücken und äquivalenten Mutanten zu unterscheiden, indem sie Zugriff auf spezialisierte Referenzen bietet. Sie unterstützt verschiedene Sprachen wie Rust, JavaScript und Move und kann sogar spezifische Blockchain-Patterns für Solidity oder Solana Rust handhaben. Die Skill bietet strukturierte Anleitungen zur Interpretation von Mutations-Schweregraden, wie etwa Error Replacement oder Negation Removal, um bei der Priorisierung zu helfen, welche Codebereiche bessere Assertions benötigen.
Was ein agent damit machen kann
- 1Eine Mutationskampagne konfigurierenSetze ein neues Mutation-Testing-Projekt auf und optimiere die Geschwindigkeit der Kampagne.
- 2Überlebende Mutanten analysierenÜberprüfe nicht erfasste Mutationen, um festzustellen, ob sie Testlücken oder äquivalenten Code darstellen.
- 3Bugs im Quellcode findenNutze die Ergebnisse eines abgeschlossenen Mutations-Runs, um Bugs in der Codebase zu lokalisieren.
- 4Formale Analyseberichte generierenTransformiere die Ergebnisse des Mutation Testings in einen strukturierten Bericht mit Schweregrad-Klassifizierungen.
Geschrieben basierend auf dem SKILL.md des skills. Jeder use case wurde gegen ein zitat daraus geprüft.
So installierst du den mutation-testing Skill
Jeder Befehl kopiert den Skill-Ordner in das Skills-Verzeichnis des Clients. Starte den Client neu oder beginne eine neue Session, um ihn zu laden.Den mutation-testing Skill in Plugin installieren
/plugin marketplace add trailofbits/skills /plugin install mutation-testing@trailofbits
Den mutation-testing Skill in Claude Code installieren
~/.claude/skills/mutation-testing/SKILL.md
$ npx degit trailofbits/skills/plugins/mutation-testing/skills/mutation-testing ~/.claude/skills/mutation-testingDen mutation-testing Skill in Claude Code (project) installieren
.claude/skills/mutation-testing/SKILL.md
$ npx degit trailofbits/skills/plugins/mutation-testing/skills/mutation-testing .claude/skills/mutation-testingDen mutation-testing Skill in Codex installieren
~/.agents/skills/mutation-testing/SKILL.md
$ npx degit trailofbits/skills/plugins/mutation-testing/skills/mutation-testing ~/.agents/skills/mutation-testingDen mutation-testing Skill in Gemini CLI installieren
~/.gemini/skills/mutation-testing/SKILL.md
$ npx degit trailofbits/skills/plugins/mutation-testing/skills/mutation-testing ~/.gemini/skills/mutation-testingDen mutation-testing Skill in Claude.ai installieren
npx degit trailofbits/skills/plugins/mutation-testing/skills/mutation-testing mutation-testing && zip -r mutation-testing.zip mutation-testing # claude.ai → Customize → Skills → + → Create skill → Upload a skill → mutation-testing.zip
Automatisierte Checks
Geluften am 15. Nov. 2026Vollständiger Bericht →Noch nicht verifiziert. Ein Skill braucht 80 Punkte, keinen schweren Befund und genug Daten für unsere Prüfung. Wie die Checks funktionieren · Was du für mehr Punkte verbessern kannst
- Source Repository verknüpft und erreichbartrailofbits/skills/plugins/mutation-testing/skills/mutation-testing is public and reachablegithub.com/trailofbits/skills/tree/HEAD/plugins/mutation-tes ↗Bestanden
- Open Source Lizenz (OSI)CC-BY-SA-4.0 is not OSI-approvedspdx.org/licenses/CC-BY-SA-4.0.html ↗Befund
- Commit oder Release im letzten JahrLast commit 2026-11-11github.com/trailofbits/skills/commits ↗Bestanden
- Keine Download-und-Ausführen-Muster oder Zugangsdatendiebstahl in SkriptenNo scripts in the skill folderBestanden
- Keine versteckten Anweisungen in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/trailofbits/skills/blob/HEAD/plugins/mutation-tes ↗Bestanden
- Vorab erlaubte Tools sind eingeschränktBash lets the agent run any shell command without askinggithub.com/trailofbits/skills/blob/HEAD/plugins/mutation-tes ↗Befund
- SKILL.md folgt dem Agent-Skills-FormatValid name and description; says when to use it; 110 linesgithub.com/trailofbits/skills/blob/HEAD/plugins/mutation-tes ↗Bestanden
SKILL.md
Auf GitHub ansehenMutation Testing (mewt/muton)
Routes to the right mutation testing workflow and loads the references that workflow needs.
Note: muton and mewt share identical interfaces. Examples use
mewt; substitutemutonand its file names (muton.toml,muton.sqlite) for muton projects.
mewt --help and mewt <subcommand> --help are the source of truth for command-line behavior. Examples below reflect the mewt 4.x API; run --help when a flag looks unfamiliar or a command fails.
When to Use
Use this skill when the user:
- Mentions "mewt", "muton", or "mutation testing"
- Wants to configure, scope, or speed up a mutation testing campaign
- Wants to analyze mutation results — surviving/uncaught mutants, equivalent mutants, kill rate
- Wants to use mutation results to find bugs in the source code
When NOT to Use
Do not use this skill when the user asks about tests or line coverage without any mutation testing context.
Routing
Pick the workflow, then load it together with the references listed for it. Workflows and references do not load each other — that decision belongs here.
Setting up, scoping, or speeding up a campaign → workflows/configuration.md → Also load references/optimization-strategies.md when the campaign estimate is long enough to need trimming, or the user asks to make it faster.
Campaign finished, hunting for bugs in untested code → workflows/bug-hunter.md
Turning results into a formal analysis report → workflows/analyzing-results.md, plus:
- references/equivalent-mutants.md — equivalence catalog and verification procedure
- references/severity-classification.md — severity tier criteria
- references/report-template.md — report structure
- references/blockchain-patterns.md — only for Solidity, Move, FunC/Tolk, Cairo, or Solana Rust targets
- references/input-formats.md — unless the results came from mewt or muton. Foreign tool output may not be self-describing; this covers the parsing anchors for slither-mutate, mull, and dextool-mutate
Anything else → run mewt --help or mewt <subcommand> --help, then assist directly.
Essential Commands
# Set up and run
mewt init # Create config and database
mewt mutate [paths] # Generate mutants without testing them
mewt run [paths] # Generate mutants and run the campaign
# Read results
mewt status # Overview with per-file breakdown
mewt results # Uncaught mutants (default view)
mewt results --all # Every outcome, not just uncaught
mewt results --format json # json | sarif | ids | table
# Narrow down (these filters work on both `results` and `print mutants`)
mewt results --target 'src/auth/**' # Quote globs so the shell does not expand them
mewt results --severity high,medium
mewt results --mutation-types ER,CR
mewt results --status Uncaught # Uncaught | TestFail | Skipped | Timeout
mewt results --line 42
# Investigate and re-test
mewt print mutant --id [id] # View the mutated code
mewt test --ids [ids] # Re-test specific mutants
mewt test --ids-file uncaught_ids.txt # Re-test IDs from a file, or '-' for stdin
# Inspect configuration
mewt print config # Effective config
mewt print targets # Files actually mutated
mewt print mutations --language [lang] # Mutations and severities for a language
Language labels are canonical family or family/dialect values in mewt 4.x — for example rust, javascript/ts, move/sui, move/iota.
What Results Mean
- Caught/TestFail: tests detected the mutation (good)
- Uncaught: tests did not detect the change. Inspect the code to distinguish a testing gap from an equivalent mutation.
- Timeout: tests took too long — inconclusive, not evidence of coverage
- Skipped: a less severe mutant was skipped because a more severe mutant on the same line was uncaught
Interpreting Mutation Types
mewt print mutations --language [lang] lists every mutation slug, description, and severity for a language, and is authoritative — the operator set grows with each release. What that output does not tell you is what a survivor means, which is where prioritization comes from:
| Severity | Representative slugs | What an uncaught mutant tells you |
|---|---|---|
| High | ER (Error Replacement) |
Tests tolerate the injected error. Investigate whether the path executes, whether error handling masks the change, and whether assertions check the outcome. |
| Medium | CR (Comment Replacement) |
Removing the statement does not fail the tests. Check whether its effects matter and whether assertions observe them. |
| Medium | IF/IT (If False/True), NR (Negation Removal) |
Tests do not distinguish the changed condition. Both constant replacements surviving can indicate an unexecuted condition or weak assertions on the branch outcomes. |
| Low | Operator shuffles (AOS, COS, LOS, BOS, shift/assignment variants), BL, AS, LC, WF |
Check boundary inputs, arithmetic assertions, and semantic equivalence. The mutation result alone does not establish whether the code executed. |
Severity ranks the mutation, not the risk. A low-severity survivor in a fee calculation matters more than a high-severity survivor in a log line — weigh what the mutated code does. Filter with --severity to work through the results in priority order.
Dateien in diesem Skill
12mutation-testing Skill-Fragen
Wie installiere ich den mutation-testing Skill in Claude Code?
Führe npx degit trailofbits/skills/plugins/mutation-testing/skills/mutation-testing ~/.claude/skills/mutation-testing aus. Claude Code lädt Skills aus ~/.claude/skills (alle Projekte) oder .claude/skills (ein Projekt) und nutzt einen Skill, wenn seine Beschreibung zur Aufgabe passt.
Welche Clients können den mutation-testing Skill nutzen?
Jeder Client, der das Agent Skills-Format liest: Claude Code, Codex, Gemini CLI und claude.ai (als ZIP hochladen). Skripte im Skill laufen nur dort, wo der Client Codeausführung erlaubt.
Wie kann ich Mutationsergebnisse nach Schweregrad filtern?
Du kannst das --severity Flag mit dem mewt results Befehl nutzen, um die Ergebnisse nach Priorität zu filtern.