はじめに

Claude Codeの基本操作を習得した後、次のステップは生産性を最大化するテクニックを身につけることです。同じツールを使っていても、使い方次第で開発効率は大きく変わります。効果的なプロンプトの書き方、適切なコンテキストの提供、拡張思考機能の活用、セッション管理の最適化、そして並列作業の実現により、Claude Codeのポテンシャルを最大限に引き出すことができます。

本記事では、Claude Codeを日常の開発で最大限活用するためのベストプラクティスを体系的に解説します。この記事を読むことで、以下のことができるようになります。

  • 明確で効果的なプロンプトを作成する技法を習得する
  • コンテキストを適切に提供し、Claude Codeの理解精度を向上させる
  • ultrathinkによる拡張思考を活用して複雑な問題を解決する
  • セッション管理機能を使いこなして作業の継続性を保つ
  • Git worktreesで複数タスクを並列に進行させる

実行環境

  • オペレーティングシステム: macOS 10.15以上、Ubuntu 20.04以上/Debian 10以上、Windows 10以上(WSL 1/2またはGit for Windows)
  • ハードウェア: 4GB以上のRAM
  • Node.js 18以上(npmインストールの場合のみ必要)
  • インターネット接続(認証およびAI処理に必要)
  • シェル環境: Bash、Zsh、またはFish推奨

前提条件

  • コマンドライン操作の基礎知識
  • Gitの基本操作(clone、commit、push等)
  • プログラミングの基礎知識(言語は問わない)
  • Claude.aiまたはAnthropic Consoleアカウント
  • Claude Codeのインストールと認証が完了していること

効果的なプロンプトの書き方

Claude Codeへの指示は「プロンプト」と呼ばれ、その質が応答の質を決定づけます。明確で具体的なプロンプトを書くことで、期待通りの結果を得られる確率が大幅に向上します。

プロンプト設計の基本原則

効果的なプロンプトには以下の要素が含まれます。

graph LR
    A[効果的なプロンプト] --> B[明確な目的]
    A --> C[十分なコンテキスト]
    A --> D[期待する出力形式]
    A --> E[制約条件]
    
    B --> B1[何を達成したいか]
    C --> C1[関連ファイル・背景情報]
    D --> D1[コード/説明/リストなど]
    E --> E1[技術スタック・規約]

悪いプロンプトと良いプロンプトの比較

同じタスクでも、プロンプトの書き方で結果が大きく変わります。

悪いプロンプトの例

1
> 認証を直して

このプロンプトは何が問題なのか、どこを修正すべきなのかが不明確です。

良いプロンプトの例

1
2
3
> src/auth/login.tsのhandleLogin関数でセッションが保存されないバグを修正して。
> ログインは成功するがリダイレクト後にセッションが消えている状態。
> 既存のセッション管理はexpress-sessionを使用している。

このプロンプトには対象ファイル、症状、技術的コンテキストが含まれています。

段階的な指示の活用

複雑なタスクは一度に全てを依頼せず、段階的に進めることで精度が向上します。

1
2
3
4
5
6
7
8
# ステップ1: 現状の分析
> src/api/users.tsの現在の実装を分析して、改善点を洗い出して

# ステップ2: 改善案の検討
> 指摘された問題のうち、エラーハンドリングの改善案を3つ提示して

# ステップ3: 実装
> 2番目の案を採用して実装して。既存のテストが通ることを確認して

期待する出力形式の指定

出力形式を明示することで、必要な情報を適切な形で得られます。

1
2
3
4
5
6
7
8
# コードのみが必要な場合
> データベース接続のリトライロジックを実装して。説明は不要、コードのみで

# 説明を含めてほしい場合
> このregex パターンを説明して。各部分が何を意味するかコメント付きで

# リスト形式が必要な場合
> このコンポーネントのセキュリティ上の問題点を箇条書きで列挙して

コンテキストを豊かにする技法

プロンプトに背景情報を追加することで、より適切な回答が得られます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 技術スタックの明示
> Next.js 14のApp Routerを使用しているプロジェクトで、
> Server Componentsとして認証チェックのミドルウェアを実装して

# 既存パターンの参照
> @src/components/Button.tsxと同じスタイルで、
> Dropdownコンポーネントを作成して

# 制約条件の明示
> パフォーマンスを優先して、データベースクエリは1回のみに抑えて。
> N+1問題が発生しないよう、JOINを使用した実装にして

コンテキストの適切な提供

Claude Codeはコンテキストに基づいて判断を行います。適切なコンテキストを提供することで、より正確で有用な応答が得られます。

@記法によるファイル参照

