Stripeのドキュメントはなぜ最高なのか?NotebookLM時代のドキュメントのあり方を考え、拡張機能を作ってみた
はじめに
我々エンジニアにとって、プログラミング言語やフレームワーク、APIのドキュメントは日々の業務に欠かせない存在です。
これまでは「人間が読みやすく、検索しやすい」ことがドキュメントのゴールでしたが、ChatGPT や NotebookLM といった LLM ツールの登場以降、ドキュメントには「AI が解析しやすい」という新たな価値が求められています。
そんな中、私が最近感銘を受けたのが Stripe のドキュメントです。
MOSH に転職して決済周りの機能開発を行うようになり頻繁に参照するようになったのですが、
- LLMS.txt が用意されている
- 全てのドキュメントページに「LLM 用のコピー」というボタンが設置されている
- ドキュメントの URL に
.md
を付けるだけで Markdown 形式のページが取得可能
と、LLM を活用した開発が行いやすいよう取り組まれています。
このような体験が他のドキュメントでも実現できればと思い、今回は Chrome 拡張を開発してみました。
作ったもの
LINE Developers のドキュメントを対象に、ドキュメントページに自動で「Markdownコピー」ボタンを表示する Chrome 拡張を開発・公開しました。
chrome ウェブストアのリンクは こちら です。
対象を LINE Developers のドキュメントに設定したのは
- 私が LINE API Expert として活動している
- LINE Developers のドキュメントは NotebookLM への取り込み精度が低いと感じている
という理由です。
また、特定のドキュメントに絞って機能開発をした背景は
- Stripe のようなドキュメント内で LLM 用の情報を取得する体験を提供したい
- Markdown 形式への変換精度をチューニングしやすい
- そこそこの体験と性能で良ければ、Obsidian Web Clipper など汎用な拡張機能が存在している
あたりが挙げられます。
まだ対応できていませんが、Stripe では API リファレンスもエンドポイントごとに Markdown 形式に変換することができるようになっており、こういった体験は汎用性のあるツールでは実現できないと判断しました。
開発方法
基本は Vibe Coding です。
私の最近の Vibe Coding の方法は最近 LT 会で紹介したのですが、
- Gemini 2.5 Pro で仕様を明確にする
- Claude Opus 4.1 で叩き台を作る
- git 管理を開始し、Claude Code で作り込む
のような流れで開発を進めました。
技術選定も含めてほとんど全てを LLM に任せており、コードは1行も把握していません。
気になる方はリポジトリをご覧いただければと思います。
性能比較
Markdown を利用した方が LLM の性能が良くなるのかを調べるために、LINE Developersコンソール に関する 5 つのドキュメントを NotebookLM のソースとして登録したノートブックを作成しました。
定量的な比較は難しく感覚での判断になりますが、Markdown をソースに指定したノートブックの方がクオリティが高いのかなと感じています。
ノートブックは公開していますので、ご興味ある方はぜひ、自由に操作して性能を比較してみてください。
URL をソースに指定
Markdown をソースに指定
生成されたマインドマップも、心なしか Markdown をソースにした方が情報が整理されていて使いやすいように感じます。
課題と今後の展望
拡張機能を作ってみて、ドキュメントの内容を正確に Markdown に変換することは想像以上に難しいと感じました。
現在分かっている範囲でも期待通りに Markdown に変換できないページがいくつか存在しています。
- JavaScript を利用した動的なページ
- 複雑な構成のページ
- <div> タグを活用してリッチなレイアウトを作っているページ
- 「LINEで送る」ボタンを設置する
- どのページか忘れましたが、カード型 UI を持ったページがありました
チューニングのしやすさを求めて対象とするドキュメントを絞っているので、こういったページも LLM フレンドリーに変換できると良いかなと考えています。
また、Stripe には API のエンドポイントごとに Markdown に変換するボタンが存在しており、こちらも非常に重宝する機能となっています。こういった機能も再現できると嬉しいです。
まとめ
今回は、既存のドキュメントサイトを LLM と共に活用しやすくするための Chrome 拡張を開発した話をご紹介しました。
この開発を通じて、高品質な変換のためにはサイト固有のカスタマイズが不可欠である一方で、チューニングを頑張れば LLM の性能をより引き出せるという知見も得ることができました。
理想を言えば、このような拡張機能に頼らずとも Stripe のように全てのドキュメントが公式に AI フレンドリーなデータを提供してくれるのが望ましい未来です。
今回の取り組みが、そうした「これからのドキュメントのあり方」を考える一助となれば幸いです。
Discussion