毎回同じ手順をClaude Codeに貼り付けていませんか。その繰り返しをSKILL.mdファイルに切り出すと、Claudeが必要なタイミングで自動的に読み込んでくれます。
この記事でわかること
- Claude Code Skillsが解決する「繰り返し指示」の問題
- SKILL.mdの基本的な書き方
- 参照型とタスク型の使い分け
- フロントマターで挙動を制御する方法
- 個人・プロジェクト・プラグインの保存場所の違い
Skillsとは何か
Claude Code Skills(スキル)は、繰り返し使う手順や知識をClaude Codeに登録できる仕組みです。SKILL.mdというファイルに指示を書くと、Claudeは会話の流れから自動でスキルを呼び出します。/スキル名と入力して手動で起動することも可能です。
Anthropicの公式ドキュメントでは、スキルを使う目安として「同じ指示をチャットに何度も貼り付けている」「CLAUDE.mdの一部が手順書になってきた」という状況を挙げています。
繰り返し指示が抱える問題
Claudeに特定の作業を頼むとき、毎回「コードレビューは△△のルールで」「コミットメッセージはConventional Commitsで」と書いていませんか。
この繰り返しには見えないコストがあります。指示が長いほどコンテキストウィンドウを消費し、手順を変更したいときは漏れなくすべての指示を書き直す必要があります。CLAUDE.mdに大量の手順を書くと、毎回の会話でそれを読み込むため、コンテキストが無駄に圧迫されます。
Skillsはこれを解決します。スキルは使われるときだけコンテキストに入るため、CLAUDE.mdに何でも詰め込むより効率的です。
Skillの作り方
1. ディレクトリを作る
スキルはディレクトリ単位で管理します。ディレクトリ名がそのままコマンド名になります。
mkdir -p ~/.claude/skills/summarize-changes
この例では/summarize-changesというコマンドが作られます。
2. SKILL.mdを書く
ディレクトリ内にSKILL.mdを作ります。YAMLフロントマターとMarkdownの本文で構成します。
---
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---
## Current changes
!`git diff HEAD`
## Instructions
Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating.
!\git diff HEAD“はダイナミックコンテキスト注入と呼ばれる記法です。ClaudeがSKILL.mdを読む前にこのコマンドが実行され、実際のdiff出力に置き換わります。Claudeには「現在の実際の差分を含んだ指示」が届くため、的確な応答が得られます。
3. 動作確認する
gitプロジェクトでClaudeを起動し、「今の変更を教えて」と話しかけるか、/summarize-changesと直接入力します。どちらでもスキルが起動します。
SKILL.mdを編集すると、セッションを再起動しなくても変更が即座に反映されます。
参照型とタスク型の使い分け
参照型(Reference content)
Claudeが現在の会話に適用すべき知識やルールを書きます。APIの設計規約、コーディングスタイル、ドメイン知識などが典型例です。
---
description: API design patterns for this codebase
---
When writing API endpoints:
- Use RESTful naming conventions
- Return consistent error formats
- Include request validation
会話の流れからClaudeが自動で読み込むため、ユーザーは何も入力しなくてもルールが適用されます。
タスク型(Task content)
デプロイ、コミット、Slack通知など副作用を伴うアクションの手順を書きます。Claudeが意図せず自動実行しないよう、disable-model-invocation: trueを設定します。
---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
---
Deploy the application:
1. Run the test suite
2. Build the application
3. Push to the deployment target
/deployと入力したときだけ実行されます。コードが完成形に見えてもClaudeが勝手にデプロイすることはありません。
フロントマターで挙動を制御する
SKILL.mdのフロントマターには、スキルの動作を細かく設定できるフィールドがあります。
| フィールド | 役割 |
|---|---|
description |
Claudeがスキルを使うタイミングを判断する説明。最初に書くべき項目 |
disable-model-invocation |
trueにするとClaudeが自動起動しなくなる。手動トリガーのスキルに使う |
user-invocable |
falseにするとメニューに表示されなくなる。Claudeだけが参照するスキルに向く |
allowed-tools |
このスキル実行中に許可するツールを指定。Read・Grepなどをスペース区切りで記述 |
context |
forkにするとサブエージェントで実行する |
paths |
特定のファイルパスで作業しているときだけスキルを有効にするglobパターン |
descriptionフィールドはClaude がスキルを自動選択する際の判断材料になります。「いつ使うべきか」を具体的に書くほど、Claudeが適切なタイミングで呼び出せます。
スキルの保存場所
スキルは4か所に置けます。同名のスキルが複数ある場合、エンタープライズ設定 > 個人 > プロジェクトの順で優先されます。
| 保存場所 | パス | 適用範囲 |
|---|---|---|
| 個人 | ~/.claude/skills/<name>/SKILL.md |
自分のすべてのプロジェクト |
| プロジェクト | .claude/skills/<name>/SKILL.md |
そのプロジェクトのみ |
| プラグイン | <plugin>/skills/<name>/SKILL.md |
プラグインが有効な環境 |
汎用的な手順(コミット規約、コードレビュールールなど)は個人スコープに、チーム固有の規約はプロジェクトスコープに置くと管理しやすくなります。
サポートファイルの活用
SKILL.mdの中だけで手順が完結しない場合、同じディレクトリにサポートファイルを追加できます。
my-skill/
├── SKILL.md # 概要と参照先(必須)
├── reference.md # 詳細なAPIドキュメント
├── examples.md # 出力例
└── scripts/
└── helper.py # Claudeが実行するスクリプト
SKILL.mdにサポートファイルへの参照を書いておくと、Claudeは必要に応じてそれらを読み込みます。使われないときはコンテキストに入らないため、無駄な消費を避けられます。SKILL.mdは500行以内に収めることが推奨されています。
まとめ
Claude Code Skillsは、繰り返し使う手順をSKILL.mdに切り出してコマンド化する仕組みです。参照型はClaudeが会話から自動で読み込み、タスク型は/コマンド名で手動起動します。フロントマターのdisable-model-invocationやallowed-toolsを使えば、安全で意図的な実行フローを設計できます。
公式ドキュメントには、引数渡し($ARGUMENTS)、サブエージェント実行、フック統合など、より高度なパターンも詳述されています。