「スキルは作ったのに、呼ばれないんです」。AIエージェントに定型業務を任せはじめた人から、この相談をよく受けます。

SKILL.mdの中身は丁寧に書いてある。手で名前を打てば動く。それでも、ふつうに話しかけたときには出てこない。原因は中身ではなく、その手前にあるdescriptionのほうにあります。

この記事は、Claude Codeがスキルを選ぶときに何を読んでいるかを確かめ、descriptionのどこに何を書けば呼ばれるようになるかを扱います。素材は公式ドキュメントと、運用中の自社スキルの書き方です。

こんなふうに調べていませんか

  • スキルを作ったのに、話しかけても呼ばれない
  • 似た役割のスキルが増えて、意図していないほうが動いてしまう

この記事を読み終えたときに手に入るもの

  • descriptionに足りていない層を見つけて、書き足せるようになります
  • 近いスキルとの境界を、除外条件の1行で切り分けられるようになります
  • 発火するかどうかを、想像ではなく確認して確かめられるようになります

結論30秒でわかる、この記事の結論

  • Claude Codeは、descriptionの文章とユーザーの発言全体を読み比べてスキルを選びます。起動語を並べただけで止まると、言い回しが変わった瞬間に届かなくなります。
  • descriptionには「何をするか」「いつ使うか」「言い換え」「除外」の層があり、抜けた層のぶんだけ取りこぼしが出ます。
  • 書き足したあとは、実際に呼んで確かめます。書いた事実と、呼ばれた事実は別に数えます。
名札に何が書いてあると、手が伸びるのか起動語だけの名札は、片側しか埋まっていません名札に何が書いてあると、手が伸びるのか手がかり1何を扱う道具か対象と操作を名指しする手がかり2どんな用のとき寄るか用件の言葉で場面を置く手がかり3どこは隣が受けるか行き先を書いて渡す鈴木さん起動語だけの名札は、片側しか埋まっていません
名札に何が書いてあると、手が伸びるのか — 起動語だけの名札は、片側しか埋まっていません

進行役は3人です。若葉さんが用語の側から、高梨課長が自分の手で直す側から聞き、鈴木さん(本誌監修)が答えます。

01Claude Codeのスキルが発火しないのは、AIエージェントが何を見て選んでいるからですか?

若葉さん
若葉さんの発言

そもそもなんですが、Claudeはどうやって「このスキルを使おう」と決めているんですか。

鈴木さん
鈴木さんの発言

棚に並んだ道具箱の、名札だけを見て決めていると考えると近いです。中身は開けていません。名札に何と書いてあるかで、手が伸びるかどうかが決まります。

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

つまり、選ばれるかどうかが決まる時点で、Claudeが手にしている情報はdescriptionだけです。中身をどれだけ作り込んでも、その内容は判定に参加していません。

判定そのものも、固定のキーワード一致ではありません。YAMLフロントマターのdescriptionに書かれた文章と、ユーザーの発言全体を照合して選びます(出典: Claude Code公式)。文章として読まれるので、同じ単語が無くても意味が近ければ候補に上がります。逆に、単語だけを置いて文として通っていなければ、そこは手がかりになりません。

descriptionは、スキルの中で唯一「常に人の目にも機械の判定にも触れる」場所です。

中身が開くのは、選ばれたあと選ぶ場面に、道具箱の中身は参加していません中身が開くのは、選ばれたあと選ぶ場面に、道具箱の中身は参加していません1話しかけられるその人の言葉のまま届く2名札だけを読み比べる棚に並ぶ全部の名札が対象3いちばん近い1つに寄る語の一致ではなく意味の近さ4そこで蓋が開く書き込んだ中身はここから効く鈴木さん推敲した中身は、この最後の箱に入ってから効きはじめます
中身が開くのは、選ばれたあと — 選ぶ場面に、道具箱の中身は参加していません

順番で見ると、descriptionの推敲は読みやすさの調整ではないと分かります。候補に残るかどうかの調整です。中身の推敲が効きはじめるのは、この図の最後の箱に入ってからです。

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

02起動語を並べただけのdescriptionでは、AI社員のスキルがなぜ呼ばれないんですか?

