Claude Codeは、descriptionと会話文の一致度だけでスキルを選びます。起動語を並べただけのdescriptionでは、Claude Codeのスキルが発火しない場面が残ります。本記事は、言い換え表現・除外条件・近いスキルとの境界をどう書けば発火条件が安定するかを、公式ドキュメントと自社スキルの実例で示します。

01結論:Claude Codeのスキルが発火しないのは、descriptionが起動語の列挙で止まっているから

起動語(コマンド名や機能名そのもの)だけを並べたdescriptionは、ユーザーが違う言い回しで頼んだ瞬間に一致しなくなります。逆に、除外条件を書かないdescriptionは、似た役割の別スキルと範囲が重なり、狙っていない場面でも発火します。直すべき要素は3つです。

  • 「何をするか」と「いつ使うか」の両方を書く(公式が明記する必須要素)
  • ユーザーが実際に使う言い換え表現を、descriptionかwhen_to_useに足す
  • 除外したい場面と、代わりに使うスキル名を1行で添える

Claude Codeは起動時、全スキルのnameとdescriptionだけを読み込みます。1スキルあたりの消費は概ね100トークン程度で、本文(SKILL.mdの中身)は発火した後にしか読み込みません(出典: Anthropic公式)。descriptionは、スキルの中で唯一「常に人の目にも機械の判定にも触れる」場所です。

検証環境は、Claude Code公式(code.claude.com/docs)とAnthropic公式(platform.claude.com/docs)のドキュメントです。いずれも2026-07-28時点の記載です。

スキルdescription照合、一致度で選ばれる経路と除外条件で覆る経路 ユーザーの発言が3つのスキルのdescriptionへ同時に照合される図。スキルBは一致度が最も高いが除外条件に該当するため対象外となり、次点のスキルAが選ばれて実行される。スキルCは一致度が低くどのdescriptionとも一致せず発火しない。一致度の高さだけでなく除外条件の有無が最終的な選出結果を左右することを示す。 FLOW 一致度が高くても、除外条件があれば負ける 3つのdescriptionと同時に照合 ユーザーの発言 「これ経費で落ちる?」 スキルB(一致度:高い) × 除外条件に該当→対象外 スキルA(一致度:中程度) ◎ 次点から選出される スキルC(一致度:低い) ― 一致せず対象外 スキルAが実行される(直接選出/Bの代替先) 発火しない(一致するスキルなし) 除外条件で対象外に 一致度が最も高くても、除外条件に該当すれば対象外。次点のスキルが選ばれる。
Claude Codeのスキルdescriptionが発火条件を満たすかどうかで枝分かれする図

02起動語を列挙するだけでは発火条件が安定しない理由

descriptionは、Claude Codeがそのスキルの発火条件を満たすかどうかを判定する唯一の材料です(出典: Claude Code公式)。判定はdescriptionの文章とユーザーの発言全体を読んで行われ、単語の完全一致ではありません。だから、機能名だけを並べたdescriptionは、機能名を言わない依頼に反応できません。

公式ガイドは、descriptionの悪い例として次を挙げています(出典: Anthropic公式)。

description: Helps with documents
description: Processes data
description: Does stuff with files

いずれも「何を」「いつ」が書かれていません。対して公式ドキュメントが挙げる良い例は、PDF処理スキルを題材に「テキストと表の抽出・フォーム入力・文書の結合」という操作を並べたうえで、「PDFを扱うとき、またはPDF・フォーム・文書抽出に言及されたとき」という発動条件を後半に置いています(出典: Anthropic公式)。日本語で書くなら次の形です。

description: PDFファイルからテキストと表を抽出し、フォーム入力や複数ファイルの結合を行う。PDFファイルを扱うとき、またはPDF・フォーム・文書抽出について言及されたときに使う。

前半が「何をするか」、後半が「いつ使うか」です。この2部構成が、descriptionの骨格になります。

