手動実行だけのスキル(スラッシュコマンド)には disable-model-invocation 設定を入れたい【Claude Code】

手動実行だけのスキル(スラッシュコマンド)には disable-model-invocation 設定を入れたい【Claude Code】

2026.01.30

タイトルほぼそのままの内容です。

Claude Code のスキル(スラッシュコマンド ※以降、単にスキルと呼びます ) にはフロントマターが設定できます。 フロントマターは、スキルの名前・説明・使用できるツール・呼び出し制御などの動作を定義します。

そして、フロントマターの1フィールドに disable-model-invocation という項目があります。 これを true に設定すると、Claude がこのスキルを自動的にロードすることを防ぎます。

手動実行 (やタイミングを制御したいワークフロー)では disable-model-invocation: true を追加しましょう。コンテキスト節約にもなります。

---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
---

# Example Skill
...

…伝えたいことは以上ですが、前提知識や実際の試行結果を以降で書いていきます!

前提

スキルとは

Claude Code の スキル は Claude の機能を拡張するための仕組みです。 SKILL.md ファイルに指示を記述して、Claude が使えるツールキットに追加します。 Claude は会話内容に関連する場合にスキルを自動的にロードするか、 /skill-name で直接呼び出すことができます。

スキルは .claude/skills に配置します。 保存場所によりスコープ(適用範囲)が決まります。

場所 パス 適用対象
個人スキル ~/.claude/skills/<skill-name>/SKILL.md すべてのプロジェクト
プロジェクト .claude/skills/<skill-name>/SKILL.md このプロジェクトのみ

スキルディレクトリには SKILL.md 以外にもリファレンスファイルやスクリプトを配置でき、Claude はそれらを参照(実行)できます。

スラッシュコマンドとは

Claude Code の スラッシュコマンド は、 インタラクティブセッション中に Claude の動作を制御するコマンドです。 /help/clear などの組み込みコマンドと、ユーザー定義のカスタムコマンドがあります。

カスタムスラッシュコマンドは、頻繁に使用するプロンプトを Markdown ファイルとして定義できます。

コマンドタイプ 保存場所 適用対象
プロジェクトコマンド .claude/commands/ チームと共有
個人コマンド ~/.claude/commands/ すべてのプロジェクト

なお、カスタムスラッシュコマンドはスキルにマージされています。 今まで通り利用はできるものの、実態はスキルとして動作します。

スキルを手動実行する

/skill-name でスキル(スラッシュコマンド)を直接呼び出せます。 引数を渡すこともできます(例: /fix-issue 123 )。

フロントマター

スキルファイルの先頭にはフロントマターを記述できます。 フロントマターはYAML形式で、スキルの名前・説明・使用できるツール・呼び出し制御などの動作を定義します。

主要な設定項目は以下の通りです。

フィールド 説明
name スキル名(省略時はディレクトリ名)
description スキルの説明(Claude が自動ロード判断に使用)
allowed-tools 許可するツールのリスト
model 使用するモデル(例: claude-sonnet-4-20250514
disable-model-invocation true で自動ロードを無効化(手動実行のみ)

詳細は フロントマターリファレンス を参照ください。

disable-model-invocation フィールドについて

disable-model-invocation は、スキルの自動ロードを制御するフロントマター設定です。

デフォルトでは、Claude は会話内容に関連するスキル (の description) を自動的にロードします。 disable-model-invocation: true を設定すると、この自動ロードを無効化できます。

手動実行専用のスキル(デプロイ、リリースなど)では、この設定を有効にすることで意図しないタイミングでの実行を防げます。 また、不要なコンテキスト消費を抑えられるメリットもあります。

disable-model-invocation 設定の効果を確認してみる

実際に効果を確認するため、以下の4つのスキル・コマンドを配置しました。

名前 種類 disable-model-invocation 配置場所
test1-command-default コマンド なし(デフォルト) .claude/commands/test1-command-default.md
test2-command-manual コマンド true .claude/commands/test2-command-manual.md
test3-skill-default スキル なし(デフォルト) .claude/skills/test3-skill-default/SKILL.md
test4-skill-manual スキル true .claude/skills/test4-skill-manual/SKILL.md

/context コマンドでロードされたコンテキストを確認できます。 実行してみると、 disable-model-invocation: true を設定したものはロードされていないことが分かります。

sc-2026-01-30_14-8017
/context コマンドの実行結果

一方、手動実行では全てのスキル・コマンドが候補に表示されます。

sc-2026-01-30_14-28780
手動実行時のスキル候補一覧

おわりに

以上、disable-model-invocation 設定の紹介ブログでした。 手動実行専用のスキルには disable-model-invocation: true を設定しましょう。 意図しない自動ロードを防ぎ、コンテキストも節約できます。

ちなみに、本ブログを書いたきっかけは、 いつの間にか大量のスラッシュコマンドがコンテキストに入っていることに気づいたからでした。

以上、参考になれば幸いです。

参考

この記事をシェアする

FacebookHatena blogX

関連記事