Concepts

The ideas behind Okulo’s rankings — enough to interpret results without treating them as absolute truth.

Time window

Most analyses look at a sliding window of history (default 12m). Use -w 6m, -w 90d, or -w all. A stale clone or a very short window can look empty — check with okulo log.

Hotspots

A hotspot is code that is both complex and frequently changed. Complex code nobody touches is inactive debt; it may be ugly, but it is not collecting interest every sprint.

Trend

okulo trend samples a file across its history and reports whether health is declining. Useful to separate “always messy” from “getting worse”.

Temporal coupling

Files (or components) that change in the same commits tend to be coupled — even when no import says so. Okulo reports shared changes, degree, and whether the pair crosses architecture boundaries.

Authors, ownership, bus factor

The same person often appears under multiple names/emails. Okulo unifies identities and can suggest more merges via okulo authors. Ownership and bus factor answer: who would we miss if they left, and how concentrated is knowledge?

Active vs inactive debt

okulo debt focuses cost on code that still changes. Refactoring inactive areas rarely pays back; refactoring hotspots often does. okulo refactor turns that into function-level suggestions.

Quality gate

okulo check compares before/after for a branch, staged changes, or the working tree. It fails (exit 1) when a change makes hot, unhealthy code worse — so you catch interest before merge.

Responsible use

Social metrics describe system risk (concentration, coordination), not individual performance. They miss design work, mentoring, review, and deleting code. Use them to protect the codebase and the team — never as a scoreboard.