Miqto
GitHub API 実測 + 自分の失敗の記録

OSS候補の探し方を間違えていた話

「非エンジニア向けの業種OSSが、GitHubに全然見つからない」——長いことそう思っていました。結論は、探し方が間違っていました。
「スター300以上」という、良かれと思って入れたフィルタが、業種特化のOSSを構造的に消していたのです。非エンジニア向けのOSSは、そもそもGitHubのスター文化の外側にあって、その閾値に届きません。
つまり、「見つからない」という結論を、自分のフィルタが作っていました。その顛末を、GitHub APIの実測つきで書きます。

公開:2026-07-20読了:約11分実測:2026-07-20 GitHub API

01なぜこれを調べたか

私たちは、日本語マネージドで売れるOSSを探していました。狙いは「非エンジニアが買い手の、業種特化のOSS」です。エンジニアが買い手だと、自前で建てられてしまうので、マネージドが売れないからです(この理屈は評価手順の記事に書きました)。

ところが、探しても探しても見つからない。「業種OSSはGitHubにほとんど存在しないのだ」と結論しかけました。その結論が、間違いでした。

先に、この記事の結論
★300このフィルタが業種OSSを全落とし
任意トピックは著者が任意に付けるだけ
本文ライセンスは表示でなく本文を読む
3つとも「道具の癖」の話です。対象ではなく、自分の測り方を疑うべきでした。

02フィルタが結論を作っていた

私たちは、GitHubのトピックを業種名で回すとき、いつも stars:>300 を付けていました。ノイズを減らすためです。これが致命的でした。

同じトピックを、フィルタありとなしで比べると、はっきり分かります(2026-07-20 に GitHub API で実測)。

★300フィルタの有無で、見える件数が激変する(2026-07-20 実測)
トピックstars:>300 ありフィルタなし
field-service0件99件
compliance-management0件14件
winery(ワイナリー)0件19件
driving-school(自動車教習)0件21件
visitor-management1件(411★)60件
★300ありだと、5つのうち4つが0件。「業種OSSは無い」と結論するには十分に見えます。でもフィルタを外すと、それぞれ14〜99件が存在していました。フィルタが「無い」という結論を作っていたのです。
構造の問題
非エンジニア向けの業種特化OSSは、そもそもGitHubのスター文化の外側にあり、★300に届きません。
だから stars:>300 で残るのは、定義上「エンジニアが星を付けた=エンジニア向け」に偏ります。「非エンジニア向けが見つからない」のは当たり前でした。フィルタがそう仕向けていたのですから。

03トピック検索は「意味」を理解しない

もう一つの誤解は、「トピックで絞れば、そのカテゴリのものが正確に取れる」という思い込みでした。2つの意味で間違っていました。

トピックは著者の任意付与(GitHub公式)
Repository admins can add any topics they'd like to a repository. GitHub Docs「Classifying your repository with topics」
トピックはリポジトリ管理者が好きに付けるものです。だから、あるトピックが0件でも「そのカテゴリのOSSが無い」ことにはなりません。誰もそのトピックを付けていないだけのこともあります。

そして、ヒットしたトピックも、中身は思ったより多様でした。access-control を例に、実際に上位を見てみます。

topic:access-control の中身(star降順・2026-07-20 実測)
約1,964総数「33件」ではなかった
1位HasuraGraphQLエンジン
7/20Casbin系は上位20の「ばかり」ではない
上位20には、認可ライブラリ(Casbin系7件)だけでなく、IAM製品(Permify・Ory Keto・Cerbos)、そしてESP8266を使った物理入退室のRFID装置esprfid/esp-rfid)まで混在していました。「access-control」という語が、ソフトの認可と物理の入退室を同居させているのです。
access-control は33件で全てCasbin系の認可ライブラリ
誤り。実測は約1,964件で多様。1位はHasura、Casbinは上位20のうち7件、物理RFID装置も混在(2026-07-20)

トピック検索は、語の曖昧さを解決しません。「access-control」で認可ライブラリを探しているつもりが、物理の入退室装置も一緒に釣れる。これは、フィルタで件数を絞る以前の問題です。

