Claude Code のスキル機能:独自コマンドで作業を効率化する
デプロイ手順、PR レビューの観点、セキュリティチェックリスト——こういった手順を毎回 Claude Code に説明するのは手間がかかります。スキル機能を使うと、そういった手順をファイルに書き留めておき、/deploy や /pr-check のようなスラッシュコマンドとして呼び出せるようになります。一度定義しておけば引数を渡すだけで実行でき、.claude/skills/ をリポジトリに含めればチーム全体で同じ手順を使い回せます。
スキルで Claude を拡張する - Claude Code Docs
Claude Code でスキルを作成、管理、共有して Claude の機能を拡張します。カスタムコマンドとバンドルされたスキルが含まれます。
スキル機能とは
スキルとは、Claude Code に登録できるカスタムのスラッシュコマンドです。.claude/skills/{スキル名}/SKILL.md を作成しておくと、/{スキル名} で呼び出せるようになります。
スキルファイルの中身は Markdown で書いた指示文です。Claude Code はそのファイルを読み込み、内容に沿って処理を実行します。一度作っておけば何度でも再利用でき、リポジトリに含めておくとチーム全体で同じスキルを使えるようになります。
| 項目 | 内容 |
|---|---|
| 配置場所(プロジェクト) | .claude/skills/{スキル名}/SKILL.md |
| 配置場所(個人) | ~/.claude/skills/{スキル名}/SKILL.md |
| 呼び出し方 | /{スキル名} |
| 引数 | スラッシュコマンドの後ろにスペース区切りで渡せる |
プロジェクトの .claude/skills/ に置いたスキルはリポジトリに含めることができ、チームで共有できます。個人の ~/.claude/skills/ に置いたスキルは自分だけに適用されます。組織の共通手順はプロジェクトに、個人の作業スタイルに合わせたものは個人ディレクトリに置くと使い分けやすいです。
スキルファイルの作り方
スキルファイルは Markdown ファイルで、フロントマターと本文で構成されます。フロントマターには name と description を記述します。
---
name: deploy
description: ステージング環境にデプロイする
---
# デプロイ手順
以下の手順でステージング環境へデプロイします。
1. テストを実行して全件グリーンであることを確認する
2. `git push origin main` でリモートに反映する
3. デプロイスクリプトを実行する
4. デプロイ後の動作確認を行う
description はスキルの一覧表示や Claude Code が文脈を把握するために使われます。何をするスキルかが伝わる内容にしておきましょう。
本文には実行手順を自然言語や Markdown で記述します。Claude Code はこの内容をプロンプトとして受け取り、順番に処理を実行していきます。
スキルの実行方法と引数
スキルは Claude Code のチャット欄で /{スキル名} と入力するだけで実行できます。引数を渡したい場合はスペースの後ろに続けます。
/deploy staging
スキルファイルの中では引数を $ARGUMENTS というプレースホルダーで受け取れます。スキルファイル内の指示文に書いておくと、Claude Code が正しく解釈して処理を進めます。
引数が渡されなかった場合の挙動も指示文に含めておくと、より使いやすいスキルになります。たとえば「引数がない場合はユーザーに確認する」と書いておけば、必要な情報が不足していてもスキルが止まらずに動きます。
複数の引数を渡す場合もスペース区切りで続けます。スキルファイル内で各引数の役割を説明しておくと、Claude Code が目的に沿って処理を進めやすくなります。特定の引数を必須にしたい場合は「引数が渡されていない場合は作業を始める前にユーザーに確認する」と指示文に明示しておくと、入力漏れによる誤動作を防げます。
スキルの自動呼び出し
Claude Code はスキルの description を常に参照しています。会話の内容が description に一致すると判断した場合、ユーザーが明示的に呼び出さなくても自動的にスキルを読み込みます。
たとえば description: Pull Request をレビューする と書いておくと、「このブランチをレビューして」という会話に対して Claude Code が自動的にそのスキルの手順を使います。スキルごとに異なる観点やチェックリストを定義しておくことで、自然な会話のなかでプロジェクト固有の手順が反映されるようになります。
description の書き方は自動呼び出しの精度に影響します。「ファイルを編集する」のような汎用的な説明だと関係ない会話でも読み込まれることがあります。スキルが対象とする操作や文脈を具体的に書いておくと、適切な場面でだけ自動呼び出しされるようになります。
自動呼び出しを無効にする
デプロイや本番環境への操作など、意図せず実行されると困る作業には disable-model-invocation: true を指定します。この設定を入れると Claude Code が自動的にスキルを読み込まなくなり、/deploy と明示的に入力した場合だけ実行されます。
---
name: deploy
description: ステージング環境にデプロイする
disable-model-invocation: true
---
副作用のある操作はこの設定をつけておくと、Claude Code が文脈から勝手に実行することを防げます。
スキルを書くときのポイント
スキルが意図通りに動くかどうかは、指示文の書き方によって大きく変わります。以下の点を意識すると、再現性の高いスキルを作れます。
順序が重要な作業は番号付きリストで書くことで、Claude Code が順番通りに実行しやすくなります。スキルの冒頭に前提条件(必要なツールや実行環境など)を記載しておくと、意図しない状況での実行を防げます。
$ARGUMENTS に何を渡すかや引数がない場合の挙動もあわせて記述しておきましょう。エラーが発生したときの対処方法も指示文に含めておくと、スキルの中でトラブルシューティングまでカバーできます。「失敗した場合はエラーメッセージを確認して原因を報告する」といった一文を加えるだけで、問題が起きたときに状況を把握しやすくなります。
スキルの指示文はシンプルに保つことも大切です。一つのスキルに複数の異なる作業を詰め込むと、Claude Code が意図しない動作をしやすくなります。「一つのスキルには一つの目的」を意識して設計すると、スキルの動作が予測しやすくなります。
スキルの活用例
| 用途 | スキル例 | 説明 |
|---|---|---|
| デプロイ | /deploy | デプロイ手順をまとめて、毎回同じ手順で実行できるようにする |
| PR レビュー | /pr-check | セキュリティ・パフォーマンス・規約などの観点をスキルに定義して統一した基準でレビューできる |
| セキュリティ確認 | /security-check | セキュリティチェックリストを登録して抜け漏れを防ぐ |
| インフラ操作 | /launch-ec2 | EC2 インスタンスの起動・停止手順を登録して引数で環境を指定できる |
| コミット作成 | /commit | コミットメッセージの規約をスキルに定義して一貫したメッセージを生成できる |
スキルと CLAUDE.md の使い分け
Claude Code にはスキル以外に、CLAUDE.md というプロジェクト設定ファイルがあります。CLAUDE.md にはプロジェクト全体に常に適用したいルールや背景情報を書き、スキルには特定の作業を実行するときだけ使いたい手順を書くと整理しやすいです。
たとえば「コミットメッセージは英語で書く」「テストを実行してから PR を出す」といったルールは CLAUDE.md に書き、「コミットを作成する具体的な手順」「デプロイの実行手順」はスキルに書くという使い分けが自然です。「常に適用されるルール」は CLAUDE.md、「特定の操作の手順書」はスキルという位置づけで管理すると、どちらもメンテナンスしやすくなります。
スキルを新たに作るか CLAUDE.md に書くか迷ったときは、「常にその情報が必要か、それとも特定の操作をするときだけ必要か」を基準にすると判断しやすいです。CLAUDE.md が肥大化してきたと感じたら、特定の操作に関する手順をスキルとして切り出すタイミングかもしれません。
スキルの例
PR レビュー用のスキルを例に、設計の考え方を示します。
PR レビューのスキルを作るときは、まずどの観点でレビューするかを整理することが大切です。観点をカテゴリーに分けて書くと、Claude Code がカテゴリーごとに確認するため抜け漏れが起きにくくなります。このスキルでは「セキュリティ」「パフォーマンス」「コーディング規約」の 3 カテゴリーを設けています。プロジェクトの性質によってカテゴリーは変えて構いません。
レビュー対象のブランチは呼び出すたびに変わるため、$ARGUMENTS で受け取るようにします。毎回異なる値を渡す必要がある情報は、ハードコードせずプレースホルダーを使うとスキルを使い回せます。
また、「レビューして」という会話でも自動的に動いてほしいため、このスキルには disable-model-invocation を付けていません。一方でデプロイのような副作用のある操作なら、明示的な呼び出しだけに限定するためにこの設定を入れるのが適切です。このような判断もスキルを設計するときに意識しておきましょう。
.claude/skills/pr-check/SKILL.md を以下のように作成します。
---
name: pr-check
description: Pull Request をレビューする
---
# PR レビュー
以下の観点で Pull Request をレビューします。
## セキュリティ
- SQL インジェクション・XSS などの脆弱性がないか確認する
- 認証・認可の処理が適切かどうか確認する
- 機密情報がコードに含まれていないか確認する
## パフォーマンス
- N+1 クエリが発生していないか確認する
- 不要なループや重複処理がないか確認する
## コーディング規約
- プロジェクトの命名規則に沿っているか確認する
- テストが書かれているか確認する
- コメントが適切かどうか確認する
レビュー対象のブランチ: $ARGUMENTS
引数にブランチ名を渡すと $ARGUMENTS に展開され、Claude Code がそのブランチの変更内容を上記の観点でレビューします。
/pr-check feature/add-login
まとめ
- スキルはプロジェクトまたは個人のディレクトリにスキルファイルを作成するカスタムスラッシュコマンド
- フロントマターに名前と説明を、本文に実行手順を Markdown で記述する
- スラッシュコマンドで手動呼び出しでき、引数を渡して動的に使い回せる
- 説明文に一致する会話では Claude Code が自動的にスキルを読み込む
- デプロイなど副作用のある操作はフロントマターの設定で自動呼び出しを無効にできる
- デプロイ・PR レビュー・セキュリティ確認・インフラ操作など、繰り返す作業をスキルにまとめると効率化できる