Stars Are Cooked: What to Use for Discovery When Trending Is Gamed

4 min read 6 sources clear_take
├── "Stars are an engagement metric being misused as a quality signal — the entire premise of Trending is broken"
│  └── top10.dev editorial (top10.dev) → read below

Argues that the moderation gap is a distraction from a deeper structural flaw: stars were never a trustworthy quality signal, just an engagement metric the industry has pretended was something more for years. The fake repos are passing the bar because the bar is literally just 'did the star count go up fast,' which is an algorithmic failure, not a moderation one.

├── "Trending rewards stock over flow — large incumbents permanently occupy the top, suppressing genuinely new work"
│  └── top10.dev editorial (top10.dev) → read below

Identifies the 'monument problem': repos like freeCodeCamp and awesome-python sit on Trending permanently because their absolute star count is enormous and their daily delta is positive-but-noisy. A truly new innovation can't break through because the algorithm rewards what's already large and still alive, rather than what's new and rising as Trending claims to do.

├── "Coordinated starring rings are actively exploiting the algorithm right now, and GitHub is not responding"
│  ├── qiuqiubuchongle-cloud/chokepoint-atlas (GitHub, 590 pts) → read

A repo claiming to be a 'global supply chain dependency mapper' that contains no code, yet has accumulated 590 stars via throwaway accounts with near-simultaneous timestamps. It has sat on Trending for 72+ hours with no delisting or public takedown statement from GitHub.

│  ├── anomalyco/rift (GitHub, 543 pts) → read

Advertises itself as a 'distributed consensus framework' with only three files, none of which compile, yet has 543 stars and remains on Trending. The pattern of throwaway stargazers and ChatGPT-flavored README copy mirrors the other concurrent fakes.

│  └── tiantianGPU/reg-factory (GitHub, 442 pts) → read

Allegedly a GPU register allocator with only a single squashed initial-commit blob in its history, but has reached 442 stars on Trending. Its survival on the front page demonstrates that the ranking algorithm is not checking even trivial repo-health signals like commit history or buildability.

└── "Stars are bookmarks, not endorsements — conflating them with quality is a category error"
  └── top10.dev editorial (top10.dev) → read below

Argues that a huge fraction of GitHub stars function as 'read later' bookmarks rather than endorsements of quality. Treating bookmark behavior as a signal of project merit means even organic, uncoordinated stars don't actually carry the meaning the Trending algorithm assumes they do.

What happened

Three repositories — `qiuqiubuchongle-cloud/chokepoint-atlas`, `anomalyco/rift`, and `tiantianGPU/reg-factory` — have now spent 72+ hours on GitHub Trending despite obvious coordinated-starring signatures: throwaway accounts, near-simultaneous stargazer timestamps, and READMEs that read like a junior PM's first prompt to ChatGPT. As of this writing the counts are still climbing: chokepoint-atlas at 590, rift at 543, reg-factory at 442. None have been delisted. None have a public takedown statement.

We've covered the moderation gap twice in the last day. What we haven't said clearly enough: the moderation story is a distraction. Stars were never a trustworthy signal — they're an engagement metric repurposed as a quality signal, and the industry has been pretending otherwise for half a decade.

The `chokepoint-atlas` README claims to be a "global supply chain dependency mapper." It has no code. `rift` advertises itself as a "distributed consensus framework" with three files, none of which compile. `reg-factory` is allegedly a GPU register allocator — its only commit history is a single squashed initial-commit blob. These aren't subtle fakes. They are passing the bar because the bar is literally just "did the star count go up fast."

Why it matters

The GitHub Trending algorithm has three well-documented failure modes, and this week is showing all three at once.

The monument problem. Repos like `freeCodeCamp/freeCodeCamp` or `vinta/awesome-python` permanently occupy the top of Trending because their absolute star count is enormous and their daily delta is positive-but-noisy. A new project with a real innovation can't break through the ceiling because the algorithm rewards stock over flow. Trending is supposed to surface what's *new and rising*; it actually surfaces what's *already large and still alive*.

