HuoCode

How HuoCode reads a repository

Two measurements per Java file, compared with the other files of the same repository. The code is never run or built.

How complex the file is

We take the file's most complex method and count its independent paths (cyclomatic complexity). Above 10 is the widely used limit where a method gets hard to test and to read.

How much it changes

Over the last 500 commits, we add up the lines added and deleted in the file, blank lines aside. A file counts as changing a lot when it stands well above the rest of the repository.

Where the two meet

Crossing both gives four groups. A hotspot is complex and changing a lot: the place where a change most needs a careful review.

  • Hotspot

    Complex and changing a lot.

  • Complex but stable

    Complex, rarely changed.

  • Changes often

    Simple, changed a lot.

  • Calm

    Simple and stable.

The score

Each file gets a health score from 20 to 100. It drops with complexity and with change, and only drops sharply when both are high. The repository score averages production files, weighted by size. Test files are shown, never counted.

score = max(20, 100 − 55 × complexity penalty − 45 × activity penalty)
  • 80–100Healthy
  • 50–79Needs attention
  • 20–49Critical

What it doesn't tell you

Scores compare files within one repository; an 80 here is not an 80 elsewhere. Under 15 Java files there are too few to compare, so no score is given. Files in other languages are listed but never counted as healthy.

This tool identifies areas to prioritize for human review. It is not a security audit, nor a guarantee of code reliability. For critical projects, manual review by experts and dedicated audit tools remain essential.

Map a repository