mcpField
R
repo-eval

repo-eval

github.com/wilbeibiDevelopment272 installsUpdated 4d ago
Repository

About repo-eval

repo-eval is a Python script that scores GitHub repositories for momentum and maintenance, then places results in a quadrant. It analyzes month-by-month trends and prints raw metrics alongside scores for review.

Key features

  1. 01Separate momentum and maintenance scores
  2. 02Monthly metrics fitted to trends
  3. 03Auditable raw metrics alongside scores
  4. 04Single-axis and machine-readable output
  5. 05Filters bot accounts from metrics

Use cases

  1. 01Comparing activity trends across open-source repositories
  2. 02Finding popular projects with declining maintenance
  3. 03Distinguishing mature repositories from declining ones
  4. 04Reviewing maintenance metrics and monthly changes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/wilbeibi/wilbeibi-skills --skill repo-eval

After installing, type/repo-evalin Claude Code to confirm it loaded.

Bundled filesREFERENCE.mdscripts/repo_eval.py

Details

From the project README

repo-eval

Score a GitHub repo 0-100 on momentum (popularity trajectory) and maintenance (how well it is run), then drop it on a quadrant. Two axes decouple: a repo can be popular-but-abandoned or niche-but-impeccable. Read them together, never alone.

  • Momentum comes from the OSS Insight API (no auth): stargazers history, issue/PR-creator history, org breakdown.
  • Maintenance comes from gh (your existing auth): time-to-first-response, time-to-merge, PR acceptance rate, issue half-life, open-PR backlog age, release cadence, self-merge rate, contributor concentration, CI. These are computed month-by-month over a ≥12-month window (--months, default 18) and fitted to a slope, so trends — not just current levels — drive the verdict (e.g. response time creeping up = dying, flat = mature).

The script always prints the raw metrics beside the scores — the verdict is auditable, not a black box. See REFERENCE.md for every metric definition, the scoring thresholds, and the gotchas (squash-merge, bot noise, mature-vs-dying).

Quick start

# Full evaluation (needs network for OSS Insight + an authenticated gh)
python3 scripts/repo_eval.py vercel/next.js

# One axis at a time
python3 scripts/repo_eval.py vercel/next.js --momentum-only
python3 scripts/repo_eval.py vercel/next.js --maintenance-only

# Machine-readable (includes the per-month trend series under maintenance.monthly)
python3 scripts/repo_eval.py vercel/next.js --json

# Widen the maintenance trend window, or use weekly star granularity for young repos
python3 scripts/repo_eval.py vercel/next.js --months 24
python3 scripts/repo_eval.py vercel/next.js --period week

# Verify the metric math offline (no network)
python3 scripts/repo_eval.py --selftest

Steps

  1. Confirm gh auth status is logged in (the maintenance axis needs it). OSS Insight needs no auth but must be reachable (some sandboxes block api.ossinsight.io).
  2. Run repo_eval.py OWNER/REPO. If one axis is unreachable it degrades gracefully and the verdict says "Incomplete" — rerun with --maintenance-only / --momentum-only as needed.
  3. Read the verdict (the quadrant) first, then sanity-check it against the raw metrics. The score is a transparent weighted average; trust the metrics over the number.
  4. When interpreting, apply the REFERENCE.md rules: low momentum + steady maintenance + flat backlog = mature, not dying; green CI + recent commits that are all bot bumps = neglected, not healthy.

Notes

  • Zero third-party dependencies — stdlib + the gh CLI only.
  • Bot accounts (*[bot], dependabot, renovate, github-actions, …) are filtered before computing contributor, response-time, and merge stats.
  • Star/contributor totals are ratchets that only climb; this skill works in rates and trends, not totals, so a rolled-over project still reads as declining.
  • On hyper-active repos the issue/PR page cap can make the actual trend window shorter than --months; the report prints *_span_months and a ! note when that happens, and the affected trends return null rather than a misleadingly short slope.
  • For SaaS-OSS, high contributor concentration is expected (the company is the maintainer) — it is reported as risk, not penalized heavily. The license axis is out of scope; check it separately (OSI vs BSL/SSPL/source-available, and whether it changed).

Comments

Markdown supported