coverage-analysis — Claude Code skill for fuzzing coverage
Measures code reached by a fuzzing campaign and helps explain stalled path discovery. Use it to inspect harness changes, corpus results, and unreachable branches.
npx skills add trailofbits/skills --skill coverage-analysis -a claude-codeWhat coverage-analysis does
This skill examines coverage reached during fuzzing through llvm-cov, lcov, or a fuzzer's own output. It covers setting a campaign baseline, reading reports, and turning uncovered code into harness, seed, or dictionary work.
For C and C++, it describes LLVM and GCC instrumentation flags, running a corpus with a separate executable, processing profiles with llvm-profdata, and producing llvm-cov reports. It also includes commands for cargo-fuzz and gcovr. Measure the corpus after each campaign because that result can be compared across fuzzing tools.
Coverage is not an absolute measure of fuzzer performance. Treat a drop or plateau as a reason to inspect the harness or changes in the system under test.
What it helps with
- establish a coverage baseline for a new campaign
- locate uncovered branches in a report
- verify coverage after a harness change
- choose seeds or dictionary entries for blocked checks
Example prompts for the agent
- Analyze this fuzzing corpus with `llvm-cov` and identify uncovered files.
- Compare coverage before and after my harness change.
- Show how to generate a `gcovr` report for this corpus.
How to install coverage-analysis
1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill coverage-analysis -a claude-code2Manually: put the files in place
~/.claude/skills/coverage-analysis/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/coverage-analysis/
1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill coverage-analysis -a codex2Manually: put the files in place
.agents/skills/coverage-analysis/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill coverage-analysis -a cursor2Manually: put the files in place
.cursor/skills/coverage-analysis/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills coverage-analysis2Manually: put the files in place
.github/skills/coverage-analysis/SKILL.md1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill coverage-analysis -a gemini-cli2Platform CLI
gemini skills install https://github.com/trailofbits/skills --path plugins/testing-handbook-skills/skills/coverage-analysisManually: put the files in place
.devin/skills/coverage-analysis/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add trailofbits/skills --skill coverage-analysis -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set35
The whole set →Similar
Questions about coverage-analysis
How do I install coverage-analysis in Claude Code?
Run npx skills add trailofbits/skills --skill coverage-analysis -a claude-code, then run npx skills add trailofbits/skills --skill coverage-analysis -a claude-code again. The skill is located at ~/.claude/skills/coverage-analysis/SKILL.md.
What does coverage-analysis do?
It measures and interprets code coverage from a fuzzing campaign. Its guidance connects uncovered regions to harness, seed, and dictionary changes.
Why does coverage-analysis use the corpus after a campaign?
A corpus-based measurement is reproducible and comparable across fuzzing tools. Internal fuzzer metrics are less suitable for that comparison.