起動語(コマンド名や機能名そのもの)だけを並べた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」「フォーム」という単語が出た時点で候補に上がる
状況の説明のみ・機能名なし機能名を知らない依頼には反応するが、機能名で聞かれると弱い
受付の張り紙にたとえると同じ窓口でも、貼り方で立ち寄る人が変わります受付の張り紙にたとえると同じ窓口でも、貼り方で立ち寄る人が変わります窓口の張り紙でいうとスキルの名札でいうと取り扱いの品目だけ大きく書いた紙機能の名前だけを並べた一文こんな用の方はどうぞ、と添えた紙どんな場面で使うかまで書いた一文その用は隣です、と矢印を貼る外す場面と行き先を書いた一文係の名札を、同じ書式でそろえる語り手を出さない言い切りの形
受付の張り紙にたとえると — 同じ窓口でも、貼り方で立ち寄る人が変わります

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

コマンド名を知っている人は、そもそも手で呼べます。descriptionが迎えにいく相手は、コマンド名を知らないまま用件だけを言う人です。

この章のまとめ

起動語は、すでに名前を知っている人にしか届きません。用件の言葉で書いた部分だけが、知らない人を連れてきます。

03AIエージェントに頼む言い方が変わっても、Claude Codeのスキルが発火しないのを防げますか?

高梨課長
高梨課長の発言

言い回しは人によってばらばらです。全部書き出すことになるんでしょうか。

鈴木さん
鈴木さんの発言

全部は要りません。機能名で呼ぶ言い方と、用件だけを言う言い方。この2種類が混ざっていれば、あいだのゆれは文章として拾われます。

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

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

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

  1. ユーザーが実際に送ってきそうな言い回しを、口調そのままで3〜5個書き出す
  2. 機能名を含む言い回しと、機能名を含まない状況の言い回しを両方入れる
短い名札と、長い付箋の使い分け重なっている部分が、判定に効く範囲です短い名札と、長い付箋の使い分け重なっている部分が、判定に効く範囲ですdescriptionwhen_to_use対象と操作/使う場面/外す場面生の言い方/依頼の実例/崩れた口調後ろに連なる後ろに連なる : 一覧では続けて読まれる / どちらも判定の材料になる / 合計の上限を分け合う短く保ちたい側と、量を置きたい側を分けると、両方を諦めずに済みます。
短い名札と、長い付箋の使い分け — 重なっている部分が、判定に効く範囲です

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

書き出すときの目安は、社内の誰かが実際に打った言い方を、そのまま置くことです。整えた例文よりも、崩れた言い方のほうが照合には効きます。

04似たスキルが並ぶとき、AI社員はどちらを選ぶんですか?

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

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

スキル除外する場面代わりのスキル区別する理由
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内に書くと、似たものが並んでも、範囲の広さではなく役割の違いで選べます。

案内板があると、隣も本業に戻れる外す場面を書くのは、狭める行為ではありません案内板があると、隣も本業に戻れる外す場面を書くのは、狭める行為ではありません行き先を書いていない重なった依頼に両方が手を挙げる広く書いてあるほうが持っていく気づくのは出てきた形を見た時点取り違えても、画面には何の合図も出ません行き先まで書いてある外す場面をひと言で置く渡す相手の名前をそのまま書く受け持ちの違いを短く添える渡された側も、本来の依頼を受け取れます
案内板があると、隣も本業に戻れる — 外す場面を書くのは、狭める行為ではありません

たとえば、議事録を要約するスキルと、商談後の議事録を作るスキルのように対象が重なる2本を、除外条件なしで書いたとします。ユーザーが「昨日のMTGをまとめて」と頼むと、どちらのdescriptionにも一致します。気づくのは、出てきた議事録の項目が期待と違うと感じた時点です。

除外条件は、自分のスキルを狭める文ではありません。行き先を書いた案内板です。案内板があるほうが、隣のスキルも本来の依頼を受け取れます。

スキルそのものの分け方や命名の考え方は、AIエージェントのスキル設計|呼ばれる単位に分ける4つの型にまとめています。

この章のまとめ

除外条件は「使わない場面」の宣言ではなく、「そこは隣が担当します」という引き渡しです。

05自動で呼ぶか手で呼ぶか、エージェントのスキル起動はどこで切り替えるんですか?

高梨課長
高梨課長の発言