全文検索はもっと当てにならない
in:name,description,readme の全文検索は、さらにノイズが多くなります。GitHub公式ドキュメントで言えるのは「READMEに言及があればマッチする」までで、「その語が主題かどうか」は判定してくれません(公式に「意味を理解する」という記述はありません)。依存関係の記載・バッジ・比較表・awesomeリストでもマッチするので、目的のカテゴリとは無関係のものが大量に混ざります。

04本物の業種OSSは、AGPLに寄る

フィルタを外して業種OSSがようやく見えてきたとき、もう一つ気づいたことがあります。本物の業種特化OSSは、ライセンスがAGPLに寄っているのです。

業種OSSのライセンス傾向(2026-07-20 実測)
領域該当(★300以上)ライセンス
CMMS(設備保全)Grashjs/cmms(唯一の1件)AGPL-3.0
フリート管理fleetbase/fleetbaseAGPL-3.0
openremote/openremote実体はAGPL(API表示はNOASSERTION)
設備保全のCMMSを★300以上で絞ると該当は1件、それがAGPL。フリート管理も上位が実質AGPL。「AGPLに寄る」傾向であって「全部AGPL」ではありませんが、はっきりした偏りがあります。
AGPL率の高さは、需要の信号
AGPLは、第三者による商用ホスティングを止めるためのライセンスです。
つまりAGPLが多い領域は、「商用ホスティング需要があるから、上流が先回りして守っている」領域だと読めます。私たちのようにパーミッシブなライセンスを前提にする事業とは、構造的に相性が悪い。業種OSSが見つかっても、その多くは最初から閉じられていました。
ライセンス表示も当てにならない
openremote/openremote は、GitHub APIのライセンス欄が NOASSERTION ですが、LICENSE本文はAGPLv3です。API表示を鵜呑みにすると、業種OSSのAGPLを見落とします。ここでも本文を読むしかありません別記事で詳しく)。

05探し方をどう変えるべきか

この失敗から、探索の方法を変えました。

探し方の修正
  1. ★の閾値を下げる(50〜100)業種OSSはその帯にいる。★300は「エンジニア向け」を選ぶフィルタだった
  2. GitHub以外も見るSourceForge・欧州の公共調達OSS・自治体のOSSカタログ。スター文化の外に業種OSSがある
  3. 0件を「存在しない」と読まないトピック未付与・語の曖昧さ・フィルタを疑う。まず自分の道具を点検する
  4. ライセンスは本文を読むAPI表示・SPDX・READMEを信用しない。業種OSSはAGPLが多い前提で見る
いちばんの教訓は、変な結果が出たら、対象ではなく自分の測定器をまず疑うということでした。これは私たちが何度も繰り返した失敗です。
この失敗は、私たちがオープンソースを日本語のマネージドサービスとして提供する(Miqto)ための候補探索の過程で起きたものです。あわせて読む:OSSを評価する11段のゲート「オープンソース」に見えて商用利用できないOSSカタログ日本人が実際に使っているOSSを実測した

データ・出典(GitHub API 実測・2026-07-20)

  1. 件数の実測:https://api.github.com/search/repositories?q=topic:<トピック>+stars:>300+archived:false と、フィルタなしの比較。access-controlsort=stars で上位を確認(総数約1,964件・1位 hasura/graphql-engine・Casbinファミリー7件・esprfid/esp-rfid 混在)。star数は日々変動するため、本記事の数値は2026-07-20取得の実測です。
  2. GitHub Docs「Classifying your repository with topics」(「Repository admins can add any topics they'd like to a repository.」)
  3. GitHub Docs「Searching for repositories」in:readme は「mentioning」までしか保証しない=主題判定はしない)
  4. 業種OSSのライセンス:topic:cmms stars:>300(該当1件 Grashjs/cmms・AGPL-3.0)/topic:fleet-management stars:>300fleetbase/fleetbase AGPL-3.0 ほか)。openremote/openremote は API が NOASSERTION、LICENSE.txt 本文はAGPLv3
本記事のGitHubの件数・スター数・ライセンス表示は、2026年7月20日にGitHub APIで取得した実測値です。スター数やトピックの付与状況は日々変動するため、同じ検索でも取得時期により結果は変わります。件数は「約」やレンジで示しています。特定のプロジェクトを評価する意図はなく、探索手法の癖を説明するための例として挙げています。会社名・製品名は各社の商標です。