mutation-testing
Configures mewt or muton campaigns, analyzes surviving mutants, and investigates bugs exposed by testing gaps.
Skill by trailofbits
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/trailofbits-mutation-testing
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, marketing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/mutation-testing
Tools it pre-approves 4
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
ReadWriteBashGrep
What's inside
- Skill name
mutation-testing- Description
- Configures mewt or muton campaigns, analyzes surviving mutants, and investigates bugs exposed by testing gaps. Use when setting up mutation testing, reviewing campaign results, identifying equivalent mutants, or finding bugs from surviving mutations.
- License
- CC-BY-SA-4.0
- Allowed tools
- Read, Write, Bash, Grep
- Instructions
- 104 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (12)
- SKILL.md
- openai.yaml · agents/
- trail-of-bits-mark.svg · assets/
- blockchain-patterns.md · references/
- equivalent-mutants.md · references/
- input-formats.md · references/
- optimization-strategies.md · references/
- report-template.md · references/
- severity-classification.md · references/
- analyzing-results.md · workflows/
- bug-hunter.md · workflows/
- configuration.md · workflows/
SKILL.md (first lines)
# Mutation 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`; substitute `muton` and 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](workflows/configuration.md) → Also load [references/optimization-strategies.md](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](workflows/bug-hunter.md) **Turning results into a formal analysis report** → [workflows/analyzing-results.md](workflows/analyzing-results.md), plus: - [references/equivalent-mutants.md](references/equivalent-mutants.md) — equivalence catalog and verification procedure - [references/severity-classification.md](references/severity-classification.md) — severity tier criteria - [references/report-template.md](references/report-template.md) — report structure - [references/blockchain-patterns.md](references/blockchain-patterns.md) — **only** for Solidity, Move, FunC/Tolk, Cairo, or Solana Rust targets - [references/input-formats.md](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 ```bash # 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.
From trailofbits/skills, CC-BY-SA-4.0.
More from trailofbits/skills
- 0.767score
slicing-code-context
trailofbits
Selects bounded, graph-informed source slices with Trailmark and delegates focused code analysis or patch-proposal work to a smaller subagent.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
diagramming-code
trailofbits
Generates Mermaid diagrams from Trailmark code graphs.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
semgrep
trailofbits
Runs a Semgrep security scan over a codebase: detects languages, selects rulesets, presents the plan for explicit approval, then runs every approved ruleset…
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
mermaid-to-proverif
trailofbits
Translates Mermaid sequenceDiagrams describing cryptographic protocols into ProVerif formal verification models (.pv files).
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
firebase-apk-scanner
trailofbits
Scans Android APKs for Firebase security misconfigurations including open databases, storage buckets, authentication issues, and exposed cloud functions.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
github-triage
trailofbits
Triages a repository's open GitHub issues and pull requests via the gh CLI.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
let-fate-decide
trailofbits
Draws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
dimensional-analysis
trailofbits
Audits code for unit and decimal-scaling bugs and annotates it with dimensional comments recording the units of each value.
SkillAFreshness: A★ 7.8KClaude Code - 0.767score
codeql
trailofbits
Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
interpreting-culture-index
trailofbits
Interprets Culture Index (CI) surveys, behavioral profiles, and personality assessment data.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
entry-point-analyzer
trailofbits
Analyzes smart contract codebases to identify state-changing entry points for security auditing.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
trailmark
trailofbits
Builds and queries multi-language source and binary code graphs for security analysis.
SkillAFreshness: A★ 7.8KClaude Code +9
Signals
- Stars
- 7,783
- Forks
- 671
- Open issues
- 30
- Last commit (this folder)
- Sep 16, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- CC-BY-SA-4.0
- Repository
- github.com/trailofbits/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from trailofbits
- 0.767score
github-triage
trailofbits
Triages a repository's open GitHub issues and pull requests via the gh CLI.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
entry-point-analyzer
trailofbits
Analyzes smart contract codebases to identify state-changing entry points for security auditing.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
dimensional-analysis
trailofbits
Audits code for unit and decimal-scaling bugs and annotates it with dimensional comments recording the units of each value.
SkillAFreshness: A★ 7.8KClaude Code - 0.767score
firebase-apk-scanner
trailofbits
Scans Android APKs for Firebase security misconfigurations including open databases, storage buckets, authentication issues, and exposed cloud functions.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
interpreting-culture-index
trailofbits
Interprets Culture Index (CI) surveys, behavioral profiles, and personality assessment data.
SkillAFreshness: A★ 7.8KClaude Code +9 - 0.767score
let-fate-decide
trailofbits
Draws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated.
SkillAFreshness: A★ 7.8KClaude Code +9
Cite this page
mutation-testing skill. Agent Mart. https://agentmart.dev/skills/trailofbits-mutation-testing (last updated 2026-10-24)