@記法を使用して、関連ファイルを明示的にコンテキストに含めることができます。

1
2
3
4
5
6
7
8
# 単一ファイルの参照
> @src/models/User.ts のスキーマを拡張して、プロフィール画像URLフィールドを追加して

# 複数ファイルの参照
> @src/old-api.ts と @src/new-api.ts を比較して、移行時の注意点を説明して

# ディレクトリ全体の参照
> @src/components/ のコンポーネント構造を分析して、共通化できる部分を特定して

CLAUDE.mdによるプロジェクトコンテキスト

CLAUDE.mdファイルにプロジェクト固有の情報を記述しておくと、毎回説明する必要がなくなります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# プロジェクト概要
TypeScript + React + Node.jsで構築されたECサイト

## コーディング規約
- 関数コンポーネントとhooksを使用
- スタイリングはTailwind CSS
- APIエンドポイントは/api/v1/配下に配置

## 重要な注意事項
- 決済処理は必ずStripe SDKを使用
- 本番環境への影響を考慮し、DBマイグレーションは慎重に

コンテキストサイズの最適化

過剰なコンテキストは処理速度を低下させ、コストを増加させます。必要十分な情報を選択することが重要です。

コンテキスト選択の優先度

優先度 含めるべき情報
直接編集するファイル 修正対象のソースファイル
型定義・インターフェース 関連するTypeScript型
参照される依存ファイル importしているユーティリティ
既存の類似実装 同様のパターンを持つコード
設定ファイル 通常は自動検出される
テストファイル 明示的に必要な場合のみ

/compactによるコンテキスト圧縮

長時間のセッションでコンテキストが肥大化した場合は、/compactコマンドで圧縮できます。

1
> /compact

このコマンドは会話履歴を要約し、トークン使用量を削減しながら重要なコンテキストを保持します。カスタム指示を追加して圧縮内容を制御することも可能です。

1
> /compact 認証関連のコンテキストは詳細に保持して

ultrathinkによる拡張思考の活用

複雑な問題を解決する際には、Claude Codeの拡張思考(Extended Thinking)機能が有効です。この機能により、Claudeは応答前に内部的な推論プロセスを実行し、より深い分析と正確な回答を提供します。

拡張思考の仕組み

拡張思考では、出力トークン予算の一部を内部推論に割り当てます。この「思考時間」により、以下のことが可能になります。

  • 複数の解決アプローチを段階的に検討する
  • エッジケースとトレードオフを徹底的に分析する
  • 推論の誤りを自己修正する
sequenceDiagram
    participant User as ユーザー
    participant Claude as Claude Code
    participant Think as 拡張思考プロセス
    
    User->>Claude: ultrathink: 複雑な質問
    Claude->>Think: 内部推論を開始
    Think->>Think: 複数のアプローチを検討
    Think->>Think: エッジケースを分析
    Think->>Think: 最適解を選択
    Think->>Claude: 推論結果
    Claude->>User: 深く検討された回答

ultrathinkキーワードの使用

単一のリクエストで拡張思考を有効にするには、プロンプトにultrathinkキーワードを含めます。

1
2
> ultrathink: このマイクロサービスアーキテクチャのAPIゲートウェイを設計して。
> 認証、レート制限、サーキットブレーカーパターンを含めて。

ultrathinkキーワードには二つの効果があります。一つ目は思考トークン予算を割り当てること、二つ目はClaudeに対してより徹底的に推論するよう意味的に指示することです。

拡張思考が効果的なシーン

すべてのタスクに拡張思考が必要なわけではありません。以下のようなケースで特に効果を発揮します。

シーン 具体例
アーキテクチャ設計 システム全体の構造決定、技術選定
難解なバグの調査 再現困難なバグ、競合状態の分析
複雑なリファクタリング 大規模な構造変更、設計パターンの適用
トレードオフの評価 複数の実装方針の比較検討
セキュリティ分析 脆弱性の特定、攻撃ベクトルの検討

拡張思考の設定方法

拡張思考は複数の方法で有効化できます。

セッション中にトグル

Option+T(macOS)またはAlt+T(Windows/Linux)で思考モードをオン/オフできます。

グローバル設定

/configコマンドで思考モードをデフォルトで有効にできます。この設定は~/.claude/settings.jsonalwaysThinkingEnabledとして保存されます。

環境変数によるカスタム予算

特定のトークン予算を設定したい場合は、環境変数を使用します。

1
2
export MAX_THINKING_TOKENS=10000
claude

MAX_THINKING_TOKENSが設定されている場合、すべてのリクエストでその予算が適用され、ultrathinkキーワードの効果を上書きします。

