スキルは Claude ができることを拡張します。Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
SKILL.md ファイルに指示を記述すると、Claude はそれをツールキットに追加します。Claude は関連する場合にスキルを使用するか、/skill-name で直接呼び出すことができます。
同じプレイブック、チェックリスト、または複数ステップの手順をチャットに何度も貼り付けるときや、CLAUDE.md のセクションが事実ではなく手順に成長したときにスキルを作成します。CLAUDE.md コンテンツとは異なり、スキルの本体は使用されるときにのみ読み込まれるため、長いリファレンス資料は必要になるまでほぼコストがかかりません。
/help や /compact などの組み込みコマンド、および /debug や /simplify などのバンドルされたスキルについては、コマンドリファレンスを参照してください。カスタムコマンドはスキルにマージされました。 .claude/commands/deploy.md のファイルと .claude/skills/deploy/SKILL.md のスキルの両方が /deploy を作成し、同じように機能します。既存の .claude/commands/ ファイルは引き続き機能します。スキルは追加機能を提供します。サポートファイル用のディレクトリ、スキルを呼び出すユーザーを制御するためのフロントマター、および Claude が関連する場合に自動的にスキルを読み込む機能です。バンドルされたスキル
Claude Code には、すべてのセッションで利用可能な一連のバンドルされたスキルが含まれています。これには/simplify、/batch、/debug、/loop、および /claude-api が含まれます。固定ロジックを直接実行する組み込みコマンドとは異なり、バンドルされたスキルはプロンプトベースです。Claude に詳細な指示を提供し、ツールを使用して作業を調整させます。他のスキルと同じ方法で呼び出します。/ の後にスキル名を入力します。
バンドルされたスキルは コマンドリファレンス に組み込みコマンドと一緒にリストされており、目的列にスキルとマークされています。
アプリを実行して検証する
3 つのバンドルされたスキルが連携して、アプリを起動し、テストや型チェックだけでなく、実行中のアプリに対して変更を確認します。| スキル | 目的 |
|---|---|
/run | アプリを起動して実行し、変更が機能していることを確認する |
/verify | アプリをビルドして実行し、コード変更が期待通りに機能することを確認する。テストや型チェックにフォールバックしない |
/run-skill-generator | /run と /verify にプロジェクトをビルドして起動する方法を教える |
/run と /verify はセットアップなしで機能します。プロジェクトタイプ(CLI、サーバー、TUI、ブラウザ駆動)と README、package.json、または Makefile の内容から起動を推測します。その推測は、標準的な起動を超えた何かが必要なプロジェクト(データベース、env ファイル、グラフィカルセッション、マルチステップビルド)では信頼性が低くなります。
/run-skill-generator は代わりにレシピを記録します。クリーン環境からアプリを実行し、機能したもの(インストールコマンド、環境変数、起動スクリプト)をキャプチャし、.claude/skills/run-<name>/ でプロジェクトごとのスキルとしてコミットします。その後、/run、/verify、およびリポジトリ内の他のエージェントは、再度発見する代わりに記録されたレシピに従います。プロジェクトごとに 1 回 /run-skill-generator を実行し、ビルドまたは起動プロセスが変更された場合は再度実行します。
はじめに
最初のスキルを作成する
この例は、git リポジトリ内のコミットされていない変更を要約し、危険な点にフラグを付けるスキルを作成します。プロンプトにライブ diff を取り込むため、Claude が開いているファイルから推測できるものではなく、実際の作業ツリーに基づいた応答が得られます。Claude は変更について尋ねるときにスキルを自動的に読み込むか、/summarize-changes で直接呼び出すことができます。
SKILL.md を記述する
すべてのスキルには
SKILL.md ファイルが必要です。2 つの部分があります。YAML フロントマター(--- マーカー間)は Claude にスキルをいつ使用するかを伝え、マークダウンコンテンツはスキルが実行されるときに Claude が従う指示です。ディレクトリ名はコマンドになり、description は Claude がスキルを自動的に読み込むかどうかを決定するのに役立ちます。~/.claude/skills/summarize-changes/SKILL.md に保存します:!`git diff HEAD` 行は動的コンテキスト注入を使用します。Claude Code はコマンドを実行し、Claude がスキルコンテンツを見る前に行を出力に置き換えるため、指示は現在の diff がすでにインライン化された状態で到着します。スキルが存在する場所
スキルを保存する場所によって、誰がそれを使用できるかが決まります:| 場所 | パス | 適用対象 |
|---|---|---|
| Enterprise | 管理設定を参照 | 組織内のすべてのユーザー |
| Personal | ~/.claude/skills/<skill-name>/SKILL.md | すべてのプロジェクト |
| Project | .claude/skills/<skill-name>/SKILL.md | このプロジェクトのみ |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md | プラグインが有効な場所 |
plugin-name:skill-name 名前空間を使用するため、他のレベルと競合することはできません。.claude/commands/ にファイルがある場合、それらは同じように機能しますが、スキルとコマンドが同じ名前を共有する場合、スキルが優先されます。
ライブ変更検出
Claude Code はスキルディレクトリのファイル変更を監視します。~/.claude/skills/、プロジェクト .claude/skills/、または --add-dir ディレクトリ内の .claude/skills/ の下でスキルを追加、編集、または削除すると、再起動せずに現在のセッション内で有効になります。セッション開始時に存在しなかった最上位のスキルディレクトリを作成するには、Claude Code を再起動して新しいディレクトリを監視できるようにする必要があります。
親ディレクトリとネストされたディレクトリからの自動検出
プロジェクトスキルは開始ディレクトリの.claude/skills/ とリポジトリルートまでのすべての親ディレクトリから読み込まれるため、サブディレクトリで Claude を起動しても、ルートで定義されたスキルが取得されます。開始ディレクトリの下のサブディレクトリ内のファイルを操作する場合、Claude Code はネストされた .claude/skills/ ディレクトリからスキルをオンデマンドで検出します。たとえば、packages/frontend/ 内のファイルを編集している場合、Claude Code は packages/frontend/.claude/skills/ でもスキルを探します。これはパッケージが独自のスキルを持つモノレポセットアップをサポートします。
各スキルは SKILL.md をエントリポイントとするディレクトリです:
SKILL.md はメイン指示を含み、必須です。他のファイルはオプションで、より強力なスキルを構築できます。Claude が入力するテンプレート、期待される形式を示す出力例、Claude が実行できるスクリプト、または詳細なリファレンスドキュメント。SKILL.md からこれらのファイルを参照して、Claude が各ファイルの内容と読み込むタイミングを知るようにします。詳細については、サポートファイルを追加するを参照してください。
.claude/commands/ 内のファイルは引き続き機能し、同じフロントマターをサポートします。スキルはサポートファイルなどの追加機能をサポートするため、推奨されます。追加ディレクトリからのスキル
--add-dir フラグはファイルアクセスを許可しますが、スキルは例外です。追加されたディレクトリ内の .claude/skills/ は自動的に読み込まれます。ライブ変更検出を参照して、セッション中に編集がどのように取得されるかを確認してください。
その他の .claude/ 設定(サブエージェント、コマンド、出力スタイル)は追加ディレクトリから読み込まれません。読み込まれるもの、読み込まれないもの、および設定をプロジェクト全体で共有するための推奨方法の完全なリストについては、例外テーブルを参照してください。
--add-dir ディレクトリの CLAUDE.md ファイルはデフォルトでは読み込まれません。読み込むには、CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 を設定します。追加ディレクトリから読み込むを参照してください。スキルを設定する
スキルはSKILL.md の上部の YAML フロントマターと、その後に続くマークダウンコンテンツを通じて設定されます。
スキルコンテンツのタイプ
スキルファイルには任意の指示を含めることができますが、それらを呼び出す方法を考えることは、含める内容をガイドするのに役立ちます: リファレンスコンテンツ は Claude が現在の作業に適用する知識を追加します。規約、パターン、スタイルガイド、ドメイン知識。このコンテンツはインラインで実行されるため、Claude は会話コンテキストと一緒に使用できます。/skill-name で直接呼び出したいアクションです。disable-model-invocation: true を追加して、Claude が自動的にトリガーするのを防ぎます。
SKILL.md には何でも含めることができますが、スキルを呼び出す方法(ユーザー、Claude、またはその両方)と実行場所(インラインまたはサブエージェント)を考えることは、含める内容をガイドするのに役立ちます。複雑なスキルの場合、サポートファイルを追加することで、メインスキルに焦点を当てることもできます。
本体自体は簡潔に保ちます。スキルが読み込まれると、そのコンテンツはターン全体でコンテキストに留まり、すべての行が繰り返されるトークンコストになります。実行内容を述べ、方法や理由を説明するのではなく、CLAUDE.md コンテンツに適用するのと同じ簡潔性テストを適用します。
フロントマターリファレンス
マークダウンコンテンツを超えて、SKILL.md ファイルの上部の --- マーカー間の YAML フロントマターフィールドを使用してスキルの動作を設定できます:
description のみが推奨されます。
| フィールド | 必須 | 説明 |
|---|---|---|
name | いいえ | スキルの表示名。省略した場合、ディレクトリ名を使用します。小文字、数字、ハイフンのみ(最大 64 文字)。 |
description | 推奨 | スキルが何をするか、いつ使用するか。Claude はこれを使用してスキルを適用するかどうかを決定します。省略した場合、マークダウンコンテンツの最初の段落を使用します。主要なユースケースを前置きしてください。スキルリストのコンテキスト使用量を削減するため、description と when_to_use の組み合わせテキストは 1,536 文字で短縮されます。 |
when_to_use | いいえ | Claude がスキルを呼び出すべき場合の追加コンテキスト(トリガーフレーズやリクエスト例など)。スキルリストの description に追加され、1,536 文字の上限にカウントされます。 |
argument-hint | いいえ | 予想される引数を示すためにオートコンプリート中に表示されるヒント。例:[issue-number] または [filename] [format]。 |
arguments | いいえ | スキルコンテンツの $name 置換用の名前付き位置引数。スペース区切り文字列または YAML リストを受け入れます。名前は順序で位置にマップされます。 |
disable-model-invocation | いいえ | Claude がこのスキルを自動的に読み込むのを防ぐには true に設定します。/name で手動でトリガーするワークフロー用です。また、スキルがサブエージェントにプリロードされるのを防ぎます。デフォルト:false。 |
user-invocable | いいえ | / メニューから非表示にするには false に設定します。ユーザーが直接呼び出すべきではないバックグラウンド知識用です。デフォルト:true。 |
allowed-tools | いいえ | このスキルがアクティブな場合、Claude が許可を求めずに使用できるツール。スペース区切り文字列または YAML リストを受け入れます。 |
model | いいえ | このスキルがアクティブな場合に使用するモデル。オーバーライドは現在のターンの残りに適用され、設定に保存されません。セッションモデルは次のプロンプトで再開されます。/modelと同じ値を受け入れるか、アクティブなモデルを保持するために inherit を受け入れます。 |
effort | いいえ | 努力レベル(このスキルがアクティブな場合)。セッション努力レベルをオーバーライドします。デフォルト:セッションから継承。オプション:low、medium、high、xhigh、max。利用可能なレベルはモデルに依存します。 |
context | いいえ | フォークされたサブエージェントコンテキストで実行するには fork に設定します。 |
agent | いいえ | context: fork が設定されている場合に使用するサブエージェントタイプ。 |
hooks | いいえ | このスキルのライフサイクルにスコープされたフック。設定形式については、スキルとエージェントのフックを参照してください。 |
paths | いいえ | このスキルがアクティブ化されるタイミングを制限する Glob パターン。カンマ区切り文字列または YAML リストを受け入れます。設定されている場合、Claude はパターンに一致するファイルを操作する場合にのみ、スキルを自動的に読み込みます。パス固有のルールと同じ形式を使用します。 |
shell | いいえ | このスキルの !`command` および ```! ブロックに使用するシェル。bash(デフォルト)または powershell を受け入れます。powershell を設定すると、Windows 上で PowerShell 経由でインラインシェルコマンドが実行されます。CLAUDE_CODE_USE_POWERSHELL_TOOL=1 が必要です。 |
利用可能な文字列置換
スキルはスキルコンテンツの動的値の文字列置換をサポートします:| 変数 | 説明 |
|---|---|
$ARGUMENTS | スキルを呼び出すときに渡されたすべての引数。$ARGUMENTS がコンテンツに存在しない場合、引数は ARGUMENTS: <value> として追加されます。 |
$ARGUMENTS[N] | 0 ベースのインデックスで特定の引数にアクセスします(例:最初の引数の場合は $ARGUMENTS[0])。 |
$N | $ARGUMENTS[N] の短縮形(例:最初の引数の場合は $0、2 番目の引数の場合は $1)。 |
$name | arguments フロントマターリストで宣言された名前付き引数。名前は順序で位置にマップされるため、arguments: [issue, branch] の場合、プレースホルダー $issue は最初の引数に展開され、$branch は 2 番目の引数に展開されます。 |
${CLAUDE_SESSION_ID} | 現在のセッション ID。ログ、セッション固有のファイルの作成、またはスキル出力とセッションの相関付けに便利です。 |
${CLAUDE_EFFORT} | 現在の努力レベル:low、medium、high、xhigh、または max。スキル指示をアクティブな努力設定に適応させるために使用します。 |
${CLAUDE_SKILL_DIR} | スキルの SKILL.md ファイルを含むディレクトリ。プラグインスキルの場合、これはプラグインルートではなく、プラグイン内のスキルのサブディレクトリです。bash インジェクションコマンドでこれを使用して、現在の作業ディレクトリに関係なく、スキルにバンドルされたスクリプトまたはファイルを参照します。 |
/my-skill "hello world" second は $0 を hello world に、$1 を second に展開します。$ARGUMENTS プレースホルダーは常に、入力されたとおりの完全な引数文字列に展開されます。
置換を使用した例:
サポートファイルを追加する
スキルはディレクトリ内に複数のファイルを含めることができます。これにより、SKILL.md は本質的なものに焦点を当てながら、Claude は必要な場合にのみ詳細なリファレンス資料にアクセスできます。大規模なリファレンスドキュメント、API 仕様、または例のコレクションは、スキルが実行されるたびにコンテキストに読み込む必要はありません。
SKILL.md からサポートファイルを参照して、Claude が各ファイルの内容と読み込むタイミングを知るようにします:
スキルを呼び出すユーザーを制御する
デフォルトでは、ユーザーと Claude の両方がスキルを呼び出すことができます。/skill-name を入力して直接呼び出すことができ、Claude は会話に関連する場合に自動的にスキルを読み込むことができます。2 つのフロントマターフィールドでこれを制限できます:
-
disable-model-invocation: true:ユーザーのみがスキルを呼び出すことができます。/commit、/deploy、/send-slack-messageなど、副作用があるワークフロー、またはタイミングを制御したいワークフロー用です。コードが準備完了に見えるため、Claude がデプロイを決定することは望ましくありません。 -
user-invocable: false:Claude のみがスキルを呼び出すことができます。アクションとして実行できないバックグラウンド知識用です。legacy-system-contextスキルは古いシステムの仕組みを説明します。Claude はこれが関連する場合に知っているべきですが、/legacy-system-contextはユーザーが実行する意味のあるアクションではありません。
disable-model-invocation: true フィールドは Claude が自動的に実行するのを防ぎます:
| フロントマター | ユーザーが呼び出せる | Claude が呼び出せる | コンテキストに読み込まれるタイミング |
|---|---|---|---|
| (デフォルト) | はい | はい | 説明は常にコンテキストに含まれ、呼び出されるとフルスキルが読み込まれます |
disable-model-invocation: true | はい | いいえ | 説明はコンテキストに含まれず、ユーザーが呼び出すとフルスキルが読み込まれます |
user-invocable: false | いいえ | はい | 説明は常にコンテキストに含まれ、呼び出されるとフルスキルが読み込まれます |
通常のセッションでは、スキルの説明がコンテキストに読み込まれるため、Claude は利用可能なものを知っていますが、フルスキルコンテンツは呼び出されるときにのみ読み込まれます。プリロードされたスキルを持つサブエージェントは異なります。フルスキルコンテンツはスタートアップで注入されます。
スキルコンテンツのライフサイクル
ユーザーまたは Claude がスキルを呼び出すと、レンダリングされたSKILL.md コンテンツは会話に単一のメッセージとして入力され、セッションの残りの間そこに留まります。Claude Code は後のターンでスキルファイルを再度読み込まないため、タスク全体を通じて適用すべきガイダンスを 1 回限りのステップではなく、スタンディング指示として記述します。
自動コンパクションは、トークン予算内で呼び出されたスキルを前方に運びます。会話が要約されてコンテキストを解放するとき、Claude Code は各スキルの最新の呼び出しを要約の後に再度アタッチし、最初の 5,000 トークンを保持します。再度アタッチされたスキルは 25,000 トークンの合計予算を共有します。Claude Code はこの予算を最近呼び出されたスキルから開始して埋めるため、セッション内で多くのスキルを呼び出した場合、古いスキルはコンパクション後に完全にドロップされる可能性があります。
スキルが最初の応答の後に動作に影響を与えるのを停止しているように見える場合、コンテンツは通常まだ存在し、モデルは他のツールまたはアプローチを選択しています。スキルの description と指示を強化して、モデルがそれを優先し続けるようにするか、フックを使用して動作を決定的に強制します。スキルが大きいか、その後に他のスキルを多く呼び出した場合、コンパクション後にそれを再度呼び出して、フルコンテンツを復元します。
スキルのツールを事前承認する
allowed-tools フィールドは、スキルがアクティブな場合、リストされたツールの権限を付与するため、Claude はあなたに承認を求めることなくそれらを使用できます。これは利用可能なツールを制限しません。すべてのツールは呼び出し可能なままであり、権限設定は引き続き、リストされていないツールのツール承認を管理します。
プロジェクトの .claude/skills/ ディレクトリにチェックインされたスキルの場合、allowed-tools はそのフォルダーのワークスペーストラストダイアログを受け入れた後に有効になります。これは .claude/settings.json の権限ルールと同じです。スキルが広範なツールアクセスを許可できるため、リポジトリを信頼する前にプロジェクトスキルを確認してください。
このスキルは、スキルを呼び出すときはいつでも、Claude が git コマンドを実行できるようにします:
スキルに引数を渡す
ユーザーと Claude の両方がスキルを呼び出すときに引数を渡すことができます。引数は$ARGUMENTS プレースホルダーを通じて利用可能です。
このスキルは GitHub の問題を番号で修正します。$ARGUMENTS プレースホルダーはスキル名の後に続くものに置き換えられます:
/fix-issue 123 を実行すると、Claude は「Fix GitHub issue 123 following our coding standards…」を受け取ります。
引数を使用してスキルを呼び出しても、スキルに $ARGUMENTS が含まれていない場合、Claude Code はスキルコンテンツの最後に ARGUMENTS: <your input> を追加するため、Claude は入力したものを引き続き見ることができます。
位置で個別の引数にアクセスするには、$ARGUMENTS[N] または短い $N を使用します:
/migrate-component SearchBar React Vue を実行すると、$ARGUMENTS[0] が SearchBar に、$ARGUMENTS[1] が React に、$ARGUMENTS[2] が Vue に置き換えられます。$N 短縮形を使用する同じスキル:
高度なパターン
動的コンテキストを注入する
!`<command>` 構文はスキルコンテンツが Claude に送信される前にシェルコマンドを実行します。コマンド出力はプレースホルダーを置き換えるため、Claude はコマンド自体ではなく実際のデータを受け取ります。
このスキルは GitHub CLI でライブ PR データを取得することで、プルリクエストを要約します。!`gh pr diff` および他のコマンドが最初に実行され、その出力がプロンプトに挿入されます:
- 各
!`<command>`が直ちに実行されます(Claude が何かを見る前に) - 出力はスキルコンテンツのプレースホルダーを置き換えます
- Claude は実際の PR データを含む完全にレンダリングされたプロンプトを受け取ります
!`<command>` プレースホルダーについて再スキャンされないため、コマンドは後のパスで展開するプレースホルダーを発行することはできません。
インラインフォームは、! が行の開始時または空白の直後に表示される場合にのみ認識されます。! が別の文字の後に続く場合(KEY=!`cmd` など)、プレースホルダーはリテラルテキストとして残され、コマンドは実行されません。
複数行のコマンドの場合、インラインフォームの代わりに、```! で開かれたフェンスコードブロックを使用します:
"disableSkillShellExecution": true を設定します。各コマンドは [shell command execution disabled by policy] に置き換えられます。バンドルされたスキルと管理スキルは影響を受けません。この設定は管理設定で最も有用です。ユーザーはそれをオーバーライドできません。
スキルをサブエージェントで実行する
スキルを分離して実行したい場合は、フロントマターにcontext: fork を追加します。スキルコンテンツはサブエージェントを駆動するプロンプトになります。会話履歴にアクセスできません。
スキルとサブエージェントは 2 つの方向で連携します:
| アプローチ | システムプロンプト | タスク | また読み込む |
|---|---|---|---|
context: fork を持つスキル | エージェントタイプから | SKILL.md コンテンツ | CLAUDE.md(エージェントが Explore または Plan の場合を除く) |
skills フィールドを持つサブエージェント | サブエージェントのマークダウン本体 | Claude の委任メッセージ | プリロードされたスキル + CLAUDE.md |
context: fork を使用すると、スキルにタスクを記述し、実行するエージェントタイプを選択します。組み込みの Explore および Plan エージェントはCLAUDE.md と git status をスキップしてコンテキストを小さく保つため、agent: Explore を使用するフォークされたスキルは SKILL.md コンテンツとエージェント自体のシステムプロンプトのみを見ます。逆の場合(スキルをリファレンス資料として使用するカスタムサブエージェントを定義する)については、サブエージェントを参照してください。
例:Explore エージェントを使用した研究スキル
このスキルはフォークされた Explore エージェントで研究を実行します。スキルコンテンツはタスクになり、エージェントはコードベース探索に最適化された読み取り専用ツールを提供します:- 新しい分離されたコンテキストが作成されます
- サブエージェントはスキルコンテンツをプロンプト(「$ARGUMENTS を徹底的に調査…」)として受け取ります
agentフィールドは実行環境(モデル、ツール、権限)を決定します- 結果は要約され、メイン会話に返されます
agent フィールドは使用するサブエージェント設定を指定します。オプションには、組み込みエージェント(Explore、Plan、general-purpose)または .claude/agents/ からのカスタムサブエージェントが含まれます。省略した場合、general-purpose を使用します。
Claude のスキルアクセスを制限する
デフォルトでは、Claude はdisable-model-invocation: true が設定されていないスキルを呼び出すことができます。allowed-tools を定義するスキルは、スキルがアクティブな場合、これらのツールへのアクセスを許可なしで Claude に付与します。権限設定は引き続き、他のすべてのツールのベースライン承認動作を管理します。/init、/review、/security-review などの組み込みコマンドも Skill ツールを通じて利用可能です。/compact などの他の組み込みコマンドはそうではありません。
Claude が呼び出すことができるスキルを制御する 3 つの方法:
すべてのスキルを無効にする には、/permissions で Skill ツールを拒否します:
Skill(name)、任意の引数を含むプレフィックス一致の場合は Skill(name *)。
個別のスキルを非表示にする には、フロントマターに disable-model-invocation: true を追加します。これにより、スキルが Claude のコンテキストから完全に削除されます。
user-invocable フィールドはメニューの可視性のみを制御し、Skill ツールアクセスは制御しません。プログラムによる呼び出しをブロックするには disable-model-invocation: true を使用します。設定からスキルの可視性をオーバーライドする
skillOverrides 設定は、スキル自体のフロントマターではなく、設定からスキルの可視性を制御します。共有プロジェクトリポジトリにチェックインされたスキルや MCP サーバーによって提供されるスキルなど、SKILL.md を編集したくないスキルに使用します。/skills メニューはあなたのために書きます:スキルをハイライトして Space を押して状態をサイクルし、Enter を押して .claude/settings.local.json に保存します。
各キーはスキル名で、各値は 4 つの状態のいずれかです:
| 値 | Claude にリストされている | / メニューで |
|---|---|---|
"on" | 名前と説明 | はい |
"name-only" | 名前のみ | はい |
"user-invocable-only" | 非表示 | はい |
"off" | 非表示 | 非表示 |
skillOverrides に存在しないスキルは "on" として扱われます。以下の例は 1 つのスキルを名前に折りたたみ、別のスキルを完全にオフにします:
skillOverrides の影響を受けません。代わりに /plugin を通じてそれらを管理します。
スキルを共有する
スキルはオーディエンスに応じて異なるスコープで配布できます:- プロジェクトスキル:
.claude/skills/をバージョン管理にコミットします - プラグイン:プラグインに
skills/ディレクトリを作成します - 管理:管理設定を通じて組織全体にデプロイします
視覚的な出力を生成する
スキルは任意の言語でスクリプトをバンドルして実行でき、Claude に単一のプロンプトで可能なもの以上の機能を提供します。1 つの強力なパターンは視覚的な出力を生成することです。ブラウザで開くインタラクティブな HTML ファイルで、データの探索、デバッグ、またはレポートの作成に使用できます。 この例はコードベースエクスプローラーを作成します。ディレクトリを展開および折りたたむことができるインタラクティブなツリービュー、一目でファイルサイズを確認でき、ファイルタイプを色で識別できます。 スキルディレクトリを作成します:~/.claude/skills/codebase-visualizer/SKILL.md に保存します。説明は Claude にこのスキルをいつアクティブにするかを伝え、指示は Claude にバンドルされたスクリプトを実行するよう伝えます。スクリプトパスは ${CLAUDE_SKILL_DIR} を使用するため、スキルが個人、プロジェクト、またはプラグインレベルでインストールされているかどうかに関わらず、正しく解決されます:
~/.claude/skills/codebase-visualizer/scripts/visualize.py に保存します。このスクリプトはディレクトリツリーをスキャンし、以下を含む自己完結型の HTML ファイルを生成します:
- ファイル数、ディレクトリ数、合計サイズ、ファイルタイプ数を示すサマリーサイドバー
- コードベースをファイルタイプ別に分類する棒グラフ(サイズ別トップ 8)
- ディレクトリを展開および折りたたむことができる折りたたみ可能なツリー(色分けされたファイルタイプインジケーター付き)
codebase-map.html を生成し、ブラウザで開きます。
このパターンは任意の視覚的な出力に機能します。依存関係グラフ、テストカバレッジレポート、API ドキュメント、またはデータベーススキーマの視覚化。バンドルされたスクリプトが重い処理を行い、Claude が調整を処理します。
トラブルシューティング
スキルがトリガーされない
Claude がスキルを期待どおりに使用しない場合:- 説明にユーザーが自然に言うキーワードが含まれていることを確認します
- スキルが「利用可能なスキルは何ですか?」に表示されることを確認します
- 説明により密接に一致するようにリクエストを言い換えてみます
- スキルがユーザー呼び出し可能な場合は、
/skill-nameで直接呼び出してみます
スキルが頻繁にトリガーされる
Claude がスキルを使用したくない場合:- 説明をより具体的にします
- 手動呼び出しのみを希望する場合は、
disable-model-invocation: trueを追加します
スキルの説明が短縮される
スキルの説明がコンテキストに読み込まれるため、Claude は利用可能なものを知っています。すべてのスキル名は常に含まれていますが、多くのスキルがある場合、説明は文字予算に合わせて短縮される可能性があり、Claude が一致するために必要なキーワードを削除できます。予算はモデルのコンテキストウィンドウの 1% でスケーリングされます。オーバーフローすると、最も呼び出しが少ないスキルの説明が最初に削除され、実際に使用するスキルは完全なテキストを保持します。/doctor を実行して、予算がオーバーフローしているかどうか、どのスキルが影響を受けているかを確認します。
予算を上げるには、skillListingBudgetFraction 設定(例:0.02 = 2%)または SLASH_COMMAND_TOOL_CHAR_BUDGET 環境変数を固定文字数に設定します。他のスキルの予算を解放するには、skillOverrides で低優先度のエントリを "name-only" に設定して、説明なしでリストアップします。ソースで description と when_to_use テキストをトリミングすることもできます。各エントリの組み合わせテキストは予算に関係なく 1,536 文字でキャップされているため、主要なユースケースを前置きしてください。キャップは maxSkillDescriptionChars で設定可能です。