0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

そのスキル、どこにあるか言えますか?:Claude Codeのスキルを4系統まるごと棚卸しして、GitHub Pagesでカタログ化する

0
Last updated at Posted at 2026-07-11

🧭 本記事は Claude Code実務運用シリーズ の STEP 9「Skill化して再利用可能にする」です。
Skill を作って増やしてきた先に必ず来る「どこに何があるか分からない」問題を、Claude 自身に棚卸しさせて解決します。
シリーズ全体の地図と読む順は 親記事 にまとめています。

ChatGPT Image Jul 11, 2026, 11_58_28 AM.png

はじめに:スキルは増える。そして行方不明になる

このシリーズで Skill を作ったり、プラグインを入れたりしてきた結果、私の環境にはスキルがずいぶん増えました。

正確に何がどれだけあるのか、実は今回の棚卸しをするまで自分でも把握していませんでした。

自作したものは覚えています。でも、プラグインを入れるたびに付いてくるスキル、claude.ai 側で作って同期されるスキル、Claude Code 本体に組み込まれているスキル。これらが別々の場所に住んでいて、横断して一覧する組み込みコマンドがないのです。

結果、こうなります。

  • 「あのスキル、スラッシュでどう呼ぶんだっけ」を毎回スキルファイルを開いて確認する
  • 自然言語で依頼したら意図と違うスキルが起動する(似た description が複数あるため)
  • どのスキルがサブエージェントを何体起動するのか、実行するまで分からない

そこで Claude Code 自身に全スキルを棚卸しさせ、1枚の HTML カタログにして GitHub Pages に置きました。成果物はこちらです。
スキルカタログ:呼び出し方とエージェント構成

ChatGPT Image Jul 23, 2026, 03_09_29 PM.png

この記事では、(1) スキルが住んでいる4つの場所、(2) カタログの4列設計とエージェント構成の分類、の2点を実際の手順で書きます。

スキルが住んでいる4つの場所

まず前提知識です。Claude Code のセッションで使えるスキルは、少なくとも次の4系統から集まってきます。

系統 場所 誰のもの
① プロジェクト <repo>/.claude/skills/ そのリポジトリ専用
② グローバル ~/.claude/skills/ 自分の全プロジェクト共通
③ プラグイン ~/.claude/plugins/cache/<marketplace>/<plugin>/<ver>/skills/ インストールしたプラグイン由来
④ claude.ai 同期 ~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/…/skills/ claude.ai(デスクトップアプリ)で作った個人スキル

①②は既知の方が多いと思います。今回の発見は③④でした。

③のプラグインスキルは、マーケットプレイスごとにキャッシュディレクトリが分かれています。何がインストールされているかは ~/.claude/plugins/installed_plugins.json が正で、スキル実体は次で洗い出せます。

find ~/.claude/plugins/cache -maxdepth 6 -name SKILL.md

④は今回いちばん手こずった場所です。私の環境には anthropic-skills: という名前空間のスキル群(自作の Slack 文体変換など)が見えていたのですが、①〜③のどこにも実体がない。mdfind で探した結果、デスクトップアプリ(Cowork)のセッションデータ配下に同期されていました。

mdfind -name <スキル名>
# → ~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/<UUID>/<UUID>/skills/

④のパスは私の環境(macOS + Claude デスクトップアプリ)での観測結果です。ドキュメントに明記された仕様ではないため、アプリの更新で変わる可能性があります。「見つからないときは mdfind で実体を探す」を手順として覚えておくのが安全です。

各スキルの情報は SKILL.md の frontmatter に集約されています。4系統を横断して frontmatter だけ抜くワンライナーはこれです。

