このガイドでは、Claude Codeを使用した一般的なワークフローのステップバイステップのチュートリアルを提供します。各チュートリアルには、Claude Codeを最大限に活用するための明確な手順、コマンド例、ベストプラクティスが含まれています。

目次

新しいコードベースを理解する

コードベースの概要を素早く把握する

使用するタイミング: 新しいプロジェクトに参加し、その構造を素早く理解する必要がある場合。

1

プロジェクトのルートディレクトリに移動

cd /path/to/project
2

Claude Codeを起動

claude
3

高レベルの概要を要求

> このコードベースの概要を教えてください
4

特定のコンポーネントについて詳しく調べる

> ここで使用されている主なアーキテクチャパターンを説明してください
> 主要なデータモデルは何ですか?
> 認証はどのように処理されていますか?

ヒント:

  • 広範な質問から始めて、特定の領域に絞り込む
  • プロジェクトで使用されているコーディング規約とパターンについて質問する
  • プロジェクト固有の用語集を要求する

関連するコードを見つける

使用するタイミング: 特定の機能や機能に関連するコードを見つける必要がある場合。

1

Claudeに関連ファイルを見つけてもらう

> ユーザー認証を処理するファイルを見つけてください
2

コンポーネント間の相互作用についてのコンテキストを取得

> これらの認証ファイルはどのように連携していますか?
3

実行フローを理解する

> フロントエンドからデータベースまでのログインプロセスを追跡してください

ヒント:

  • 探しているものについて具体的に説明する
  • プロジェクトのドメイン言語を使用する

効率的にバグを修正する

エラーメッセージを診断する

使用するタイミング: エラーメッセージに遭遇し、その原因を見つけて修正する必要がある場合。

1

エラーをClaudeと共有

> npm testを実行すると、エラーが表示されます
2

修正の提案を求める

> user.tsの@ts-ignoreを修正する方法をいくつか提案してください
3

修正を適用

> 提案したnullチェックをuser.tsに追加してください

ヒント:

  • エラーを再現するコマンドとスタックトレースをClaudeに伝える
  • エラーを再現するための手順を説明する
  • エラーが断続的か一貫しているかをClaudeに伝える

コードをリファクタリングする

レガシーコードを最新化する

使用するタイミング: 古いコードを最新のパターンとプラクティスを使用するように更新する必要がある場合。

1

リファクタリングが必要なレガシーコードを特定

> コードベースで非推奨のAPI使用を見つけてください
2

リファクタリングの推奨事項を取得

> utils.jsを最新のJavaScript機能を使用してリファクタリングする方法を提案してください
3

変更を安全に適用

> utils.jsを同じ動作を維持しながらES2024の機能を使用してリファクタリングしてください
4

リファクタリングを検証

> リファクタリングしたコードのテストを実行してください

ヒント:

  • 最新のアプローチのメリットについてClaudeに説明を求める
  • 必要な場合は後方互換性を維持するように要求する
  • リファクタリングは小さく、テスト可能な単位で行う

テストを扱う

テストカバレッジを追加する

使用するタイミング: カバーされていないコードにテストを追加する必要がある場合。

1

テストされていないコードを特定

> NotificationsService.swiftでテストでカバーされていない関数を見つけてください
2

テストの雛形を生成

> 通知サービスのテストを追加してください
3

意味のあるテストケースを追加

> 通知サービスのエッジケースのテストケースを追加してください
4

テストを実行して検証

> 新しいテストを実行し、失敗があれば修正してください

ヒント:

  • エッジケースとエラー条件をカバーするテストを要求する
  • 適切な場合は単体テストと統合テストの両方を要求する
  • テスト戦略についてClaudeに説明を求める

プルリクエストを作成する

包括的なPRを生成する

使用するタイミング: 変更内容について十分に文書化されたプルリクエストを作成する必要がある場合。

1

変更内容を要約

> 認証モジュールに加えた変更を要約してください
2

ClaudeでPRを生成

> prを作成してください
3

レビューと改善

> セキュリティ改善に関するより詳しいコンテキストでPRの説明を強化してください
4

テストの詳細を追加

