Claude Codeを使い始めると、CLAUDE.md、スラッシュコマンド、Skills(スキル)、サブエージェント等のカスタマイズの仕組みがたくさん出てきて、「結局どれを使えばいいの?」と迷いませんか?
とくにSkillsとサブエージェントは、どちらも「Claudeに何かを覚えさせて仕事をさせる機能」に見えるので混同しがちです。
この記事では、2つの機能の仕組みと違いを整理して、「どういうときにどちらを使えばいいのか」が判断できるようになることをゴールに解説します。私が実際の開発で使っている例も紹介するので、具体的なイメージがつかめるはずです。
先に結論だけ言うと、「毎回守ってほしいやり方・手順がある」ならSkills、「切り離して任せたい作業がある」ならサブエージェントです。なぜそう判断できるのか、仕組みから順番に見ていきましょう。
なお、本記事は2026年7月時点のClaude Code公式ドキュメントをもとにしています。Claude Codeはアップデートが速いので、細かい仕様は記事末尾の公式ドキュメントもあわせて確認してください。
もくじ
Claude CodeのSkills(スキル)とは
Skillsは、ひとことで言うとClaudeに渡す「手順書」です。
SKILL.mdというファイルにやり方やルールを書いておくと、Claudeが必要になったタイミングでその内容を読み込んで、指示に従って作業してくれます。
ポイントは、スキルの中身は必要になるまで読み込まれないことです。CLAUDE.mdは書いた内容が毎回すべて読み込まれるのに対して、スキルで毎回読み込まれるのは名前と短い説明文だけ。本文が読み込まれるのは、実際にそのスキルを使うときだけです。
そのため、長い手順書を何個ストックしても、コンテキスト(Claudeが一度の会話で扱える情報量)をほとんど消費しません。手順書を書き足すほどCLAUDE.mdが肥大化していく、という悩みを避けられる仕組みです。
スキルの呼び出し方は2通り
- 自動:依頼の内容がスキルの説明文(description)に合っていると、Claudeが自分で読み込む
- 手動:
/スキル名と入力して自分で呼び出す
スキルの置き場所と最小の例
スキルは1つのフォルダにSKILL.mdを入れた形で作ります。置き場所によって使える範囲が変わります。
| 置き場所 | 使える範囲 |
|---|---|
~/.claude/skills/スキル名/SKILL.md | 自分のPCのすべてのプロジェクト |
.claude/skills/スキル名/SKILL.md | そのプロジェクトだけ |
中身はこれだけで動きます。---で挟んだ部分(フロントマター)に説明文を書き、その下に指示を書くだけです。フォルダ名がそのまま/スキル名のコマンド名になります。
---description: コミット前のセルフチェックを行う。コミットやプッシュを頼まれたときに使う。---コミットする前に、次の順番でチェックしてください。- テストがすべて通っているか- デバッグ用のconsole.logが残っていないか- コミットメッセージが規約どおりか
なお、以前あった「カスタムスラッシュコマンド」(.claude/commands/)は、現在はSkillsに統合されています。昔のファイルもそのまま動きますが、これから作るならスキル形式がおすすめです。
Claude Codeのサブエージェントとは
サブエージェントは、ひとことで言うと仕事を任せられる「別の作業者」です。
メインの会話とは完全に別の作業スペース(コンテキスト)で動くのが最大の特徴です。サブエージェントは指示を受けると独立して調査や作業を進め、終わったら結果の要約だけをメインの会話に持ち帰ります。
「コンテキスト」とは、Claudeが会話中に覚えている内容のことです。大量のファイルを読むような調査をメインの会話でやると、読んだ内容が全部会話に残ってどんどん重くなります。サブエージェントに任せれば、その作業はメインの会話の外で行われるので、会話が重くならずに済みます。
サブエージェントの定義ファイル
サブエージェントは、フロントマター付きのMarkdownファイル1つで定義します。プロジェクト用は.claude/agents/、全プロジェクト共通なら~/.claude/agents/に置きます。
---name: reviewerdescription: コードを読んで改善点を提案する。コードレビューを頼まれたときに使う。tools: Read, Grep, Globmodel: sonnet---あなたはコードレビューの専門家です。問題点ごとに、何が問題か・現在のコード・改善したコードの3点をセットで示してください。
フロントマターで必須なのはnameとdescriptionの2つだけです。この例のようにtoolsで使えるツールを絞ったり(読み取り専用にするなど)、modelで安いモデルを指定してコストを抑えたりもできます。
呼び出し方は、Skillsと同じく2通りあります。依頼内容がdescriptionに合っていれば、Claudeが判断して自動でサブエージェントに作業を振ります。「reviewerエージェントを使ってレビューして」のように、名前を指定して頼むこともできます。
ちなみにClaude Codeには、コードベースの調査に特化したExploreなど、最初から組み込みのサブエージェントがいくつか入っています。自分で定義しなくても、実はすでにサブエージェントのお世話になっているかもしれません。
Skillsとサブエージェントの違いを比較
2つの機能の違いを表にまとめました。
| 項目 | Skills | サブエージェント |
|---|---|---|
| 役割のイメージ | 手順書・マニュアル | 別の作業者 |
| 作業する場所 | メインの会話の中 | 独立したコンテキスト |
| 会話の記憶 | 共有する(流れを引き継げる) | 共有しない(毎回まっさら) |
| 定義ファイル | SKILL.md(フォルダ単位・補助ファイル同梱可) | Markdownファイル1つ |
| 置き場所 | .claude/skills/など | .claude/agents/など |
| 呼び出し方 | 自動 or /スキル名 | 自動 or 名前を指定して依頼 |
| 結果の返り方 | 指示を読み込んでClaude自身が作業 | 作業後に要約だけ持ち帰る |
| 並列実行 | —(その場で適用される) | 複数を同時に走らせられる |
いちばん大事な違いは「作業する場所」です。
Skillsは手順書をClaudeが読むだけなので、今までの会話の流れを引き継いだまま作業できます。一方サブエージェントは仕事を任せる仕組みなので、メインの会話を汚さない代わりに、会話の流れは引き継がれません。この違いさえ押さえれば、使い分けはほぼ迷わなくなります。
どっちを使う?使い分けの判断基準
結論はシンプルで、「毎回守ってほしいやり方・手順がある」ならSkills、「切り離して任せたい作業がある」ならサブエージェントです。もう少し具体的に見てみましょう。
Skillsが向いているケース
- 毎回同じ手順・チェックリストに従わせたい(デプロイ手順、コミット前チェックなど)
- コーディング規約やドメイン知識を、必要なときだけ思い出させたい
- 今の会話の流れを引き継いだまま作業してほしい
サブエージェントが向いているケース
- 大量のファイル調査やログ解析で、メインの会話を汚したくない
- 先入観のない「新しい目」でレビュー・チェックさせたい
- 複数の調査を同時に走らせたい
- 使えるツールを制限したい(読み取り専用にするなど)
実例:私の開発での使い分け
私はエンジニアとして普段の開発でClaude Codeを使っていて、両方を実際に使い分けています。
たとえばプロジェクトのコーディング規約や、コミット前の確認手順のような「毎回守ってほしいルール・手順」は、Skills・CLAUDE.md側に持たせています。実装のたびに口頭で伝え直さなくても、同じ品質を保ってほしいからです。
一方、書き上がったコードのレビューは、先ほど例に挙げたreviewerのようなサブエージェントに任せています。ここでサブエージェントを選んだ理由がまさに「コンテキストの分離」です。コードを実装した本人(メインの会話)は、自分の書いたコードを「正しいはず」と思い込んでいるので、チェックが甘くなります。まっさらな別コンテキストのサブエージェントに読ませると、実装中の事情を知らない「初見のレビュアー」としてバグや考慮漏れを見つけてくれるわけです。
注意点もあります。サブエージェントは毎回まっさらな状態から始まるぶん、プロジェクトの把握をやり直すのでトークン消費が増えやすく、時間も少しかかります。何でもサブエージェントに任せればいいわけではなく、軽い作業はメインの会話+Skillsで済ませるほうが効率的です。
なお、2つは対立する機能ではなく併用できます。2026年7月時点では、スキルをサブエージェント内で実行させる設定(context: fork)や、サブエージェントにスキルをあらかじめ読み込ませる設定(skillsフィールド)も用意されています。まずは基本の使い分けに慣れてから試してみてください。
よくある質問
Q. スラッシュコマンド(カスタムコマンド)とSkillsは何が違う?
A. 現在は同じものに統合されています。以前は.claude/commands/に置くカスタムコマンドが別機能としてありましたが、Skillsにマージされました。古いコマンドファイルもそのまま動きます。Skillsのほうが補助ファイルを同梱できるなど機能が多いので、これから作る場合はスキル形式(SKILL.md)がおすすめです。
Q. CLAUDE.mdとSkillsはどう使い分ける?
A. CLAUDE.mdは毎回すべて読み込まれるのに対し、Skillsは必要なときだけ読み込まれます。プロジェクトの前提や短いルールはCLAUDE.mdに、長い手順書や特定の場面でしか使わない知識はSkillsに分けると、会話のムダな消費を抑えられます。公式ドキュメントでも、CLAUDE.mdの中身が「事実の説明」から「作業の手順」に変わってきたら、スキルに切り出すタイミングだとされています。イメージとしては、「このプロジェクトではReactを使う」のような事実はCLAUDE.md向きで、「リリースはこの手順で行う」のような作業手順はスキル向きです。
Q. サブエージェントを使うとトークン消費(料金)は増える?
A. 増えやすいです。独立したコンテキストで毎回ゼロからプロジェクトを把握し直すためです。ただし、大量の調査結果がメインの会話に残り続けるのを防げるので、長いセッションではかえって効率が良くなる場合もあります。「重い調査は任せる、軽い作業は任せない」くらいの感覚で使うのがおすすめです。
まとめ
Claude CodeのSkillsとサブエージェントの違いを整理しました。
- Skills=手順書。メインの会話に読み込まれ、Claude自身が指示に従って作業する
- サブエージェント=別の作業者。独立したコンテキストで作業し、要約だけ持ち帰る
- 迷ったら「毎回守ってほしいやり方・手順がある→Skills」「切り離して任せたい作業がある→サブエージェント」
どちらも数分で試せる機能なので、まずは小さな手順書スキルを1つ作ってみるのがおすすめです。細かい仕様は更新されることがあるので、最新の情報は以下の公式ドキュメントで確認してください。
ターミナルで使うClaude Codeとは別に、普段の調べ物にはデスクトップアプリ版のClaudeが便利です。インストール手順は以下の記事で解説しています。
-

【Windows】Claude Desktopのインストール方法と初期設定
WindowsでClaude Desktopをインストールする方法を画像付きでわかりやすく解説します。 Claude Desktopは通常どおりインストールできることもありますが、環境によっては開発者 ...


もみじ
現役フリーランスWebエンジニア。フロントエンド開発を中心に、Web制作、WordPress、業務効率化ツール開発、PHPを用いた機能改修に携わってきました。社内SEとして業務ツール開発や運用保守を担当した経験もあります。
実務や学習を通じて得た知見をもとに、初心者がつまずきやすいポイントや、現場で役立つ考え方をわかりやすく発信しています。
詳しいプロフィールはこちら