Skip to main content
Every roe command takes a path to a directory, a .sln file, or a .csproj file, and defaults to the current directory. There’s nothing to configure up front — point roe at your solution and read the report.
1

Scan everything at once

With no command, roe runs all three analyses and prints each report under its own section header — see roe check. That’s the fastest way to see where a codebase stands, and the steps below break down what each section is telling you.
2

Scan for dead code

Every finding is something roe believes is unreachable from your solution’s entry points — safe to delete, or a false positive worth suppressing.
3

Scan for duplicated code

By default only token-for-token identical blocks match; pass --mode semantic to also catch copies where variable names or numeric literals were changed.
4

Scan for complexity and coupling

Each metric prints as actual/threshold, and the worst offenders come first. Add --hotspots to also rank the files that are both complex and frequently changed, read from git history.
5

Wire it into scripts or CI

Every command exits 0 when clean, 1 when it has findings to report, and 2 on error, and all support --format json for a stable, machine-readable report. A bare roe . exits 1 if any of the three analyses reports, so it works as a single gate. See Exit codes and JSON output.
6

Tune out false positives

Mark individual findings with inline suppression comments, or set up a roe.json config file to ignore whole directories, declare extra entry points, and pin your health thresholds so local runs and CI agree.