> これらの変更がどのようにテストされたかについての情報を追加してください

ヒント:

  • Claudeに直接PRの作成を依頼する
  • Claudeが生成したPRを提出前にレビューする
  • 潜在的なリスクや考慮事項を強調するようClaudeに依頼する

ドキュメントを扱う

コードドキュメントを生成する

使用するタイミング: コードのドキュメントを追加または更新する必要がある場合。

1

ドキュメント化されていないコードを特定

> authモジュールで適切なJSDocコメントがない関数を見つけてください
2

ドキュメントを生成

> auth.jsのドキュメント化されていない関数にJSDocコメントを追加してください
3

レビューと強化

> より多くのコンテキストと例を含めて生成されたドキュメントを改善してください
4

ドキュメントを検証

> ドキュメントがプロジェクトの基準に従っているか確認してください

ヒント:

  • 希望するドキュメントスタイル(JSDoc、docstringsなど)を指定する
  • ドキュメントに例を含めるよう要求する
  • パブリックAPI、インターフェース、複雑なロジックのドキュメントを要求する

画像を扱う

画像とスクリーンショットを分析する

使用するタイミング: コードベースで画像を扱う必要がある場合や、画像内容の分析でClaudeの助けが必要な場合。

1

会話に画像を追加

以下のいずれかの方法を使用できます:

# 1. Claude Codeウィンドウに画像をドラッグ&ドロップ
# 2. 画像をコピーしてctrl+vでCLIに貼り付け
# 3. 画像パスを提供
claude "この画像を分析してください: /path/to/your/image.png"
2

Claudeに画像の分析を依頼

> この画像は何を示していますか?
> このスクリーンショットのUI要素を説明してください
> この図に問題のある要素はありますか?
3

コンテキストとして画像を使用

> これはエラーのスクリーンショットです。何が原因ですか?
> これは現在のデータベーススキーマです。新機能のためにどのように修正すべきですか?
4

視覚的コンテンツからコードの提案を得る

> このデザインモックアップに合わせたCSSを生成してください
> このコンポーネントを再現するにはどのようなHTML構造が必要ですか?

ヒント:

  • テキストでの説明が不明確または煩雑な場合は画像を使用する
  • エラー、UIデザイン、図表のスクリーンショットをより良いコンテキストのために含める
  • 会話で複数の画像を扱うことができる
  • 画像分析は図表、スクリーンショット、モックアップなどで機能する

拡張思考を使用する

複雑なタスクにClaudeの拡張思考を活用する

使用するタイミング: 複雑なアーキテクチャの決定、困難なバグ、または深い推論を必要とする複数ステップの実装の計画に取り組む場合。

1

コンテキストを提供してClaudeに考えてもらう

> APIにOAuth2を使用した新しい認証システムを実装する必要があります。コードベースでこれを実装するための最適なアプローチについて深く考えてください。

Claudeはコードベースから関連情報を収集し、インターフェースに表示される拡張思考を使用します。

2

フォローアップの問いかけで思考を洗練させる

> このアプローチの潜在的なセキュリティの脆弱性について考えてください
> 処理すべきエッジケースについてさらに深く考えてください

拡張思考を最大限活用するためのヒント:

拡張思考は以下のような複雑なタスクに最も価値があります:

  • 複雑なアーキテクチャの変更の計画
  • 複雑な問題のデバッグ
  • 新機能の実装計画の作成
  • 複雑なコードベースの理解
  • 異なるアプローチ間のトレードオフの評価

思考を促す方法によって、思考の深さのレベルが異なります:

  • “think”は基本的な拡張思考をトリガーします
  • “think more”、“think a lot”、“think harder”、“think longer”などの強調フレーズは、より深い思考をトリガーします

拡張思考のプロンプトに関するより多くのヒントについては、拡張思考のヒントを参照してください。

Claudeは思考プロセスをイタリック体のグレーテキストで応答の上に表示します。


プロジェクトメモリを設定する

効果的なCLAUDE.mdファイルを作成する

使用するタイミング: 重要なプロジェクト情報、規約、頻繁に使用するコマンドを保存するためのCLAUDE.mdファイルを設定したい場合。

