DXを推進するAIポータルメディア「AIsmiley」| AI製品・サービスの比較・検索サイト
03-6452-4750 10:00〜18:00 年末年始除く

Claude Code Skillsとは?使い方・作り方・活用例を徹底解説

最終更新日:2026/06/05

Claude Codeの「Skills」機能を使えば、毎回チャットに同じ手順を貼り付ける作業をなくし、コードレビューやデバッグといった定型タスクをワンコマンドで再現できます。

この記事では、SkillsがCLAUDE.mdやサブエージェントとどう違うのか、バンドルされたスキルの種類、ファイルの配置ルールまでを順番に解説します。

「Claude Codeを使い始めたばかり」「毎回同じ指示を打ち込んでいる」という方が、すぐに使えるようになることを目的にまとめています。

Claude Code Skillsとは?他機能との違い

Claude Code Skillsとは、「SKILL.mdというファイルに手順や指示を書いておき、必要なときだけClaudeに読み込ませて機能を拡張する仕組み」です。

たとえば、コードレビューのチェック項目を毎回チャットに貼り付けている場合、その内容をSKILL.mdに一度書いておけば、次回からはコマンド一つで同じレビュー手順をClaudeに実行させられます。

指示をスキルとして登録しておくイメージです。SkillsはSKILL.mdを含むフォルダ単位で管理します。

Claudeはdescription(説明文)を見て「このスキルを使うべきか」を判断し、使うと決めたときだけSKILL.mdの本文を読み込みます。

そのため、スキルをたくさん登録しても、使わないスキルはコンテキストを消費しません。Claude Codeには似た仕組みが複数あるため、整理して理解することが重要です。

機能名 管理単位 読み込みタイミング コンテキストの独立性 最も適した場面 選ぶ判断基準
Skills スキルフォルダ(SKILL.md+サポートファイル) descriptionに一致したときのみ本文を読み込み(段階的) メイン会話と共有 コードレビュー・テスト生成など、特定タスクで繰り返し使う専門手順を登録したいとき 「同じ手順を何度も貼り付けている」と感じたら
CLAUDE.md プロジェクト単位のマークダウンファイル セッション開始時に常時読み込み メイン会話と共有 コーディング規約・禁止事項など、プロジェクト全体を通じて常に守らせたいルールを定義するとき 「すべての作業に常に適用すべきルール」ならCLAUDE.md
サブエージェント .claude/agents/配下の設定ファイル 明示的に委任されたとき 独立した別コンテキストで実行 長時間の調査・並列処理など、メイン会話から切り離して独立実行させたいタスクを委任するとき 「メインの会話履歴を汚さずに別タスクを実行させたい」とき
コマンド(Commands) .claude/commands/配下のMarkdownファイル /コマンド名で手動呼び出したときのみ メイン会話と共有 デプロイ・コミットなど、ユーザーが任意のタイミングで明示的にトリガーする定型プロンプトを登録するとき 「Claudeに自動判断させず、自分が呼ぶタイミングを完全に制御したい」とき
MCP 外部サーバー・関数(ツール)単位 ツール定義を常時コンテキストに保持 メイン会話と共有 GitHub・Slack・データベースなど、外部サービスのデータ取得・送信・操作を行うとき 「外部サービスに接続してデータを取得・操作したい」とき

Skillsが解決する3つの課題

Skillsが解決する課題は大きく3つあります。

  • 同じ手順を毎回貼り付ける手間:前述のように、指示の内容をスキルに登録すれば、呼び出すだけで同じ手順が再現されます
  • CLAUDE.mdの肥大化:CLAUDE.mdはセッション開始ごとに読み込まれるため、あるタスク専用の手順まで書き込むとファイルが膨れ上がり、管理が難しくなります。SkillsはCLAUDE.mdから専門手順を切り出す場所として機能します
  • コンテキストのコスト増:Skillsはdescriptionに一致したときだけ本文を読み込む「プログレッシブ・ディスクロージャー(段階的開示)」の設計になっており、スキルをいくつ登録しても、起動時点では説明文しかコンテキストを占有しません

