Claude Code を使っていて、「同じ指示を毎回打ち込んでいる」「決まった手順(デプロイ、レビュー、コミット)をまとめて呼び出せたら楽なのに」と思ったことはありませんか。
それを叶えるのが スキル機能(Skills) です。ざっくり言うと、SKILL.md というファイル1枚で“自分専用コマンド”を作れるしくみ。/コマンド名 と打つだけで、決めておいた手順を Claude に実行させられます。
しかも、CLAUDE.md のように毎回読み込まれるわけではなく、スキルは呼び出したときだけ読み込まれるので、コンテキスト(=コスト)のムダもありません。この記事では、スキルとは何か → 作り方 → 呼び出し方 → 似た機能(サブエージェント・MCP)との違いまで、公式仕様ベースで整理します。
結論:スキル=「SKILL.md 1枚で作る再利用できる手順」
先に要点を。
- スキルは
SKILL.md(指示を書いたMarkdown)で定義する、再利用できる機能。 - 呼び出し方は
/スキル名で手動、または Claude が説明文(description)を見て自動で実行。 - うれしいのは3点:①繰り返す手順を1回だけ定義 ②呼んだ時だけ読み込む=コンテキスト節約 ③複雑な手順(チェックリスト・デプロイ手順)を整理できる。
- 業界標準「Agent Skills」に準拠しており、考え方は他のAIツールとも共通。
つまり、「よくやる定型作業を、名前付きの手順として登録しておく」のがスキルです。
スキルとは?何がうれしいか(CLAUDE.mdとの違い)
スキルの位置づけは、CLAUDE.md と比べると分かりやすいです。
| CLAUDE.md | スキル(Skill) | |
|---|---|---|
| 役割 | 毎回読み込む背景知識(規約・ビルド手順) | 呼んだ時だけ動く手順 |
| 読み込み | セッション開始時に毎回 | 呼び出した時だけ |
| 向く中身 | 常に踏まえてほしい前提 | たまに使う複雑な操作フロー |
| コンテキスト効率 | 常時消費 | 必要なときだけ消費 |
ポイントは、「いつも必要な前提」はCLAUDE.mdに、「ときどき使う手順」はスキルに、という住み分け。毎回は要らないけれど決まった手順がある作業(例:リリース手順、特定形式のレビュー)は、スキルにするとコンテキストを節約しながら再利用できます。
CLAUDE.md や「自動メモリ」など、Claude Code の“記憶”の全体像は【Claude Codeのメモリ機能を理解する】にまとめています。スキルと合わせて押さえると、使いこなしの幅が広がります。
スキルの正体(ファイル構成とフロントマター)
スキルの実体は、フォルダ+SKILL.mdです。必要に応じて補助ファイルやスクリプトも置けます。
my-skill/
├── SKILL.md # メインの指示(必須)
├── reference.md # 補助資料(任意)
└── scripts/
└── helper.py # 実行スクリプト(任意)
SKILL.md は、YAMLフロントマター(設定)+Markdown本文(指示)という構造です。
---
name: commit
description: 変更をステージしてコミットする
disable-model-invocation: true
allowed-tools: Bash(git add *) Bash(git commit *)
---
現在の変更を、適切なメッセージでコミットしてください。
主なフロントマター項目はこちら。
| 項目 | 役割 |
|---|---|
name |
スキル名(省略時はフォルダ名) |
description |
スキルの説明。Claudeが自動実行するか判断する材料 |
disable-model-invocation |
true で手動専用(Claudeは自動実行しない) |
allowed-tools |
実行時に許可を省略してよいツール(例:Bash(git *)) |
context |
fork でサブエージェントとして隔離実行 |
agent |
使うサブエージェント種別(Explore・Plan など) |
description が肝です。ここを見て Claude が「この作業はこのスキルだ」と判断するので、いつ使ってほしいかが伝わる説明にしておきます。
スキルの置き場所
スキルは置き場所によって適用範囲が変わります。
| スコープ | 置き場所 | 適用範囲 |
|---|---|---|
| 個人用 | ~/.claude/skills/<スキル名>/SKILL.md |
自分の全プロジェクト |
| プロジェクト用 | .claude/skills/<スキル名>/SKILL.md |
そのプロジェクト(チーム共有可) |
| プラグイン | <プラグイン>/skills/<スキル名>/SKILL.md |
名前空間 プラグイン名:スキル名 |
| 組織 | 管理設定で配布 | 組織全体 |
同じ名前のスキルがある場合は、上位(個人・組織側)が下位(プロジェクト側)を上書きします。「自分用の便利スキルは ~/.claude/skills/、チーム共有はプロジェクトの .claude/skills/」と覚えておくと迷いません。
作り方・呼び出し方
作る
最小構成なら、フォルダを作って SKILL.md を置くだけです。
mkdir -p ~/.claude/skills/my-skill
あとは ~/.claude/skills/my-skill/SKILL.md に、フロントマターと手順を書きます(前述の例を参照)。
呼び出す
| パターン | 方法 |
|---|---|
| 手動 | /my-skill と入力 |
| 自動 | Claudeがdescriptionを見て自動実行(disable-model-invocation: trueなら無効) |
| 引数つき | /my-skill 引数1 引数2。スキル内で $ARGUMENTS や $1 で受け取る |
動的に情報を差し込む(前処理)
スキル内で次のように書くと、Claudeが動く前にコマンドを実行し、その結果を埋め込めます。
---
name: pr-summary
---
PRの差分:
!`gh pr diff`
上の差分を要約してください。
ポイントは、これはスキル読み込み前に実行される前処理で、Claude にはコマンドの結果が見えること。毎回手で貼り付けていた情報を、自動で渡せるようになります。
似た機能との違い(スキル / サブエージェント / MCP / スラッシュコマンド)
ここが混乱しやすいので整理します。
| 機能 | 実体 | 性格 | 主な用途 |
|---|---|---|---|
| スキル | SKILL.md(指示) |
セッション内で動く手順 | 定型作業の再利用・コマンド化 |
| サブエージェント | .claude/agents/ |
別コンテキストで動く専門役 | 重い調査・並列タスク |
| MCP | 外部プロセス | 外部ツール・データを接続 | 外部API・DB・サービス連携 |
| スラッシュコマンド | 組み込み or スキル | /で呼ぶ操作 |
/help・/compact・/スキル名 |
覚え方:
- スキル=手順を登録する(やることの台本)
- サブエージェント=別の作業者に任せる(調べ物を隔離して並列化。詳しくは【サブエージェント実践】)
- MCP=外部の道具をつなぐ(社内DBや外部サービス)
補足として、以前の .claude/commands/(カスタムコマンド)はスキルに統合されました。スラッシュコマンドとスキルは同じしくみで動き、スキル内から context: fork でサブエージェントとして走らせることもできます。つまりスキルは、他の機能をまとめる“入口”にもなります。
公式バンドルスキルとつまずきポイント
はじめから使えるスキル(バンドルスキル)
Claude Code には、最初から使えるスキルが同梱されています(一例)。
/code-review:コードレビューを実行/debug:デバッグ支援/run:アプリを起動して動作確認/verify:変更が正しく動くか確認/deep-research:深い調査(隔離エージェントで実行)
まずはこれらを使ってみると、スキルの感覚がつかめます。
つまずきやすいポイント
- スキルと CLAUDE.md の使い分け:常に必要な前提は CLAUDE.md、ときどき使う手順はスキル。
disable-model-invocationの挙動:trueだと手動専用。自動でも呼んでほしいなら書かない(またはfalse)。!で始まるコマンド記法は前処理:Claude が実行するのではなく、読み込み前に実行され、Claude には結果だけが渡る。- スキルが多いと説明文が切り詰められる:数が増えると
descriptionが短縮され、自動判定の精度が落ちることも。/doctorで状態を確認できる。 - 呼び出し後はコンテキストに残る:大きなスキルを多用すると、その内容がセッション内に積み上がる点には注意。
まとめ
- スキル=
SKILL.md1枚で作る、再利用できる手順/自分専用コマンド。 - 呼んだ時だけ読み込むので、CLAUDE.md よりコンテキスト効率がよい。常時前提はCLAUDE.md、定型手順はスキル。
- フロントマター(
name・description・disable-model-invocation・allowed-tools・context)で挙動を制御。descriptionが自動判定の鍵。 - 置き場所は個人
~/.claude/skills//プロジェクト.claude/skills/。同名は上位優先。 - 呼び出しは
/スキル名(手動)/自動/引数つき。!で始まる記法で情報を前処理として差し込める。 - サブエージェント(別作業者)・MCP(外部の道具)とは役割が別。スキルは手順の台本。
「同じ指示を毎回打っている」と感じたら、それをスキルにするサインです。まずは /code-review などのバンドルスキルから触ってみてください。
あわせて読みたい:
・Claude Codeのメモリ機能を理解する|CLAUDE.mdと自動メモリの違い(“記憶”の全体像)
・Claude Codeのサブエージェント実践|使い方・自作・使いどころ(別コンテキストで動く専門役)
・CLAUDE.mdの書き方・実例テンプレート(常時読み込む指示書)
・Claude Designを使ってみた|Claude Code連携(/design)・既存アプリを自動刷新(/designでデザイン↔実装)


コメント