Claude Codeの設定 - SKILL
概要
SKILLファイルは、Claude Codeのスキル機能を定義するためのファイルである。
スキルは、特定のタスクやワークフローを実行するための再利用可能なコマンドである。
SKILLファイルを作成することにより、頻繁に実行する操作を標準化し、チーム全体で共有できる。
SKILLファイルは以下に示す特徴を持つ。
- 再利用可能なワークフローの定義
- パラメータと引数の受け渡し
- Markdown形式での指示記述
- プロジェクト固有のツールアクセス制御
- ユーザとClaude双方からの呼び出し
SKILLファイルを使用することにより、以下に示すメリットが得られる。
- 作業の効率化
- 頻繁に実行する操作を1つのコマンドで実行
- 一貫性の向上
- 標準化されたワークフローをチーム全体で共有
- 知識の伝達
- ベストプラクティスをスキルとして文書化
- 柔軟性の確保
- パラメータを使用して動的にスキルを実行
Anthropicsの公式SKILLを以下に示す。
Office系のSKILL等が存在する。
SKILLファイルの基本構造
SKILLファイルは、YAMLフロントマターとMarkdown形式の指示から構成される。
基本構造を以下に示す。
---
name: スキル名
description: スキルの説明
model: 使用するモデル (任意)
temperature: 温度設定 (任意)
allowedTools: 許可するツール (任意)
---
# スキルの指示内容
Markdown形式でスキルの動作を記述する。
SKILLファイルは、以下の2つのセクションで構成される。
- YAMLフロントマター
- スキルのメタデータを定義
- Markdown指示
- スキルの動作を記述
YAMLフロントマター
YAMLフロントマターには、スキルのメタデータを記述する。
必須項目
- name
- スキルの識別子
- これは、kebab-caseに自動変換される。
- description
- スキルの簡潔な説明
- ユーザとClaude双方が参照する。
nameの記述例を以下に示す。
---
name: commit-with-tests
description: テストを実行してから変更をコミットする
---
任意項目
- model
- スキル実行時に使用するモデルを指定
- 指定しない場合、デフォルトモデルが使用される。
- temperature
- モデルの温度設定 (0.0から1.0)
- 低い値は決定論的、高い値は創造的
- allowedTools
- スキル実行時に許可するツールのリスト
- 指定しない場合、全てのツールが許可される。
- disallowedTools
- スキル実行時に禁止するツールのリスト
- セキュリティやパフォーマンス上の理由で制限する場合に使用。
任意項目の記述例を以下に示す。
---
name: review-code
description: コードレビューを実行する
model: claude-sonnet-4-5-20250929
temperature: 0.2
allowedTools:
- Read
- Grep
- Glob
---
Markdown指示
YAMLフロントマターの後に、Markdown形式でスキルの動作を記述する。
Markdown指示には、以下に示す内容を記述する。
- スキルの目的と動作の説明
- 実行するステップ
- パラメータの使用方法
- 注意事項や制限事項
Markdown指示の基本形式を以下に示す。
---
name: スキル名
description: スキルの説明
---
# スキルの目的
このスキルは、[目的] を実行します。
## 実行ステップ
1. ステップ1
2. ステップ2
3. ステップ3
## 注意事項
- 注意事項1
- 注意事項2
Markdown指示は、Claudeに対する指示として機能する。
明確で具体的な指示を記述することにより、Claudeは正確にスキルを実行できる。
SKILLファイルの作成手順
ステップ 1 : スキルディレクトリの作成
プロジェクトの .claude/skills/ ディレクトリに、スキル用のディレクトリを作成する。
# スキルディレクトリの作成 : mkdir -p .claude/skills/my-skill
スキルディレクトリ名は、kebab-caseで記述することを推奨する。
ステップ 2 : SKILL.mdファイルの作成
スキルディレクトリ内に、SKILL.md ファイルを作成する。
ファイル名は、必ず SKILL.md とする。
# SKILL.mdファイルの作成 : touch .claude/skills/my-skill/SKILL.md
ステップ 3 : YAMLフロントマターの記述
SKILL.mdファイルの先頭に、YAMLフロントマターを記述する。
必須項目である name と description を必ず記述する。
---
name: my-skill
description: 私のカスタムスキル
model: claude-sonnet-4-5-20250929
temperature: 0.5
---
ステップ 4 : Markdown指示の記述
YAMLフロントマターの後に、Markdown形式でスキルの動作を記述する。
# スキルの目的
このスキルは、特定のタスクを実行します。
## 実行ステップ
1. ファイルを読み込む
2. 内容を解析する
3. 結果を出力する
## 注意事項
- ファイルが存在しない場合はエラーを報告する
明確で具体的な指示を記述することが重要である。
ステップ 5 : スキルのテスト
スキルを作成したら、Claude Codeセッションで実行してテストする。
# スキルの実行 : /my-skill
スキルが正しく動作することを確認し、必要に応じて修正する。
パラメータと引数
SKILLファイルは、パラメータと引数を受け取ることができる。
引数の受け渡し
スキルを実行する際、引数を渡すことができる。
引数の渡し方を以下に示す。
# 引数なし : /my-skill
# 引数あり : /my-skill arg1 arg2 arg3
引数は、スキルのMarkdown指示内で参照できる。
引数の参照
Markdown指示内で、渡された引数を参照することができる。
引数参照の記述例を以下に示す。
---
name: greet
description: ユーザに挨拶する
---
# 挨拶スキル
ユーザが渡した引数を使用して挨拶します。
引数が渡された場合は、その名前で挨拶してください。
引数が渡されなかった場合は、"Hello, World!" と挨拶してください。
Claudeは、ユーザが渡した引数を自動的に認識し、スキル内で使用する。
複数の引数
複数の引数を渡すこともできる。
複数引数の記述例を以下に示す。
---
name: create-file
description: ファイルを作成する
---
# ファイル作成スキル
第1引数: ファイル名
第2引数: ファイルの内容
渡された引数を使用して、ファイルを作成してください。
例:
/create-file test.txt "Hello, World!"
引数の順序と意味を明確に記述することにより、Claudeは正確にスキルを実行できる。
スキルの呼び出し方法
スキルは、ユーザとClaude双方から呼び出すことができる。
ユーザによる呼び出し
ユーザは、スラッシュコマンドを使用してスキルを呼び出す。
# 基本的な呼び出し : /スキル名
# 引数付き呼び出し : /スキル名 引数1 引数2
スキル名は、YAMLフロントマターの name フィールドで定義した名前である。
呼び出し例を以下に示す。
/commit-with-tests- テストを実行してからコミットする
/review-code src/main.js- src/main.jsのコードレビューを実行
/deploy production- 本番環境にデプロイ
Claudeによる呼び出し
Claudeは、ユーザの要求に応じて自動的にスキルを呼び出すことができる。
例を以下に示す。
- ユーザが「テストを実行してコミットして」と要求
- Claudeが /commit-with-tests スキルを自動的に呼び出す
Claudeがスキルを呼び出す条件を以下に示す。
- スキルの description がユーザの要求に一致する
- スキルが現在のコンテキストで関連性が高い
Claudeは、利用可能なスキルを認識し、適切なタイミングで自動的に呼び出す。
ツールアクセスの制御
SKILLファイルでは、スキル実行時に使用できるツールを制御できる。
allowedTools : 許可するツール
allowedTools フィールドを使用することにより、スキルが使用できるツールを制限できる。
以下の例では、スキルは Read、Grep、Glob ツールのみを使用できる。
Write、Edit、Bash 等のツールは使用できない。
---
name: read-only-review
description: ファイルを読み取り専用でレビュー
allowedTools:
- Read
- Grep
- Glob
---
disallowedTools : 禁止するツール
disallowedTools フィールドを使用することにより、特定のツールを禁止できる。
以下の例では、スキルは Bash、Write、Edit ツールを使用できない。
その他のツールは全て使用できる。
---
name: safe-review
description: 安全なコードレビュー
disallowedTools:
- Bash
- Write
- Edit
---
ツール制御の用途
ツールアクセスの制御は、以下に示す用途で使用する。
- セキュリティ
- 危険なツールへのアクセスを制限
- パフォーマンス
- 不要なツールの使用を防ぐ
- 一貫性
- 特定のツールのみを使用するワークフローを強制
例を以下に示す。
- 読み取り専用レビュースキル
- Read、Grep、Glob のみを許可
- テスト実行スキル
- Bash のみを許可
- ドキュメント作成スキル
- Write、Read のみを許可
実用例
例1 : コミット前テスト実行スキル
変更をコミットする前にテストを実行するスキルの例を以下に示す。
---
name: commit-with-tests
description: テストを実行してから変更をコミットする
model: claude-sonnet-4-5-20250929
temperature: 0.3
---
# コミット前テスト実行スキル
このスキルは、以下のステップを実行します:
1. 現在の変更状況を確認
2. テストを実行
3. テストが成功した場合のみコミット
4. テストが失敗した場合はエラーを報告
## 実行手順
1. `git status` を実行して変更を確認
2. `npm test` または適切なテストコマンドを実行
3. テストが成功した場合:
- `git add .` で変更をステージング
- `git commit` でコミット
4. テストが失敗した場合:
- エラーメッセージを表示
- コミットを中止
## 注意事項
- テストが失敗した場合は、コミットを実行しないこと
- コミットメッセージは、変更内容に基づいて適切に生成すること
例2 : コードレビュースキル
ファイルを読み取り専用でレビューするスキルの例を以下に示す。
---
name: review-code
description: コードレビューを実行する
model: claude-sonnet-4-5-20250929
temperature: 0.2
allowedTools:
- Read
- Grep
- Glob
---
# コードレビュースキル
このスキルは、指定されたファイルのコードレビューを実行します。
## レビュー観点
以下の観点でコードをレビューしてください:
1. コーディング規約への準拠
2. バグの可能性
3. パフォーマンスの問題
4. セキュリティの脆弱性
5. 可読性と保守性
## 実行手順
1. 引数で指定されたファイルを読み込む
2. 上記の観点でレビューを実行
3. 問題点と改善提案をリスト形式で出力
## 出力形式
レビュー結果は、以下の形式で出力してください:
### 問題点
- [重要度] 問題の説明 (行番号)
### 改善提案
- 提案内容
## 注意事項
- ファイルを変更しないこと (読み取り専用)
- 具体的な行番号を示すこと
- 建設的なフィードバックを提供すること
例3 : ドキュメント生成スキル
プロジェクトのドキュメントを自動生成するスキルの例を以下に示す。
---
name: generate-docs
description: プロジェクトのドキュメントを生成する
model: claude-sonnet-4-5-20250929
temperature: 0.4
allowedTools:
- Read
- Write
- Grep
- Glob
---
# ドキュメント生成スキル
このスキルは、プロジェクトのソースコードを解析し、自動的にドキュメントを生成します。
## 実行手順
1. プロジェクトのソースファイルを検索
2. 各ファイルの内容を解析
3. 関数、クラス、モジュールの説明を抽出
4. Markdown形式のドキュメントを生成
5. docs/ディレクトリに保存
## ドキュメント構成
生成するドキュメントには、以下の内容を含めてください:
- プロジェクト概要
- ディレクトリ構造
- 主要な関数とクラスの説明
- 使用例
- APIリファレンス
## 出力先
- ドキュメントは `docs/` ディレクトリに保存
- ファイル名は `API.md`、`GUIDE.md` など
## 注意事項
- 既存のドキュメントを上書きする前に確認すること
- コメントが少ないファイルは、コードから推測してドキュメントを生成すること
スキルの配置場所
SKILLファイルは、特定のディレクトリ構造に従って配置する。
基本的なディレクトリ構造を以下に示す。
.claude/ ├── skills/ │ ├── commit-with-tests/ │ │ └── SKILL.md │ ├── review-code/ │ │ └── SKILL.md │ └── generate-docs/ │ └── SKILL.md └── CLAUDE.md
各スキルは、独立したディレクトリに配置する。
ディレクトリ名は、スキル名と一致させることを推奨する。
プロジェクトレベルのスキル
プロジェクト固有のスキルは、.claude/skills/ ディレクトリに配置する。
.claude/skills/スキル名/SKILL.md
これらのスキルは、プロジェクト内でのみ利用可能である。
ユーザレベルのスキル
全プロジェクトで共有するスキルは、~/.claude/skills/ ディレクトリに配置する。
~/.claude/skills/スキル名/SKILL.md
これらのスキルは、全てのプロジェクトで利用可能である。
スキルの管理
スキルの一覧表示
利用可能なスキルを確認するには、Claude Codeのヘルプを参照する。
# スキル一覧の表示 : /help
ヘルプには、利用可能なスキルとその説明が表示される。
スキルの更新
スキルを更新するには、SKILL.mdファイルを編集する。
更新手順を以下に示す。
- SKILL.md ファイルを開く。
- YAMLフロントマターまたはMarkdown指示を編集する。
- ファイルを保存する。
- Claude Codeセッションを再起動して反映を確認する。
スキルは、セッション開始時に自動的に読み込まれる。
スキルの削除
スキルを削除するには、スキルディレクトリを削除する。
# スキルの削除 : rm -rf .claude/skills/スキル名
削除後、Claude Codeセッションを再起動すると、スキルは利用できなくなる。
高度な機能
モデルの指定
スキルごとに使用するモデルを指定できる。
以下の例では、このスキルはOpus 4.5モデルを使用し、温度を0.8に設定している。
創造的なタスクには高い温度が適している。
---
name: creative-writing
description: 創造的な文章を生成する
model: claude-opus-4-5-20251101
temperature: 0.8
---
温度の調整
temperature フィールドを使用することにより、モデルの創造性を調整できる。
温度の目安を以下に示す。
- 0.0 - 0.3
- 決定論的で一貫性のある出力 (コードレビュー、テスト実行等)
- 0.4 - 0.6
- バランスの取れた出力 (ドキュメント生成、リファクタリング等)
- 0.7 - 1.0
- 創造的で多様な出力 (アイデア生成、文章作成等)
温度の設定例を以下に示す。
---
name: code-review
description: 厳密なコードレビュー
temperature: 0.2
---
---
name: brainstorm
description: アイデアをブレインストーミング
temperature: 0.9
---
複数ファイルのスキル
スキルディレクトリ内に、追加のファイルを配置することもできる。
.claude/skills/my-skill/ ├── SKILL.md ├── template.md └── config.json
これらのファイルは、スキル内で参照できる。
Markdown指示内での参照例を以下に示す。
---
name: generate-report
description: レポートを生成する
---
# レポート生成スキル
.claude/skills/generate-report/template.md を読み込み、そのテンプレートを使用してレポートを生成してください。
ベストプラクティス
明確な命名
スキル名は、スキルの目的を明確に示す名前を使用する。
スキル名は、kebab-caseで記述することを推奨する。
| 良い例 | 悪い例 |
|---|---|
| commit-with-tests | ct |
| review-code | review |
| generate-docs | docs |
詳細な説明
description フィールドには、スキルの目的を明確に記述する。
具体的な説明を記述することにより、Claudeがスキルを適切に呼び出せる。
| 抽象的な説明 | 具体的な説明 |
|---|---|
| コードをレビューする | 指定されたファイルのコーディング規約、バグ、パフォーマンスをレビューする |
| テストを実行する | 全てのユニットテストを実行し、失敗した場合はエラーを報告する |
| ファイルを作成する | 指定された名前と内容でファイルを作成し、適切なディレクトリに保存する |
ステップバイステップの指示
Markdown指示には、実行ステップを明確に記述する。
## 実行手順
1. ファイルを読み込む
2. 内容を解析する
3. 問題点を特定する
4. 改善提案を生成する
5. 結果を出力する
明確なステップを示すことにより、Claudeは正確にスキルを実行できる。
エラーハンドリング
スキルには、エラー時の動作を明記する。
## エラーハンドリング
以下の場合はエラーを報告してください:
- ファイルが存在しない場合
- ファイルの読み取り権限がない場合
- テストが失敗した場合
エラーメッセージには、原因と対処法を含めてください。
適切なエラーハンドリングにより、ユーザは問題を迅速に解決できる。
ツール制限の適切な使用
スキルの目的に応じて、適切にツールを制限する。
ツール制限の例を以下に示す。
- 読み取り専用スキル
- allowedTools: [Read, Grep, Glob]
- 書き込み専用スキル
- allowedTools: [Write]
- コマンド実行スキル
- allowedTools: [Bash]
不要なツールへのアクセスを制限することにより、セキュリティとパフォーマンスが向上する。
トラブルシューティング
スキルが認識されない場合
ディレクトリ構造を確認
スキルが正しいディレクトリに配置されているか確認する。
正しい配置場所を以下に示す。
.claude/skills/スキル名/SKILL.md
ファイル名は必ず SKILL.md とする。
YAMLフロントマターを確認
nameとdescriptionフィールドが正しく記述されているか確認する。
---
name: my-skill
description: スキルの説明
---
YAMLの構文エラーがある場合、スキルは認識されない。
セッションを再起動
スキルを追加または変更した後、Claude Codeセッションを再起動する。
# セッションの再起動 : /exit claude
スキルは、セッション開始時に読み込まれる。
スキルが正しく動作しない場合
Markdown指示を見直す
Markdown指示が明確で具体的であるか確認する。
不明瞭な指示の例を以下に示す。
# 悪い例 : ファイルをチェックして問題があれば報告する
明確な指示の例を以下に示す。
# 良い例 : 1. 指定されたファイルを読み込む 2. コーディング規約に違反していないか確認する 3. 違反がある場合は、行番号と問題点を報告する
ツール制限を確認
スキルが必要なツールにアクセスできるか確認する。
例を以下に示す。
- ファイルを読み込む必要がある場合
- allowedTools に Read が含まれているか確認
- コマンドを実行する必要がある場合
- allowedTools に Bash が含まれているか確認
モデルと温度を調整
スキルの性質に応じて、適切なモデルと温度を設定する。
設定の目安を以下に示す。
- 決定論的なタスク (テスト実行、コミット等)
- temperature: 0.2
- 創造的なタスク (アイデア生成、文章作成等)
- temperature: 0.8
関連機能
サブエージェントとの違い
スキルとサブエージェントは、異なる目的で使用される。
スキルは軽量で高速、サブエージェントは独立性と並列性に優れている。
| 項目 | スキル | サブエージェント |
|---|---|---|
| 目的 | 特定のタスクやワークフローの実行 | 独立したコンテキストでの複雑な作業 |
| 実行方法 | スラッシュコマンド | 自動呼び出しまたは手動呼び出し |
| コンテキスト | 親エージェントと共有 | 独立したコンテキストウィンドウ |
| モデル | 任意で指定可能 | 定義ファイルで指定 |
| 用途 | 頻繁に実行する操作の標準化 | 大規模な作業の並列実行 |
CLAUDE.mdとの連携
SKILLファイルは、CLAUDE.mdの内容を参照できる。
例を以下に示す。
- CLAUDE.mdでコーディング規約を定義
- スキルがその規約を参照してコードレビューを実行
この連携により、プロジェクト固有のルールをスキルに適用できる。
参考リンク