Skip to content

feat(scoring): add language-specific causes of death#19

Merged
dotsystemsdevs merged 2 commits intodotsystemsdevs:mainfrom
mvanhorn:osc/10-language-causes-of-death
Apr 22, 2026
Merged

feat(scoring): add language-specific causes of death#19
dotsystemsdevs merged 2 commits intodotsystemsdevs:mainfrom
mvanhorn:osc/10-language-causes-of-death

Conversation

@mvanhorn
Copy link
Copy Markdown
Contributor

What changed

  • Added 6 language-specific entries to the rules array in determineCauseOfDeath() (src/lib/scoring.ts) covering Ruby, Python, PHP, Perl, CoffeeScript, and Objective-C. The three "still-active but aging" languages (Ruby, Python, PHP) score 4 only when daysSince > 365; the three "historically fading" languages (Perl, CoffeeScript, Objective-C) score 5 since their decay signal is strong regardless.
  • Added 3 unit tests in src/lib/scoring.test.ts verifying the new causes return for the matching language (Ruby Gemfile quip, Perl reader-incredulity quip, Objective-C Swift quip).

Why

  • Closes Add language-specific causes of death to scoring #10. The existing code only had one language-scoped rule (JavaScript → "Lost in dependency hell"). The issue asked for at least four more, preferably accurate to each ecosystem rather than mean-spirited.
  • The causes mirror the examples in the issue body (Gemfile.lock never unlocked, Pip froze, Died of PHP fatigue, Nobody could read it including the author, Outlived by the thing it inspired, Swift happened) so the maintainer's intent is preserved verbatim.
  • Scores kept in the 4-5 range so they coexist with the existing distribution: isArchived (10), fix typo (8), fork (7), isJS (5). Aging languages don't drown out the stronger signals, but they do outrank the generic fallback "Side project syndrome" (score 1) when the repo has a matching language.

Checklist

  • I tested my change locally (npm run lint and npm test) — both pass; 35/35 tests green including the 3 new ones.
  • I kept the scope focused and avoided unrelated refactors — only the rules array and three new test blocks were touched.
  • I updated docs/screenshots if behavior or UI changed — N/A (logic-only change).
  • I confirmed no secrets are added.

Screenshots (if UI change)

N/A — scoring logic only, no UI surface touched.

Fixes #10

This contribution was developed with AI assistance (Codex).

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 17, 2026

@mvanhorn is attempting to deploy a commit to the Dotsystems 9999 Team on Vercel.

A member of the Team first needs to authorize it.

@dotsystemsdevs dotsystemsdevs merged commit 7b850e8 into dotsystemsdevs:main Apr 22, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add language-specific causes of death to scoring

2 participants