genotoxic

Categorizes mutation testing results using graph analysis to identify false positives, missing coverage, and fuzzing targets.

6.5k|561|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/trailofbits/skills --skill genotoxic-trailofbits
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: genotoxic
Source: https://github.com/trailofbits/skills/tree/main/plugins/trailmark/skills/genotoxic
Command: npx skills add https://github.com/trailofbits/skills --skill genotoxic-trailofbits

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires trailmark, mutation testing framework, necessist, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

Genotoxic addresses the challenge of analyzing large sets of mutation testing results, making it easy to identify false positives, missing test coverage, and potential fuzzing targets.

Core Features & Use Cases

  • Survived Mutant Triage: Categorizes survived mutation testing results based on graph data to quickly identify false positives, missing tests, and fuzzing targets.
  • Graph Analysis Integration: Leverages Trailmark's code graph for context-aware analysis.
  • Necessist Integration: Optionally removes unnecessary test statements for additional coverage insights.
  • Use Case: After running mutation testing, use Genotoxic to analyze results, automatically categorizing findings and suggesting next steps.

Quick Start

Run the Genotoxic skill with the following command:

uv run trailmark analyze --language auto --summary {targetDir}

Frequently Asked Questions about genotoxic

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

FAQPage Schema
How do I triage survived mutation testing results to identify false positives?

Triage survived mutation testing results by applying graph analysis to categorize findings into false positives, missing tests, and fuzzing targets. Graph data provides code context to distinguish true coverage gaps from non-viable mutants efficiently.

What is the best way to find fuzzing targets from mutation testing results?

Find fuzzing targets from mutation testing results by analyzing survived mutants with code graph data. This pinpoints code paths where mutations survived, highlighting areas lacking robust assertions that are prime candidates for fuzzing.

Does mutation testing triage work with smart contract and system testing workflows?

Yes, mutation testing triage works with smart contract, codebase, and system testing workflows. It leverages graph analysis and optional test statement removal to categorize survived mutants across diverse environments to identify false positives and missing coverage.

How do I analyze mutation testing results using a code graph?

Analyze mutation testing results using a code graph by running a graph-based analysis tool against the target directory. The graph provides context-aware analysis to automatically categorize survived findings and suggest next steps for improving test coverage.

Do I need necessist to remove unnecessary test statements during mutation testing triage?

You do not need necessist, but it is an optional dependency for mutation testing triage. When integrated, necessist removes unnecessary test statements to provide additional coverage insights beyond standard graph analysis of survived mutants.

Why are survived mutants flagged as false positives in code analysis?

Survived mutants are flagged as false positives in code analysis when graph data reveals the mutation is non-viable or semantically equivalent. This context-aware triage prevents wasted effort writing tests for code paths that cannot meaningfully fail.