From 2f1ba2ba7a7f927c89354ce0cd2dee555048a603 Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Fri, 10 Apr 2026 00:24:28 -0700 Subject: [PATCH] feat: add language-specific causes of death --- src/lib/scoring.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/lib/scoring.ts b/src/lib/scoring.ts index 25cab40..1d963f2 100644 --- a/src/lib/scoring.ts +++ b/src/lib/scoring.ts @@ -92,6 +92,38 @@ export function determineCauseOfDeath(repo: RepoData): string { score: isJS && daysSince > 365 ? 5 : 0, cause: 'Lost in dependency hell', }, + { + score: repo.language?.toLowerCase() === 'php' && daysSince > 365 ? 5 : 0, + cause: 'Died of PHP fatigue', + }, + { + score: repo.language?.toLowerCase() === 'ruby' && daysSince > 365 ? 5 : 0, + cause: 'Gemfile.lock never unlocked', + }, + { + score: repo.language?.toLowerCase() === 'python' && daysSince > 365 ? 5 : 0, + cause: 'Pip froze, then everything else did', + }, + { + score: repo.language?.toLowerCase() === 'perl' && daysSince > 365 ? 5 : 0, + cause: 'Nobody could read it, including the author', + }, + { + score: repo.language?.toLowerCase() === 'java' && daysSince > 365 ? 5 : 0, + cause: 'OutOfMemoryError: human patience exceeded', + }, + { + score: repo.language?.toLowerCase() === 'go' && daysSince > 365 ? 5 : 0, + cause: 'if err != nil { give up }', + }, + { + score: repo.language?.toLowerCase() === 'rust' && daysSince > 365 ? 5 : 0, + cause: 'The borrow checker won', + }, + { + score: repo.language?.toLowerCase() === 'c++' && daysSince > 365 ? 5 : 0, + cause: 'Segfaulted into the void', + }, { score: descLower.includes('microservice') || descLower.includes('enterprise') ? 5 : 0, cause: 'Killed by overengineering',