前提条件
- Claude Codeバージョン1.0以降
- Claude Codeの基本的な理解
Agent Skillsとは?
Agent Skillsは専門知識を発見可能な機能にパッケージ化します。各Skillは、関連する場合にClaudeが読み取る指示を含むSKILL.md
ファイルと、スクリプトやテンプレートなどのオプションのサポートファイルで構成されます。
Skillsの呼び出し方法: Skillsはモデル呼び出しです—Claudeはあなたのリクエストとスキルの説明に基づいて、いつ使用するかを自律的に決定します。これはユーザー呼び出しのスラッシュコマンド(明示的に/command
と入力してトリガーする)とは異なります。
利点:
- 特定のワークフローに対してClaudeの機能を拡張
- gitを通じてチーム全体で専門知識を共有
- 反復的なプロンプトを削減
- 複雑なタスクのために複数のSkillsを組み合わせ
Agent Skillsのアーキテクチャと実世界での応用について詳しく知りたい場合は、エンジニアリングブログをお読みください:Equipping agents for the real world with Agent Skills。
Skillを作成する
SkillsはSKILL.md
ファイルを含むディレクトリとして保存されます。
Personal Skills
Personal Skillsはすべてのプロジェクトで利用できます。~/.claude/skills/
に保存します:
- 個人のワークフローと設定
- 開発中の実験的なSkills
- 個人の生産性ツール
Project Skills
Project Skillsはチームと共有されます。プロジェクト内の.claude/skills/
に保存します:
- チームのワークフローと規約
- プロジェクト固有の専門知識
- 共有ユーティリティとスクリプト
Plugin Skills
SkillsはClaude Codeプラグインからも提供されます。プラグインは、プラグインがインストールされたときに自動的に利用可能になるSkillsをバンドルする場合があります。これらのSkillsは、personalおよびproject Skillsと同じように動作します。SKILL.mdを書く
YAMLフロントマターとMarkdownコンテンツを含むSKILL.md
ファイルを作成します:
description
フィールドは、Claudeがいつあなたのスキルを使用するかを発見するために重要です。Skillが何をするかと、Claudeがいつそれを使用すべきかの両方を含める必要があります。
完全な作成ガイダンスについては、ベストプラクティスガイドをご覧ください。
サポートファイルを追加する
SKILL.mdと一緒に追加ファイルを作成します:allowed-toolsでツールアクセスを制限する
allowed-tools
フロントマターフィールドを使用して、Skillがアクティブな時にClaudeが使用できるツールを制限します:
- ファイルを変更すべきでない読み取り専用Skills
- 限定されたスコープのSkills(例:データ分析のみ、ファイル書き込みなし)
- 機能を制限したいセキュリティに敏感なワークフロー
allowed-tools
が指定されていない場合、Claudeは標準の許可モデルに従って、通常通りツールの使用許可を求めます。
allowed-tools
はClaude CodeのSkillsでのみサポートされています。利用可能なSkillsを表示する
Skillsは3つのソースからClaudeによって自動的に発見されます:- Personal Skills:
~/.claude/skills/
- Project Skills:
.claude/skills/
- Plugin Skills: インストールされたプラグインにバンドル
Skillをテストする
Skillを作成した後、説明に一致する質問をしてテストします。 例: 説明で「PDFファイル」に言及している場合:Skillをデバッグする
ClaudeがあなたのSkillを使用しない場合、これらの一般的な問題を確認してください:説明を具体的にする
曖昧すぎる:ファイルパスを確認する
Personal Skills:~/.claude/skills/skill-name/SKILL.md
Project Skills: .claude/skills/skill-name/SKILL.md
ファイルが存在することを確認:
YAML構文を確認する
無効なYAMLはSkillの読み込みを妨げます。フロントマターを確認:- 1行目の開始
---
- Markdownコンテンツ前の終了
---
- 有効なYAML構文(タブなし、正しいインデント)
エラーを表示する
デバッグモードでClaude Codeを実行してSkill読み込みエラーを確認:チームとSkillsを共有する
推奨アプローチ: プラグインを通じてSkillsを配布します。 プラグインを通じてSkillsを共有するには:skills/
ディレクトリにSkillsを含むプラグインを作成- プラグインをマーケットプレイスに追加
- チームメンバーがプラグインをインストール
ステップ1: プロジェクトにSkillを追加
Project Skillを作成:ステップ2: gitにコミット
ステップ3: チームメンバーが自動的にSkillsを取得
チームメンバーが最新の変更をプルすると、Skillsがすぐに利用可能になります:Skillを更新する
SKILL.mdを直接編集:Skillを削除する
Skillディレクトリを削除:ベストプラクティス
Skillsを集中させる
1つのSkillは1つの機能に対応すべきです: 集中している:- “PDFフォーム記入”
- “Excelデータ分析”
- “Gitコミットメッセージ”
- “ドキュメント処理”(別々のSkillsに分割)
- “データツール”(データタイプまたは操作で分割)
明確な説明を書く
説明に具体的なトリガーを含めることで、ClaudeがいつSkillsを使用するかを発見できるようにします: 明確:チームでテストする
チームメイトにSkillsを使用してもらい、フィードバックを提供してもらいます:- Skillは期待通りにアクティブになりますか?
- 指示は明確ですか?
- 不足している例やエッジケースはありますか?
Skillバージョンを文書化する
時間の経過とともに変更を追跡するために、SKILL.mdコンテンツでSkillバージョンを文書化できます。バージョン履歴セクションを追加:トラブルシューティング
ClaudeがSkillを使用しない
症状: 関連する質問をしてもClaudeがSkillを使用しない。 確認: 説明は十分具体的ですか? 曖昧な説明は発見を困難にします。Skillが何をするかといつ使用するかの両方を、ユーザーが言及するであろうキーワードと共に含めます。 一般的すぎる:Skillにエラーがある
症状: Skillは読み込まれるが正しく動作しない。 確認: 依存関係は利用可能ですか? Claudeは必要な依存関係を自動的にインストールします(または必要に応じてインストール許可を求めます)。 確認: スクリプトに実行権限がありますか?scripts/helper.py
間違い: scripts\helper.py
(Windows形式)
複数のSkillsが競合する
症状: Claudeが間違ったSkillを使用するか、類似のSkills間で混乱しているように見える。 説明で具体的にする: 説明で異なるトリガー用語を使用することで、Claudeが正しいSkillを選択できるようにします。 以下の代わりに:例
シンプルなSkill(単一ファイル)
ツール権限を持つSkill
マルチファイルSkill
必要なパッケージを説明に記載してください。Claudeがそれらを使用する前に、パッケージはあなたの環境にインストールされている必要があります。