「nameとdescriptionは埋めました。そのあと、何を書けばいいんでしょうか」。スキルを1本作ろうとした人から、この質問が出ます。
雛形そのものは公式ドキュメントに載っています。ところが、埋めたあとの本文をどこまで書くか、どこから別のファイルへ移すかは、雛形の外側にあります。手が止まるのはたいていここです。
この記事は、SKILL.mdを最初から最後まで1本書き切るまでを追います。素材は公式ドキュメントの記載と、新入社員の受け入れ準備を作るスキルを実際に組み立てた例です。
こんなふうに調べていませんか
- SKILL.mdの雛形は見つけたが、本文に何をどれだけ書けばよいか決められない
- 書いても呼ばれないと聞くので、そもそも書き方が合っているのかを確かめたい
この記事を読み終えたときに手に入るもの
- フロントマター・本文・切り出しの3段を、この順に決められるようになります
- 説明を足す前に、相手がすでに知っていることかどうかを切り分けられるようになります
- 書き終えたスキルが届いているかを、3点の目視確認で判定できるようになります
結論30秒でわかる、この記事の結論
- SKILL.mdの書き方は、フロントマター→本文→切り出しの3段で決まります。順番を入れ替えると、あとで書き直す量が増えます。
- 3段は読み込まれるタイミングが違います。どこに書いたかで、そのスキルが抱えさせる重さが変わります。
- 書き終わりは行数では決まりません。一覧に出るか、引数が展開されるか、参照ファイルが読まれるか。この3点を目で見ます。
進行役は3人です。若葉さんが言葉のところから聞き、高梨課長が自分の手で書く側から聞き、鈴木さん(本誌監修)が答えます。
01SKILL.mdの書き方は、AIエージェントに何をさせる指示書なんですか?
若葉さんSKILL.mdって、結局のところ何を書くファイルなんでしょうか。
鈴木さん引き継ぎのメモに近いと思っています。表紙に呼び名と「どんなときに開くか」を書いて、中身に手順を書く。細かい資料は別紙にして、要る人だけが開く。その形をファイルにそろえたものです。
SKILL.mdは、AIエージェントに定型の仕事を渡すための1枚です。書く内容は、次の3つの決定に分かれます。
- フロントマターで、nameとdescriptionを決める
- 本文を、概要・手順・例外の順で書く
- 行数が増えた部分を、references・scriptsへ切り出す
この順番には理由があります。次の章で見るとおり、3つは読み込まれるタイミングが違うためです。先に本文から書き始めると、どこまでを表紙に出すかが決まらないまま長くなります。
何をスキルにするかの線引きと、命名・分割の型そのものは、AIエージェントのスキル設計|呼ばれる単位に分ける4つの型で扱っています。本記事は、その線引きが済んだあとの「1本を書き切る」ところだけを担当します。
例として、新入社員のオンボーディングチェックリストを作るonboarding-checklistというスキルを、nameを決めるところから組み立てます。
02SKILL.mdは、AIエージェントが読むタイミングで何が変わるんですか?
Claude Codeは、スキルの内容を3つの階層に分けて読み込みます。起動時に読むのは、nameとdescriptionだけです。本文は発火した瞬間に読み込まれます。参照ファイルとスクリプトは、本文が実際に呼んだ時だけ読み込まれます(出典: Anthropic公式Skills概要)。
| レベル | 内容 | 読み込まれるタイミング | コストの目安 |
|---|---|---|---|
| レベル1: メタデータ | name・description | 起動時に常時 | 1スキルあたり約100トークン |
| レベル2: 本文 | SKILL.mdの手順・判断基準 | 発火した瞬間 | 5,000トークン未満が目安 |
| レベル3: 参照・スクリプト | references・scripts・assets | 本文が参照した時だけ | 参照されるまで0 |
(出典: Anthropic公式Skills概要)
この表で押さえるのは、内容の重要度ではありません。費用を払う時点です。呼び名と説明文は、使わない日も抱え続けます。本文は呼ばれた回だけ、参照ファイルは開いた回だけ払います。
だから、書く場所を選ぶ作業は「短くまとめる技術」ではありません。いつ払うかを選ぶ作業です。常に抱えるところへ長い文章を置けば、その重さは毎日ぶんになります。
3つの決定が、フロントマター→本文→切り出しの順で並ぶ理由もここにあります。いちばん高い場所から順に、何を残すかを決めていく並びです。
この章のまとめ
3階層は、内容の重要度で分かれているのではありません。読み込まれるタイミング、つまり費用を払う時点で分かれています。
03SKILL.mdを置く場所は、AI導入のどの単位で決めるんですか?
高梨課長自分ひとりで使うのと、同じ現場の全員で使うのとで、置き場所は変えるものでしょうか。
鈴木さん配布したい範囲で決めています。手元だけで試すなら個人用、同じプロジェクトを触る人全員に効かせたいならプロジェクト用です。最初の1本は個人用のほうが、取り消しが楽だと思います。
置き場所は、配布範囲で選びます。個人用は~/.claude/skills/、プロジェクト用は.claude/skills/です。本記事は、個人用フォルダに1本作る前提で進めます。
特別な権限は要りません。必要なのは、置き場所を決めることと、ファイルを書く権限だけです。書き始める前に確かめるのは、次の3点です。
- Claude Codeがインストール済みであること(バージョンは
claude --versionで確認する) - 個人用かプロジェクト用かを決めていること(配布範囲で使い分ける)
- 同じ名前のスキルが無いことを
lsで確認していること
mkdir -p ~/.claude/skills/onboarding-checklist検証環境は、Claude Code公式ドキュメント(code.claude.com/docs)です。Anthropic公式ドキュメント(platform.claude.com/docs)もあわせて確認しています。いずれも2026-08-02時点の記載です。
この章のまとめ
置き場所は好みではなく、そのスキルを誰に効かせたいかで決まります。迷ったら、取り消しやすい個人用から始めます。
04SKILL.mdのnameは、生成AIから見て何を名乗る欄なんですか?
nameは、そのスキルの呼び名です。制約は4つあります。
- 64文字以内であること
- 小文字・数字・ハイフンのみであること
- XMLタグを含まないこと
- 予約語(anthropic・claude)を含まないこと
(出典: Anthropic公式ベストプラクティス)
onboarding-checklistは20文字で、この4条件を満たします。命名の型を選ぶ基準はここでは扱いません。本記事が見るのは、制約を満たしているかの最終チェックだけです。
4つの制約は、どれも形の話です。判断が要るのは、次に決める説明文のほうです。
この章のまとめ
呼び名は、中身の良し悪しではなく形で落ちます。形の誤りだけ先に消しておけば、あとは中身の検討に集中できます。
05descriptionの書き方は、AIエージェントが呼ばれる条件にどう効くんですか?
descriptionは、何をするか・いつ使うかの2部構成で、1,024文字以内に書きます(出典: Anthropic公式ベストプラクティス)。省略した場合、Claude Codeは本文冒頭の段落を代わりに使います(出典: Claude Code公式ドキュメント)。省略せず明示したほうが、発火条件は安定します。
---
name: onboarding-checklist
description: 新入社員の受け入れ準備を、部署・雇用形態別のテンプレートから生成する。新しく人が入ると聞いたとき、または初日から1か月のタスクを整理したいときに使う。
---チェックの並びが示すのは、直していく順序です。形の誤りは見た瞬間に分かりますが、説明文の中身は、書き直しても効いているかどうかが目に見えません。だから先に形を片づけ、判断が要る欄だけを残します。
name・description以外のフィールドは、必要になった時だけ足します。
| フィールド | 使うタイミング | onboarding-checklistでの例 |
|---|---|---|
| when_to_use | 言い換え表現を追加したい時 | 「新しい人が入る」「初日の準備」を追記 |
| argument-hint | 手動起動時に入力例を見せたい時 | [部署名] [雇用形態] |
| arguments | 引数を名前で本文に渡したい時 | [department, employment_type] |
| paths | 特定ファイルを触った時だけ発火させたい時 | 今回は未設定(全社共通のため) |
(出典: Claude Code公式ドキュメント)
argumentsを使うと、本文で$departmentのように名前で参照できます。
---
name: onboarding-checklist
description: 新入社員の受け入れ準備を、部署・雇用形態別のテンプレートから生成する。新しく人が入ると聞いたとき、または初日から1か月のタスクを整理したいときに使う。
argument-hint: [部署名] [雇用形態]
arguments: [department, employment_type]
---呼ばれる条件そのものを詰めたいときは、Claude Codeのスキルが発火しない|descriptionを直す4層にまとめています。
06SKILL.mdの本文の書き方は、AI社員にどこまで説明すればいいんですか?
若葉さん親切に書いたほうがいいと思って、つい説明を足してしまいます。
鈴木さんそこは逆に働くことがあります。相手はもう知っているかもしれない。だから足す前に、この1文はうちの事情なのか、それとも一般的な話なのかを分けています。うちの事情だけが残る、という感覚です。
Anthropic公式は、Claudeを既に知識のあるモデルとして扱うことを勧めています。説明を足す前に、「Claudeは本当にこれを知らないか」を1文ずつ確かめます(出典: Anthropic公式ベストプラクティス)。onboarding-checklistの本文なら、テンプレートの選び方だけ書けば足ります。チェックリストとは何かを説明する必要はありません。
作業の自由度によって、書き方の粒度も変えます。
| 自由度 | 使う場面 | 書き方 | onboarding-checklistでの例 |
|---|---|---|---|
| 高い | 複数のやり方が正解になる作業 | 手順を箇条書きにし、判断はClaudeに委ねる | チェックリストの文言調整 |
| 中程度 | 型はあるが変動を許す作業 | パラメータ付きの疑似コードを示す | 部署別テンプレートの選び方 |
| 低い | 手順を外すと壊れる作業 | 実行するコマンドをそのまま書き、改変を禁じる | 台帳への書き込みスクリプトの実行順 |
(出典: Anthropic公式ベストプラクティス)
2軸に置き直すと、表だけでは見えないものが出てきます。何も書かなくてよい区画です。相手が知っていて、しかも外れても直せる作業。ここに文章を足しても、発火のたびに費用だけがかかります。
削る判断は、書く判断より難しく感じます。ただ、削る対象は文章の出来ではありません。区画を見て、そこにあるべきでない文を外すだけの作業です。
07SKILL.mdの手順は、AIエージェントが読む順番でどう並べるんですか?
本文は、概要→手順→例外の3層で並べます。それぞれの役割は次のとおりです。
- 概要:1〜2文で、何をするスキルかを言い切る
- 手順:最も多いケースを先に示し、番号付きのステップを続ける
- 例外:まれなケースを短く書き、詳細は参照ファイルへリンクする
# オンボーディングチェックリスト作成
新入社員の受け入れ準備を、部署・雇用形態別のテンプレートから生成する。
## 手順
対象者の部署と雇用形態を確認し、templates/standard.mdの項目を埋める。
進捗:
- [ ] 手順1: 部署名と雇用形態を確認する
- [ ] 手順2: 入社日から初日・1週間・1か月のタスクへ逆算する
- [ ] 手順3: 部署固有の準備物をreferences/department-notes.mdで確認する
## 例外
雇用形態が業務委託のときは、社内SSOの発行手順が異なる。詳細は[CONTRACTOR.md](CONTRACTOR.md)を見る。この並びが崩れる場面が1つだけあります。データを先に取得してから指示を出したい時です。` !command `という書き方で、Claudeが本文を読む前に、コマンドの実行結果へ置き換わります(出典: Claude Code公式ドキュメント)。この時だけ、データを先に置き、指示をあとに書きます。
例外がこの1つだけなのは、既定の並びが「読む側が上から必要な分だけ拾える」形になっているからです。材料を先に置く並びは、その拾い方を崩す代わりに、判断の材料をそろえてから読ませます。
この章のまとめ
並べ方の既定は概要→手順→例外です。前置きが実行結果に置き換わるときだけ、材料が先に来ます。
08一度読まれたSKILL.mdは、AI活用のあいだずっと居座るんですか?
一度発火したSKILL.mdの内容は、そのままではセッション中ずっとコンテキストに残ります。ただし会話が長くなり自動要約が働くと、直近に呼んだスキルほど優先され、古い呼び出しほど丸ごと落ちることがあります(出典: Claude Code公式ドキュメント)。
層を分けて簡潔に保つ意味は、行数の見た目にはありません。この居座るコストと、要約されたときの生き残りやすさにあります。長い本文は、居座るあいだは重く、落ちるときは丸ごと落ちます。
丸ごと落ちるという性質は、分けておく理由をもう1つ足します。別紙へ出してあれば、必要になった時にもう一度たどり直せます。本文に書き切ってしまうと、落ちたあとに取り戻す道が残りません。
この章のまとめ
本文の重さは、書いた時点ではなく呼ばれたあとに出ます。長く抱えることになるものほど、短く保つ価値があります。
09SKILL.mdをreferencesとscriptsへ切り出す基準は、AI導入で何を守るんですか?
高梨課長どのくらい長くなったら、別のファイルへ分けるものでしょうか。
鈴木さん行数も見ますが、先に中身の性質で決めています。読んで解釈してほしいものと、そのまま実行してほしいものは、置き場所を分ける。混ぜたまま伸ばすと、あとで分けるほうが大変になります。
SKILL.mdの本文には、500行という目安と、参照は1階層までという制約があります。ここでは、複数ファイルに分ける時、何をどこに置くかの基準を扱います。
置き場所は、内容の性質で決まります。
| 種別 | 置き場所 | 判断基準 | onboarding-checklistでの例 |
|---|---|---|---|
| 決定的な処理 | scripts/ | 毎回同じ手順で結果が決まる。「実行して」と書く | テンプレートを検証するvalidate_template.py |
| Claudeが読んで判断する知識 | references/ | 内容を読んで解釈する必要がある。「見て」と書く | 部署ごとの特記事項department-notes.md |
| 雛形・サンプル | templates/ | そのまま使う、埋め込む素材 | チェックリストの雛形standard.md |
(出典: Anthropic公式ベストプラクティス)
scripts/に置いたコードは、実行結果だけがコンテキストに乗ります。コード自体は乗りません(出典: Anthropic公式Skills概要)。本文には「実行して」と「見て」のどちらを期待しているかを明記します。書かないと、読むだけでよいスクリプトの中身を、Claudeが本文にそのまま貼り付けることがあります。
この章のまとめ
性質で分ければ、読ませたいものと実行させたいものが混ざりません。長さを見るのは、そのあとです。
10SKILL.mdから参照ファイルを分ける軸は、AIエージェントの無駄をどこで減らすんですか?
参照ファイルが100行を超える場合は、先頭に目次を置きます。部分的にしか読まれなかった時も、目次だけで全体をつかめるようにするためです(出典: Anthropic公式ベストプラクティス)。
複数の参照ファイルに分ける軸は、詳細度ではなく業務領域です。部署別に情報が増えるなら、1本のファイルにせず、references/sales.mdとreferences/engineering.mdのようにドメインで分けます。営業部の質問で、経理部の情報まで読み込む無駄を避けられます(出典: Anthropic公式ベストプラクティス)。
切り出しを検討するサインは3つです。
- 本文が500行に近づいている
- 同じ説明を、複数のセクションで繰り返している
- 部署や製品など、複数のドメインの知識が混ざっている
最終的なディレクトリは、次の形になります。
onboarding-checklist/
├── SKILL.md
├── templates/
│ └── standard.md
├── references/
│ └── department-notes.md
├── CONTRACTOR.md
└── scripts/
└── validate_template.pyこの章のまとめ
分ける基準は、長さが先ではありません。読ませたいのか、実行させたいのか、埋め込ませたいのか。性質で分けてから、長さを見ます。
11SKILL.mdの書き方でつまずくのは、エージェントの何が見えていないからですか?
つまずきは3つに集まります。共通するのは、書き手の画面からは正しく見えている点です。
1つめは、説明を書きすぎることです。 Claudeが既に知っている前提を毎回言葉で説明し直すと、本文が長くなります。Anthropic公式が示す例では、同じ内容を丁寧に説明した本文は、簡潔な書き方の約3倍のトークンを使っていました(出典: Anthropic公式ベストプラクティス)。onboarding-checklistなら、テンプレートの選び方だけを書きます。チェックリストとは何かは書きません。
2つめは、参照を2階層以上にすることです。 SKILL.mdからadvanced.mdへ、advanced.mdからdetails.mdへと孫参照を作ると、Claudeはheadコマンドで先頭だけを読むことがあります。details.mdの情報に届かないまま処理が進みます(出典: Anthropic公式ベストプラクティス)。参照は、SKILL.mdから1階層にとどめます。
前後で入れ替わったのは、情報の量ではありません。届く保証のほうです。深い置き方でも、全部読まれれば同じ答えが出ます。読まれない時が混ざるだけです。
だから、この不具合は再現しにくい形で出ます。動く日もあれば、届かない日もある。原因を追いにくいのは、階層の深さそのものではなく、この当たり外れのほうです。
3つめは、実行してほしいのか読んでほしいのかを本文に書かないことです。 スクリプトへの言及だけでは、実行するのか参照するのかが伝わりません。「実行して」と「アルゴリズムはこのファイルを見て」を書き分けます(出典: Anthropic公式ベストプラクティス)。書き分けないと、決定的な処理のはずが、Claudeによる再生成に置き換わることがあります。
12書いたSKILL.mdが、AIエージェントに届いたかはどう確かめるんですか?
高梨課長書き終わったあと、どこまで確認すれば「できた」と言えるのでしょうか。
鈴木さん3点だけ見ています。一覧に出るか、引数が展開されるか、参照ファイルが読まれるか。ここが通れば、最初の1本としては十分だと考えています。
書き終えたら、次の3点を確認します。
| チェック項目 | 合格の基準 | 不合格の時に疑う場所 |
|---|---|---|
| 一覧に出るか | 「What skills are available?」の返答に、名前と説明文が出る | nameの文字数・禁止文字・予約語 |
| 引数が展開されるか | /onboarding-checklist 営業部 正社員で$departmentが値に置き換わる | argument-hintとargumentsの綴り |
| 参照ファイルが読まれるか | 該当ケースで、参照先の内容が回答に反映される | 本文中のリンクの階層・相対パス |
3点は並べて選ぶものではなく、順に積み上がっています。どこで落ちたかが、直す場所をそのまま指します。 一覧に出ないなら表紙、引数が展開されないなら綴り、参照が読まれないなら階層です。
1つめは、発火条件そのものの確認です。2つめは、引数付きで手動起動し、展開結果を目で確かめます。3つめは、業務委託のケースをわざと聞き、CONTRACTOR.mdの内容が答えに反映されるかを見ます。うまくいっている時といない時の見分けがつきにくいので、外れそうなケースを自分で作るところまでを確認に含めます。
数を測って発火精度を検証する方法は、Agent Skillsの発火精度|59本の監査で見えた検証の組み立て方で扱っています。1本を書き終えた直後は、この3点の目視確認で足ります。
この章のまとめ
書き終わりの判定は、行数ではありません。3点が通ったかどうかです。落ちた場所が、そのまま直す場所になります。
13よくある質問
SKILL.mdは日本語で書いてよいですか
本文は日本語で問題ありません。nameは規約上、小文字・数字・ハイフンのみのため、英語表記になります。呼び名だけが英語で、中身は日本語という形になっても、読み込みの仕組みは変わりません。表紙にあたるdescriptionも日本語で書けます。
1つのSKILL.mdに複数の業務を詰め込んでよいですか
推奨しません。発火条件が曖昧になります。同じスキルの中に、性質の違う業務を混ぜないことが線引きの基本です。詰め込むと、片方の業務で呼ばれたときにもう片方の手順まで読み込むことになり、常に払う費用が増えます。
referencesやscriptsを作らず、SKILL.md1本で完結させてよいですか
短い手順なら問題ありません。500行、または5,000トークンに近づいた時だけ、切り出しを検討します。最初から分けると、どこに何を書いたかを覚えておく手間のほうが大きくなります。分けるのは、繰り返しが出てきてからで足ります。
書いたのに発火しない時、最初に疑う場所はどこですか
nameの制約違反か、descriptionの記述不足です。descriptionの書き方は、本文の「descriptionの書き方は、AIエージェントが呼ばれる条件にどう効くんですか?」で扱った2部構成に沿っているかを見直します。形の誤りが残っていると、中身をいくら直しても一覧に出ません。
descriptionを省略したら、どうなりますか
Claude Codeは本文冒頭の段落を代わりに使います。動きはしますが、冒頭の書き出しが発火条件を兼ねることになります。本文を書き直すたびに発火の条件も変わってしまうため、省略せず明示するほうが安定します。
スクリプトの中身をSKILL.mdにそのまま貼ってもよいですか
動きますが非効率です。scripts/へ分けて「実行して」と書けば、コードそのものはコンテキストに乗りません。出力だけが乗ります。貼ったままにすると、そのスキルを呼ぶたびにコード全体を読み込ませることになります。
14まとめ|今日やる3つのこと
3段の順番は、フロントマター→本文→切り出しでした。3段が分かれているのは重要度ではなく、読み込まれるタイミングでした。そして書き終わりは、行数ではなく3点の目視確認で決まります。
最初の1本は、この順で手を動かします
個人用フォルダに、スキル名のディレクトリを1つ作る
取り消しやすい場所から始めると、やり直しの費用が小さく済みます
nameとdescriptionだけを書いて、一覧に名前が出るところまで確かめる
表紙が通らないと、本文は一度も読まれません
本文を概要・手順・例外の順で書き、うちの事情でない文を削る
削るところまで含めて、はじめて本文が終わります
AI検索では、こう聞かれています
SKILL.mdって、AIエージェントにどう読まれるんですか?
「SKILL.mdは、AIエージェントが読むタイミングで何が変わるんですか?」の章で説明しています
nameとdescriptionには何を書けばいいんですか?
「SKILL.mdのnameは、生成AIから見て何を名乗る欄なんですか?」の章から順に扱っています
referencesとscriptsは、どう使い分けるんですか?
「SKILL.mdをreferencesとscriptsへ切り出す基準は、AI導入で何を守るんですか?」の章で整理しています
書いたスキルが呼ばれないとき、どこを見ればいいですか?
「SKILL.mdの書き方でつまずくのは、エージェントの何が見えていないからですか?」の章にあります
次に読むなら、この記事です