このガイドでは、Claude CodeでAgent Skillsを作成、使用、管理する方法を説明します。Skillsは、指示、スクリプト、リソースを含む整理されたフォルダを通じてClaudeの機能を拡張するモジュラー機能です。

前提条件

  • Claude Codeバージョン1.0以降
  • Claude Codeの基本的な理解

Agent Skillsとは?

Agent Skillsは専門知識を発見可能な機能にパッケージ化します。各Skillは、関連する場合にClaudeが読み取る指示を含むSKILL.mdファイルと、スクリプトやテンプレートなどのオプションのサポートファイルで構成されます。 Skillsの呼び出し方法: Skillsはモデル呼び出しです—Claudeはあなたのリクエストとスキルの説明に基づいて、いつ使用するかを自律的に決定します。これはユーザー呼び出しのスラッシュコマンド(明示的に/commandと入力してトリガーする)とは異なります。 利点:
  • 特定のワークフローに対してClaudeの機能を拡張
  • gitを通じてチーム全体で専門知識を共有
  • 反復的なプロンプトを削減
  • 複雑なタスクのために複数のSkillsを組み合わせ
詳細はAgent Skills概要をご覧ください。
Agent Skillsのアーキテクチャと実世界での応用について詳しく知りたい場合は、エンジニアリングブログをお読みください:Equipping agents for the real world with Agent Skills

Skillを作成する

SkillsはSKILL.mdファイルを含むディレクトリとして保存されます。

Personal Skills

Personal Skillsはすべてのプロジェクトで利用できます。~/.claude/skills/に保存します:
mkdir -p ~/.claude/skills/my-skill-name
Personal Skillsの用途:
  • 個人のワークフローと設定
  • 開発中の実験的なSkills
  • 個人の生産性ツール

Project Skills

Project Skillsはチームと共有されます。プロジェクト内の.claude/skills/に保存します:
mkdir -p .claude/skills/my-skill-name
Project Skillsの用途:
  • チームのワークフローと規約
  • プロジェクト固有の専門知識
  • 共有ユーティリティとスクリプト
Project Skillsはgitにチェックインされ、チームメンバーが自動的に利用できます。

Plugin Skills

SkillsはClaude Codeプラグインからも提供されます。プラグインは、プラグインがインストールされたときに自動的に利用可能になるSkillsをバンドルする場合があります。これらのSkillsは、personalおよびproject Skillsと同じように動作します。

SKILL.mdを書く

YAMLフロントマターとMarkdownコンテンツを含むSKILL.mdファイルを作成します:
---
name: Your Skill Name
description: Brief description of what this Skill does and when to use it
---

# Your Skill Name

## Instructions
Provide clear, step-by-step guidance for Claude.

## Examples
Show concrete examples of using this Skill.
descriptionフィールドは、Claudeがいつあなたのスキルを使用するかを発見するために重要です。Skillが何をするかと、Claudeがいつそれを使用すべきかの両方を含める必要があります。 完全な作成ガイダンスについては、ベストプラクティスガイドをご覧ください。

サポートファイルを追加する

SKILL.mdと一緒に追加ファイルを作成します:
my-skill/
├── SKILL.md (必須)
├── reference.md (オプションのドキュメント)
├── examples.md (オプションの例)
├── scripts/
│   └── helper.py (オプションのユーティリティ)
└── templates/
    └── template.txt (オプションのテンプレート)
SKILL.mdからこれらのファイルを参照します:
高度な使用方法については、[reference.md](reference.md)をご覧ください。

ヘルパースクリプトを実行:
```bash
python scripts/helper.py input.txt
```
Claudeは必要な場合にのみこれらのファイルを読み取り、プログレッシブディスクロージャーを使用してコンテキストを効率的に管理します。

allowed-toolsでツールアクセスを制限する

allowed-toolsフロントマターフィールドを使用して、Skillがアクティブな時にClaudeが使用できるツールを制限します:
---
name: Safe File Reader
description: Read files without making changes. Use when you need read-only file access.
allowed-tools: Read, Grep, Glob
---

# Safe File Reader

This Skill provides read-only file access.

## Instructions
1. Use Read to view file contents
2. Use Grep to search within files
3. Use Glob to find files by pattern
このSkillがアクティブな場合、Claudeは許可を求めることなく、指定されたツール(Read、Grep、Glob)のみを使用できます。これは以下の場合に便利です:
  • ファイルを変更すべきでない読み取り専用Skills
  • 限定されたスコープのSkills(例:データ分析のみ、ファイル書き込みなし)
  • 機能を制限したいセキュリティに敏感なワークフロー