思考プロセスの確認

Claudeの思考プロセスを確認するには、Ctrl+Oを押して詳細モード(verbose mode)を有効にします。内部推論がグレーの斜体テキストで表示されます。

1
2
3
4
5
6
7
8
> ultrathink: このキャッシュ戦略を評価して

# Ctrl+O で詳細モードを有効化

# 内部思考が表示される:
# Considering cache invalidation strategies...
# Write-through vs write-behind tradeoffs...
# Analyzing consistency requirements...

トークン予算と課金の注意点

拡張思考では、思考に使用されたトークンも課金対象となります。Claude 4モデルでは要約された思考が表示されますが、実際に使用されたトークン数が課金されます。

  • デフォルトの思考トークン予算: 31,999トークン
  • カスタム予算: MAX_THINKING_TOKENS環境変数で設定可能
  • 課金: 思考トークンは出力トークンとして課金

コストを意識しながら、必要な場面で効果的に使用することを推奨します。

セッション管理の最適化

Claude Codeのセッション管理機能を活用することで、作業の継続性を保ち、コンテキストの再構築にかかる時間を削減できます。

–continueで直前のセッションを継続

最も頻繁に使用するのは-c--continue)フラグです。現在のディレクトリで最後に使用したセッションを即座に継続できます。

1
2
3
4
5
# 最後のセッションを継続
claude -c

# 継続して新しい質問を追加
claude -c "さっきの修正をテストしたらまたエラーが出た"

このフラグは、ランチ休憩後や翌日の作業再開時に特に有用です。前日の作業コンテキストをそのまま引き継いで作業を続けられます。

/resumeでセッションを選択

複数のセッションを管理している場合は、/resumeコマンドまたは-rフラグでセッションピッカーを開きます。

セッションピッカーのキーボード操作

キー 動作
↑ / ↓ セッション間をナビゲート
→ / ← グループ化されたセッションの展開/折りたたみ
Enter 選択したセッションを再開
P セッション内容をプレビュー
R セッション名を変更
/ セッションを検索
A 現在のディレクトリ/全プロジェクトの切り替え
B 現在のGitブランチでフィルタ
Esc ピッカーを閉じる

セッションの命名規則

セッションに意味のある名前を付けることで、後から見つけやすくなります。

1
2
3
4
5
# セッション中に名前を付ける
> /rename auth-oauth2-migration

# 名前付きセッションを直接再開
claude -r "auth-oauth2-migration"

推奨する命名規則

パターン 用途
機能名 user-profile-api 機能開発セッション
バグID fix-issue-123 バグ修正セッション
日付+タスク 2026-01-08-refactor 日次タスク
ブランチ名 feature-payment ブランチごとの作業

セッションのフォーク

既存のセッションから分岐して新しい方向性を試したい場合は、--fork-sessionフラグを使用します。

1
2
# セッションを再開しつつ、新しいセッションIDで開始
claude --resume auth-refactor --fork-session

これにより、元のセッションを保持したまま、異なるアプローチを試すことができます。

プリントモードでのセッション継続

CI/CDパイプラインやスクリプトからセッションを継続する場合は、-pフラグと組み合わせます。

1
2
# 前回のセッションを継続してタスクを実行
claude --continue --print "型エラーをチェックして"

Git worktreesによる並列作業

Claude Codeを複数のタスクで同時に活用したい場合、Git worktreesが有効な解決策となります。worktreesを使用することで、同じリポジトリの異なるブランチを別々のディレクトリで同時に作業できます。

Git worktreesの概念

Git worktreesは、単一のリポジトリから複数の作業ディレクトリを作成する機能です。各worktreeは独立したファイル状態を持ちながら、Git履歴とリモート接続を共有します。

graph TB
    A[メインリポジトリ] --> B[Worktree 1<br/>feature-a]
    A --> C[Worktree 2<br/>bugfix-123]
    A --> D[Worktree 3<br/>refactor-api]
    
    B --> E[Claude Code<br/>セッション1]
    C --> F[Claude Code<br/>セッション2]
    D --> G[Claude Code<br/>セッション3]
    
    style E fill:#f9f
    style F fill:#f9f
    style G fill:#f9f

worktreeの作成と使用

新しいブランチでworktreeを作成

1
2
3
4
5
# 新しいブランチを作成してworktreeを追加
git worktree add ../project-feature-a -b feature-a

# 既存のブランチでworktreeを作成
git worktree add ../project-bugfix bugfix-123

worktreeでClaude Codeを起動

1
2
3
4
5
# worktreeに移動
cd ../project-feature-a

