GitHubスターは罠です。
「人気=品質ではない」という意味ではありません――それは明らかです。もっと具体的な話です。毎日のAIツールのダイジェストでは、スターは遅れて効いてくる指標で、私のフィードを悪くしました。そして、それに気づくまでに3か月かかりました。
先週私が下した判断はこれです。ai-tldr.dev では GitHubスターをランキング入力として完全に削除しました。何が起きたのか、そしてそれに代わり何を入れたのかを説明します。
The problem with stars
ダイジェストの最初のバージョンを作ったとき、スターをタイブレーカーとして使いました。同じ週に2つのリポジトリがリリースされた? スター数が多い方が上に浮かぶ。理にかなっているように思えました。
しかしスターは時間とともに積み上がり、ローンチ当日に急増します。18か月前に大きなHNの投稿とともにローンチしたリポジトリは12,000スター。先週火曜に本当に役立つツールを出したものは340スターです。その古い方は、あらゆる検索でより重要に見えてしまいます。
結果として、「最近のAIツール」セクションがすでに知られているものばかりを繰り返し出すようになりました。ダイジェストは、みんなが6か月前にすでに見ていたもののリミックスになっていき、ほんの少しだけ詰め替えただけ、という状態です。
ラフに監査もしました。私が直近60件のうち、5,000スター以上のものを見つけた中では、だいたい40%が、私が取り上げる前に少なくとも2つの主要ニュースレターで既にカバーされていました。私は明らかなものに遅れていて、本当に新しいものを取りこぼしていたのです。
What I'm using instead
修正は、思っていたより簡単でした。私は3つのシグナルに切り替えました:
Recency weight(鮮度の重み)――直近7日間の投稿には、スター数にかかわらず強いブーストを与えます。新しいものであれば、それがチャンスを得られるようにします。
Commit velocity(コミットの勢い)――2か月前に始まったプロジェクトで、直近10日間に12件のコミットがあるリポジトリの方が、安定して3年続いているだけのものより面白い。スターはこうしたことをまったく捉えません。
Category freshness(カテゴリの鮮度)――最近カバーしたカテゴリを追跡します。今週「LLM fine-tuning」の投稿を4本やっているなら、5本目は、シグナルにかかわらずより高い品質基準を満たす必要があります。
スターはシステム内に残していますが、スターによる報酬ではなく、非常に低いエンゲージメント(2週間で10スター未満)へのソフトな減点として扱っています。有名だからといって得点が増えるわけではありません。
What changed
まだ1週間しか経っていないので、結果を断言することはできません。でも主観的には、毎日のフィードの切れ味が増した感じがします。以前なら触れなかったものを拾えている――小さめのツール、特定用途のリポジトリ、インフラになろうとするよりも1つの課題をうまく解決するもの、そういうものです。
読者が気づくかどうかは、まだわかりません。ですが、編集方針としての直感は良くなっている気がします。
より広い教訓はこれです。プロジェクトの最初に理にかなっていたシグナルは、時間とともにバイアスとして固まってしまうことがある。状態がうまくいっているように見えるときでも、定期的に監査する価値があります。
