Claude Codeには「スキル(Skills)」という、Claudeの振る舞いを再利用可能な形で拡張する仕組みがある。よく使う手順やチェックリスト、複数ステップの作業指示を毎回チャットへ貼り付ける代わりに、SKILL.mdというファイルを1つ用意しておけば、Claudeが関連する場面で自動的に読み込むか、スラッシュコマンドとして直接呼び出せるようになる。本記事はClaude Code公式ドキュメント「スキルでClaudeを拡張する」(2026年9月21日取得)の記述にもとづき、スキルの基本構造・保存場所・呼び出し方法・フロントマターの設定項目・注意点までを具体的に整理する。
Claude Codeのスキル(Skills)とは
【完全無料】AI×SNSで成果を出す100大特典を受け取る
AIの使い方を、SNS運用の実務につなげたい方へ。LINEで特典の案内を受け取れます。
Claude Codeのスキル(Skills)とは、SKILL.mdというファイルに指示を書くことでClaudeの機能を拡張する仕組みであり、Claudeが関連する場面で自動的に使用するか、スラッシュコマンドで直接呼び出せる。
公式ドキュメントは「同じプレイブック、チェックリスト、または複数ステップの手順をチャットに何度も貼り付けるときや、CLAUDE.mdのセクションが事実ではなく手順に成長したときにスキルを作成する」と案内している(code.claude.com/docs/ja/skills、2026年9月21日取得)。つまりスキルは、一度きりの指示ではなく、繰り返し使う「手順」を切り出して保存しておくための機能である。Claude Codeの基本的な使い方を一通り覚えたあとに導入すると、日々の定型作業を大きく減らせる。
スキルはClaudeの標準機能であるMCPとは役割が異なる。MCPが外部ツールやサービスへの接続口を提供する仕組みであるのに対し、スキルは「その接続口をどう使うか」「どんな手順で進めるか」といった振る舞いのガイドをClaudeに与える仕組みである。両者は排他的ではなく、MCPで取得したデータをスキルの手順に沿って処理する、といった組み合わせ方もできる。
スキルとCLAUDE.mdの違い
スキルとCLAUDE.mdの違いは読み込まれるタイミングにあり、CLAUDE.mdはセッション開始時に常に読み込まれるのに対し、スキルは呼び出されたときにだけ本文が読み込まれる。
公式ドキュメントは「CLAUDE.mdコンテンツとは異なり、スキルの本体は使用されるときにのみ読み込まれるため、長いリファレンス資料は必要になるまでほぼコストがかからない」と説明している(code.claude.com/docs/ja/skills、2026年9月21日取得)。CLAUDE.mdの書き方で解説したとおり、CLAUDE.mdは配置場所ごとに読み込み順が決まる永続的な指示ファイルであり、プロジェクトの前提や規約のように毎回参照してほしい情報に向く。一方でスキルは、特定の作業のときだけ必要になる詳しい手順書や大きなリファレンス資料を置くのに向く。両者とカスタムコマンドの3つを並べると、次のように整理できる。
| 項目 | スキル(Skills) | CLAUDE.md | カスタムコマンド |
|---|---|---|---|
| 読み込まれるタイミング | 呼び出されたときだけ本文を読み込む | セッション開始時に常に読み込む | 呼び出されたときだけ本文を読み込む |
| 主な用途 | 繰り返し使う手順・チェックリスト・大きなリファレンス | プロジェクトの前提・規約・常に知っておいてほしい事実 | 副作用のある単発アクション |
| 呼び出し方法 | 自動読み込みまたは/スキル名 | 常時適用(呼び出し不要) | /コマンド名 |
公式ドキュメントは「カスタムコマンドはスキルにマージされました」とも明記しており、.claude/commands/deploy.mdのファイルと.claude/skills/deploy/SKILL.mdのスキルは、どちらも同じ/deployコマンドを作り、同じように機能する。既存の.claude/commands/のファイルはそのまま動き続けるため、今すぐ移行する必要はない。
スキルの保存場所は4種類ある
スキルの保存場所は4種類あり、保存する場所によってそのスキルを誰が使えるかが決まる。
公式ドキュメントが示す保存場所の一覧は次のとおり(code.claude.com/docs/ja/skills、2026年9月21日取得)。
| 場所 | パス | 適用対象 |
|---|---|---|
| Personal(個人用) | ~/.claude/skills/<skill-name>/SKILL.md |
そのマシン上のすべてのプロジェクト |
| Project(プロジェクト用) | .claude/skills/<skill-name>/SKILL.md |
そのリポジトリのセッションのみ |
| Enterprise | 管理設定ディレクトリ内 | 組織内のすべてのユーザー |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md |
プラグインが有効な場所(/プラグイン名:スキル名) |
同じ名前のスキルが複数のレベルに存在する場合は、Enterpriseがpersonalより優先され、personalがプロジェクトより優先される。任意のレベルのスキルは、同名のバンドルされたスキルより優先される。プラグインのスキルはプラグイン名:スキル名という名前空間を使うため、他のレベルと衝突しない。作業ディレクトリの下にネストされた.claude/skills/ディレクトリを置くこともでき、モノレポのパッケージごとに専用のスキルを持たせられる。スキルのエントリはディスク上の別の場所へのシンボリックリンクにもできる。
SKILL.mdの書き方|YAMLフロントマターと本文の2部構成
SKILL.mdの書き方は2部構成であり、Claudeにいつ使うかを伝えるYAMLフロントマターと、スキル実行時にClaudeが従う本文のマークダウンコンテンツからなる。
公式のチュートリアルでは、コミットされていない変更を要約するスキルを例に、次の手順を示している(code.claude.com/docs/ja/skills、2026年9月21日取得)。まず個人用スキルフォルダに~/.claude/skills/summarize-changesのようなディレクトリを作る。次にそのディレクトリへSKILL.mdを保存する。ディレクトリ名がそのままコマンド名になり、フロントマターのdescriptionはClaudeが自動的にこのスキルを読み込むかどうかを判断する材料になる。本文には、実行時にClaudeへ渡したい具体的な指示を書く。ここで良いdescriptionを書くコツは、通常のプロンプトを書くときの考え方と近く、プロンプトのコツで解説した「目的語と条件を具体的にする」姿勢がそのまま活きる。
本文の冒頭では現在の差分を動的に取り込む書き方も紹介されている。!`git diff HEAD`のような行を書いておくと、スキルの内容がClaudeへ渡される前にコマンドが実行され、その出力が行を置き換える。これにより指示は、開いているファイルからの推測ではなく、実際の作業ツリーの内容にもとづいたものになる。
スキルの呼び出し方|自動読み込みと/コマンドの直接呼び出し
スキルの呼び出し方には、Claudeが関連する会話から自動で読み込む方法と、ユーザーが/スキル名で直接呼び出す方法の2種類がある。
公式ドキュメントによると、ユーザーはターミナルで/skill-nameと入力することで直接呼び出せる。自動呼び出しでは、disable-model-invocation: trueが設定されていない限り、Claudeがdescriptionフィールドの内容にもとづいて関連するスキルを自動的に読み込む(code.claude.com/docs/ja/skills、2026年9月21日取得)。複数のスキルを1度のメッセージで重ねて呼び出すこともでき、例えば/write-tests /fix-issue 123のように入力すると、両方のスキルが読み込まれ、末尾のテキスト123が引数として各スキルへ渡される。Claude Codeは最初のスキルと、その後に重ねられる最大5つまでのスキルを展開する。
スキルが一度読み込まれると、そのレンダリングされた内容は会話に1つのメッセージとして入り、セッションの残りの間そこに留まる。Claude Codeは後のターンでスキルファイルを再度読み込まないため、タスク全体を通じて適用してほしいガイダンスは、1回限りの手順ではなく、常時有効な指示として書いておく必要がある。
name・descriptionの文字数制限と命名ルール
name・descriptionの文字数制限は、Claude製品全体で使われるAgent Skillsという公開仕様と、Claude Codeのスキル一覧表示という2つの層で別々に定義されている。
Claude製品全体で使われるAgent Skillsの仕様では、nameは最大64文字で、小文字・数字・ハイフンのみを使用でき、XMLタグを含められず、「anthropic」「claude」という予約語も使えない。descriptionは空欄にできず、最大1024文字で、こちらもXMLタグを含められない(platform.claude.com/docs/en/agents-and-tools/agent-skills/overview、2026年9月21日取得)。
これとは別に、Claude Code側のスキル一覧表示では、コンテキスト使用量を抑えるため、descriptionとwhen_to_useを合わせたテキストが1,536文字で切り詰められる、とClaude Code公式ドキュメントは案内している(code.claude.com/docs/ja/skills、2026年9月21日取得)。この上限は個々のフィールドの最大文字数ではなく、一覧表示に載せられる分量の上限である点に注意したい。descriptionを書くときは、主要な使いどころを文の前半に置いておくと、文字数が切り詰められても要点が残りやすい。
フロントマターの主なオプションフィールド
フロントマターの主なオプションフィールドには、呼び出し方を制御するものとスキルの動作環境を制御するものがあり、すべて省略可能でdescriptionだけが推奨されている。
Claude Code公式ドキュメントが挙げるフィールドの一部は次のとおり(code.claude.com/docs/ja/skills、2026年9月21日取得)。
| フィールド | 必須 | 説明 |
|---|---|---|
| name | いいえ | スキル一覧に表示される表示名。省略時はディレクトリ名 |
| description | 推奨 | スキルが何をし、いつ使うか。Claudeが自動判断に使う唯一の推奨フィールド |
| disable-model-invocation | いいえ | trueにするとClaudeによる自動読み込みを防ぎ、手動の/name呼び出しのみになる |
| user-invocable | いいえ | falseにすると/メニューから隠れ、Claudeだけが呼び出せる背景知識になる |
| allowed-tools | いいえ | このスキルが有効な間、許可を求めずに使えるツール |
| context | いいえ | forkにすると、フォークされたサブエージェントのコンテキストで実行する |
| agent | いいえ | context: forkのときに使うサブエージェントの種類 |
| hooks | いいえ | そのスキルのライフサイクルだけに適用されるフック |
hooksフィールドを使うと、スキルの実行に合わせて独自のイベント処理を差し込める。フック自体の詳しい書き方はClaude Codeのフック(hooks)の使い方で解説しているので、スキルと組み合わせたい場合はあわせて参照してほしい。
allowed-toolsでツール権限を事前承認する
allowed-toolsでツール権限を事前承認すると、そのスキルが有効な間だけ、指定したツールをClaudeが承認を求めずに使えるようになる。
公式ドキュメントは、この設定が利用可能なツールそのものを制限するわけではないと明記している。リストにないツールについては、通常どおり権限設定が承認の可否を管理し続ける(code.claude.com/docs/ja/skills、2026年9月21日取得)。例えば、変更をステージしてコミットするスキルにallowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *)と設定しておけば、そのスキルを呼び出すたびにgitコマンドの実行許可を求められることがなくなる。逆に、特定のツールの使用をブロックしたい場合は、権限設定側に拒否ルールを追加する。プロジェクトの.claude/skills/にチェックインされたスキルでは、この設定はそのフォルダのワークスペーストラストダイアログを受け入れたあとに有効になる。
context: forkでスキルをサブエージェントとして実行する
context: forkでスキルをサブエージェントとして実行すると、スキルの内容がサブエージェントを動かすプロンプトになり、会話履歴にはアクセスできなくなる。
公式ドキュメントは、この設定が明示的な指示を含むスキルにだけ意味があると注意している。タスクを与えず「これらのAPI規約を使用する」のようなガイドラインだけを書いたスキルにcontext: forkを付けても、サブエージェントは実行可能なプロンプトを持たないまま返ってきてしまう(code.claude.com/docs/ja/skills、2026年9月21日取得)。agentフィールドでは、組み込みのExplore・Plan・general-purposeのほか、.claude/agents/に定義したカスタムサブエージェントを指定できる。サブエージェントの使い方で解説したとおり、ExploreやPlanのような組み込みエージェントはCLAUDE.mdとgit statusの読み込みを省略してコンテキストを小さく保つため、context: forkとagent: Exploreを組み合わせた調査用スキルは、SKILL.mdの内容とエージェント自体のシステムプロンプトだけを見て動く、軽量な調査タスクに向く。
カスタムコマンド(.claude/commands/)との統合
カスタムコマンド(.claude/commands/)との統合により、既存の.claude/commands/配下のファイルはそのまま動作し続け、同じ名前のスキルがあればスキル側が優先される。
公式ドキュメントの説明では、.claude/commands/にあるファイルは引き続き同じフロントマターをサポートしながら機能する。スキルはサポートファイルなどの追加機能に対応しているため、公式ドキュメントは新規に作る場合はスキル形式を推奨している(code.claude.com/docs/ja/skills、2026年9月21日取得)。すでにカスタムコマンドを運用しているチームは、無理に一括移行する必要はなく、サポートファイルや呼び出し制御フィールドが必要になったコマンドから、スキル形式へ書き直していく進め方が現実的である。
バンドルされたスキル|doctor・code-review・run・verifyなど
バンドルされたスキルとは、disableBundledSkills設定で無効にしない限りすべてのセッションで利用できる、Claude Code内蔵のスキル群である。
公式ドキュメントが挙げる例には/doctor、/code-review、/batch、/debug、/loop、/claude-apiが含まれる。固定ロジックを直接実行する組み込みコマンドとは異なり、バンドルされたスキルはプロンプトベースで、Claudeに詳細な指示を与えてツールの使用を調整させる(code.claude.com/docs/ja/skills、2026年9月21日取得)。/doctorのセットアップチェックアップだけは例外で、disableBundledSkillsがオンの場合でも入力可能なままになっている。
さらに3つのバンドルされたスキルが連携して、アプリを起動し、テストや型チェックだけでなく、実際に動いているアプリに対して変更を確認する。/runはアプリを起動して変更が機能していることを確認し、/verifyはアプリをビルドして実行し、コード変更が期待どおりに動くかをテストや型チェックへフォールバックせずに確認する。/run-skill-generatorは、クリーンな環境からアプリを実行してインストールコマンドや環境変数などの手順を記録し、プロジェクトごとのスキルとしてコミットする役割を持つ。
スキルの共有方法|プロジェクト・プラグイン・管理者配布
スキルの共有方法には、オーディエンスに応じてプロジェクトスキル・プラグイン・管理者配布という3つのスコープがある。
公式ドキュメントは、プロジェクトスキルは.claude/skills/をバージョン管理へコミットすること、プラグインとして配布したい場合はプラグインにskills/ディレクトリを作ること、組織全体へ配布したい場合は管理設定を通じて展開することを挙げている(code.claude.com/docs/ja/skills、2026年9月21日取得)。作ったスキルが意図どおりに動いているかを確かめるには、Claude Codeが提供するskill-creatorプラグインでの評価が案内されている。このプラグインは、現実的なプロンプトをテストケースとして保存し、スキルを有効にした場合と無効にした場合の結果を比較するベンチマークを自動で実行できる。Claude活用の使い方で紹介しているようなチーム運用の一部として、スキルの作成とあわせて定期的な見直しを組み込んでおくと運用が安定しやすい。
なお、claude.aiでカスタムスキルをアップロードするには、コード実行が有効なPro・Max・Team・Enterpriseプランが必要になる(platform.claude.com/docs/en/agents-and-tools/agent-skills/overview、2026年9月21日取得)。契約プランの違いはClaude料金プランの比較で確認できる。一方でClaude Codeのカスタムスキルはファイルシステムベースであり、APIへのアップロードを必要としない。claude.ai・Claude API・Claude Codeのあいだでカスタムスキルは自動的に同期されないため、複数の面で同じスキルを使いたい場合は、それぞれの環境で個別に用意する必要がある。
よくある質問(FAQ)
- Q1. スキルとCLAUDE.mdはどちらを使えばよいか
- プロジェクトの前提や規約のように、毎回のセッションで常に知っておいてほしい情報はCLAUDE.mdへ書く。特定の作業のときだけ必要になる手順書や、チェックリストのように繰り返し使う指示はスキルへ切り出すと、CLAUDE.mdが肥大化しにくくなる。
- Q2. スキルはどのファイル形式で書くか
- YAMLフロントマターとマークダウン本文からなるSKILL.mdという1つのファイルで書く。フロントマターにはdescriptionなどの設定を、本文にはClaudeへ実行してほしい具体的な指示を書く。
- Q3. スキルの保存場所によって何が変わるか
- 保存場所によって、そのスキルを使えるユーザーの範囲が変わる。個人用はそのマシン上のすべてのプロジェクトで、プロジェクト用はそのリポジトリのセッションだけで、エンタープライズは組織内の全ユーザーで、プラグインはそのプラグインが有効な場所で使える。
- Q4. スキルにツールの実行権限を与えるにはどうすればよいか
- フロントマターのallowed-toolsフィールドに、許可を求めずに使わせたいツールを指定する。このフィールドはそのスキルが有効な間だけ有効になり、リストにないツールへの承認判断は通常どおりの権限設定が管理する。
- Q5. スキルが呼び出されないときはどうすればよいか
- descriptionにユーザーが自然に使う言葉が含まれているか、スキル一覧にそのスキルが表示されているかを確認する。フロントマターのYAMLが不正な形式だと、本文は空のメタデータで読み込まれ、descriptionが一致しないためClaudeが自動的に選ばなくなることがある。
- Q6. スキルとカスタムコマンドは両方使えるか
- 使える。.claude/commands/のファイルは引き続き動作し、同じ名前のスキルとカスタムコマンドが存在する場合はスキルが優先される。新規に作る場合、公式ドキュメントはサポートファイルなどに対応したスキル形式を勧めている。
まとめ
Claude Codeのスキルは、SKILL.mdという1つのファイルに手順やチェックリストをまとめておくことで、Claudeが関連する場面で自動的に、または/コマンドで直接、その内容を使えるようにする仕組みである。CLAUDE.mdが常に読み込まれる前提知識であるのに対し、スキルは必要になったときだけ本文が読み込まれるため、大きなリファレンス資料を置いてもふだんのコンテキスト消費を抑えられる。保存場所は個人・プロジェクト・エンタープライズ・プラグインの4種類があり、どこに置くかでそのスキルを使えるユーザーの範囲が決まる。allowed-toolsでツール権限を事前承認したり、context: forkでサブエージェントとして切り出して実行したりと、フロントマターの設定次第で呼び出し方や実行環境を細かく調整できる。まずはClaude Codeの基本的な使い方で全体の流れをつかんだうえで、日々繰り返している作業を1つ、スキルとして切り出すところから試してみるとよい。
あわせて読みたい・姉妹メディア
