7月の頭から、個人でCLIツールを作って公開している。AIエージェント向けの設定ファイル——AGENTS.md や SKILL.md みたいなやつ——が壊れていないかを検査するリンタが中心で、9日間で8本出した。
先週、GitHubを開いて数えてみた。
スターは、8本ぜんぶゼロだった。フォロワーもゼロ。
作ったものが悪いのだろうと思った。ニッチすぎたか、名前が悪かったか、READMEの書き方か。そのあたりを直そうと手を動かしかけて、その前に一度、数字を全部並べてみることにした。
ダウンロードは、来ていた
npmのAPIを叩いて月間ダウンロード数を取った。
reflint 790
skills-lint 651
tracklint 281
carrylint 241
orogami 120
tokenlint 70
genchi 54
合計で2,207。スターゼロの割に、悪くない数字に見える。
ここで小躍りしそうになったが、先に書いておくと、新規パッケージのダウンロード数を実ユーザーだと思ってはいけない。公開直後のDLは大半がレジストリのミラーとセキュリティスキャナのbotだ。実際、私の7本は公開日が早い順にきれいに並んでいる。需要ではなく公開順で説明がついてしまう数字を、需要だと読むのは危ない。
それでも、ゼロではない。誰かのCIが一度でも npx を叩けば、そこに数字は乗る。ならばその人たちはどこへ行ったのか。
npmのページから、GitHubに飛べなかった
package.json を7本ぶん並べて、気づいた。
| パッケージ | 月間DL | repository |
|---|---|---|
| reflint | 790 | なし |
| skills-lint | 651 | なし |
| tracklint | 281 | なし |
| carrylint | 241 | あり |
| orogami | 120 | あり |
| tokenlint | 70 | あり |
| genchi | 54 | あり |
ダウンロードが多い上位3本だけ、repository を書いていなかった。
npmのパッケージページは、package.json の repository を見て「Repository」のリンクを出す。書いていなければ、そのリンクは出ない。つまり月1,722ダウンロードぶんの人が、npmのページまでは来て、そこから先へ行けない状態だった。
スターがゼロだったのは、ニッチだからでも名前が悪かったからでもなかった。行き止まりだったからだ。
なぜ上位3本だけ抜けていたのかも、あとから腑に落ちた。この3本は最初に作った3本だ。4本目以降は手順が体に入って repository も homepage も bugs も書くようになっていた。つまり抜けていたのは「慣れる前に出したもの」で、そしてそれは同時に「いちばん長く公開されていて、いちばんダウンロードされているもの」でもある。いちばん流入がある3本に、いちばん古い手抜きが残っていた。
直して再公開した。追加したのは、これだけ。
"author": "hyuga611",
"homepage": "https://github.com/hyuga611/reflint",
"repository": {
"type": "git",
"url": "git+https://github.com/hyuga611/reflint.git"
},
"bugs": {
"url": "https://github.com/hyuga611/reflint/issues"
}
npmは publish しないとメタデータが反映されない。パッチを上げて出し直した。
もうひとつ、READMEで説得した人を出力で逃していた
同じ日に、もっと恥ずかしいのが出てきた。
私のREADMEは英語が先頭にある。英語圏の開発者に読んでもらう前提で書いた。ところが、その人が実際に npx を叩いた瞬間に出てくるのは、これだった。
✗ AGENTS.md — 3 件
参照 `src/parser.ts` が存在しません
出力が日本語のままだった。7本のうち5本が。
READMEで「これはこういうツールだ」と説明して、インストールまで漕ぎ着けてもらって、実行した瞬間に読めないログを返していたことになる。CIのログは読めなければ意味がない。ここで離脱されていたとして、私には何も見えない。エラーにもならないし、issueも来ない。
全部英語に直した。テストは通ったままだった——当然で、テストはメッセージの中身を見ていなかったからだ。
学んだこと
私が最初に疑ったのは「作ったものが悪い」だった。実際に悪かったのは、その外側だった。
- npmのページからGitHubに行けない(
repository欄) - インストールした人が出力を読めない(言語)
どちらもコードの正しさとは関係ない。テストは178件すべて通っていたし、CIも緑だった。緑のまま、誰にも届いていなかった。
ここでもうひとつ気づいたことがある。私はこの手のことを本業でやっている。Webサイトを作って、計測を入れて、流入を設計する仕事だ。ページを作っただけで内部リンクもtitleも書かなければ誰も来ない、というのは毎日クライアントに説明している。それを自分のパッケージでやっていた。他人のサイトの導線は見えるのに、自分のpackage.jsonは見えていなかった。
もし心当たりがあれば
npmに何か出している人は、一度これだけ見てみてほしい。30秒で終わる。
npm view <あなたのパッケージ名> repository homepage
何も返ってこなければ、npmのページからあなたのリポジトリへ行く道が無い。書き足して publish し直せば開通する。
それと、CLIを配っているなら、READMEの言語と出力の言語を揃えているか。私はここを9日間ずれたまま放置していた。
スターがゼロだったのは、たぶん作ったものの問題ではなかった。ただ、道が繋がっていなかっただけだった。
繋いだのが先週なので、効いたかどうかはまだ分からない。90日くらい経ったら、また数えてみる。
作っているものはこのあたりに置いてあります。よろしければ。
https://github.com/hyuga611