# この隔離された環境でClaude Codeを起動
claude

複数worktreeでの並列作業

ターミナルを複数開いて、それぞれのworktreeで別々のClaude Codeセッションを実行できます。

ターミナル1: 機能開発

1
2
3
cd ../project-feature-a
claude
> 新しい認証フローを実装して

ターミナル2: バグ修正

1
2
3
cd ../project-bugfix
claude
> Issue #123のメモリリークを調査して修正して

ターミナル3: リファクタリング

1
2
3
cd ../project-refactor
claude
> APIレスポンスの型を整理してリファクタリングして

各worktreeは独立したファイル状態を持つため、Claude Codeインスタンス同士が互いに干渉することはありません。

worktreeの管理

一覧表示

1
git worktree list

作業完了後の削除

1
git worktree remove ../project-feature-a

worktree使用時の注意点

worktreeを作成した後、プロジェクトによっては開発環境の再セットアップが必要な場合があります。

プロジェクトタイプ 必要なセットアップ
JavaScript/TypeScript npm install または yarn
Python 仮想環境の作成と依存関係インストール
Java/Gradle ./gradlew build
その他 プロジェクト固有のセットアップ手順

長時間タスクの委任

worktreesの強力な使用パターンの一つは、長時間かかるタスクをClaude Codeに任せながら、別のworktreeで開発を続けることです。

1
2
3
4
5
6
7
8
9
# Worktree 1: 大規模なテスト追加を依頼(長時間タスク)
cd ../project-tests
claude
> プロジェクト全体のテストカバレッジを80%以上に上げて

# Worktree 2: 通常の開発を継続
cd ../project-main
claude
> 今日の開発タスクを始めよう

生産性を高めるその他のテクニック

カスタムスラッシュコマンドの活用

繰り返し使用するプロンプトは、カスタムスラッシュコマンドとして保存できます。

プロジェクト固有コマンドの作成

1
mkdir -p .claude/commands
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# .claude/commands/review.md
以下の観点でコードレビューを実施してください:

1. セキュリティ上の問題
2. パフォーマンスの懸念
3. コーディング規約への準拠
4. エラーハンドリングの適切性
5. テストカバレッジ

問題が見つかった場合は、具体的な修正案も提示してください。

引数付きコマンド

1
2
3
4
5
6
7
8
9
# .claude/commands/fix-issue.md
Issue #$ARGUMENTS を修正してください。

手順:
1. イシューの内容を理解
2. 関連コードを特定
3. 修正を実装
4. テストを追加
5. PRの説明を作成

使用方法:

1
> /fix-issue 456

パイプによるデータ入力

外部データをClaude Codeに渡す場合は、パイプを活用します。

1
2
3
4
5
6
7
8
# エラーログの分析
cat error.log | claude -p "このエラーの根本原因を特定して"

# コードの説明
cat complex-function.js | claude -p "この関数の動作を説明して"

# 差分のレビュー
git diff main | claude -p "この変更をレビューして問題点を指摘して"

出力形式の制御

スクリプトや自動化で使用する場合は、出力形式を指定します。

1
2
3
4
5
6
7
8
# テキスト形式(デフォルト)
claude -p "変更点を要約して" --output-format text

# JSON形式(プログラムで解析しやすい)
claude -p "コードを分析して" --output-format json

# ストリーミングJSON(リアルタイム処理用)
claude -p "長い分析を実行して" --output-format stream-json

/costによるトークン使用量の監視

コスト意識を持って作業するために、定期的にトークン使用量を確認します。

1
> /cost

このコマンドは現在のセッションのトークン使用統計と推定コストを表示します。長時間のセッションや複雑なタスクでは、適宜確認することを推奨します。

ベストプラクティスまとめ

日常的に心がけるポイント

カテゴリ ベストプラクティス
プロンプト 目的、コンテキスト、期待出力、制約を明示する
コンテキスト @記法で関連ファイルを参照、CLAUDE.mdでプロジェクト情報を共有
拡張思考 複雑なタスクにはultrathinkを使用、簡単なタスクには不要
セッション 意味のある名前を付ける、-cで継続、-rで選択
並列作業 Git worktreesで複数タスクを同時進行

アンチパターンを避ける

アンチパターン 推奨されるアプローチ
曖昧な指示 具体的なファイル名、症状、期待結果を含める
過剰なコンテキスト 必要最小限のファイルのみ参照する
単発使用 セッションを継続して効率化する
思考モードの乱用 シンプルなタスクには通常モードを使用
手動でのブランチ切り替え worktreesで並列作業を実現

参考リンク