Claude Codeの基本
そもそも Anthropic Claude とは?
Anthropic Claude には大きく分けて2つのサービスにに分けられます。
- チャット(Web, モバイル, デスクトップ)
- 開発向け製品(API, Claude Code)
この開発向け製品はさらに「API」と「Claude Code」に分かれます。
API
プログラムからClaudeの機能を呼び出すためのインターフェース。
自分で作ったアプリケーションやサービスに組み込むことができる。
使用量に応じた従量課金制。
完全にカスタマイズ可能な統合が可能。
Claude Code
ターミナルから使うコマンドラインツール。
開発者が直接コーディングタスクをClaudeに委託して実行する。
対話的で、開発ワークフローに特化している。
Claude Code でできること
📚 1. Skills(スキル)
Skillsは自動起動されるコンテキストプロバイダーで、Claudeが会話の文脈に基づいて自動的に読み込みます。
特徴:
- Markdownファイルで定義され、Claude Code、Webアプリ、モバイルアプリ、APIすべてで利用可能
- 単一タスク向けの「レシピ」のようなもの
- 再利用可能で軽量
使用例:
- 個人的な作業設定やコミュニケーションスタイルを記述したユーザーマニュアル
- 文書ファイル(PDF、Word、Excel)をテキストに変換するツール
- 会社固有のブランドガイドライン
参考サイト
🤖 2. SubAgents(サブエージェント)
SubAgentsは特定のタスクを処理するために設定された専門的なAIアシスタントで、カスタムシステムプロンプト、ツール、独立したコンテキストウィンドウを持っている。
特徴:
- 独立したコンテキストで動作し、メインの会話を汚染しない
- 複雑な複数ステップのワークフローに最適
- 各SubAgentには特定のツールアクセス権限を設定可能
使用例:
- コードレビュー専門家(品質、セキュリティ、保守性をチェック)
- Laravelの機能計画を立てるプランナー(読み取り専用)
- 承認された計画を実装するコーダー(編集権限付き)
- データ分析や可視化の専門家
参考サイト
特別なSubAgent:
Plan SubAgentは、プランモード時にClaudeがコードベースを調査するために自動的に使用する。
ツール構成の柔軟性
SubAgentsには以下のようなツールアクセスを設定できます
- 読み取り専用(Read, Grep, Glob)- レビュアー、監査担当者向け
- リサーチ型(Read, Grep, Glob, WebFetch, WebSearch)- 情報収集
- コード記述型(Read, Write, Edit, Bash, Glob, Grep)- 開発者、エンジニア向け
📦 3. Plugins(プラグイン)
PluginsはSkills、SubAgents、Commandsをまとめたパッケージで、一貫性のあるユニットとして配布されます。
利点:
- 自動インストールスクリプト付き
- バージョン管理とドキュメント付き
- コミュニティ駆動の拡張性
参考サイト
⚡ 4. Commands(コマンド)
Commandsはユーザーが開始するショートカットで、/commandと入力して実行します。保存可能なプロンプトのようなもので、プロジェクト単位またはグローバルで設定できます。
🔗 5. MCP(Model Context Protocol)
MCPはAIを外部システムに接続するためのプロトコルで、ファイルシステムやその他のサービスへのアクセスを提供する。
Skills, SubAgents, Commands, の使い方が微妙に分かりにくかったので、さらにまとめると次のような感じ。
| 機能 | 呼出方法 | 主な用途 | ファイル配置 |
|---|---|---|---|
| Skills | モデルが自動的に判断 | 領域特化知識・ガイダンス | .claude/skills/<skill>/SKILL.md |
| SubAgents | 明示的指定/自動割当 | 独立の文脈でタスク実行 | .claude/agents/<agent>.md |
| Commands | ユーザーが明示的実行 | 定型作業や特殊なワークフロー実施 | .claude/commands/<prefix>/<command>.md |
使い道としてユーザーとの特化したやりとりは Commands を使う感じ。
Skills はユーザーからの対話のなかで自動的に実行される場合もあるし、SubAgents からも実行される場合もあるようなよく使う汎用的なものを登録しておけば良さそう。
SubAgents は役割が異なるタスクごとに指定して実行するときに良さそう。
またSubAgentsごとに使用できるスキルを指定することが可能。
Anthropicが意図的に設計した「スキル適用スコープ(skill scope)」という概念に基づいている。
概念的な整理:Sub-Agent × Skill の関係
Main Agent (親)
├── SubAgent A(例:code-reviewer)
│ ├── Skill 1: code-style-guide
│ └── Skill 2: security-check
├── SubAgent B(例:doc-writer)
│ ├── Skill 3: markdown-formatter
│ └── Skill 4: citation-generator
└── Global Skill(全員が使える)
└── Skill X: file-system, search, pdf-export
Global Skill:全エージェント(親・サブ)から利用可
Scoped Skill:特定のサブエージェントだけが使える
1. 設定方法(.claude/agents/*.md の書き方)
サブエージェントの定義MarkdownのYAMLフロントマターで、
skills: キーを使って許可したスキルをリスト指定します。
---
name: code-reviewer
description: Reviews pull requests for code quality and security issues
tools:
- file-read
- file-comment
skills:
- code-style-guide
- security-check
---
あなたの役割:
- Pull Request の差分を読み込み、指定スキルを使ってレビューを行う
- 結果を Markdown コメントとして出力する
このように書くと、
この code-reviewer サブエージェントは「code-style-guide」と「security-check」スキルのみを読み込めます。
他のスキルは参照されず、呼び出しもされません。
2. スキル側の対応設定(SKILL.md)
スキル側でも、どのエージェントで使えるかを限定できます。
allowed_agents: を指定することで、スキルの適用範囲を制約します。
---
name: security-check
description: Performs static analysis for security vulnerabilities in Go and Python
allowed_agents:
- code-reviewer
- build-bot
---
これで、「security-check スキル」は code-reviewer または build-bot サブエージェントから呼び出されたときのみ有効になります。
Discussion