@docker-doctor/cli 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -54,6 +54,28 @@ export default {
54
54
  };
55
55
  ```
56
56
 
57
+ ## How the score works
58
+
59
+ Every scan produces a 0-100 health score alongside a label (`Excellent 🏆`, `Good ✅`, `Needs Work ⚠️`, `Critical 🚨`).
60
+
61
+ Each diagnostic adds a penalty based on severity:
62
+
63
+ | Severity | Penalty |
64
+ | --------- | ------- |
65
+ | `error` | 10 |
66
+ | `warning` | 4 |
67
+ | `info` | 1 |
68
+
69
+ The penalties are summed, then the score is computed as an asymptotic decay curve rather than a simple subtraction:
70
+
71
+ ```
72
+ score = round(100 * e^(-penalty / K)) // K = 70
73
+ ```
74
+
75
+ A perfect project (no diagnostics) always scores exactly 100. As penalty increases, the score keeps decreasing — it approaches 0 but never gets stuck there, so the score stays meaningful (and can still register improvement) even on projects with a lot of findings. `K = 70` was chosen so a single warning (penalty 4) still lands around 94 — comfortably inside the `Excellent` bucket — while errors and repeated warnings continue to meaningfully erode the score.
76
+
77
+ The label thresholds are unchanged: `>= 90` Excellent, `>= 75` Good, `>= 50` Needs Work, otherwise Critical.
78
+
57
79
  ## API
58
80
 
59
81
  ```ts