Summary
Evolve the project health analysis from a single 0-100 score toward a multi-layered system that combines a top-level verdict, scored dimensions, and concrete risk detection.
The current score compresses multiple dimensions of project health into one opaque number. A single number is reductive and hard to trust — the same score can mean very different things for different projects. Instead of replacing it all at once, we're building toward a richer model in phases, starting with the most immediately useful layer: red flags.
Direction: three layers
Layer 1: Verdict
A single top-level assessment phrase that synthesizes dimensions and flags:
- Actively maintained — all dimensions adequate, no red flags
- Needs attention — weak dimensions or minor flags present
- At risk — multiple weak dimensions or critical flags
- Unmaintained — no meaningful activity, or archived
The verdict becomes the comparison primitive for a future multi-dependency scanning feature.
Layer 2: Dimensions
Three scored dimensions, each rated as strong / adequate / weak:
| Dimension |
What it answers |
Key inputs |
| Development Activity |
Is work happening? |
Commits 30/90/365d + trend, PRs merged, days since last commit |
| Issue Management |
Do they handle problems? |
Open issues %, median resolution days, days since last closed issue |
| Release Cadence |
Do they ship deliberately? |
Releases/year, regularity, days since last release |
Only three dimensions because each must be backed by strong data from our existing GitHub API collection. Stars/forks are shown as metadata, not scored. Project age/license are context, not health signals.
Layer 3: Red flags
Concrete, binary risk callouts that fire when something is objectively concerning. Hidden entirely when nothing is wrong. This is the first layer to implement because it adds immediate value alongside the current scoring system without requiring any changes to it.
See #88 for implementation.
What's next
Red flags (#88) ship first, alongside the existing score. Dimensions and verdict will be defined and built in future issues. The scoring engine will eventually be removed (#89) once all three layers are in place.
Closed issues
#83, #84, #85, #86, #87 — closed as superseded. The narrative signal sections ("Is it alive?", "Who's behind this?", etc.) are replaced by the dimension model described above.
Summary
Evolve the project health analysis from a single 0-100 score toward a multi-layered system that combines a top-level verdict, scored dimensions, and concrete risk detection.
The current score compresses multiple dimensions of project health into one opaque number. A single number is reductive and hard to trust — the same score can mean very different things for different projects. Instead of replacing it all at once, we're building toward a richer model in phases, starting with the most immediately useful layer: red flags.
Direction: three layers
Layer 1: Verdict
A single top-level assessment phrase that synthesizes dimensions and flags:
The verdict becomes the comparison primitive for a future multi-dependency scanning feature.
Layer 2: Dimensions
Three scored dimensions, each rated as strong / adequate / weak:
Only three dimensions because each must be backed by strong data from our existing GitHub API collection. Stars/forks are shown as metadata, not scored. Project age/license are context, not health signals.
Layer 3: Red flags
Concrete, binary risk callouts that fire when something is objectively concerning. Hidden entirely when nothing is wrong. This is the first layer to implement because it adds immediate value alongside the current scoring system without requiring any changes to it.
See #88 for implementation.
What's next
Red flags (#88) ship first, alongside the existing score. Dimensions and verdict will be defined and built in future issues. The scoring engine will eventually be removed (#89) once all three layers are in place.
Closed issues
#83, #84, #85, #86, #87 — closed as superseded. The narrative signal sections ("Is it alive?", "Who's behind this?", etc.) are replaced by the dimension model described above.