Claude Code のスキルを共有する方法

Claude Code エンジニアリング 6分で読めます

スキルを1つ書き上げたあと、次に出てくる問題は「これをどうやって他の人にも使ってもらうか」です。Claude Code のスキルは配布のための特別な仕組みを持っておらず、どのディレクトリに置いたかがそのまま配布範囲になります。本稿では公式ドキュメント Extend Claude with skills をもとに、4つの置き場所と、同じ名前が重なったときの解決順、そして Cowork やクラウドセッションで個人スキルが読まれない理由を整理します。

スキルの置き場所が配布範囲を決める

公式ドキュメントは、スキルの保存先について「どこに保存するかが、誰がそれを使えるかを決める」と述べています。置き場所は次の4つです。

種別パス適用範囲
Enterprise(管理設定)管理設定ディレクトリの .claude/skills/組織の全ユーザー
Personal(個人)~/.claude/skills/<skill-name>/SKILL.md自分の全プロジェクト
Project(プロジェクト).claude/skills/<skill-name>/SKILL.mdそのプロジェクトのみ
Plugin(プラグイン)<plugin>/skills/<skill-name>/SKILL.mdプラグインを有効にした場所

公式ドキュメントの「Share skills」節は、配布先の相手に応じて次の3つを挙げています。

ここで押さえておきたいのは、~/.claude/skills/ は配布経路ではないということです。個人スキルは自分のマシンの全プロジェクトに効きますが、そのマシンの外へは出ません。「チームで使いたい」と思った時点で、プロジェクトかプラグインか管理設定のどれかに移す必要があります。

プロジェクトスキルとしてリポジトリに入れる

いちばん手数が少ないのがこれです。スキルのディレクトリをリポジトリの .claude/skills/ に置いて、そのままコミットします。

.claude/
  skills/
    deploy/
      SKILL.md

これで /deploy がそのリポジトリで使えるようになります。追加の設定もインストール手順も要りません。clone した人のセッションでそのまま読み込まれます。

読み込み範囲について、公式ドキュメントは2つの挙動を分けて説明しています。

この「入れ子は遅れて読み込まれる」性質は、モノレポでパッケージごとにスキルを配るときに効いてきます。パッケージ固有の手順をそのパッケージの中に置いておけば、そのパッケージを触っているときだけ候補に出る、という配り方ができます。

なお、スキルディレクトリの変更はセッション中に検知されます。~/.claude/skills/、プロジェクトの .claude/skills/--add-dir で追加したディレクトリ内の .claude/skills/ にスキルを追加・編集・削除すると、再起動なしでそのセッションに反映されます。ただしセッション開始時に存在しなかったトップレベルのスキルディレクトリを新規に作った場合は、Claude Code を再起動してください。監視対象に入っていないためです。

プラグインとして配る

複数のリポジトリへ同じスキルを配りたい、あるいはスキルだけでなくフックやサブエージェント、MCP サーバーも一緒に配りたい場合はプラグインにします。プラグインの中に skills/ ディレクトリを作り、その下にスキルを置きます。

<plugin>/
  skills/
    deploy/
      SKILL.md

プラグインスキルは plugin-name:skill-name という名前空間を持ちます。つまり my-plugin/skills/deploy/SKILL.md/my-plugin:deploy になり、プロジェクトの .claude/skills/ にある deploy共存できます。名前が衝突しない、というのがプラグイン配布の実務上の利点です。

削除の手順も置き場所ごとに違います。プラグインスキルを外すときは、そのスキルを提供しているプラグインを無効化またはアンインストールします。/plugin メニューから操作するか、次のコマンドを使います。

/plugin uninstall <plugin-name>@<marketplace-name>

プラグインのスキルが実際に外れるのは /reload-plugins を実行するか再起動したあとです。個人・プロジェクトのスキルがディレクトリを消した時点でセッションから消えるのとは、この点が異なります。

もう1つ、スキルのフォルダに .claude-plugin/plugin.json を置くと、そのフォルダが <name>@skills-dir という名前のプラグインとして読み込まれ、エージェント・フック・MCP サーバーを同梱できるようになります。プロジェクトの .claude/skills/ でこれを使う場合は、先にワークスペースの信頼ダイアログを承認する必要があります。

名前が衝突したときの解決順

同じ名前のスキルが複数の場所にあるとき、Claude Code は出所を見て解決します。公式ドキュメントが挙げている規則は次のとおりです。

入れ子のスキルだけは扱いが違い、名前が重なっても両方が残ります。プロジェクトのルートに deployapps/web/.claude/skills/ にも deploy がある場合、入れ子のほうは apps/web:deploy というディレクトリ修飾名で現れ、その説明文にはどのディレクトリに適用されるかが書かれます。/deploy と打てばルートのスキルが動き、入れ子のほうを明示的に呼ぶには /apps/web:deploy と打ちます。

ここには覚えておく価値のある挙動があります。修飾なしの名前で呼び出したときも、Claude Code はルートのスキルの内容にディレクトリ修飾された派生の一覧を付け足し、「Claude が作業しているファイルを含むディレクトリの派生も呼び出すように」という指示を添えます。つまり入れ子のスキルは、修飾なしで呼ばれた場合でもそのディレクトリの作業には効きます

なお、enterprise・personal・project の各置き場所で synced というフォルダ名は予約されています(大文字小文字を問いません)。CLAUDE_CODE_SYNC_SKILLS を設定した非対話実行で、claude.ai で有効にしたスキルがここへダウンロードされるためで、同じ名前で自分が書いたスキルは読み飛ばされます。

Cowork とクラウドセッションでの注意

配布を考えるうえで、いちばん見落としやすいのがここです。Cowork セッションとクラウドセッション(routines を含む)は、自分のマシンの ~/.claude/skills/ を読みません。

この2種類のセッションは、いずれもセッション開始時に claude.ai アカウントで有効にしたスキルを読み込みます。管理はデスクトップアプリのサイドバーの「Customize」か、claude.ai のスキル設定から行います。クラウドセッションはこれに加えて、clone したリポジトリの .claude/skills/ にコミットされたプロジェクトスキルも読み込みます。

したがって、スキルが自分のマシンの ~/.claude/skills/ にしか無い場合、routine がそれを呼び出すと「スキルが見つかりません」と報告されます。routine の実行は毎回まっさらなリモートセッションとして始まるためです。個人スキルをこれらのセッションでも使えるようにする方法は次のとおりです。

混同しやすい点として、デスクトップの定期タスク(scheduled tasks)はこれらとは別です。定期タスクは自分のマシン上でローカルに実行されるため、他のローカルセッションと同じ場所からスキルを読み込みます。「routine では動かないがデスクトップの定期タスクでは動く」という食い違いは、この差から生まれます。

まとめると、配布先を決める順序は単純です。自分だけなら個人、リポジトリの参加者に配るならプロジェクト、複数リポジトリや他の設定と一緒に配るならプラグイン、組織全体なら管理設定。そしてクラウド側でも動かすつもりがあるなら、個人スキルのままにしない——この一点を最初に決めておくと、あとで探し回らずに済みます。

本記事は Claude Code 公式ドキュメント「Extend Claude with skills」の記載内容にもとづく非公式の日本語解説です(確認日 2026-09-04)。仕様は更新されることがあるため、最新の内容は公式ドキュメントをご確認ください。