1

コードベース用のCLAUDE.mdをブートストラップする

> /init

ヒント:

  • 頻繁に使用するコマンド(ビルド、テスト、リント)を含めて、繰り返しの検索を避ける
  • コードスタイルの設定と命名規則を文書化する
  • プロジェクト固有の重要なアーキテクチャパターンを追加する
  • CLAUDE.mdファイルは以下のいずれかに追加できます:
    • Claudeを実行するフォルダ:そのフォルダで開始する会話に自動的に追加されます
    • 子ディレクトリ:Claudeは必要に応じてこれらを取り込みます
    • ~/.claude/CLAUDE.md:ソースコントロールにチェックインしたくないユーザー固有の設定

Model Context Protocol (MCP)を設定する

Model Context Protocol (MCP)は、LLMが外部ツールとデータソースにアクセスできるようにするオープンプロトコルです。詳細については、MCPドキュメントを参照してください。

サードパーティのMCPサーバーは自己責任で使用してください。MCPサーバーを信頼していることを確認し、 特にインターネットと通信するMCPサーバーを使用する場合は、プロンプトインジェクションのリスクにさらされる可能性があるため、 特に注意してください。

MCPサーバーを設定する

使用するタイミング: Model Context Protocolを使用して、特殊なツールと外部サーバーに接続することでClaudeの機能を強化したい場合。

1

MCP Stdioサーバーを追加

# 基本的な構文
claude mcp add <name> <command> [args...]

# 例:ローカルサーバーの追加
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
2

MCPサーバーを管理

# 設定されているすべてのサーバーをリスト表示
claude mcp list

# 特定のサーバーの詳細を取得
claude mcp get my-server

# サーバーを削除
claude mcp remove my-server