allowed-toolsが指定されていない場合、Claudeは標準の許可モデルに従って、通常通りツールの使用許可を求めます。
allowed-toolsはClaude CodeのSkillsでのみサポートされています。

利用可能なSkillsを表示する

Skillsは3つのソースからClaudeによって自動的に発見されます:
  • Personal Skills: ~/.claude/skills/
  • Project Skills: .claude/skills/
  • Plugin Skills: インストールされたプラグインにバンドル
すべての利用可能なSkillsを表示するには、Claudeに直接尋ねます:
What Skills are available?
または
List all available Skills
これにより、Plugin Skillsを含むすべてのソースからのすべてのSkillsが表示されます。 特定のSkillを検査するには、ファイルシステムを確認することもできます:
# Personal Skillsをリスト
ls ~/.claude/skills/

# Project Skillsをリスト(プロジェクトディレクトリ内の場合)
ls .claude/skills/

# 特定のSkillの内容を表示
cat ~/.claude/skills/my-skill/SKILL.md

Skillをテストする

Skillを作成した後、説明に一致する質問をしてテストします。 : 説明で「PDFファイル」に言及している場合:
Can you help me extract text from this PDF?
Claudeはリクエストに一致する場合、あなたのSkillを使用することを自律的に決定します—明示的に呼び出す必要はありません。Skillは質問のコンテキストに基づいて自動的にアクティブになります。

Skillをデバッグする

ClaudeがあなたのSkillを使用しない場合、これらの一般的な問題を確認してください:

説明を具体的にする

曖昧すぎる:
description: Helps with documents
具体的:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
説明には、Skillが何をするかといつ使用するかの両方を含めます。

ファイルパスを確認する

Personal Skills: ~/.claude/skills/skill-name/SKILL.md Project Skills: .claude/skills/skill-name/SKILL.md ファイルが存在することを確認:
# Personal
ls ~/.claude/skills/my-skill/SKILL.md

# Project
ls .claude/skills/my-skill/SKILL.md

YAML構文を確認する

無効なYAMLはSkillの読み込みを妨げます。フロントマターを確認:
cat SKILL.md | head -n 10
以下を確認:
  • 1行目の開始---
  • Markdownコンテンツ前の終了---
  • 有効なYAML構文(タブなし、正しいインデント)

エラーを表示する

デバッグモードでClaude Codeを実行してSkill読み込みエラーを確認:
claude --debug

チームとSkillsを共有する

推奨アプローチ: プラグインを通じてSkillsを配布します。 プラグインを通じてSkillsを共有するには:
  1. skills/ディレクトリにSkillsを含むプラグインを作成
  2. プラグインをマーケットプレイスに追加
  3. チームメンバーがプラグインをインストール
完全な手順については、プラグインにSkillsを追加するをご覧ください。 プロジェクトリポジトリを通じて直接Skillsを共有することもできます:

ステップ1: プロジェクトにSkillを追加

Project Skillを作成:
mkdir -p .claude/skills/team-skill
# SKILL.mdを作成

ステップ2: gitにコミット

git add .claude/skills/
git commit -m "Add team Skill for PDF processing"
git push

ステップ3: チームメンバーが自動的にSkillsを取得

チームメンバーが最新の変更をプルすると、Skillsがすぐに利用可能になります:
git pull
claude  # Skillsが利用可能になりました

Skillを更新する

SKILL.mdを直接編集:
# Personal Skill
code ~/.claude/skills/my-skill/SKILL.md

# Project Skill
code .claude/skills/my-skill/SKILL.md
変更は次回Claude Codeを開始するときに有効になります。Claude Codeが既に実行中の場合は、更新を読み込むために再起動してください。

Skillを削除する

Skillディレクトリを削除:
# Personal
rm -rf ~/.claude/skills/my-skill

# Project
rm -rf .claude/skills/my-skill
git commit -m "Remove unused Skill"

ベストプラクティス

Skillsを集中させる

1つのSkillは1つの機能に対応すべきです: 集中している:
  • “PDFフォーム記入”
  • “Excelデータ分析”
  • “Gitコミットメッセージ”
広すぎる:
  • “ドキュメント処理”(別々のSkillsに分割)
  • “データツール”(データタイプまたは操作で分割)

明確な説明を書く

説明に具体的なトリガーを含めることで、ClaudeがいつSkillsを使用するかを発見できるようにします: 明確:
description: Analyze Excel spreadsheets, create pivot tables, and generate charts. Use when working with Excel files, spreadsheets, or analyzing tabular data in .xlsx format.
曖昧:
description: For files

チームでテストする