バンドルされたSkillsの種類と用途

Claude Codeにはインストール直後から使えるバンドルスキルが用意されています。

これらはコード(固定ロジック)ではなく、プロンプトで動くスキルです。そのため、内容を参照したり自分のプロジェクト向けにカスタマイズしたりすることもできます。

▼ コードレビュー・品質改善

スキル名 呼び出し方 主な動作 使うタイミング セットアップ要否
/code-review /code-review または引数で対象範囲を指定 low/medium/high/xhigh/maxの5段階の努力レベルを選択してコードレビューを実施する PRのマージ前・実装後のセルフレビュー時 不要

▼ 並列・反復処理

スキル名 呼び出し方 主な動作 使うタイミング セットアップ要否
/batch /batch <変更内容の説明> 5〜30個のworktreeを並列起動し、コードベース全体に同一の変更を一括適用する APIエラーレスポンスの統一・全サービスへのキャンセルトークン追加など、単一ファイルでは完結しないコードベース横断の大規模リファクタリング時 不要(git worktree環境を推奨)
/loop /loop [インターバル] 指定した間隔でプロンプトまたは別のSkillを繰り返し実行する 長時間実行のテストスイートのポーリング・CIの監視など、定期的に同じ処理を走らせたいとき 不要

▼ デバッグ・トラブルシューティング

スキル名 呼び出し方 主な動作 使うタイミング セットアップ要否
/debug /debug [説明] デバッグログを読み込み、現在のClaudeセッションの不具合を診断する ツールのタイムアウト・コンテキストの予期しない縮小・権限が機能しないなど、Claudeの動作自体がおかしいと感じたとき 不要

▼ アプリ起動・動作確認(3スキルが連携)

スキル名 呼び出し方 主な動作 使うタイミング セットアップ要否
/run /run プロジェクトタイプ(CLI・サーバー・TUI・ブラウザ駆動)とREADME/package.json/Makefileの内容からアプリの起動方法を推測して実行し、変更が動作していることを確認する コード変更後にアプリが正常に起動・動作するか確認したいとき 不要(複雑な環境は/run-skill-generator推奨)
/verify /verify アプリをビルドして実行し、コード変更が期待通りに動作するかを実際の動作で確認する(テストや型チェックへのフォールバックはしない) テストが通っても実際の動作を直接確認したいとき 不要(複雑な環境は/run-skill-generator推奨)
/run-skill-generator /run-skill-generator クリーンな環境でアプリを実際に起動し、成功した手順(インストールコマンド・環境変数・起動スクリプト)を.claude/skills/run-<name>/にプロジェクト固有のSkillとして記録する DB・envファイル・マルチステップビルドなど複雑な起動手順が必要で、/runや/verifyの推測が不安定なプロジェクトを初回セットアップするとき 不要(プロジェクトごとに1回実行)

▼ Anthropic APIリファレンス

スキル名 呼び出し方 主な動作 使うタイミング セットアップ要否
/claude-api /claude-api または /claude-api <サブコマンドや説明> Anthropic SDKをインポートしているプロジェクトの言語(Python・TypeScript・Goなど8言語)を自動検出し、Messages APIやManaged AgentsのSDKリファレンスをコンテキストに読み込む Anthropic APIを使ったアプリ開発・プロンプトキャッシュやバッチAPIの実装・モデル移行時 不要(Anthropic SDKをimportしていない汎用コードでは自動起動しない)

バンドルスキルは、Claude Code内に固定ロジックとして埋め込まれた「組み込みコマンド」とは性質が異なります。プロンプトで動いているため、内容をテキストとして確認でき、自分のプロジェクトに合わせて変更できます。

Claude Code Skillsの配置場所とディレクトリ構成

Skillsはどのフォルダに置くかによって「どのプロジェクトで使えるか」が決まります。

