0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code Skillが自動発動しない——description文字数を全14スキルで実測した検証ログ

0
Posted at

Skillを作ったのに呼ばれない。そんな経験をした時、よく「descriptionが長すぎるから」という解説に行き着く。

「1536字でカットされる」という数値がいくつかの記事で言及されていて、これを見た人が「自分のdescriptionを短くしなければ」と思い込むケースがある。実際に手元の全Skillのdescription文字数を数えて検証した。

結論:文字数は犯人ではなかった

実測した14スキルは全て1536字未満(最長948字)で、現在全て正常に自動発動している。

1536字という数値は本物の制限だが、「それを超えているからSkillが呼ばれない」という状況は実運用でほぼ起きない。実際には**「いつ呼ぶか」がdescriptionに書かれていないこと**が発動しない原因の大半を占める。

この記事の前提

検証環境:

  • Claude Code(claude.ai/code)
  • ユーザーレベルSkills(~/.claude/skills/):14スキル
  • プロジェクトレベルSkills(.claude/skills/):4スキル
  • 計測:2026年8月時点

何を測ったか:

  • 各Skillのmanifest.jsonからdescriptionフィールドの文字数を取得
  • when_to_useフィールドの有無を確認
  • 両者の合算が公式上限(1536字)に近いかを確認

よくある詰まり

  • Skillを作ったが期待した文脈で呼ばれない
  • 「descriptionが長いと呼ばれない」という情報を見てdescription削減を試みた
  • 削減しても改善しなかった

実測データ:14スキルの文字数テーブル

ユーザーSkills(~/.claude/skills/)

スキル名 description文字数 when_to_use 合計 1536字超
xlsx 948字 0字 948字 ✅ OK
docx 835字 0字 835字 ✅ OK
pptx 732字 0字 732字 ✅ OK
pdf 437字 0字 437字 ✅ OK
doc-coauthoring 428字 0字 428字 ✅ OK
morning 339字 0字 339字 ✅ OK
internal-comms 329字 0字 329字 ✅ OK
skill-creator 319字 0字 319字 ✅ OK
algorithmic-art 324字 0字 324字 ✅ OK
canvas-design 289字 0字 289字 ✅ OK
web-artifacts-builder 288字 0字 288字 ✅ OK
mcp-builder 277字 0字 277字 ✅ OK
theme-factory 262字 0字 262字 ✅ OK
brand-guidelines 236字 0字 236字 ✅ OK

プロジェクトSkills(.claude/skills/)

スキル名 description文字数
aidesigner-frontend 312字
article-policy 135字
publish-gate 124字
entry-triage 104字

全18スキル、1536字超えはゼロ。when_to_useフィールドを使っているSkillも現時点では存在しない。

1536字制限の正確な意味

Claude Code公式ドキュメントには次の記述がある:

"the combined description and when_to_use text is truncated at 1,536 characters in the skill listing to reduce context usage."

これは「descriptionだけで1536字」ではなく、descriptionとwhen_to_useの合算が1536字でカットされるという仕様だ。

例えばdescriptionが900字で、when_to_useが700字なら合計1600字となり、末尾の60字が落ちる。しかし自分のSkillの最長は948字(xlsx)でwhen_to_useはゼロ。1536字制限はまだ相当余裕がある。

では本当に呼ばれない原因は何か

主因は**「いつ呼ぶか」がdescriptionに書かれていないこと**だ。

例えばdescriptionが「マイグレーションをチェックする」という12文字しかなければ、Claudeは「いつ呼べばいいか」がわからない。「新しいSupabaseマイグレーションを作って」というリクエストが来ても、このdescriptionと照合するトリガーがない。

xlsx(948字)の長いdescriptionが機能する理由は、ファイルタイプの列挙(.xlsx, .xlsm, .xltx, .csv, .tsv)と「いつ使うか」の具体例が詰め込まれているからだ。文字数が多いのではなく、トリガー条件が明確だから呼ばれる。

発動しない時に先に確認すべき3点

1. 「いつ呼ぶか」が入っているか

  • Skillの目的を一行で説明する文
  • ユーザーが〇〇と言った時、または〇〇ファイルを扱う時に呼ぶ

2. 動詞と対象が具体的か

  • Code reviewer
  • Performs code review when the user asks to review a PR or check code quality

3. トリガーフレーズが自然言語に近いか

  • ユーザーが実際に使う言葉("commit", "deploy", "review PR")がdescriptionに含まれているかを確認する
  • Claudeはユーザーの入力とdescriptionをマッチングしているので、ユーザーが言わない言葉を書いても機能しない

文字数を削る前に、この3点を確認する。これで解決しない場合はdisable-model-invocationuser-invocableの設定を見直す。

まとめ

  1. 自分の全Skillのdescription文字数を計測する(cat ~/.claude/skills/manifest.json | python3
  2. 各descriptionに「いつ呼ぶか(when to use)」が含まれているかをチェック
  3. トリガー条件が曖昧なSkillを1本だけ書き直してテストする

文字数制限は存在するが、通常の運用で問題になる前に、description設計の方を直した方が発動率は上がる。


AI ツールを業務に組み込む設計の実験ログを書いています。 https://masatoman.net

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?