書き方何が起きるか
起動語のみ・抽象的(Helps with documents対象が不明で、他の文書系スキルと区別できない
対象+操作+いつ使うかを明記「PDF」「フォーム」という単語が出た時点で候補に上がる
状況の説明のみ・機能名なし機能名を知らない依頼には反応するが、機能名で聞かれると弱い

descriptionはもう一つ、文体の規約があります。三人称で書くという規約です。「I can help you...」のような一人称は、システムプロンプトに挿入されたときに視点が揺れ、判定の精度を落とします(出典: Anthropic公式)。「You can use this to...」も同様に避ける対象です。

公式チュートリアルの実例も、機能名ではなく状況で誘導しています。gitの差分を要約するスキルのdescriptionは、状況だけで誘導します。「変更点を聞かれたとき」「コミットメッセージが欲しいとき」「差分のレビューを頼まれたとき」の3つです(出典: Claude Code公式)。git diffというコマンド名は使っていません。

03言い換え表現をdescriptionに足して、発火条件を広げる書き方

Claude Codeにはdescriptionとは別に、when_to_useというフロントマター項目があります。トリガーフレーズや依頼例を追加で書く場所で、スキル一覧ではdescriptionの後ろに連結されます(出典: Claude Code公式)。descriptionを短く保ったまま、言い換え表現をここへ足せます。

---
name: expense-check
description: 経費精算の申請内容を、社内規程と照合してチェックする。
when_to_use: |
  「経費精算お願い」「これ経費で落ちる?」「領収書チェックして」と言われたときに使う。
  スキル名を言わない「今月の経費まとめてほしい」のような依頼でも発火する。
---

言い換え表現を足す手順は2ステップです。

  1. ユーザーが実際に送ってきそうな言い回しを、口調そのままで3〜5個書き出す
  2. 機能名を含む言い回しと、機能名を含まない状況の言い回しを両方入れる

2026-07-28時点でWEBMARKSのVaultに登録されているx-postスキルのdescriptionは、この2種類を両方書いています。「X投稿作って」「ツイート書いて」のような機能名入りの依頼に加え、「今日のツイート案ちょうだい」「これXで一言つぶやきたい」のような機能名なしの依頼も挙げています。後者のような依頼でも発火するとdescription内に明記されています。機能名を知らない読者からの依頼を取りこぼさないための書き方です。

04除外条件で、近いスキルとの発火条件をどう切り分けるか

descriptionが誤って発火しすぎる場合、公式の対処は2つです。descriptionをより具体的にすること、そしてdisable-model-invocation: trueを設定することです(出典: Claude Code公式)。後者は手動起動だけに絞る設定です。

WEBMARKSの本番スキルは、これに加えて三つ目の書き方を使っています。除外したい場面と、代わりに使うスキル名を、description本文の中に文章として明記する方法です。2026-07-28時点で確認できる実例を3つ挙げます。

スキル除外する場面代わりのスキル区別する理由
devils-advocateVault構造の機械監査・自動化の実測vault-audit/safety-audit/hierarchy-audit/automation-health本スキルは成果物の「甘さ」だけを見る
seo-article既存記事の順位計測・AI検索の引用診断・法人提案書seo-weekly-report/aio-report・aio-scan/proposal-draft新規記事の一気通貫制作のみが対象
editable-pptx-deckデザイン品質が優先の画像ベース資料harukaze-seminar-slide-deck-v4/lecture-slide-deck-generatorImage 2.0前提のスキルとは対象が異なる
funnel-diagnosis診断を経ずに直接LP・記事・広告・LINE動線を作りたいだけの依頼lp-*系/seo-article/harukaze-line-flow-creative-design本スキルは診断だけで、成果物は作らない

4行とも構造は同じです。「除外する場面」「代わりのスキル名」「区別する理由」の3点をdescription内に書くと、Claude Codeは似たスキルが並んでも、範囲の広さではなく役割の違いで選べます。

たとえば、議事録を要約するスキルと、商談後の議事録を作るスキルのように対象が重なる2本を、除外条件なしで書いたとします。ユーザーが「昨日のMTGをまとめて」と頼むと、どちらのdescriptionにも一致し、片方だけが選ばれるか、選ばれた方が想定外の形式で出力します。気づくのは、出てきた議事録の項目が期待と違うと感じた時点です。除外条件を1行足すだけで、この重なりは解消します。

05Claude Codeのスキルdescriptionが発火しないかどうかを確認する2つの方法

書いたdescriptionが発火条件として機能しているかは、想像ではなく確認します。

1つ目は対話での確認です。「What skills are available?」とClaudeに聞くと、認識済みのスキル一覧が返ります(出典: Claude Code公式)。/doctorはスキル一覧のコンテキストコストを見積もり、/contextのSkills行は実際に読み込まれた一覧のサイズを表示します。

2つ目はskill-creatorプラグインによる自動評価です。/plugin install skill-creator@claude-plugins-officialで導入します。/reload-pluginsのあとに「evaluate my <skill-name> skill with skill-creator」と頼みます。発火させたいプロンプトと発火させたくないプロンプトの両方を生成し、的中率を測ってdescriptionの修正案まで提案する機能です(出典: Claude Code公式)。

Anthropicは自社の公開スキル6本にこの手法を当てました。5本で発火精度が改善したと報告しています(出典: Anthropic公式ブログ)。

疑うべき症状公式が挙げる確認手順
発火しない①descriptionにユーザーが自然に使う語が入っているか確認 ②「What skills are available?」で一覧に出るか確認 ③依頼の言い回しをdescriptionに近づけて試す ④user-invocableなら/skill-nameで直接起動して切り分ける
発火しすぎる①descriptionをより具体的にする ②手動起動だけでよいならdisable-model-invocation: trueを足す

06スキルが呼ばれない条件を放置すると起きる、3つのつまずき

descriptionとwhen_to_useを合わせすぎて切り詰められる

Claude Codeは、descriptionとwhen_to_useの合計を1,536文字で切り詰めます(出典: Claude Code公式)。スキル数が増えて一覧全体の予算を超えると、呼び出し頻度が低いスキルから順にdescriptionが落とされます。一覧の予算は既定で、モデルのコンテキストウィンドウの1%です。

skillListingBudgetFractionを0.02(2%)のように上げると広げられます(出典: Claude Code公式)。落とされる順番を決めるのはdescriptionの長さではなく呼び出し頻度で、使われていないスキルほど先に説明文が一覧から消えます(出典: 同上)。

一人称・二人称で書いて視点がぶれる

「私がPDFを処理します」「あなたはこれでPDFを処理できます」のような一人称・二人称は、システムプロンプトに挿入されたときに文体が揺れます。他のスキルのdescription群からも浮きます(出典: Anthropic公式)。三人称で「〜する」「〜を生成する」と言い切る形に統一します。

name フィールドの制約に違反して、そもそも読み込まれない

nameは64文字以内、小文字・数字とハイフンのみで、anthropicclaudeという予約語を含められません(出典: Anthropic公式)。この制約に違反すると、descriptionの書き方以前に、スキル自体が一覧に現れません。/skill-nameで直接呼んでも見つからず、Claudeが自動で選ぶ候補にも入りません。「発火しない」ではなく「存在しない」扱いになる、別の失敗です。

descriptionに積む4層構造と、1,536字の壁・削る優先順位 descriptionに積む内容を中心から外側へ4層の入れ子で示す図。中心の第1層は「何をするか+いつ使うか」で必須・削らない層。外側へ第2層の言い換え表現、第3層の除外条件、第4層の近いスキルとの境界の順に重なる。各層に文字数の目安を添え、最も外側の破線境界はdescriptionとwhen_to_use合計の上限1,536字を示す。上限を超えて文字数を削るときの優先順位は、必須の第1層を除き外側の第4層から先に削ることを示す。 STRUCTURE descriptionに積む4層と、1,536字の壁 文字数が厳しいときに削る優先順位:④→③→②の順(①は必須のため対象外) 上限1,536字(自動で切り詰め) 4 近いスキルとの境界 目安 250字 3 除外条件 目安 300字 2 言い換え表現 目安 300字 1 何をするか+いつ使うか (必須・削らない) 目安 150字
descriptionに積む4層構造を入れ子で示す図

除外条件を書く場所と、起動そのものを止める場所は別のフィールドです。混同すると、書いた除外条件が期待どおりに働きません。

フィールド役割効果
description発火条件の判定材料(何をするか+いつ使うか)Claude・ユーザー双方が起動可能
when_to_use言い換え表現・依頼例の追加description末尾に連結され判定に効く
disable-model-invocationClaudeによる自動起動の禁止ユーザーの手動起動(/name)のみ可能に
user-invocable/メニューからの手動起動の禁止Claudeによる自動起動のみ可能に
disable-model-invocationとuser-invocableの組み合わせで、発火経路はどう4つに分かれるか Claudeによる自動起動の可否(disable-model-invocation)とユーザーの手動起動/nameの可否(user-invocable)という2つのfrontmatter設定を縦横2軸に置き、4象限に分ける図。両方許可の既定スキル、自動起動のみ禁止した手動専用スキル、手動起動のみ禁止した自動専用スキルの3象限に加え、本文に書かれていない第4象限として、両方を禁止するとClaudeからも/からも呼び出せず事実上呼び出し不能になる組み合わせを示す。 MATRIX 自動起動と手動起動、2設定で分かれる4つの発火パターン 手動起動(/name)が可能か 可能 不可 Claudeによる自動起動が可能か 不可 可能 ① 両方可能(既定) 既定の通常スキル disable-model-invocation: false user-invocable: true ② 自動起動のみ禁止 手動起動だけに絞る設定 disable-model-invocation: true user-invocable: true ③ 手動起動のみ禁止 /メニューに出ない自動専用 disable-model-invocation: false user-invocable: false ④ 両方禁止 本文にない第4の象限 disable-model-invocation: true user-invocable: false 破線=本文に記載のない組み合わせ 両方を禁止すると、Claudeからも「/」からも呼べず、事実上呼び出し不能になる
disable-model-invocationとuser-invocableの2軸で発火経路を4象限に分ける比較軸マトリクス図

07Claude Codeのスキルdescriptionチェックリスト

  • descriptionに「何をするか」と「いつ使うか」の両方が入っている
  • 三人称で書かれている(「I can」「You can」を使っていない)
  • ユーザーが実際に使いそうな言い換え表現を3つ以上、descriptionかwhen_to_useに入れている
  • 除外したい場面と、代わりに使うスキル名を1行で書いている
  • 近いスキルとの境界を、役割の違いで説明している(範囲の広さだけで分けていない)
  • nameが64文字以内・小文字・数字とハイフンのみで、予約語(anthropic・claude)を含まない
  • descriptionとwhen_to_useの合計が1,536文字を大きく超えていない
  • 「What skills are available?」か/doctorで、発火・非発火を実際に確認した

08FAQ

descriptionのトリガーフレーズは日本語と英語のどちらで書くべきですか

ユーザーが実際に話す言語で書きます。日本語の依頼が多いスキルなら、descriptionもwhen_to_useも日本語のトリガーフレーズを中心に書くのが安全です。

Claude Codeのスキルが発火しないとき、最初に確認する場所はどこですか

「What skills are available?」とClaudeに聞き、対象のスキルが一覧に出るかどうかです(出典: Claude Code公式)。出ていればdescriptionの言い回しを、出ていなければnameの制約違反や設定ミスを疑います。

除外条件を書きすぎると、発火条件が狭くなりすぎませんか

除外条件は「対象外にする場面」を絞るためのもので、「発火する場面」を狭めるものではありません。発火条件そのものを広げたいときは、言い換え表現の追加で対応します。

disable-model-invocationを設定すれば、除外条件は書かなくてよいですか

用途が違います。disable-model-invocationはClaudeによる自動起動そのものを止める設定で、似たスキルとの範囲分けには使えません。近いスキルとの境界は、description本文に除外条件として書きます。

英語のtriggerフレーズと日本語の言い換え表現を、同じdescriptionに混ぜてよいですか

混ぜて問題ありません。descriptionは文章として照合されるため、英語の機能名と日本語の依頼例が同じ文の中にあっても判定は働きます(出典: Claude Code公式)。海外製のスキルを日本語の依頼で使いたいときに使える書き方です。