スコープ パス 適用対象
Enterprise(組織全体) 管理者が設定するポリシー経由 Enterprise配下の全ユーザー
Personal(個人・全プロジェクト共通) ~/.claude/skills/ 自分のすべてのプロジェクト
Project(プロジェクト用) .claude/skills/(リポジトリ内) そのプロジェクトのみ(チーム共有可)
Plugin(プラグイン用) プラグインの名前空間内 プラグインをインストールしたすべての環境

スキルフォルダの中には、必須のSKILL.mdを置き、必要に応じてオプションのファイルを追加します。

ディレクトリ構成

skill-name/
├── SKILL.md           # 必須。スキルの説明・手順・目的を記述
├── template.md        # オプション。Claudeが出力に使うテンプレート
├── examples/          # オプション。入力例・出力例をまとめるフォルダ
└── scripts/           # オプション。Claudeが実行するシェルスクリプト

SKILL.mdだけで動くシンプルなスキルから、スクリプトや参考ドキュメントを組み合わせた複雑なスキルまで、用途に応じて構成を選べます。

個人用・プロジェクト用・プラグイン用の使い分け

個人用スキル(~/.claude/skills/)は自分のすべてのプロジェクトで使えるスキルを置く場所です。「どのリポジトリでもPRサマリーを同じ書式で出してほしい」といった、チームに依存しない個人の作業ルールを登録するのに向いています。

プロジェクト用スキル(.claude/skills/)はリポジトリの中に置くため、Gitで管理してチームと共有できます。「このプロジェクト固有のデプロイ手順をチーム全員に使わせたい」という場面で活用されます。

プラグイン用スキルはプラグインの名前空間の中で独立しており、他のスキルと名前が衝突しません。スコープが重複した場合の優先順位は Enterprise > Personal > Project の順です。プラグインは名前空間で独立しているため、この優先順位には含まれません。

モノレポ・サブディレクトリへの自動適用の仕組み

プロジェクトスキルは、作業しているサブディレクトリの直下にある .claude/skills/ を自動で参照します。

たとえば packages/frontend/ 内のファイルを編集している場合、リポジトリルートの .claude/skills/ に加えて、packages/frontend/.claude/skills/ も自動で参照します。

この仕組みにより、モノレポの特定パッケージ専用のスキルと、リポジトリ全体共通のスキルを階層ごとに使い分けられます。

なお、セッション中にSKILL.mdを編集・削除した変更は再起動不要で即座に反映されます。ただし、セッション開始時に存在しなかった最上位のスキルディレクトリを新規に作成した場合は、Claude Codeの再起動が必要です。

SKILL.mdの書き方と設定項目

SKILL.mdは2つのパートで構成されています。ファイルの先頭にある「YAMLフロントマター」(—で囲まれたブロック)と、その下に続く「マークダウン本文」です。

フロントマターにはスキルの名前や呼び出し条件などの設定を書き、本文にはClaudeに実行させたい手順や指示を書きます。

フロントマターは「このスキルをいつ誰が呼び出すか」を制御する設定ファイル、マークダウン本文は「呼び出されたときにClaudeに何をさせるか」を記述する指示書と理解すると整理しやすいです。

また、SKILL.mdは500行以下に保つことが推奨されています。

それを超える場合は、詳細なリファレンス資料や使用例をreference.mdやexamples.mdといったサポートファイルに切り出し、SKILL.mdからリンクで参照する構成にします。本文が長くなるほど、スキルが呼び出されるたびにコンテキストを消費するためです。

フロントマターの全フィールド一覧と用途

フロントマターで使えるフィールドは用途ごとに分類できます。

▼ 識別・説明

フィールド名 必須/任意 説明 設定例
name 任意 スラッシュコマンド名と/メニューの表示名を指定する。省略するとディレクトリ名がそのまま使われる。小文字・数字・ハイフンのみ使用可、最大64文字 name: security-review
description 強く推奨 Claudeがスキルを自動呼び出しするかどうかの判断基準になる最重要フィールド。「何をするスキルか」と「どんな言葉が届いたときに使うか」を冒頭に書く。when_to_useと合算で1,536文字が上限 description: Pythonコードのセキュリティレビューを実施する。OWASP Top 10に基づく脆弱性チェック時に使用。
when_to_use 任意 descriptionを補足するトリガーフレーズや使用例を追記する専用フィールド。descriptionが長くなる場合に分離して書ける。1,536文字の上限はdescriptionと合算でカウントされる when_to_use: セキュリティチェック、脆弱性診断、コードの安全性評価を依頼された場合

