healthScore property

double get healthScore

Overall project health score (0-100).

Implementation

double get healthScore {
  if (projectMetrics.functionCount == 0) return 100;

  // Weight: 40% rating distribution, 30% average MI, 30% violation ratio
  final ratingScore = ratingDistribution.goodPercent * 0.4 +
      ratingDistribution.moderatePercent * 0.2;
  final miScore = (projectMetrics.maintainabilityIndex.mean / 100) * 30;
  final violationRatio =
      1 - (violations.length / projectMetrics.functionCount);
  final violationScore = violationRatio * 30;

  return (ratingScore + miScore + violationScore).clamp(0, 100);
}