除外条件を書けば、自動で呼ばれるのを止められる、という理解でよいですか。

鈴木さん
鈴木さんの発言

そこは別のつまみです。除外条件は「どちらの担当か」を書くもので、起動そのものを止める設定は別のフィールドにあります。混ぜると、書いたのに効かないという感じ方になります。

除外条件を書く場所と、起動そのものを止める場所は別のフィールドです。

フィールド役割効果
description発火条件の判定材料(何をするか+いつ使うか)Claude・ユーザー双方が起動可能
when_to_use言い換え表現・依頼例の追加description末尾に連結され判定に効く
disable-model-invocationClaudeによる自動起動の禁止ユーザーの手動起動(/name)のみ可能に
user-invocable/メニューからの手動起動の禁止Claudeによる自動起動のみ可能に
表には出てこない、4つ目の区画2つのつまみを掛け合わせると現れます表には出てこない、4つ目の区画2つのつまみを掛け合わせると現れます呼ばれるのを待つだけ指名の入口を閉じた状態どちらの入口も開いている何も足していない既定の姿どこからも届かない設定としては書けてしまう組み合わせ指名されたときだけ動く寄ってくるのをやめさせた状態上:向こうから寄ってくる / 下:寄ってこない左:こちらから指名できない / 右:指名できる
表には出てこない、4つ目の区画 — 2つのつまみを掛け合わせると現れます

表は2つの設定を1つずつ説明しますが、実際には同時に効きます。掛け合わせると、表には出てこない区画がひとつ現れます。両方を止めた組み合わせですここに入ったスキルは、Claudeからも手からも呼べません。発火しないと悩んでいる原因が、ここに座っていることもあります。

06書いたスキルのdescriptionが効いているかは、生成AIにどう確かめるんですか?

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

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

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

表の2行は、向きが逆の失敗です。片方だけを直すと、もう片方へ振れます。具体的にすればするほど、拾えていた依頼を落とします。両方向を同じだけ試してから、descriptionを確定させます。

07スキルの発火精度は、AIエージェントに測らせることもできるんですか?

的中率まで出したいときは、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公式ブログ)。

自分で試す言い回しは、どうしても自分が思いつく範囲に寄ります。発火させたくない側のプロンプトまで作らせる意味は、そこにあります。

説明文の発火精度をスキル群まとめて測った記録は、Agent Skillsの発火精度を検証した記事にあります。

この章のまとめ

「書いた」と「呼ばれた」は別々に数えます。呼んで確かめるところまでが、descriptionを書く作業の一部です。

08説明文が長すぎると、AI導入したスキルは一覧から落ちるんですか?

Claude Codeは、descriptionとwhen_to_useの合計を1,536文字で切り詰めます(出典: Claude Code公式)。

スキル数が増えて一覧全体の予算を超えると、呼び出し頻度が低いスキルから順にdescriptionが落とされます。一覧の予算は既定で、モデルのコンテキストウィンドウの1%です。skillListingBudgetFractionを0.02(2%)のように上げると広げられます(出典: Claude Code公式)。

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

これは、呼ばれない状態が自分で自分を強める形になっている、ということでもあります。

回りはじめると、自分で自分を締めるどの地点も、不具合の顔をしていません回りはじめると、自分で自分を締めるどの地点も、不具合の顔をしていません1話しかけても寄ってこない名札が薄いか、棚に並んでいない2使った記録が積み上がらない手が伸びた回数が増えないまま3名札が一覧から外される使われていない側から先に4探しても見つからなくなるもう文面の問題ではなくなる鈴木さん手で一度だけ指名しておくと、この輪はそこで切れます
回りはじめると、自分で自分を締める — どの地点も、不具合の顔をしていません

輪のやっかいなところは、どの地点も不具合には見えないことです。名札は書いてあるし、設定も通っている。ただ順番に回っているだけです。最初の1回を手で呼んでおくと、そこで輪は切れます。

09一人称で書くと、AIエージェントのスキル選びに何が起きるんですか?

descriptionには文体の規約があります。三人称で書く、という規約です。

「私がPDFを処理します」「あなたはこれでPDFを処理できます」のような一人称・二人称は、システムプロンプトに挿入されたときに視点が揺れ、判定の精度を落とします(出典: Anthropic公式)。他のスキルのdescription群からも浮きます。