▼ 呼び出し制御

フィールド名 必須/任意 説明 設定例
disable-model-invocation 任意 trueにするとClaudeによる自動呼び出しを無効化し、ユーザーが/スキル名で手動実行する場合のみ動作する。デプロイ・送信など副作用のある処理でタイミングをユーザーが制御したいときに使う。デフォルト:false disable-model-invocation: true
user-invocable 任意 falseにするとスラッシュ/メニューから非表示になりユーザーは直接呼び出せなくなる。Claudeが自動で参照するバックグラウンド知識用スキルに使う。デフォルト:true user-invocable: false
paths 任意 Globパターンで一致するファイルを編集しているときだけ自動読み込みを有効にする。カンマ区切りまたはYAMLリスト形式で複数指定可能 paths: “src/api/**/*.ts,src/routes/**”

▼ 引数

フィールド名 必須/任意 説明 設定例
argument-hint 任意 /スキル名入力後のオートコンプリートに表示されるヒントテキスト。ユーザーに渡すべき引数の形式を伝える argument-hint: “[issue-number]”
arguments 任意 スキル本文の$nameプレースホルダーに対応する名前付き位置引数を宣言する。スペース区切りの文字列またはYAMLリストで指定し、左から順に$0・$1…にマッピングされる arguments: [component, from-framework, to-framework]

▼ 実行環境・モデル設定

フィールド名 必須/任意 説明 設定例
model 任意 スキル実行中に使用するモデルを指定する。設定に保存されず現在のターン中のみ有効で、次のプロンプトからはセッションのモデルに戻る。inheritを指定するとセッションのモデルをそのまま継続する model: claude-opus-4-5
effort 任意 スキル実行中の思考努力レベルを指定する。セッション設定を上書きし、そのスキルにだけ適用される。指定できる値:low / medium / high / xhigh / max(利用可能なレベルはモデルによって異なる) effort: high
context 任意 forkを指定するとスキルを独立したサブエージェントコンテキストで実行する。メイン会話の履歴にアクセスできなくなるため、タスクが明示的な指示として完結するスキルにのみ使用する context: fork
agent 任意 context: forkと組み合わせて使用するサブエージェントの種類を指定する。省略時はgeneral-purposeが使われる。組み込み値:Explore(読み取り専用・コードベース調査向け)、Plan(計画立案向け) agent: Explore
shell 任意 スキル内の!`command`構文や“`!ブロックで使用するシェルを指定する。bash(デフォルト)またはpowershellを選択できる。powershell使用には環境変数CLAUDE_CODE_USE_POWERSHELL_TOOL=1の設定が必要 shell: powershell

▼ ツール・フック

フィールド名 必須/任意 説明 設定例
allowed-tools 任意 スキルがアクティブな間、Claudeが許可プロンプトなしで使用できるツールをホワイトリスト形式で指定する。スペース区切り文字列またはYAMLリストで複数指定可能。利用可能なツールを制限するものではなく、承認を省略するだけ allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *)
hooks 任意 スキルのライフサイクル(開始・終了など)に紐づくフックを定義する。スキルスコープに限定されたフックをSKILL.md内に直接記述できる。フォーマットはClaude Codeのhooks設定と同じ形式 hooks: stop: – command: “notify-slack.sh”

descriptionはSkillsの自動呼び出し精度を左右する最重要フィールドです。Claudeはdescriptionを見てスキルを使うべきかどうかをファジーマッチングで判断するため、曖昧な記述ではスキルが起動しません。

「Create, update, or list scheduled tasks…」のように、ユーザーが実際に入力するトリガーフレーズをdescriptionの冒頭に置き、次に動作を示す動詞句を続ける書き方が推奨されています。

リファレンス型とタスク型の2種類のスキルコンテンツ

スキルの本文は、大きく「リファレンス型」と「タスク型」の2つに分類できます。

リファレンス型は、APIの命名規則・スタイルガイド・セキュリティ基準といった知識をインラインで読み込み、会話の中でClaudeが自動的に参照するスキルです。

コーディング中に該当するファイルを開いたときや、関連するキーワードが届いたときに自動で呼び出されます。

フロントマターはdescriptionのみ設定し、Claudeが必要だと判断したタイミングで読み込むデフォルト設定のまま使うのが基本です。

一方のタスク型は、デプロイ・コミット・Slackへの通知送信など、決まった手順を順番に実行させるステップバイステップの指示スキルです。

間違ったタイミングでClaudeが自動実行してしまうと副作用が発生するため、disable-model-invocation: trueを設定してユーザーが/スキル名で手動呼び出しした場合のみ動作するように制限します。

文字列置換と動的コンテキスト注入の使い方

SKILL.mdの本文では、呼び出し時の状況に応じて内容を変化させる変数が使えます。

変数名 種別 展開されるもの 主な用途 記述例
$ARGUMENTS 引数(全体) スキル呼び出し時に渡されたすべての引数文字列をそのまま展開する。スキル本文に$ARGUMENTSがない場合は末尾にARGUMENTS: <値>として自動付加される 可変の入力をスキルに丸ごと渡したいとき Fix GitHub issue $ARGUMENTS following our coding standards.
$ARGUMENTS[N] 引数(位置指定) 0始まりのインデックスで特定の位置の引数だけを取り出す。複数単語の引数はクォートで囲んで1引数として渡せる(例:”hello world”) 複数の引数を個別に使い分けたいとき Migrate the $ARGUMENTS[0] component from $ARGUMENTS[1] to $ARGUMENTS[2].
$N 引数(位置指定・短縮形) $ARGUMENTS[N]の省略形。$0が1番目、$1が2番目の引数に対応する 記述を短くしたいとき Migrate the $0 component from $1 to $2.
$name 引数(名前付き) フロントマターのargumentsフィールドで宣言した名前付き引数に展開される。arguments: [issue, branch]と宣言すれば$issue・$branchのように意味のある名前で参照できる 引数の意味を明示してSKILL.mdを読みやすくしたいとき Fix $issue on branch $branch following our coding standards.
${CLAUDE_SESSION_ID} セッション情報 現在のセッションIDの文字列に展開される スキルの出力ログをセッション単位でファイル分けしたいとき Log the following to logs/${CLAUDE_SESSION_ID}.log:
${CLAUDE_EFFORT} セッション情報 現在の努力レベル(low / medium / high / xhigh / max)の文字列に展開される 努力レベルに応じてスキルの指示内容を分岐させたいとき Run a ${CLAUDE_EFFORT} level review of the following code:
${CLAUDE_SKILL_DIR} スキル情報 このSKILL.mdが置かれているディレクトリの絶対パスに展開される。個人用・プロジェクト用・プラグイン用のいずれで設置されていても正しいパスに解決される スキルにバンドルしたスクリプトやファイルを作業ディレクトリに依存せず参照したいとき python3 ${CLAUDE_SKILL_DIR}/scripts/visualize.py .

変数に加えて、!<command>という構文を使うと、スキルが読み込まれる直前にシェルコマンドを実行し、その出力結果をプロンプトの中に注入できます。

たとえば !gh pr diff と書いておけば、スキルが呼び出された時点のPRの差分が自動でコンテキストに取り込まれます。毎回手動でdiffをコピーしなくても、常に最新のコード差分をもとにClaudeが処理を進めてくれます。

Claude Code Skillsの作成手順

Skillsを作成する方法は2つあります。

Claude Codeとの対話だけで自動生成する「skill-creator」を使う方法と、テキストエディタでSKILL.mdを手動で書く方法です。

skill-creatorを使った対話的な作成手順

skill-creatorはClaude Code自体に同梱されているバンドルスキルで、Claudeとの会話を通じてSKILL.mdを自動生成する機能です。プログラミングの知識がなくても使えます。

Claudeに「新たなスキルを作成したい」と問いかけると、Claudeから「どんなタスクを自動化したいですか?」「どんな入力を受け取りますか?」といった質問が順番に届きます。

それに答えていくだけで、フロントマターとマークダウン本文がそろったSKILL.mdが生成されます。生成されたスキルはzipファイルとしてダウンロードし、設定画面からアップロードして有効化します。

まずskill-creatorで雛形を作り、その後必要に応じて手動で調整するという流れが実践的です。

手動でSKILL.mdを作成する手順

手動で作成する場合は、3つのステップで完結します。

ステップ1:スキルディレクトリを作成します。個人用なら mkdir -p ~/.claude/skills/スキル名、プロジェクト用なら mkdir -p .claude/skills/スキル名 をターミナルで実行します。

ステップ2:SKILL.mdを作成します。以下は、gitリポジトリのコミット未反映の変更を要約するスキルの例です。

---
name: summarize-changes
description: gitリポジトリのコミットされていない変更内容を日本語で要約する。「何が変わった?」「変更点を教えて」と聞かれたときに使用。
---

## 変更内容の要約

以下のgitの差分を確認し、変更点を日本語で箇条書きにまとめてください。

差分:
!`git diff HEAD`

出力形式:
- 変更したファイル名と変更の概要を3行以内でまとめる
- 技術的な説明は省き、「何をしたか」だけを記述する

ステップ3:スキルをテストします。Claude Codeで「最近の変更をまとめて」と自然言語で話しかけるか、/summarize-changesと直接入力して呼び出せるか確認します。

サポートファイルを活用した高機能なSkillsの作り方

スキルフォルダにはSKILL.md以外のファイルも配置できます。

SKILL.mdと同じディレクトリにreference.md(仕様書・API規約)・examples.md(入出力の具体例)・scripts/(Pythonスクリプトなど)を置き、SKILL.md内からリンク参照する構成です。

ディレクトリ構成

code-review/
├── SKILL.md
├── reference.md        # レビュー観点のリファレンス(詳細仕様)
├── examples/
│   ├── good.py         # 合格例
│   └── bad.py          # 指摘例
└── scripts/
    └── check_style.py  # スタイルチェックスクリプト

スクリプトをバンドルするメリットは3つあります。

第一に、LLMが毎回生成する処理と異なり、スクリプトは毎回同じ結果を返します。第二に、大量のルールをスクリプトに移せるため、SKILL.md本体を短く保てます。第三に、複数のスキルから同じスクリプトを共有できます。

スクリプトのパスは、次のように記述してください。

${CLAUDE_SKILL_DIR}/scripts/visualize.py

{CLAUDE_SKILL_DIR}はスキルフォルダの絶対パスに自動展開されるため、個人用・プロジェクト用のどちらに置いても正しいパスで動きます。

呼び出し制御・権限設定・トラブルシューティング

Skillsの呼び出し制御やツールの事前承認、設定からの可視性管理、よくあるトラブルの対処法について解説します。

disable-model-invocationとuser-invocableによる呼び出し制御

この2つのフィールドの組み合わせで、スキルをユーザーとClaudeのどちらが呼び出せるかを制御します。

設定パターン /メニューへの表示 ユーザーによる/スキル名呼び出し Claudeによる自動呼び出し descriptionのコンテキスト読み込み フルスキル本文の読み込み 適したスキルの種類
デフォルト (両フィールドとも未設定) 表示される 可(descriptionと一致した場合に自動読み込み) セッション開始時から常時読み込み 呼び出されたときのみ読み込み コードレビュー・変更要約など、ユーザーからもClaudeからも自然に使われる汎用的な手順
disable-model-invocation: true 表示される 不可(Claude側からの自動呼び出しをブロック) コンテキストに含まれない(Claudeはスキルの存在を認識しない) ユーザーが/スキル名で呼び出したときのみ読み込み /deploy・/send-slack-messageなど、副作用があり実行タイミングをユーザーが完全に制御したい操作系スキル
user-invocable: false 非表示(/メニューから除外) 不可 可(descriptionと一致した場合に自動読み込み) セッション開始時から常時読み込み 呼び出されたときのみ読み込み legacy-system-contextなど、ユーザーが直接実行する意味はないがClaudeが文脈に応じて参照すべきバックグラウンド知識スキル

allowed-toolsとskillOverridesによる権限と可視性の管理

allowed-toolsフィールドは、スキルがアクティブな間にClaudeが確認プロンプトなしで使用できるツールをあらかじめ承認しておく設定です。

たとえば allowed-tools: Bash(git add *) Bash(git commit *) と書いておけば、スキル実行中はgit addとgit commitのコマンドについてClaudeが都度許可を求めずに進められます。

利用可能なツールを制限するのではなく、承認の手間を省くことが目的です。

skillOverridesは設定ファイルからスキルの可視性を制御する機能で、SKILL.md本体を編集しなくてもスキルの動作を上書きできます。

設定値 Claudeのコンテキストへの読み込み /メニューへの表示 主な用途 設定が特に有効な場面
“on” 名前と説明の両方を読み込む 表示される 通常の状態。skillOverridesに未記載のスキルもこの状態として扱われる 一度”off”や”name-only”にしたスキルを元の動作に戻したいとき
“name-only” 名前のみ読み込む(説明は省略) 表示される 説明を省略してコンテキスト使用量を節約しながら、ユーザーは/スキル名で手動呼び出しできる状態に保つ スキルの数が多くdescription予算がオーバーフローしている場合に低優先スキルのコンテキスト消費を抑えたいとき
“user-invocable-only” 読み込まない(Claudeはスキルを認識しない) 表示される ユーザーが/スキル名で手動呼び出しする専用モードにする。Claudeによる自動呼び出しは完全に無効化される 自動呼び出しは不要だが/メニューから手動で呼び出せる状態は維持しておきたいとき
“off” 読み込まない 非表示になる スキルをClaudeとユーザーの両方から完全に無効化する 使わなくなったスキルをSKILL.mdを削除せず一時的に無効化したいとき、または特定のメンバーにだけ非表示にしたいとき

よくある問題と対処方法

スキルを使っているときによく発生するトラブルは3パターンあります。

スキルが呼び出されない場合

原因の多くはdescriptionの記述が曖昧なことです。まず /スキル名 で直接入力して手動呼び出しが機能するかを確認してください。

手動では動くのに自動では呼び出されない場合は、descriptionをより具体的なトリガーフレーズに書き直します。

「Pythonファイルにセキュリティ上の問題がないか確認して」のような、ユーザーが実際に打ち込みそうな文章をdescriptionの冒頭に入れると改善します。

スキルが頻繁にトリガーされる場合

意図していない文脈でスキルが起動してしまう場合は、descriptionをより限定的に書き直すか、disable-model-invocation: true を追加して手動呼び出し専用にします。

スキルの説明が短縮される場合

登録スキルが増えるとdescriptionの合計が予算を超えてClaudeが一部を読み飛ばすことがあります。

/doctor コマンドで予算オーバーが出ていないか確認し、優先度の低いスキルをskillOverridesで”name-only”に設定してコンテキスト消費を抑えます。

Claude Code Skillsのセキュリティと設計の指針

安全にSkillsを運用するための注意点と、効果的なスキルを設計するための指針について解説します。

第三者スキル導入時のセキュリティリスク

Skillsはコミュニティで広く共有されるようになった一方、セキュリティリスクも表面化しています。

Snykが2026年2月に公開したAgent Skillsエコシステムの調査では、3,984件のスキルを対象にした監査の結果、13.4%にあたる534件にマルウェア配布・プロンプトインジェクション・機密情報の平文保存を含む「クリティカルなセキュリティ問題」が見つかりました。

深刻度を問わず、いずれかの問題があるスキルまで範囲を広げると、36.82%(1,467件)が対象となりました。

出典:Snyk|Snyk Finds Prompt Injection in 36%, 1467 Malicious Payloads in a ToxicSkills Study of Agent Skills Supply Chain Compromise

このような背景から、運用ルールとして以下の3点が重要です。

  • 出所が不明な第三者スキルよりもAnthropicが公式に提供するスキルや、自分で作成したスキルを優先して使用すること
  • APIキー・パスワード・認証トークンなどの機密情報をSKILL.mdやスクリプトにハードコードしない。これらは環境変数として外部に切り出す
  • プロジェクトスキルをリポジトリに取り込む前にワークスペーストラスト(信頼済みワークスペースとして設定されているか)を確認

スキルはAIエージェントの実行コンテキストで動くため、悪意あるスキルを一度承認すると環境変数の読み取りや外部への送信が起こりえます。

効果的なSkills設計の4つのポイント

  • 1スキル1目的に絞る:security-reviewとtest-generatorのように、1つのスキルに複数の責務を持たせず分割して管理します。スキルの目的が明確なほどdescriptionも具体的に書けるため、自動呼び出しの精度も上がります
  • SKILL.mdは500行以下に保つ:超える場合はreference.mdやexamples.mdに詳細を切り出します。本文は毎回の呼び出しでコンテキストを消費するため、短く保つことがコスト削減にもつながります
  • 入出力の具体例をexamplesに含める:Claudeに「何が正解か」を伝えるための最も確実な方法が具体例です。合格例と不合格例の両方を用意しておくと、Claudeが成功基準を理解しやすくなります
  • できないことを本文に明記する:「このスキルはTypeScript以外のコードには適用しない」「本番環境への直接デプロイは行わない」のように、スキルのスコープ外を明示することで意図しない使われ方を防ぎます

まとめ

Claude Code Skillsは、毎回チャットに貼り付けていた手順を一度登録しておくことで、コードレビュー・デバッグ・デプロイといった定型タスクをコマンド一つで再現できる仕組みです。プログレッシブ・ディスクロージャーの設計により、スキルを多数登録してもコンテキストを圧迫しません。

SKILL.mdのフロントマターで呼び出し条件・権限・実行環境を細かく制御でき、リファレンス型・タスク型の2種類のスキルコンテンツを使い分けることで、自動呼び出しと手動呼び出しの場面に応じた設計が可能です。

チームで共有するプロジェクトスキルを導入する際は、第三者スキルのセキュリティリスクを念頭に置きながら、1スキル1目的・500行以下・具体例の同梱・スコープ外の明示という4つの設計指針を守ることで、長期的に使いやすいスキルセットを構築できます。

アイスマイリーでは、生成AI のサービス比較と企業一覧を無料配布しています。課題や目的に応じたサービスを比較検討できますので、ぜひこの機会にお問い合わせください。

AIsmiley編集部

株式会社アイスマイリーが運営するAIポータルメディア「AIsmiley」は、AIの専門家によるコンテンツ配信とプロダクト紹介を行うWebメディアです。AI資格を保有した編集部がDX推進の事例や人工知能ソリューションの活用方法、ニュース、トレンド情報を発信しています。

・Facebookでも発信しています @AIsmiley.inc
・Xもフォローください @AIsmiley_inc
・Youtubeのチャンネル登録もお願いいたします@aismiley
メルマガに登録する

DXトレンドマガジン メールマガジン登録

業務の課題解決に繋がる最新DX・情報をお届けいたします。
メールマガジンの配信をご希望の方は、下記フォームよりご登録ください。登録無料です。

お名前 - 姓・名

お名前を入力してください

メールアドレス

メールアドレスを入力してください

AI・人工知能記事カテゴリ一覧

今注目のカテゴリー

生成AI

ChatGPT連携サービス

チャットボット

AI-OCR

生成AI

ChatGPT連携サービス

チャットボット

AI-OCR

AI活用のご相談したい企業様はこちら

03-6452-4750

AI製品・ソリューションの掲載を
希望される企業様はこちら