チームメイトにSkillsを使用してもらい、フィードバックを提供してもらいます:
  • Skillは期待通りにアクティブになりますか?
  • 指示は明確ですか?
  • 不足している例やエッジケースはありますか?

Skillバージョンを文書化する

時間の経過とともに変更を追跡するために、SKILL.mdコンテンツでSkillバージョンを文書化できます。バージョン履歴セクションを追加:
# My Skill

## Version History
- v2.0.0 (2025-10-01): Breaking changes to API
- v1.1.0 (2025-09-15): Added new features
- v1.0.0 (2025-09-01): Initial release
これにより、チームメンバーがバージョン間で何が変更されたかを理解できます。

トラブルシューティング

ClaudeがSkillを使用しない

症状: 関連する質問をしてもClaudeがSkillを使用しない。 確認: 説明は十分具体的ですか? 曖昧な説明は発見を困難にします。Skillが何をするかといつ使用するかの両方を、ユーザーが言及するであろうキーワードと共に含めます。 一般的すぎる:
description: Helps with data
具体的:
description: Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with Excel files, spreadsheets, or .xlsx files.
確認: YAMLは有効ですか? 構文エラーをチェックするために検証を実行:
# フロントマターを表示
cat .claude/skills/my-skill/SKILL.md | head -n 15

# 一般的な問題をチェック
# - 開始または終了の---が不足
# - スペースの代わりにタブ
# - 特殊文字を含む引用符なしの文字列
確認: Skillは正しい場所にありますか?
# Personal Skills
ls ~/.claude/skills/*/SKILL.md

# Project Skills
ls .claude/skills/*/SKILL.md

Skillにエラーがある

症状: Skillは読み込まれるが正しく動作しない。 確認: 依存関係は利用可能ですか? Claudeは必要な依存関係を自動的にインストールします(または必要に応じてインストール許可を求めます)。 確認: スクリプトに実行権限がありますか?
chmod +x .claude/skills/my-skill/scripts/*.py
確認: ファイルパスは正しいですか? すべてのパスでフォワードスラッシュ(Unix形式)を使用: 正しい: scripts/helper.py 間違い: scripts\helper.py(Windows形式)

複数のSkillsが競合する

症状: Claudeが間違ったSkillを使用するか、類似のSkills間で混乱しているように見える。 説明で具体的にする: 説明で異なるトリガー用語を使用することで、Claudeが正しいSkillを選択できるようにします。 以下の代わりに:
# Skill 1
description: For data analysis

# Skill 2
description: For analyzing data
以下を使用:
# Skill 1
description: Analyze sales data in Excel files and CRM exports. Use for sales reports, pipeline analysis, and revenue tracking.

# Skill 2
description: Analyze log files and system metrics data. Use for performance monitoring, debugging, and system diagnostics.

シンプルなSkill(単一ファイル)

commit-helper/
└── SKILL.md
---
name: Generating Commit Messages
description: Generates clear commit messages from git diffs. Use when writing commit messages or reviewing staged changes.
---

# Generating Commit Messages

## Instructions

1. Run `git diff --staged` to see changes
2. I'll suggest a commit message with:
   - Summary under 50 characters
   - Detailed description
   - Affected components

## Best practices

- Use present tense
- Explain what and why, not how

ツール権限を持つSkill

code-reviewer/
└── SKILL.md
---
name: Code Reviewer
description: Review code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
allowed-tools: Read, Grep, Glob
---

# Code Reviewer

## Review checklist

1. Code organization and structure
2. Error handling
3. Performance considerations
4. Security concerns
5. Test coverage

## Instructions

1. Read the target files using Read tool
2. Search for patterns using Grep
3. Find related files using Glob
4. Provide detailed feedback on code quality

マルチファイルSkill

pdf-processing/
├── SKILL.md
├── FORMS.md
├── REFERENCE.md
└── scripts/
    ├── fill_form.py
    └── validate.py
SKILL.md:
---
name: PDF Processing
description: Extract text, fill forms, merge PDFs. Use when working with PDF files, forms, or document extraction. Requires pypdf and pdfplumber packages.
---

# PDF Processing

## Quick start

Extract text:
```python
import pdfplumber
with pdfplumber.open("doc.pdf") as pdf:
    text = pdf.pages[0].extract_text()
```

For form filling, see [FORMS.md](FORMS.md).
For detailed API reference, see [REFERENCE.md](REFERENCE.md).

## Requirements

Packages must be installed in your environment:
```bash
pip install pypdf pdfplumber
```
必要なパッケージを説明に記載してください。Claudeがそれらを使用する前に、パッケージはあなたの環境にインストールされている必要があります。
Claudeは必要な場合にのみ追加ファイルを読み込みます。

次のステップ