三人称で「〜する」「〜を生成する」と言い切る形に統一します。日本語なら、主語を省いた言い切りがそのまま三人称になるので、「〜します」を「〜する」に直すだけでも揃います。

10nameの制約に触れると、Claude Codeのスキルはエージェントに見つからず発火しないんですか?

若葉さん
若葉さんの発言

一覧に出てこないときも、descriptionを直せばいいんでしょうか。

鈴木さん
鈴木さんの発言

それは別の失敗です。名前の付け方が規約から外れていると、そもそも棚に並びません。並んでいないものは、名札を書き直しても出てきません。

nameは64文字以内、小文字・数字とハイフンのみで、anthropicclaudeという予約語を含められません(出典: Anthropic公式)。

この制約に違反すると、descriptionの書き方以前に、スキル自体が一覧に現れません。名前を直接打っても見つからず、Claudeが自動で選ぶ候補にも入りません。「発火しない」ではなく「存在しない」扱いになる、別の失敗です。

切り分けは先に済ませます。「What skills are available?」で一覧に出るかを見て、出ていればdescriptionの言い回しの問題、出ていなければnameか設定の問題です。順番を逆にすると、直しても変わらない作業を続けることになります。

フロントマターの各項目の書き方そのものは、SKILL.mdの書き方、フロントマターから参照ファイル分割までで扱っています。

11AI活用の現場で、スキルのdescriptionはどの順番で直していけばいいんですか?

ここまでの要素を、積む順番に並べ直します。

下から積む。飛ばした層は効かない上だけ足しても、土俵に乗らないままです下から積む。飛ばした層は効かない上だけ足しても、土俵に乗らないままです境目:隣との受け持ちの違い広さではなく役どころで分ける外す:受けない場面と渡す先重なりを引き渡しに変える生の言い方:その人が使う言葉機能名ありと、用件だけの両方土台:扱うものと、寄る場面ここが無いと比べる相手にすらならない運用しながら足せるのは上の層だけ。土台は最初に書き切ります。
下から積む。飛ばした層は効かない — 上だけ足しても、土俵に乗らないままです

下の層が欠けたまま上を足しても、効きません。言い換えをいくつ並べても、何をするスキルなのかが書かれていなければ、そもそも比べる土俵に乗らないからです。逆に、土台さえあれば、上の層は運用しながら足していけます。

自分のdescriptionを見直すときは、下から順に読み上げて、どこで手が止まるかを見ます。

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

12よくある質問

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公式)。海外製のスキルを日本語の依頼で使いたいときに使える書き方です。

13まとめ|今日やる3つのこと

呼ばれるかどうかは、中身ではなく名札で決まっていました。名札には積む順番があり、下の層が欠けたままだと、上をいくら足しても効きません。そして、書いた事実は呼ばれた事実の代わりになりません。

今日この順で手をつけます

  1. 呼ばれていないスキルのdescriptionを開き、「いつ使うか」が書いてあるかを見る

    抜けていれば、ここが最短の一手です

  2. 社内で実際に飛んできた依頼の言い方を、そのままwhen_to_useへ写す

    整えた例文よりも、崩れた言い方のほうが効きます

  3. 「What skills are available?」で一覧に出るかを見てから、その言い方で実際に頼んでみる

    出ない場合はnameを、出るのに呼ばれない場合は文面を疑います

AI検索では、こう聞かれています

  • Claude Codeのスキルが発火しないのは何が原因ですか?

    「Claude Codeのスキルが発火しないのは、AIエージェントが何を見て選んでいるからですか?」の章で説明しています

  • descriptionには何を書けば呼ばれるようになりますか?

    「起動語を並べただけのdescriptionでは、AI社員のスキルがなぜ呼ばれないんですか?」の章で2部構成を示しています

  • 似たスキルが並ぶとき、どうやって区別させるんですか?

    「似たスキルが並ぶとき、AI社員はどちらを選ぶんですか?」の章で除外条件を扱っています

  • スキルが一覧に出てこないのはなぜですか?

    「nameの制約に触れると、Claude Codeのスキルはエージェントに見つからず発火しないんですか?」の章にあります

次に読むなら、この記事です