The Science
snapshot 2026-10-29The ghost score estimates P(a project is abandoned within 12 months) using TabPFN, an open-weight tabular foundation model, paired with a transparent point-attributable heuristic (heuristic-v1). Features are computed strictly from repository history prior to snapshot date T0 = 2025-10-27 — never current stars or forks, which would leak future popularity.
Dataset card & Graveyard Index distribution
- Current seeded index (2026-10-29): 180 unique npm & PyPI packages — 11 Departed, 16 Haunted, 17 Fading.
- Training specification: ≈1,500 GitHub repositories behind npm/PyPI packages, stratified across download tiers.
- Ground-truth label:
abandoned_12m= no non-bot default-branch commit in (T0, T0+12mo], OR repository archived, OR package officially deprecated in that window. - 24 engineered features: commit cadence (30/90/180/365d), linear commit slope, distinct authors, bus factor, release gap, issue close rate, stale PRs, and download trend.
TabPFN vs baselines
As of snapshot 2026-10-29, the 5-fold cross-validation benchmark (data/eval-results.json) has not been executed in this environment because we never invent or hardcode synthetic benchmark numbers.
Active production scorer: heuristic-v1 signal weights
Every point on a Revenant tombstone is directly attributable to the public signals below:
| Observable signal | Attribution |
|---|---|
| Repository archived (read-only) | +70 pts |
| Official registry deprecation flag | +65 pts |
| No commits in >2 years (>730d) | +40 pts |
| No release in >2 years (>730d) | +15 pts |
| Zero active authors in last 365 days | +10 pts |
| Single-author bus factor >=80% | +8 pts |
| 180-day issue close rate <10% (>50 open) | +8 pts |
| Recent commit (<30d) & release (<90d) | −16 pts |
Limitations & honest negatives
- The label is a proxy: "no commits in 12 months" can conflate small feature-complete libraries with abandoned ones.
- Issue/PR response history reconstruction is dropped when GitHub API rate limits are constrained — disclosed here rather than silently imputed.
- Absence of a linked GitHub repository renders as UNKNOWN, never ALIVE.
- A high ghost score is a signal to inspect your dependency tree, never a verdict on a maintainer.