蔵書DBの専門書からClaude Codeスキルを自動生成する
OCR化してTurso DB(book-knowledge-base)に格納してあるビジネスドキュメント作成の専門書(上下巻)を、Claude Codeのスキルに変換した。計画書・提案資料・記事など、ドキュメントを書く機会は毎日のようにある。そのたびに書棚から本を引っ張り出すのではなく、Claude Codeが文章を書くときに自動で参照してくれるスキルにしておきたい、というのが出発点だった。
やりたかったこと
蔵書DBには上下巻あわせて52チャンク分の本文が入っている。最初の依頼はこうだった。
これをちょっと章ごとにスキル化してもらいたくて。ドキュメントする機会がかなり多いじゃないですか。その時に参照してほしいスキルになるんですよね。
まずTursoから該当書籍を検索してもらい、章構成と代表的なチャンクの中身をサンプリングして確認してもらった。返ってきた提案は「章ごとに別スキル」ではなく、1スキル+テーマ別リファレンス構成。スキルの発動判定はSKILL.mdのdescriptionで行われるので、入口は1つにまとめて、詳細はreferencesに分割する方が呼び出しの精度が上がる、という理屈だった。
寄り道: Git追跡の勘違い
構成案に納得したところで、ふと保存先が気になった。
あの保存してるディレクトリどこですか。
スキルの保存先は C:\Users\numbe\.claude\skills\(ユーザーグローバル)。書籍由来のスキル(honda-sakubun、tax-strategy-for-sme など)はすべてここに入っている。プロジェクト配下ではないので「これ、Gitに追跡されてますか?」と確認すると、~/.claude/ 自体が dotclaude というgitリポジトリになっていて、skills/ 配下もコミット対象だと教えてもらった。ここまでは一安心。
ところが、VS Codeのソース管理パネルを開いても、mdx-playground側にも ~/.claude 側にも新しいマークダウンが一つも並んでいない。追跡しているはずなのに、だ。スクリーンショットを貼って「これ何ででしたっけ?」と聞いた。
両リポジトリの .gitignore を調べてもらった結果は拍子抜けだった。
まだ何もファイルを作っていなかった。
ここまでの「1スキル+リファレンス構成」の提案は、すべてチャット上の回答であって、ディスクには1バイトも書かれていなかった。gitignoreを疑う前に、ファイルの存在を疑うべきだった。会話で構成案を読んで満足した時点で、頭の中では「もうスキル化が終わった」ことになっていた。
あ、そういうこと?まだスキル化できてないってことですか?スキルにしといてくださいね。
計画はまず memo/2026-06-10/doc-communication-skill-plan.md に保存してもらい、そこから生成に進んだ。
/book-to-skill でスキル生成
スキル生成には自作の /book-to-skill コマンドを使った。OCR化された書籍を読み込み、知識・ルール・ベストプラクティスを抽象化して汎用的なスキルドキュメントに変換するワークフローだ。
今回の実行では、上下巻52チャンクに対して5体のサブエージェントが並列でルールを抽出し、~/.claude/skills/doc-communication/ に以下を生成した。
doc-communication/
├── SKILL.md # 発動条件と全体の原則
└── references/
├── structure.md # 構成
├── story.md # ストーリー設計
├── writing.md # 文章表現
├── visuals.md # 図解・ビジュアル
└── finishing.md # 仕上げ・推敲
合計1,004行・60ルール。生成後には図版リンクの混入チェックと構成確認も走らせてもらい、スキル一覧に doc-communication の名前が並んだことを確認した。
/review-book-to-skill で品質レビュー
生成しっぱなしでは品質がわからないので、続けて /review-book-to-skill を実行した。/book-to-skill で生成したスキルの品質をレビューし、改善提案・修正まで行う対のコマンドだ。
レビューの前に、呼び出し方も確認した。doc-communication は明示的なコマンド入力が不要で、「計画書を書いて」「構成を考えて」「提案資料を作って」のような依頼をしたときにdescriptionにマッチして自動発動する。確実に使わせたいときは「doc-communication スキルを使って」と一言添えればいい。
スキル構造の解説ドキュメントを非公開ブログに
午後には、生成したスキルの中身を自分が把握するための解説コンテンツを作ってもらった。保存先はmdx-playgroundのブログだが、unpublished: true を付けた非公開ドキュメントとして。
- 作成ファイル:
apps/web/content/2026-06/2026-06-10/doc-communication-skill-structure.md - 本番ビルドには出ず、devサーバーの
/blog/unpublished一覧からのみ閲覧できる - devサーバーで実際に一覧に表示されることまで確認してもらった
スキル本体はdotclaudeリポジトリ、構造の解説はmdx-playgroundの非公開ブログ、と置き場所を分けた形になる。
学び
- 「提案を読んだ」と「成果物ができた」は別物。 チャット上の構成案に納得した時点で、ディスクには何も存在していなかった。VS Codeのソース管理に何も並ばない画面を見て、ようやくそのズレに気づいた。ステータス確認はファイルの実在で行う
- 書籍スキル化は「章ごと分割」より「1スキル+references」。 発動判定はdescriptionで行われるので、入口を1つにまとめた方が呼び出しが安定する
- 生成と品質レビューをコマンドで対にしておくと迷わない。
/book-to-skill→/review-book-to-skillの流れが固定化されているので、生成しっぱなしで放置することがない - 52チャンク → 60ルールの抽出はサブエージェント並列で回る。 人間がやったのは方針の選択と「スキルにしといてくださいね」の一言で、抽出・検証・登録確認までは実行係に任せられた
関連
- 計画書:
memo/2026-06-10/doc-communication-skill-plan.md - 生成スキル:
~/.claude/skills/doc-communication/(dotclaudeリポジトリで追跡) - 構造解説(非公開):
apps/web/content/2026-06/2026-06-10/doc-communication-skill-structure.md