for d in .claude/skills/*/; do
  echo "=== ${d%/} ==="
  awk '/^---$/{c++; next} c==1{print} c==2{exit}' "$d/SKILL.md"
done

カタログの4列設計:「自然言語」と「エージェント構成」が本体

一覧表の列は最終的にこの4つに落ち着きました。

スキル / スラッシュ形式 / 自然言語での依頼例 / AIエージェントチーム構成

最初は「スキル名と使い方」の2列で作り始めたのですが、運用目線で見返すと足りませんでした。追加した2列にこそ理由があります。

「自然言語での依頼例」列が要る理由

スキルは /skill-name で明示起動するほかに、依頼文と description のマッチングで自動起動します。つまり description の書き方次第で「レビューして」の一言で起動したり、逆に狙っても起動しなかったりする。カタログに「この言い方なら起動する」の代表例を載せておくと、チームメンバーへの説明にもそのまま使えます。

frontmatter を読むと、自然言語起動まわりの制御がいくつか見つかります。

# 例1: 自然言語起動を意図的に封じる(明示的な /dev-loop でのみ起動)
name: dev-loop
disable-model-invocation: true

# 例2: 起動キーワードを description に書き込む
description: >
  ...「シリーズに編入して」「親記事を更新して」「シリーズを監査して」で起動。
  記事本文の執筆には使わない。

例1のような自律ループ系スキルは、「チケット対応して」程度の曖昧な依頼で走り出すと危険なので、自然言語起動を切っています。カタログにも「自然言語では起動しない」と明記する。この情報は frontmatter を読まないと分からないので、一覧化の価値が出るところです。

「AIエージェントチーム構成」列が要る理由

これが今回のカタログの独自部分です。スキルには、1体で完結するものと、内部で複数のサブエージェントを起動するものがあります。実行コストも実行時間もまるで違うのに、外からは同じ「スキル」に見える。

そこで各スキルの SKILL.md(と、参照している orchestrator 系ファイル)を Claude に読ませて、構成を分類させました。私の環境のスキルは、きれいに5類型に分かれました。

類型 構成 私の環境での実例
チーム型 複数サブエージェントを並列/直列起動 6体レビュー(Reviewer A〜F+Aggregator+Self-Critique の9役)、企画レビュー(専門家6+検証役)、自律開発ループ
単独+検証型 本体1体+独立の検証・校閲役 週次レポート(決定論チェック+別モデル点検の二重ゲート)、シリーズ編集(校閲サブエージェント必須)
ルーター型 自身は判定のみ、他スキルへ委譲 レビュー振り分け(/review-smart)
単独型 メインエージェント1体で完結 Crashlytics 分析系、ドキュメント生成系の大半
参照型 エージェントを起動しない共通手順・ガイド レビュー共通手順(review-shared)、デザインガイド

分類してみて分かったことが2つあります。

1つ目: チーム型は思ったより少ない。 分類してみると、真のチーム型は全体のごく一部でした。サブエージェントの多段構成は強力ですが、大半の業務は単独型で足りている。「とりあえずマルチエージェント」ではなく、レビュー・企画検討のような多視点が本質的に必要な工程だけがチーム型になっている、という自分の設計傾向が可視化されました。

2つ目: 「単独+検証型」という中間形態が意外と効いている。 フル並列チームは重いが、生成物をそのまま信用もできない。そこで「本体1体+検証役1体」の最小構成。週次レポートのスキルでは決定論スクリプト検証と別モデル点検の二重ゲートにしていて、これはチーム型より安く、単独型より事故りにくい妥協点です。

分類のやり方は単純で、SKILL.md 内の「Agent ツール」「サブエージェント」「並列」等の記述を grep → ヒットしたスキルだけ本文を精読、です。プラグイン製スキルは SKILL.md が読める場所にあるので同じ方法が使えます(一部は description からの推定になるため、カタログにはその旨を注記しています)。

作り方:Claude との対話ログ(実録)

カタログ生成は Claude Code に依頼しました。一発のプロンプトではなく、列を育てていく流れです。実際の依頼はこの5往復でした。

1. このプロジェクト内にあるスキルの一覧を表示して。なお、使い方も表示して
2. 使い方ですが、自然言語による使い方も一覧に乗せて
3. では、グローバルのスキルもお願いします
4. (プラグイン由来のスキルも)お願いします
5. これら全てを、「スキル、スラッシュ形式、自然言語での依頼例、
   AIエージェントチーム構成」で、一覧を作成することはできますか?

ポイントは2つです。

最初から完成形を注文しない。 1回目の出力(2列の表)を見て「自然言語列が欲しい」と気づき、3回目で「グローバルも」と範囲を広げ、5回目で列構成を確定しました。最初から4列×4系統を注文していたら、途中の「この列は要らない/これが足りない」の判断ができませんでした。

「エージェント構成」列は裏取りさせる。 5回目の依頼のとき、Claude は各スキルの SKILL.md・orchestrator ファイルを grep して構成を確認してから表を埋めました。description の要約だけで書かせると「複数の観点でレビュー」のような曖昧な記述になりがちなので、「実装を確認してから書いて」に相当する動きをしてくれるかは成果物の質を分けます。出てきた表の数字(9役、8役など)は、私も元ファイルを開いて数え直しました。

HTML 化は「一覧をカタログページにして」で終わりです。折り返しやダークモード対応などの細かい調整も対話で済ませました。

GitHub Pages に置く

ここは短く。リポジトリを作って HTML を置き、Settings → Pages でブランチを指定するだけです。カタログは自己完結の単一 HTML(CSS インライン、外部リソースなし)にしてあるので、index.html 1ファイルで済みます。

置き場所を GitHub Pages にした理由は3つあります。

  • URL が固定: チームに「ここ見て」と言える。チャットのやり取りに埋もれない
  • リポジトリ管理: カタログの更新履歴が git log で追える
  • ローカル HTML より共有しやすく、Qiita 記事より更新しやすい: 一覧表は生き物なので、記事本文に表を貼ると必ず腐ります。記事は手法を書き、表はリンクにする——本記事がその構成です

なお、業務環境のカタログには社内固有の名称(プロジェクト名・社内ツール名・チャンネル名など)が混ざりやすいので、公開リポジトリに置く場合は、push 前に固有名詞の grep 検査だけ挟むことをおすすめします。

陳腐化対策:再生成をスキル化する(設計案)

カタログの弱点は明白で、スキルを追加・削除した瞬間から古くなります。手作業の再生成は続かないので、カタログ生成そのものをスキルにするのが次の一手です。

---
name: skill-catalog-update
description: >
  スキルカタログ(GitHub Pages)を再生成する。プロジェクト/グローバル/
  プラグイン/claude.ai 同期の4系統を走査し、frontmatter とエージェント構成を
  抽出して index.html を更新する。「カタログを更新して」で起動。
---

## 手順
1. 4系統のパスを走査し、SKILL.md の frontmatter を抽出する
2. 前回カタログとの差分(追加/削除/description 変更)を一覧表示する
3. 新規スキルはエージェント構成を SKILL.md 本文から分類する
   (Agent/サブエージェント/並列 の記述を確認。推定の場合はその旨を注記)
4. index.html を再生成し、差分をユーザーに提示する
   (git commit / push は人間が実行する)

このスキルは現時点では設計案で、私はまだ運用していません。手順1〜2(走査と差分表示)は本記事のコマンドの組み合わせでそのまま動きますが、手順3の自動分類の精度は運用して検証が必要です。push まで自動化しない(人間が差分を見てから公開する)のは、シリーズで繰り返してきたガードレールの原則どおりです。

まとめ

  • Claude Code のスキルは4系統(プロジェクト/グローバル/プラグイン/claude.ai 同期)に散在し、横断一覧の組み込み手段がない。パスさえ知っていれば frontmatter の抽出は awk ワンライナーで足りる
  • カタログの価値は「スキル名一覧」ではなく、自然言語での起動例(description マッチングの可視化)とエージェント構成の分類(チーム型/単独+検証型/ルーター型/単独型/参照型)にある。分類してみると、チーム型は全体のごく一部だった
  • 一覧表は腐るので、記事に表を貼らず GitHub Pages に分離する。次の一手は再生成のスキル化

スキルを「作る」話はこのシリーズで繰り返してきましたが、資産は増えた瞬間から管理コストを生みます。棚卸しの仕組みまで含めて Skill 化——が、STEP 9 の締めくくりとして私が実感している運用です。


このシリーズの歩き方

Claude Code実務運用シリーズ ― 暴走させない、から仕組みにするまで。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?