The bookmark problem. A huge fraction of GitHub stars are bookmarks, not endorsements. Developers star repos they want to read later, repos they cloned for a one-off script, repos a coworker shared on Slack. There's no semantic difference between "I find this useful" and "I will never look at this again." Treating starring as a vote is a category error.

The opacity problem. GitHub doesn't publish the Trending algorithm, doesn't expose star provenance (when was the star added, by what kind of account, was the account new), and doesn't surface confidence intervals. The trust contract is: take the ranking at face value. That contract broke this week in public.

Google solved an isomorphic problem in 2003 with PageRank's bad-link detection. npm has been quietly weighting downloads by package depth and dependent diversity for years. PyPI deranks packages with no maintainer activity. The tools to fix this aren't research-grade — they're 20-year-old applied IR. GitHub's choice to keep Trending as a simple velocity ranking isn't technical conservatism. It's product disinterest in a feature that doesn't drive copilot conversions.

The community has been making this case for years. Sindre Sorhus has flagged star inflation on his repos repeatedly. The `awesome-*` ecosystem has been a known star-farming target since 2019. Researchers at NCSU published in 2024 that 4.5M GitHub stars across 22,915 repos showed "clear patterns consistent with purchased engagement." Nothing changed. The signal degraded; the consumers kept consuming.

What this means for your stack

If you're using GitHub stars as part of your tool-evaluation process — formally or informally — stop. Replace stars in your evaluation rubric with four signals that are much harder to fake: commit cadence over the last 90 days, contributor diversity (the bus factor), issue close ratio, and number of downstream public dependents.

For commit cadence, look at the actual contribution graph, not the "updated" timestamp. A repo with 12 weeks of consistent commits from 3+ distinct contributors is real. A repo with one big squash in the last 60 days is somebody's portfolio piece.

For contributor diversity, the GitHub API exposes `contributors` directly. A project where one author has 95%+ of commits is a bus-factor-one project, regardless of star count. That's not necessarily bad — but it's information stars don't give you.

For issue close ratio, divide closed issues by total issues and look at the median time-to-close. A project with 800 stars and 400 open issues stale for 18 months is dead. A project with 80 stars and a 14-day median close time is alive and probably worth your attention.

For downstream dependents, the "Used by" counter on the repo page is the closest thing GitHub gives you to PageRank. It's not perfect — it only counts public repos with explicit dependency declarations — but it's roughly 100x more meaningful than stars because the bar to *depend* on a library is much higher than the bar to *star* it.

You can wire this into your own internal tooling in an afternoon. The GitHub GraphQL API exposes everything you need. The reason nobody does this isn't that it's hard — it's that the lazy heuristic (stars) is *just convenient enough* that the better one never gets built.

Looking ahead

The three suspicious repos will eventually come down — probably this week, probably without comment. The deeper fix won't happen. GitHub will not redesign Trending because Trending is not a revenue surface; it's a vestigial discovery feature from the 2010s social-coding era. The honest read is that Trending was always more of a community totem than a product, and the industry's reliance on it was a collective shortcut we now need to retire. Build your own signal pipeline, weight provenance, and stop treating a single integer as ground truth.

GitHub 600 pts 126 comments

qiuqiubuchongle-cloud/chokepoint-atlas: New trending repository

→ read on GitHub
GitHub 545 pts 9 comments

anomalyco/rift: New trending repository

→ read on GitHub
GitHub 475 pts 232 comments

tiantianGPU/reg-factory: New trending repository

→ read on GitHub
GitHub 474 pts 86 comments

wy51ai/edulab: New trending repository

→ read on GitHub
GitHub 314 pts 12 comments

ConiferKit/sage: New trending repository

→ read on GitHub
GitHub 310 pts 472 comments

zzzhhh1/free-nodes: New trending repository

→ read on GitHub

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.