- Authors

- Name
- Youngju Kim
- @fjvbn20031
- はじめに:エージェンティックコーディングの時代(じだい)
- 1. Claude Codeとは何(なに)か
- 2. Claude Code vs Cursor vs GitHub Copilot 比較(ひかく)
- 3. インストールと初期(しょき)設定(せってい)
- 4. CLAUDE.mdのマスター
- 5. コアワークフロー
- 6. サブエージェント ディープダイブ
- 7. フック(Hooks)システム
- 8. Agent SDK
- 9. MCPサーバー連携(れんけい)
- 10. 高度(こうど)なパターン
- 11. 実際(じっさい)の事例(じれい)と生産性(せいさんせい)データ
- 12. ヒントとトリック
- 13. クイズ
- 参考資料(さんこうしりょう)
はじめに:エージェンティックコーディングの時代(じだい)
2025年(ねん)は、AIコーディングのパラダイムが根本的(こんぽんてき)に変(か)わった年(とし)です。単純(たんじゅん)なコード自動補完(じどうほかん)を超(こ)え、AIが自律的(じりつてき)にコードベースを探索(たんさく)し、計画(けいかく)を立(た)て、ファイルを編集(へんしゅう)し、テストを実行(じっこう)する**エージェンティックコーディング(Agentic Coding)**の時代(じだい)が本格的(ほんかくてき)に幕(まく)を開(あ)けました。
AnthropicのClaude Codeは、このパラダイムの最前線(さいぜんせん)に立(た)つツールです。ターミナルネイティブのインターフェースで動作(どうさ)し、プロジェクト全体(ぜんたい)のコンテキストを理解(りかい)し、開発者(かいはつしゃ)のワークフローに自然(しぜん)に統合(とうごう)されます。単(たん)なるチャットボットではなく、真(しん)の意味(いみ)でのコーディングエージェントです。
このガイドでは、Claude Codeの中核(ちゅうかく)機能(きのう)からサブエージェント、フックシステム、Agent SDK、MCPサーバー連携(れんけい)まで — エージェンティックコーディングのすべてをカバーします。
対象読者(たいしょうどくしゃ): AIコーディングツールに関心(かんしん)のある開発者(かいはつしゃ)、チームリーダー、DevOpsエンジニア。基本的(きほんてき)なターミナル操作(そうさ)とGitの知識(ちしき)を前提(ぜんてい)とします。
1. Claude Codeとは何(なに)か
1.1 中核(ちゅうかく)コンセプト
Claude Codeは、Anthropicが開発(かいはつ)したターミナルベースのエージェンティックコーディングツールです。IDEプラグインではなく、ターミナルで直接(ちょくせつ)実行(じっこう)され、3つの中核(ちゅうかく)能力(のうりょく)を持(も)っています。
| 能力(のうりょく) | 説明(せつめい) | 例(れい) |
|---|---|---|
| コードベース読(よ)み取(と)り | プロジェクト全体(ぜんたい)の構造(こうぞう)とファイルを理解(りかい) | 依存関係(いぞんかんけい)分析(ぶんせき)、アーキテクチャ把握(はあく) |
| ファイル編集(へんしゅう) | コード修正(しゅうせい)、作成(さくせい)、削除(さくじょ)の実行(じっこう) | バグ修正(しゅうせい)、リファクタリング、新機能(しんきのう)追加(ついか) |
| コマンド実行(じっこう) | シェルコマンドを直接(ちょくせつ)実行(じっこう) | テスト実行(じっこう)、ビルド、Git操作(そうさ) |
重要(じゅうよう)な差別化(さべつか)ポイントはコンテキストの深(ふか)さです。Claude Codeは単一(たんいつ)ファイルだけでなく、プロジェクト全体(ぜんたい)を理解(りかい)します。ディレクトリ構造(こうぞう)、依存関係(いぞんかんけい)、コーディング規約(きやく)、Git履歴(りれき)まですべて把握(はあく)した状態(じょうたい)で作業(さぎょう)します。
1.2 ターミナルファースト哲学(てつがく)
Claude Codeがターミナルを選(えら)んだ理由(りゆう)は明確(めいかく)です。
- 最大(さいだい)の柔軟性(じゅうなんせい): どんなエディター、どんなワークフローとも結合(けつごう)可能(かのう)
- 自動化(じどうか)との親和性(しんわせい): スクリプト、CI/CDパイプラインに統合(とうごう)可能(かのう)
- 低(ひく)いオーバーヘッド: 追加(ついか)のIDE不要(ふよう)、SSH環境(かんきょう)でも動作(どうさ)
- 透明性(とうめいせい): すべてのコマンドとファイル変更(へんこう)がターミナルに表示(ひょうじ)
# Claude Code 基本実行
claude
# 特定のプロンプトで実行
claude "このプロジェクトのアーキテクチャを分析してください"
# パイプラインモード
cat error.log | claude "このエラーの原因を分析して修正してください"
1.3 動作(どうさ)の仕組(しく)み
Claude Codeのワークフローは以下(いか)の通(とお)りです。
- コンテキスト収集(しゅうしゅう): プロジェクト構造(こうぞう)、CLAUDE.mdファイル、Git状態(じょうたい)の把握(はあく)
- 計画(けいかく)策定(さくてい): ユーザーリクエストを分析(ぶんせき)し、作業計画(さぎょうけいかく)を作成(さくせい)
- ツール使用(しよう): ファイル読(よ)み書(か)き、コマンド実行(じっこう)、検索(けんさく)などのツール活用(かつよう)
- 検証(けんしょう): 変更(へんこう)の確認(かくにん)、テスト実行(じっこう)
- フィードバックループ: 結果(けっか)に基(もと)づく追加修正(ついかしゅうせい)
このプロセス全体(ぜんたい)を通(つう)じて、ユーザーは各(かく)ステップを確認(かくにん)し承認(しょうにん)できます。自律性(じりつせい)と制御(せいぎょ)のバランスがClaude Codeの設計(せっけい)哲学(てつがく)です。
2. Claude Code vs Cursor vs GitHub Copilot 比較(ひかく)
エージェンティックコーディングツール市場(しじょう)の主要(しゅよう)3プレイヤーを比較(ひかく)します。
2.1 機能(きのう)比較表(ひかくひょう)
| 機能(きのう) | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|
| インターフェース | ターミナル (CLI) | IDE (VS Code フォーク) | IDE プラグイン |
| コードベース理解(りかい) | プロジェクト全体(ぜんたい) | プロジェクト全体(ぜんたい) | ファイル/タブ単位(たんい) |
| ファイル編集(へんしゅう) | 直接(ちょくせつ)編集(へんしゅう) | 直接(ちょくせつ)編集(へんしゅう) | 提案(ていあん)ベース |
| コマンド実行(じっこう) | 可能(かのう) | 限定的(げんていてき) | 不可(ふか) |
| エージェントモード | ネイティブ | Composer Agent | Agent モード (プレビュー) |
| サブエージェント | 並列(へいれつ)サブエージェント | 未対応(みたいおう) | 未対応(みたいおう) |
| フックシステム | 内蔵(ないぞう)フック | 未対応(みたいおう) | 未対応(みたいおう) |
| カスタムエージェント | Agent SDK | 未対応(みたいおう) | Extensions |
| MCPサポート | ネイティブ | サポート | 限定的(げんていてき) |
| 自動化(じどうか)/CI統合(とうごう) | 優秀(ゆうしゅう) | 限定的(げんていてき) | GitHub Actions |
| マルチリポ | ワークツリーサポート | 限定的(げんていてき) | 未対応(みたいおう) |
| 料金(りょうきん) | API使用量(しようりょう)ベース | 月(つき)20ドル / 40ドル | 月(つき)10ドル / 19ドル |
2.2 どのツールを選(えら)ぶべきか
Claude Codeが適(てき)している場合(ばあい):
- 大規模(だいきぼ)コードベースで複雑(ふくざつ)なリファクタリングが必要(ひつよう)な時(とき)
- CI/CDパイプラインにAIを統合(とうごう)したい時(とき)
- 複数(ふくすう)ファイルにまたがる変更(へんこう)が頻繁(ひんぱん)な時(とき)
- カスタムエージェントでチームワークフローを自動化(じどうか)したい時(とき)
Cursorが適(てき)している場合(ばあい):
- ビジュアルIDE環境(かんきょう)を好(この)む時(とき)
- コーディング中(ちゅう)のリアルタイム提案(ていあん)が重要(じゅうよう)な時(とき)
- VS Code エコシステムに慣(な)れている時(とき)
GitHub Copilotが適(てき)している場合(ばあい):
- 既存(きそん)のIDEで軽(かる)く始(はじ)めたい時(とき)
- インライン自動補完(じどうほかん)が主(しゅ)な用途(ようと)の時(とき)
- GitHubエコシステムとの緊密(きんみつ)な統合(とうごう)が必要(ひつよう)な時(とき)
3. インストールと初期(しょき)設定(せってい)
3.1 インストール
Claude Codeのインストールはnpmで簡単(かんたん)です。
# Node.js 18以上が必要
npm install -g @anthropic-ai/claude-code
# または特定のディレクトリでnpxで実行
npx @anthropic-ai/claude-code
インストール後(ご)、認証(にんしょう)を行(おこな)います。
# 初回実行時に認証プロセスが開始
claude
# Anthropicアカウントまたは APIキーで認証
# ブラウザが開き認証完了
3.2 VS Code拡張(かくちょう)
Claude Codeはターミナルツールですが、VS Code拡張(かくちょう)も提供(ていきょう)しています。
# VS Code拡張のインストール
code --install-extension anthropic.claude-code
VS Code拡張(かくちょう)の利点(りてん):
- エディター内(ない)でClaude Codeパネルを使用(しよう)
- diffビューでファイル変更(へんこう)を確認(かくにん)
- インラインコメントで特定(とくてい)コードについて質問(しつもん)
3.3 基本(きほん)設定(せってい)
# 設定の確認
claude config list
# モデル設定 (デフォルト: claude-sonnet-4-20250514)
claude config set model claude-sonnet-4-20250514
# 権限設定
claude config set permissions.allow-edit true
claude config set permissions.allow-exec true
# 自動承認パターンの設定
claude config set permissions.auto-approve-commands "npm test,npm run lint"
3.4 ターミナル環境(かんきょう)のヒント
# tmuxセッションでClaude Codeを実行(長時間の作業に有用)
tmux new-session -s claude
claude
# 作業ログの保存
claude --output-dir ./claude-logs
# 非対話モード(スクリプトで使用)
claude -p "README.mdを更新してください" --yes
4. CLAUDE.mdのマスター
4.1 CLAUDE.mdとは
CLAUDE.mdは、**プロジェクトのコンテキスト、規約(きやく)、指示(しじ)事項(じこう)**をClaude Codeに伝(つた)えるマークダウンファイルです。Claude Codeがプロジェクトを開始(かいし)する時(とき)に自動的(じどうてき)に読(よ)み込(こ)まれ、AIがプロジェクトの「ルール」を理解(りかい)するための中核(ちゅうかく)メカニズムです。
4.2 CLAUDE.mdの階層(かいそう)構造(こうぞう)
CLAUDE.mdは複数(ふくすう)の場所(ばしょ)に存在(そんざい)でき、階層的(かいそうてき)に適用(てきよう)されます。
| 場所(ばしょ) | 範囲(はんい) | 用途(ようと) |
|---|---|---|
~/.claude/CLAUDE.md | グローバル | すべてのプロジェクトに適用(てきよう)される共通(きょうつう)ルール |
プロジェクトルート CLAUDE.md | プロジェクト全体(ぜんたい) | アーキテクチャ、技術(ぎじゅつ)スタック、ルール |
サブディレクトリ CLAUDE.md | そのディレクトリ | モジュール別(べつ)の特殊(とくしゅ)ルール |
.claude/CLAUDE.md | 個人(こじん) | 個人設定(こじんせってい)(Gitに含(ふく)まれない) |
4.3 効果的(こうかてき)なCLAUDE.mdの書(か)き方(かた)
# プロジェクト概要
このプロジェクトはNext.js 14ベースのブログプラットフォームです。
TypeScriptを使用し、Tailwind CSSでスタイリングしています。
# 技術スタック
- Framework: Next.js 14 (App Router)
- Language: TypeScript (strict mode)
- Styling: Tailwind CSS
- Database: PostgreSQL + Prisma ORM
- Testing: Jest + React Testing Library
# コーディング規約
- コンポーネント: 関数コンポーネント + アロー関数を使用
- 命名規則: camelCase (変数/関数), PascalCase (コンポーネント/型)
- import順序: 外部ライブラリ > 内部モジュール > 相対パス
- エラーハンドリング: try-catchの代わりにResult型パターンを使用
# テストルール
- すべての新しい関数にユニットテスト必須
- テストコマンド: npm test
- リントコマンド: npm run lint
- PR前に必ず npm run build の成功を確認
# 禁止パターン
- any型の使用禁止
- console.logの使用禁止(loggerを使用)
- ハードコードされた文字列禁止(定数ファイルを使用)
# ディレクトリ構造
src/
app/ - Next.js App Router ページ
components/ - 再利用可能なコンポーネント
lib/ - ユーティリティ、ヘルパー関数
types/ - TypeScript型定義
hooks/ - カスタムReact フック
4.4 CLAUDE.mdの高度(こうど)なパターン
条件付(じょうけんつ)き指示(しじ):
# ファイル別ルール
- /src/api/ 配下のファイル修正時: 必ずAPIドキュメントも更新
- /src/components/ 配下のファイル修正時: Storybookストーリーも更新
- データベーススキーマ変更時: マイグレーションファイルを自動生成
ワークフロー指示(しじ):
# 作業順序
1. まず関連コードを探索して理解する
2. 実装計画を説明する
3. 変更を実装する
4. テストを実行して確認する
5. 関連ドキュメントを更新する
4.5 CLAUDE.md管理(かんり)コマンド
# 会話中にCLAUDE.mdに追加
claude /add-memory "APIレスポンスは常にsnake_caseを使用します"
# 現在適用されているメモリの確認
claude /memory
# プロジェクト初期化時にCLAUDE.mdを自動生成
claude /init
5. コアワークフロー
5.1 探索(たんさく) - 計画(けいかく) - 実装(じっそう) - 検証(けんしょう) サイクル
Claude Codeの基本(きほん)的(てき)な作業(さぎょう)サイクルは4段階(だんかい)です。
第(だい)1段階(だんかい): 探索(たんさく)(Explore)
> このプロジェクトの認証システム構造を分析してください
Claude Codeが行う作業:
- プロジェクトディレクトリ構造のスキャン
- auth関連ファイルの検索 (grep, glob)
- 依存関係の分析 (package.json, importの追跡)
- 設定ファイルの確認
第(だい)2段階(だんかい): 計画(けいかく)(Plan)
> JWTトークン更新ロジックにリフレッシュトークンローテーションを追加したい
Claude Codeが行う作業:
- 現在のトークン更新ロジックの分析
- 変更が必要なファイル一覧の提示
- 実装計画の説明
- 予想される影響範囲の分析
第(だい)3段階(だんかい): 実装(じっそう)(Implement)
ユーザーが計画(けいかく)を承認(しょうにん)すると、Claude Codeがコードを直接(ちょくせつ)修正(しゅうせい)します。各(かく)ファイル変更前(へんこうまえ)にdiffを表示(ひょうじ)し、承認(しょうにん)を求(もと)めます。
第(だい)4段階(だんかい): 検証(けんしょう)(Verify)
> 変更を検証してください
Claude Codeが行う作業:
- npm test の実行
- リントチェック
- 型チェック
- ビルドの確認
5.2 実践(じっせん)シナリオ: バグ修正(しゅうせい)
# エラーログをパイプで渡す
cat error.log | claude "このエラーを分析して修正してください"
# Claude Codeのワークフロー:
# 1. エラーメッセージの分析
# 2. 関連ソースコードの検索
# 3. 原因の特定
# 4. 修正コードの作成
# 5. テスト実行で修正の確認
5.3 実践(じっせん)シナリオ: 新機能(しんきのう)追加(ついか)
> ユーザープロフィールページにアクティビティ履歴タイムラインを追加してください。
> 過去30日間のアクティビティを時系列で表示し、
> 無限スクロールで以前のアクティビティをロードできるようにしてください。
Claude Codeの作業:
1. 既存のプロフィールページコードの分析
2. アクティビティデータAPIエンドポイントの確認/作成
3. タイムラインコンポーネントの実装
4. 無限スクロールロジックの実装
5. スタイリング
6. テストの作成と実行
5.4 Gitワークフロー統合(とうごう)
# 現在の変更でコミットを作成
claude commit
# PRの作成
claude "現在のブランチの変更でPRを作成してください"
# コードレビュー
claude "PR #42の変更をレビューしてください"
# マージコンフリクトの解決
claude "現在のマージコンフリクトを解決してください"
6. サブエージェント ディープダイブ
6.1 サブエージェントとは
サブエージェントはClaude Codeの最(もっと)も強力(きょうりょく)な機能(きのう)の一(ひと)つです。メインエージェントが複雑(ふくざつ)なタスクを複数(ふくすう)の独立(どくりつ)したサブタスクに分割(ぶんかつ)し、**並列(へいれつ)**で実行(じっこう)します。
メインエージェント(オーケストレーター)
├── サブエージェント 1: APIエンドポイント実装
├── サブエージェント 2: フロントエンドコンポーネント作成
├── サブエージェント 3: データベースマイグレーション
└── サブエージェント 4: テストコード作成
6.2 サブエージェントの仕組(しく)み
サブエージェントには以下(いか)の特性(とくせい)があります。
| 特性(とくせい) | 説明(せつめい) |
|---|---|
| 独立(どくりつ)コンテキスト | 各(かく)サブエージェントが独自(どくじ)のコンテキストウィンドウを持(も)つ |
| 並列実行(へいれつじっこう) | 複数(ふくすう)のサブエージェントが同時(どうじ)に作業(さぎょう) |
| 結果統合(けっかとうごう) | メインエージェントがサブエージェントの結果(けっか)を統合(とうごう) |
| 障害分離(しょうがいぶんり) | 1つの失敗(しっぱい)が他(ほか)の作業(さぎょう)に影響(えいきょう)しない |
| 読(よ)み取(と)り専用(せんよう)オプション | 分析(ぶんせき)/探索用(たんさくよう)サブエージェントは読(よ)み取(と)り専用(せんよう)で実行(じっこう)可能(かのう) |
6.3 サブエージェント活用(かつよう)パターン
パターン1: 大規模(だいきぼ)リファクタリング
> プロジェクト全体でクラスコンポーネントを関数コンポーネントに変換してください
メインエージェントの作業:
1. クラスコンポーネントを使用する全ファイルの検索
2. ファイルをグループに分割
3. 各グループをサブエージェントに割り当て
4. サブエージェントが並列で変換を実行
5. 結果の統合とテスト
パターン2: マルチファイル分析(ぶんせき)
> このプロジェクトのセキュリティ脆弱性を分析してください
サブエージェント 1: 認証/認可コードの分析
サブエージェント 2: SQLインジェクションの可能性チェック
サブエージェント 3: XSS脆弱性のチェック
サブエージェント 4: 依存関係のセキュリティ監査
パターン3: コード生成(せいせい) + テスト
> ユーザー管理のCRUD APIを作成してください
サブエージェント 1: APIルートとコントローラーの生成
サブエージェント 2: データモデルとマイグレーションの生成
サブエージェント 3: 統合テストの作成
サブエージェント 4: APIドキュメントの生成
6.4 バックグラウンドエージェント
Claude Codeはバックグラウンドで作業(さぎょう)を継続(けいぞく)できます。
# バックグラウンドエージェントの開始
claude --background "テストカバレッジを80%以上に引き上げてください"
# バックグラウンドエージェントの状態確認
claude --list-backgrounds
# 結果の確認
claude --resume <session-id>
バックグラウンドエージェントの活用(かつよう)例(れい):
- 長時間(ちょうじかん)のリファクタリング作業(さぎょう)
- 大規模(だいきぼ)コードマイグレーション
- テストカバレッジの向上(こうじょう)
- ドキュメンテーション作業(さぎょう)
6.5 ワークツリーを活用(かつよう)した並列(へいれつ)作業(さぎょう)
Gitワークツリーと組(く)み合(あ)わせると、より強力(きょうりょく)な並列作業(へいれつさぎょう)が可能(かのう)です。
# ワークツリーを作成して独立した作業を実行
claude "ワークツリーを作成して、feature-authブランチで認証モジュールをリファクタリングしてください"
# メインブランチでは別の作業を継続
claude "バグ修正を続けてください"
ワークツリーの利点(りてん):
- 隔離(かくり)された作業環境(さぎょうかんきょう): メインコードに影響(えいきょう)なく実験(じっけん)可能(かのう)
- 並列開発(へいれつかいはつ): 複数(ふくすう)の機能(きのう)を同時(どうじ)に開発(かいはつ)
- 安全(あんぜん)な実験(じっけん): 失敗(しっぱい)してもワークツリーを削除(さくじょ)するだけ
7. フック(Hooks)システム
7.1 フックとは
フックは、Claude Codeの特定(とくてい)のイベントに反応(はんのう)して自動的(じどうてき)に実行(じっこう)されるカスタムアクションです。開発(かいはつ)ワークフローを自動化(じどうか)するための中核(ちゅうかく)メカニズムです。
7.2 フックの種類(しゅるい)
| フックイベント | トリガータイミング | 活用例(かつようれい) |
|---|---|---|
| PreToolUse | ツール実行前(じっこうまえ) | 危険(きけん)なコマンドのブロック、ファイルバックアップ |
| PostToolUse | ツール実行後(じっこうご) | 自動(じどう)フォーマット、リント実行(じっこう) |
| Notification | 通知発生時(つうちはっせいじ) | Slack通知(つうち)、メール送信(そうしん) |
| Stop | エージェント終了時(しゅうりょうじ) | 最終検証(さいしゅうけんしょう)、レポート生成(せいせい) |
7.3 フックの設定方法(せっていほうほう)
フックは .claude/settings.json ファイルで設定(せってい)します。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"command": "cp \"$CLAUDE_FILE_PATH\" \"$CLAUDE_FILE_PATH.bak\" 2>/dev/null || true"
}
],
"PostToolUse": [
{
"matcher": "Edit",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
},
{
"matcher": "Write",
"command": "npx eslint --fix \"$CLAUDE_FILE_PATH\""
}
],
"Notification": [
{
"matcher": "",
"command": "terminal-notifier -message \"$CLAUDE_NOTIFICATION\" -title \"Claude Code\""
}
],
"Stop": [
{
"matcher": "",
"command": "npm test 2>&1 | tail -20"
}
]
}
}
7.4 実践(じっせん)フックレシピ
レシピ1: 自動(じどう)テスト実行(じっこう)
ファイルが修正(しゅうせい)されるたびに関連(かんれん)テストを自動(じどう)で実行(じっこう)します。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit",
"command": "if [[ \"$CLAUDE_FILE_PATH\" == *.ts ]]; then npx jest --findRelatedTests \"$CLAUDE_FILE_PATH\" --passWithNoTests; fi"
}
]
}
}
レシピ2: 自動(じどう)フォーマットパイプライン
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\" && npx eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
}
]
}
}
レシピ3: セキュリティガードレール
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "if echo \"$CLAUDE_COMMAND\" | grep -qE 'rm -rf|DROP TABLE|DELETE FROM'; then echo 'BLOCKED: 危険なコマンドが検出されました' && exit 1; fi"
}
]
}
}
レシピ4: 変更(へんこう)ロギング
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "echo \"$(date): $CLAUDE_FILE_PATH modified\" >> .claude/change.log"
}
]
}
}
7.5 フックのデバッグ
# フック実行ログの確認
claude --verbose
# 特定フックの無効化
claude config set hooks.PostToolUse.enabled false
# フックをスキップ(一時的)
claude --no-hooks
8. Agent SDK
8.1 Agent SDKの概要(がいよう)
Agent SDKは、Claude Codeのコア機能(きのう)をプログラム的(てき)に使用(しよう)できるようにする開発(かいはつ)キットです。これによりカスタムAIエージェントを構築(こうちく)できます。
import { AgentSDK } from '@anthropic-ai/claude-code-sdk'
const agent = new AgentSDK({
model: 'claude-sonnet-4-20250514',
permissions: {
fileRead: true,
fileWrite: true,
commandExec: ['npm test', 'npm run lint'],
},
})
8.2 コアコンセプト
| コンセプト | 説明(せつめい) |
|---|---|
| セッション(Session) | エージェントとの会話(かいわ)コンテキスト |
| ツール(Tools) | エージェントが使用(しよう)できる機能(きのう) |
| 権限(けんげん)(Permissions) | エージェントの作業範囲(さぎょうはんい)の制限(せいげん) |
| イベント(Events) | エージェント作業中(さぎょうちゅう)に発生(はっせい)するイベント |
8.3 カスタムエージェントの構築例(こうちくれい)
例(れい)1: コードレビューエージェント
import { AgentSDK } from '@anthropic-ai/claude-code-sdk'
async function createCodeReviewAgent() {
const agent = new AgentSDK({
model: 'claude-sonnet-4-20250514',
systemPrompt: `あなたはシニアコードレビュアーです。
以下の観点からコードをレビューします:
1. セキュリティ脆弱性
2. パフォーマンスの問題
3. コーディング規約の遵守
4. テストカバレッジ`,
permissions: {
fileRead: true,
fileWrite: false,
commandExec: ['git diff'],
},
})
const session = await agent.createSession()
const result = await session.send('現在のPRの変更をレビューしてください')
console.log(result.response)
console.log('検出された問題:', result.issues)
}
例(れい)2: 自動(じどう)ドキュメンテーションエージェント
async function createDocAgent() {
const agent = new AgentSDK({
model: 'claude-sonnet-4-20250514',
systemPrompt: `関数とモジュールのJSDoc/TSDocドキュメントを自動生成します。
既存のドキュメントがあれば更新し、なければ新規作成します。`,
permissions: {
fileRead: true,
fileWrite: true,
commandExec: ['npm run build'],
},
})
const session = await agent.createSession()
await session.send('src/lib/ ディレクトリの全exportされた関数にドキュメントを追加してください')
}
例(れい)3: データベースマイグレーションエージェント
async function createMigrationAgent() {
const agent = new AgentSDK({
model: 'claude-sonnet-4-20250514',
systemPrompt: `Prismaマイグレーションを管理する専門エージェントです。
スキーマ変更を分析し、安全なマイグレーションを生成します。`,
permissions: {
fileRead: true,
fileWrite: true,
commandExec: ['npx prisma migrate dev', 'npx prisma generate', 'npx prisma db push'],
},
})
const session = await agent.createSession()
await session.send(
'UserモデルにprofileImageフィールドを追加するマイグレーションを作成してください'
)
}
8.4 イベントハンドリング
const session = await agent.createSession()
session.on('toolUse', (event) => {
console.log(`ツール使用: ${event.tool} - ${event.description}`)
})
session.on('fileChange', (event) => {
console.log(`ファイル変更: ${event.path} - ${event.type}`)
})
session.on('commandExec', (event) => {
console.log(`コマンド実行: ${event.command}`)
console.log(`結果: ${event.output}`)
})
session.on('error', (event) => {
console.error(`エラー発生: ${event.message}`)
})
8.5 権限(けんげん)モデル
セキュリティはAgent SDKの中核的(ちゅうかくてき)な設計原則(せっけいげんそく)です。
const agent = new AgentSDK({
permissions: {
// ファイルアクセス制御
fileRead: true,
fileWrite: true,
fileGlob: ['src/**/*.ts', 'tests/**/*.ts'], // 許可パターン
fileExclude: ['*.env', 'secrets/**'], // ブロックパターン
// コマンド実行制御
commandExec: ['npm test', 'npm run lint', 'npx prisma migrate dev'],
// ネットワークアクセス制御
networkAccess: false,
// MCPサーバーアクセス
mcpServers: ['filesystem', 'database'],
},
})
9. MCPサーバー連携(れんけい)
9.1 MCP(Model Context Protocol)とは
MCPは、AIモデルが外部(がいぶ)ツールやデータソースにアクセスできるようにする標準(ひょうじゅん)プロトコルです。Claude CodeはMCPをネイティブでサポートし、様々(さまざま)な外部(がいぶ)システムとの連携(れんけい)を可能(かのう)にします。
Claude Code <--MCP--> データベースサーバー
Claude Code <--MCP--> GitHub API
Claude Code <--MCP--> Slack API
Claude Code <--MCP--> ファイルシステム
Claude Code <--MCP--> カスタムAPI
9.2 MCPサーバーの設定(せってい)
プロジェクトレベルで .claude/settings.json にMCPサーバーを登録(とうろく)します。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_TOKEN": "xoxb-xxxxxxxxxxxx"
}
}
}
}
9.3 人気(にんき)MCPサーバー一覧(いちらん)
| MCPサーバー | 用途(ようと) | 提供機能(ていきょうきのう) |
|---|---|---|
| filesystem | ファイルシステム | ファイル読(よ)み書(か)き、ディレクトリ探索(たんさく) |
| github | GitHub連携(れんけい) | PR、Issue、コード検索(けんさく)、レビュー |
| postgres | PostgreSQL | クエリ実行(じっこう)、スキーマ照会(しょうかい) |
| sqlite | SQLite | ローカルDB操作(そうさ) |
| slack | Slack連携(れんけい) | メッセージ送信(そうしん)、チャンネル照会(しょうかい) |
| puppeteer | Webブラウザ | Webスクレイピング、E2Eテスト |
| memory | 永続(えいぞく)メモリ | セッション間(かん)データ保持(ほじ) |
| brave-search | Web検索(けんさく) | リアルタイムWeb検索(けんさく) |
| sentry | エラー追跡(ついせき) | エラーログ照会(しょうかい)、分析(ぶんせき) |
| linear | プロジェクト管理(かんり) | イシュー追跡(ついせき)、スプリント管理(かんり) |
9.4 カスタムMCPサーバーの構築(こうちく)
自社(じしゃ)APIや社内(しゃない)システムを連携(れんけい)するためにカスタムMCPサーバーを構築(こうちく)できます。
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
const server = new McpServer({
name: 'my-internal-api',
version: '1.0.0',
})
// ツール定義
server.tool(
'getDeployStatus',
'デプロイステータスを取得',
{
environment: { type: 'string', enum: ['staging', 'production'] },
},
async (params) => {
const status = await fetchDeployStatus(params.environment)
return {
content: [
{
type: 'text',
text: JSON.stringify(status, null, 2),
},
],
}
}
)
server.tool(
'triggerDeploy',
'デプロイをトリガー',
{
environment: { type: 'string' },
version: { type: 'string' },
},
async (params) => {
const result = await triggerDeploy(params.environment, params.version)
return {
content: [
{
type: 'text',
text: `デプロイがトリガーされました: ${result.id}`,
},
],
}
}
)
// サーバー起動
const transport = new StdioServerTransport()
await server.connect(transport)
9.5 MCPサーバーの活用(かつよう)シナリオ
シナリオ1: データベース連携(れんけい)開発(かいはつ)
> usersテーブルのスキーマを確認して、新しいAPIエンドポイントを作成してください
Claude Codeの作業:
1. MCP postgresサーバーでスキーマを照会
2. 既存のAPIパターンを分析
3. 新しいエンドポイントのコードを生成
4. マイグレーションファイルを生成
5. テストを作成
シナリオ2: GitHub連携(れんけい)ワークフロー
> 最近オープンされたissueの中でbugラベルがあるものを確認し、
> 最も優先度の高いものを修正してください
Claude Codeの作業:
1. MCP githubサーバーでissue一覧を照会
2. 優先度を分析
3. 関連コードの探索と修正
4. PRの作成
10. 高度(こうど)なパターン
10.1 マルチリポジトリ作業(さぎょう)
複数(ふくすう)のリポジトリにまたがる作業(さぎょう)を実行(じっこう)できます。
# モノレポ環境で
claude "packages/shared ライブラリの変更が packages/web と packages/api に
与える影響を分析し、必要な更新をすべて実行してください"
10.2 Gitワークツリーの活用(かつよう)
# 複数の機能を同時に開発
claude "ワークツリーを作成して、以下のタスクを並列で実行してください:
1. feature/auth - 認証モジュールのリファクタリング
2. feature/dashboard - ダッシュボードのパフォーマンス最適化
3. fix/memory-leak - メモリリークの修正"
10.3 スケジュールタスク
Claude Codeで繰(く)り返(かえ)しのタスクをスケジューリングできます。
# 毎朝のコード品質レポート生成
claude schedule --cron "0 9 * * *" "コード品質レポートを生成してSlackで共有してください"
# 毎週月曜日の依存関係更新チェック
claude schedule --cron "0 10 * * 1" "npm outdatedを確認して安全なアップデートを適用してください"
10.4 ヘッドレスモードとCI/CD統合(とうごう)
# GitHub Actionsの例
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Claude Code Review
run: |
npx @anthropic-ai/claude-code -p \
"このPRの変更をレビューしてコメントを残してください" \
--yes --output-format json
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
10.5 コンテキストウィンドウの最適化(さいてきか)
大規模(だいきぼ)プロジェクトでコンテキストを効率的(こうりつてき)に使(つか)うための戦略(せんりゃく)です。
- CLAUDE.mdでプロジェクトコンテキストを事前(じぜん)提供(ていきょう): 毎回(まいかい)探索(たんさく)する必要(ひつよう)なく核心(かくしん)情報(じょうほう)を提供(ていきょう)
- サブエージェントでコンテキストを分散(ぶんさん): 大(おお)きなタスクを小(ちい)さな独立(どくりつ)タスクに分割(ぶんかつ)
/compactコマンドで会話(かいわ)を圧縮(あっしゅく): 長(なが)い会話(かいわ)で核心(かくしん)のみ保持(ほじ)- ファイルフィルタリング:
.claudeignoreで不要(ふよう)なファイルを除外(じょがい)
# .claudeignore の例
node_modules/
dist/
.next/
coverage/
*.lock
*.log
11. 実際(じっさい)の事例(じれい)と生産性(せいさんせい)データ
11.1 Anthropic社内(しゃない)の使用(しよう)データ
Anthropic社内(しゃない)の開発(かいはつ)チームが共有(きょうゆう)したClaude Code使用(しよう)データです。
| 指標(しひょう) | 数値(すうち) |
|---|---|
| コード作成(さくせい)時間(じかん)の短縮(たんしゅく) | 約(やく)40-60% |
| コードレビュー時間(じかん)の短縮(たんしゅく) | 約(やく)30-50% |
| バグ修正(しゅうせい)平均(へいきん)時間(じかん) | 従来比(じゅうらいひ)50%削減(さくげん) |
| テストカバレッジの向上(こうじょう) | 平均(へいきん)15-20%増加(ぞうか) |
| 日次(にちじ)コミット数(すう) | 平均(へいきん)2-3倍(ばい)増加(ぞうか) |
11.2 事例(じれい)1: 大規模(だいきぼ)マイグレーション
状況(じょうきょう): Reactクラスコンポーネント200個(こ)を関数(かんすう)コンポーネントにマイグレーション
- 手動(しゅどう)作業(さぎょう)の見積(みつも)り: 2-3週間(しゅうかん)(1人(にん)基準(きじゅん))
- Claude Code活用(かつよう): 2日(にち)(サブエージェント並列処理(へいれつしょり))
- 変換成功率(せいこうりつ): 95%(残(のこ)り5%は手動(しゅどう)レビュー)
11.3 事例(じれい)2: API統合(とうごう)開発(かいはつ)
状況(じょうきょう): 外部(がいぶ)決済(けっさい)API統合(とうごう)(Stripe)
- Claude Codeが実行(じっこう)した作業(さぎょう):
- APIドキュメントの分析(ぶんせき)(MCP brave-search活用(かつよう))
- インターフェース型(かた)の定義(ていぎ)
- サービスレイヤーの実装(じっそう)
- Webhookハンドラーの実装(じっそう)
- エラーハンドリング
- 単体(たんたい)/統合(とうごう)テストの80%を作成(さくせい)
- 所要時間(しょようじかん): 4時間(じかん)(手動(しゅどう)対比(たいひ)2-3日(にち))
11.4 事例(じれい)3: レガシーコードの現代化(げんだいか)
状況(じょうきょう): jQuery + PHPアプリをNext.js + TypeScriptに現代化(げんだいか)
- CLAUDE.mdにマイグレーションルールを定義(ていぎ)
- サブエージェントでコンポーネント別(べつ)に並列(へいれつ)変換(へんかん)
- フックで自動(じどう)型(かた)チェックとテスト
- 6週間(しゅうかん)のプロジェクトを2週間(しゅうかん)に短縮(たんしゅく)
11.5 生産性(せいさんせい)を最大化(さいだいか)するヒント
- CLAUDE.mdを詳細(しょうさい)に書(か)く: 投資対効果(とうしたいこうか)が最(もっと)も高(たか)い部分(ぶぶん)
- 小(ちい)さなタスクから始(はじ)める: バグ修正(しゅうせい)やテスト追加(ついか)で信頼(しんらい)を築(きず)いてから大(おお)きな作業(さぎょう)へ
- フックを積極的(せっきょくてき)に活用(かつよう)する: 繰(く)り返(かえ)しの検証作業(けんしょうさぎょう)を自動化(じどうか)
- サブエージェントを活用(かつよう)する: 大(おお)きなタスクは分割(ぶんかつ)して並列処理(へいれつしょり)
- 結果(けっか)を常(つね)に検証(けんしょう)する: AI出力(しゅつりょく)を盲信(もうしん)せずレビューする習慣(しゅうかん)
12. ヒントとトリック
12.1 キーボードショートカット
| ショートカット | 機能(きのう) |
|---|---|
Ctrl+C | 現在(げんざい)のタスクを中断(ちゅうだん) |
Ctrl+D | セッション終了(しゅうりょう) |
Esc | 現在(げんざい)の入力(にゅうりょく)をキャンセル |
Tab | 自動補完(じどうほかん) |
Up/Down | 以前(いぜん)のコマンドを参照(さんしょう) |
12.2 スラッシュコマンド
/help # ヘルプ
/clear # 会話のクリア
/compact # 会話内容の圧縮
/memory # メモリ(CLAUDE.md)の確認
/add-memory # メモリにルールを追加
/model # モデルの変更
/cost # 現在のセッションコストの確認
/diff # 現在の変更の確認
/undo # 最後の変更を元に戻す
/review # コードレビューのリクエスト
/init # プロジェクトの初期化
/bug # バグレポート
/config # 設定の変更
12.3 メモリシステムの活用(かつよう)
Claude Codeのメモリシステムはセッション間(かん)で学習(がくしゅう)した内容(ないよう)を保持(ほじ)します。
# 会話中にメモリを追加
/add-memory "このプロジェクトでAPIレスポンスは常にcamelCaseを使用します"
/add-memory "テストファイルは__tests__ディレクトリに配置されています"
/add-memory "Prismaマイグレーション後は常にnpx prisma generateを実行します"
12.4 効果的(こうかてき)なプロンプトの書(か)き方(かた)
悪(わる)いプロンプト:
ログイン機能を作ってください
良(よ)いプロンプト:
NextAuth.jsを使用してGoogle OAuthログイン機能を追加してください。
- /app/api/auth/[...nextauth]/route.ts に設定
- Google Providerを使用
- セッションにユーザーIDを含める
- ログイン/ログアウトボタンコンポーネントを作成
- 既存のNavbarコンポーネントに統合
12.5 デバッグ戦略(せんりゃく)
# 詳細ログモード
claude --verbose
# ツール使用ログ
claude --debug-tools
# セッション履歴のエクスポート
claude --export-session ./session-log.json
# 特定のモデルに切り替えて比較
claude --model claude-opus-4-20250514
12.6 コスト最適化(さいてきか)
# 現在のセッションコストの確認
/cost
# エコノミーモード(Haikuを使用)
claude --model claude-haiku
# 自動コストアラートの設定
claude config set cost.alert-threshold 5.00
13. クイズ
Claude Codeについてどれだけ理解(りかい)できたかテストしてみましょう。
Q1. Claude Codeの3つの中核(ちゅうかく)能力(のうりょく)は何(なん)ですか?
A1. Claude Codeの3つの中核(ちゅうかく)能力(のうりょく)は:
- コードベースの読(よ)み取(と)り: プロジェクト全体(ぜんたい)の構造(こうぞう)とファイルの理解(りかい)
- ファイル編集(へんしゅう): コードの修正(しゅうせい)、作成(さくせい)、削除(さくじょ)の実行(じっこう)
- コマンド実行(じっこう): シェルコマンドの直接(ちょくせつ)実行(じっこう)
この3つの能力(のうりょく)の組(く)み合(あ)わせにより、Claude Codeは単(たん)なるチャットボットではなく、真(しん)のコーディングエージェントとなります。
Q2. サブエージェントの4つの重要(じゅうよう)な特性(とくせい)は?
A2. サブエージェントの4つの重要(じゅうよう)な特性(とくせい):
- 独立(どくりつ)コンテキスト: 各(かく)サブエージェントが独自(どくじ)のコンテキストウィンドウを保持(ほじ)
- 並列実行(へいれつじっこう): 複数(ふくすう)のサブエージェントが同時(どうじ)に作業(さぎょう)
- 結果統合(けっかとうごう): メインエージェントが結果(けっか)を統合(とうごう)
- 障害分離(しょうがいぶんり): 1つの失敗(しっぱい)が他(ほか)のタスクに影響(えいきょう)しない
Q3. CLAUDE.mdの階層(かいそう)構造(こうぞう)で最(もっと)も優先度(ゆうせんど)が高(たか)いのはどれですか?
A3. サブディレクトリのCLAUDE.mdが最(もっと)も高(たか)い優先度(ゆうせんど)を持(も)ちます。階層(かいそう)は:
- グローバルCLAUDE.md(最(もっと)も低(ひく)い)
- プロジェクトルートCLAUDE.md
- サブディレクトリCLAUDE.md(最(もっと)も高(たか)い — そのディレクトリ内(ない)で)
より具体的(ぐたいてき)な場所(ばしょ)の設定(せってい)が一般的(いっぱんてき)な設定(せってい)をオーバーライドします。
Q4. MCP(Model Context Protocol)の役割(やくわり)と連携(れんけい)可能(かのう)な外部(がいぶ)システムは?
A4. MCPはAIモデルが外部(がいぶ)ツールやデータソースにアクセスできるようにする標準(ひょうじゅん)プロトコルです。連携(れんけい)可能(かのう)なシステム例(れい):
- データベース: PostgreSQL、SQLite、MySQL
- バージョン管理(かんり): GitHub、GitLab
- コミュニケーション: Slack、Discord
- プロジェクト管理(かんり): Linear、Jira
- Webブラウザ: Puppeteer
- 検索(けんさく): Brave Search
- エラー追跡(ついせき): Sentry
- カスタムAPI: 独自(どくじ)のMCPサーバーを構築(こうちく)可能(かのう)
Q5. Claude CodeのフックシステムでPostToolUseフックはいつ実行(じっこう)され、代表的(だいひょうてき)な活用(かつよう)事例(じれい)は?
A5. PostToolUseフックは、Claude Codeがツール(ファイル編集(へんしゅう)、コマンド実行(じっこう)など)を**使用(しよう)した直後(ちょくご)**に実行(じっこう)されます。
代表的(だいひょうてき)な活用(かつよう)事例(じれい):
- 自動(じどう)フォーマット: ファイル修正後(しゅうせいご)にPrettier/ESLintを自動実行(じどうじっこう)
- 自動(じどう)テスト: ファイル変更後(へんこうご)に関連(かんれん)テストを自動実行(じどうじっこう)
- 変更(へんこう)ロギング: ファイル変更履歴(へんこうりれき)の自動記録(じどうきろく)
- 型(かた)チェック: TypeScriptファイル修正後(しゅうせいご)に型(かた)チェックを自動実行(じどうじっこう)
これにより、コード品質(ひんしつ)を自動的(じどうてき)に維持(いじ)できます。
参考資料(さんこうしりょう)
公式(こうしき)ドキュメント
- Anthropic Claude Code 公式(こうしき)ドキュメント
- Claude Code GitHub リポジトリ
- Model Context Protocol (MCP) 公式(こうしき)サイト
- MCPサーバーディレクトリ
- Anthropic API ドキュメント
ブログと技術記事(ぎじゅつきじ)
- Anthropicブログ - Claude Code紹介(しょうかい)
- Claude Code ベストプラクティス
- CLAUDE.md 作成(さくせい)ガイド
- Claude Code フックドキュメント
- Agent SDK ガイド