ヒント:

  • -sまたは--scopeフラグを使用して、設定の保存場所を指定します:
    • local(デフォルト):現在のプロジェクトでのみあなたが利用可能(古いバージョンではprojectと呼ばれていました)
    • project.mcp.jsonファイルを介してプロジェクト内の全員と共有
    • user:すべてのプロジェクトであなたが利用可能(古いバージョンではglobalと呼ばれていました)
  • -eまたは--envフラグで環境変数を設定(例:-e KEY=value
  • MCP_TIMEOUT環境変数を使用してMCPサーバーの起動タイムアウトを設定(例:MCP_TIMEOUT=10000 claudeで10秒のタイムアウトを設定)
  • Claude Code内で/mcpコマンドを使用していつでもMCPサーバーのステータスを確認可能
  • MCPはクライアントサーバーアーキテクチャに従い、Claude Code(クライアント)は複数の特殊なサーバーに接続可能

MCPサーバースコープを理解する

使用するタイミング: 異なるMCPスコープの動作方法とチームとサーバーを共有する方法を理解したい場合。

1

ローカルスコープのMCPサーバー

デフォルトのスコープ(local)は、プロジェクト固有のユーザー設定にMCPサーバー設定を保存します。これらのサーバーは、現在のプロジェクトで作業している間、あなたのみが利用可能です。

# ローカルスコープのサーバーを追加(デフォルト)
claude mcp add my-private-server /path/to/server

# 明示的にローカルスコープを指定
claude mcp add my-private-server -s local /path/to/server
2

プロジェクトスコープのMCPサーバー(.mcp.json)

プロジェクトスコープのサーバーは、プロジェクトのルートにある.mcp.jsonファイルに保存されます。このファイルはチームとサーバーを共有するためにバージョン管理にチェックインする必要があります。

# プロジェクトスコープのサーバーを追加
claude mcp add shared-server -s project /path/to/server

これにより、以下の構造の.mcp.jsonファイルが作成または更新されます:

{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}
3

ユーザースコープのMCPサーバー

ユーザースコープのサーバーは、マシン上のすべてのプロジェクトであなたが利用可能で、あなた専用です。

# ユーザーサーバーを追加
claude mcp add my-user-server -s user /path/to/server

ヒント:

  • 同じ名前のサーバーの場合、ローカルス

コープのサーバーがプロジェクトスコープとユーザースコープのサーバーよりも優先されます

  • 同じ名前のサーバーの場合、プロジェクトスコープのサーバー(.mcp.json内)がユーザースコープのサーバーよりも優先されます
  • セキュリティのため、Claude Codeは.mcp.jsonからのプロジェクトスコープのサーバーを使用する前に承認を求めます
  • .mcp.jsonファイルはチームとMCPサーバーを共有するためにバージョン管理にチェックインすることを意図しています
  • プロジェクトスコープのサーバーを使用すると、チームの全員が同じMCPツールにアクセスできるようになります
  • プロジェクトスコープのサーバーの有効/無効の選択をリセットする必要がある場合は、claude mcp reset-project-choicesコマンドを使用します

PostgresのMCPサーバーに接続する

使用するタイミング: クエリとスキーマ検査のためにPostgreSQLデータベースへの読み取り専用アクセスをClaudeに提供したい場合。

1

PostgresのMCPサーバーを追加

claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
2

Claudeでデータベースにクエリを実行

# Claudeセッションで、データベースについて質問できます

> usersテーブルのスキーマを説明してください
> システム内の最新の注文を表示してください
> 顧客と請求書の関係を示してください

ヒント:

  • PostgresのMCPサーバーは安全のため読み取り専用アクセスを提供します
  • Claudeはデータベース構造の探索と分析クエリの実行を支援できます
  • これを使用して、不慣れなプロジェクトのデータベーススキーマを素早く理解できます
  • 接続文字列には、必要最小限の権限を持つ適切な認証情報を使用してください

JSON設定からMCPサーバーを追加する

使用するタイミング: Claude CodeにMCPサーバーの単一のJSON設定を追加したい場合。

1

JSONからMCPサーバーを追加

# 基本的な構文
claude mcp add-json <name> '<json>'

# 例:JSON設定でstdioサーバーを追加
claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
2

サーバーが追加されたことを確認

claude mcp get weather-api

ヒント:

  • シェルでJSONが適切にエスケープされていることを確認してください
  • JSONはMCPサーバー設定スキーマに準拠している必要があります
  • -s globalを使用して、プロジェクト固有の設定ではなくグローバル設定にサーバーを追加できます

Claude DesktopからMCPサーバーをインポートする

使用するタイミング: すでにClaude DesktopでMCPサーバーを設定済みで、手動で再設定することなく同じサーバーをClaude Codeで使用したい場合。

1

Claude Desktopからサーバーをインポート

# 基本的な構文
claude mcp add-from-claude-desktop
2

インポートするサーバーを選択

コマンドを実行すると、インポートしたいサーバーを選択できる インタラクティブなダイアログが表示されます。

3

サーバーがインポートされたことを確認

claude mcp list

ヒント:

  • この機能はmacOSとWindows Subsystem for Linux (WSL)でのみ動作します
  • これらのプラットフォームの標準的な場所からClaude Desktop設定ファイルを読み込みます
  • -s globalフラグを使用してグローバル設定にサーバーを追加します
  • インポートされたサーバーはClaude Desktopと同じ名前を持ちます
  • 同じ名前のサーバーが既に存在する場合、数字のサフィックスが付加されます(例:server_1

Claude CodeをMCPサーバーとして使用する

使用するタイミング: Claude Code自体をMCPサーバーとして使用し、他のアプリケーションがClaudeのツールと機能にアクセスできるようにしたい場合。

1

ClaudeをMCPサーバーとして起動

# 基本的な構文
claude mcp serve
2

他のアプリケーションから接続

Claude Code MCPサーバーには、Claude Desktopなど任意のMCPクライアントから接続できます。Claude Desktopを使用している場合は、以下の設定でClaude Code MCPサーバーを追加できます:

{
  "command": "claude",
  "args": ["mcp", "serve"],
  "env": {}
}

ヒント:

  • サーバーはView、Edit、LSなどのClaudeのツールへのアクセスを提供します
  • Claude Desktopで、ディレクトリ内のファイルの読み取り、編集などをClaudeに依頼してみてください
  • このMCPサーバーは単にClaude CodeのツールをあなたのMCPクライアントに公開するだけなので、個々のツール呼び出しのユーザー確認の実装はクライアント側の責任です

Claudeをunixスタイルのユーティリティとして使用する

検証プロセスにClaudeを追加する

使用するタイミング: Claude Codeをリンターやコードレビューアーとして使用したい場合。

手順:

1

ビルドスクリプトにClaudeを追加

// package.json
{
    ...
    "scripts": {
        ...
        "lint:claude": "claude -p 'あなたはリンターです。mainブランチとの変更を確認し、タイポに関する問題を報告してください。ファイル名と行番号を1行目に、問題の説明を2行目に記載してください。他のテキストは返さないでください。'"
    }
}

パイプイン、パイプアウト

使用するタイミング: データをClaudeにパイプで送り、構造化された形式でデータを返してもらいたい場合。

1

Claudeを通してデータをパイプ

cat build-error.txt | claude -p 'このビルドエラーの根本原因を簡潔に説明してください' > output.txt

カスタムスラッシュコマンドを作成する

Claude Codeは、特定のプロンプトやタスクを素早く実行するためのカスタムスラッシュコマンドの作成をサポートしています。

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

使用するタイミング: チームの全メンバーが使用できる、プロジェクト用の再利用可能なスラッシュコマンドを作成したい場合。

1

プロジェクトにコマンドディレクトリを作成

mkdir -p .claude/commands
2

各コマンド用のMarkdownファイルを作成

echo "このコードのパフォーマンスを分析し、具体的な最適化を3つ提案してください:" > .claude/commands/optimize.md
3

Claude Codeでカスタムコマンドを使用

claude
> /project:optimize

ヒント:

  • コマンド名はファイル名から派生します(例:optimize.md/project:optimizeになります)
  • コマンドはサブディレクトリで整理できます(例:.claude/commands/frontend/component.md/project:frontend:componentになります)
  • プロジェクトコマンドはリポジトリをクローンする全員が利用できます
  • Markdownファイルの内容は、コマンドが呼び出されたときにClaudeに送信されるプロンプトになります

$ARGUMENTSでコマンド引数を追加する

使用するタイミング: ユーザーから追加の入力を受け付ける柔軟なスラッシュコマンドを作成したい場合。

1

$ARGUMENTSプレースホルダーを含むコマンドファイルを作成

echo "issue #$ARGUMENTSを見つけて修正してください。以下の手順に従ってください:
1. チケットに記載されている問題を理解する
2. コードベース内の関連するコードを特定する
3. 根本原因に対処する解決策を実装する
4. 適切なテストを追加する
5. 簡潔なPRの説明を準備する" > .claude/commands/fix-issue.md
2

issue番号を指定してコマンドを使用

claude
> /project:fix-issue 123

これにより、プロンプト内の$ARGUMENTSが”123”に置き換えられます。

ヒント:

  • $ARGUMENTSプレースホルダーはコマンドに続く任意のテキストに置き換えられます
  • $ARGUMENTSはコマンドテンプレートの任意の位置に配置できます
  • その他の有用な用途:特定の関数のテストケースの生成、コンポーネントのドキュメント作成、特定のファイルのコードレビュー、指定された言語へのコンテンツの翻訳

個人用スラッシュコマンドを作成する

使用するタイミング: すべてのプロジェクトで機能する個人用スラッシュコマンドを作成したい場合。

1

ホームフォルダにコマンドディレクトリを作成

mkdir -p ~/.claude/commands
2

各コマンド用のMarkdownファイルを作成

echo "このコードのセキュリティの脆弱性をレビューし、以下に焦点を当ててください:" > ~/.claude/commands/security-review.md
3

個人用カスタムコマンドを使用

claude
> /user:security-review

ヒント:

  • 個人用コマンドは/project:ではなく/user:というプレフィックスが付きます
  • 個人用コマンドはあなただけが使用でき、チームとは共有されません
  • 個人用コマンドはすべてのプロジェクトで機能します
  • これらを使用して、異なるコードベース間で一貫したワークフローを維持できます

次のステップ

Claude Codeリファレンス実装

開発コンテナのリファレンス実装をクローンしてください。