Skip to main content

ovecc hotspots

The technical-debt ranking: churn × coupling × fan-in/out × ownership fragmentation × violations, normalized 0–100. Where refactoring pays first — every component's score is broken into its explainable parts.

Usage: ovecc hotspots [OPTIONS]

Example

$ ovecc hotspots --limit 5
Hotspots:

1. services
Score: 82
Churn: 2
Ownership fragmentation: 0%
Coupling: 3 (fan-in 1, fan-out 2)
Complexity: 2 (cognitive)
Violations: 0

2. core
Score: 77
Churn: 2
Ownership fragmentation: 0%
Coupling: 3 (fan-in 3, fan-out 0)
Complexity: 2 (cognitive)
Violations: 0

3. routes
Score: 60
...

The philosophy

Static ugliness alone doesn't cost money; churning ugliness does. A complex module nobody has touched in a year ranks below a moderately-coupled module that five people edit weekly. The signals:

SignalSourceMeaning
ChurnGit historyHow often the component changes
Ownership fragmentationGit historyHow many people own pieces of it (bus-factor risk, coordination cost)
CouplingThe graphfan-in + fan-out
ComplexityThe extractorAggregate cognitive complexity
ViolationsFindingsRecorded rule violations in the component

Without Git history (--no-git, or a repo with no commits), churn and ownership are labeled n/a and the ranking degrades gracefully to the structural signals.

Options

OptionDefaultEffect
--limit <N>10How many components to rank

Plus the global options.