PVS-Studio Static Analysis

SkillDev tools

Lets your agent run PVS-Studio static analysis on TinyUSB code for a chosen board and get readable or SARIF reports.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the PVS-Studio Static Analysis skill

About this capability

Use when running PVS-Studio static analysis (SAST + MISRA C:2023 / C++:2008) on TinyUSB for a given board. Builds the examples with an exported compile_commands.json, runs pvs-studio-analyzer against .PVS-Studio/.pvsconfig, and emits readable + SARIF output.

What this skill tells your AI

The instructions your AI receives, as published by hathach/tinyusb in .claude/skills/pvs/SKILL.md and read by ahel’s review.

run_pvs.sh <BOARD> builds all examples for the board (with compile_commands.json exported), runs pvs-studio-analyzer against .PVS-Studio/.pvsconfig, then writes pvs-<board>.log and pvs-<board>.sarif plus printed errorfile findings. Needs a license file or $PVS_STUDIO_CREDENTIALS.

.claude/skills/pvs/run_pvs.sh raspberry_pi_pico       # whole project for a board

# Scope to specific files — -S takes a plaintext list (one path per line),
# NOT a source file directly. Extra args pass through to the analyzer.
printf 'src/tusb.c\nsrc/class/cdc/cdc_device.c\n' > /tmp/files.txt
.claude/skills/pvs/run_pvs.sh stm32f407disco -S /tmp/files.txt

Notes

  • Board: raspberry_pi_pico mirrors CI (needs Pico SDK deps); stm32f407disco is fastest (no external SDK). Any board works once its deps are fetched (python3 tools/get_deps.py -b <board>).
  • .pvsconfig already excludes vendored code and suppresses accepted MISRA deviations — don't re-add those on the command line. Surviving src/ findings are genuinely new.
  • Timing is dominated by the build (deps may push it past a minute); the analysis pass is ~10-30 s. Use a timeout ≥ 10 min when deps must be fetched first.
  • --dump-files is intentionally omitted — it scatters .PVS-Studio.i/.cfg dumps across the tree (FP-debugging only); add it back via the passthrough args.

After a run, summarize findings by rule/severity from the errorfile output and point the user at pvs-<board>.sarif.

Signals

GitHub stars
7k
Forks
2k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
pvs
Source
github.com/hathach/tinyusb