この記事は、Claude Codeを最大限に活用するためのパターンとヒントをまとめたものです。環境設定から並列セッションのスケーリングまでカバーしています。
ほとんどのベストプラクティスは、1つの制約に基づいています:Claudeのコンテキストウィンドウはすぐにいっぱいになり、いっぱいになるとパフォーマンスが低下する
コンテキストウィンドウには以下のすべてが含まれます:
結論: コンテキストウィンドウは管理すべき最も重要なリソースです。
これが単一で最も効果的なことです
Claude が自分の作業を検証できると、パフォーマンスが劇的に向上します:
| 戦略 | Before | After |
|---|---|---|
| 検証基準を提供する | 「メールアドレスを検証する機能を実装する」 | 「validateEmail関数を記述します。テストケースの例:user@example.comはtrue、invalidはfalse、user@.comはfalse。実装後にテストを実行します。」 |
| UIの変更を視覚的に確認する | 「ダッシュボードの見栄えを良くする」 | 「[スクリーンショットを貼り付け] この設計を実装します。結果のスクリーンショットを撮り、元のデザインと比較します。相違点をリストアップして修正します。」 |
| 症状ではなく根本原因に対処する | 「ビルドが失敗しています」 | 「ビルドは次のエラーで失敗しました: [貼り付けエラー]。これを修正し、ビルドが成功することを確認してください。エラーを抑制せず、根本原因に対処してください。」 |
手順:
Plan Modeに入る - Claudeはファイルを読み、変更を加えずに質問に答えます
/src/authを読んで、セッションとログインの処理方法を理解して。
シークレットの環境変数管理方法も確認して。
詳細な実装計画を作成させる
Google OAuthを追加したい。どのファイルを変更する必要がある?
セッションフローは?計画を作成して。
Normal Modeに戻り、計画に沿って実装させる
計画に基づいてOAuthフローを実装して。
コールバックハンドラのテストを書いて、テストスイートを実行し、失敗があれば修正して。
| 状況 | 推奨 |
|---|---|
| スコープが明確で修正が小さい(タイポ修正、ログ追加、変数名変更) | 直接実行させる |
| アプローチが不確か | Plan Mode使用 |
| 複数ファイルを変更する | Plan Mode使用 |
| 変更するコードに不慣れ | Plan Mode使用 |
| 戦略 | Before | After |
|---|---|---|
| タスクの範囲を指定します。 対象となるファイル、シナリオ、テストの設定を指定します。 | ”foo.py のテストを追加する” | 「ユーザーがログアウトしているエッジケースをカバーする foo.py のテストを記述します。モックは避けてください。」 |
| 情報源を示してください。 質問に答えられる情報源をクロードに示してください。 | 「なぜ ExecutionFactory にはこのような奇妙な API があるのでしょうか?」 | 「ExecutionFactory の Git 履歴を調べて、その API がどのように生まれたかをまとめます」 |
| 既存のパターンを参照します。 コードベース内のパターンをClaudeに指示します。 | 「カレンダーウィジェットを追加する」 | パターンを理解するために、ホームページ上の既存のウィジェットの実装方法を確認してください。HotDogWidget.php は良い例です。このパターンに従って、ユーザーが月を選択し、ページを前後に移動して年を選択できる新しいカレンダーウィジェットを実装します。コードベースで既に使用されているライブラリ以外は使用せずに、ゼロから構築します。 |
| 症状の詳細を記入してください。 症状、考えられる場所、そして「修復」とはどのような状態かを教えてください。 | 「ログインバグを修正」 | 「セッションタイムアウト後にログインに失敗するという報告がユーザーからありました。src/auth/ の認証フロー、特にトークンの更新を確認してください。問題を再現する失敗するテストを記述し、修正してください。」 |
@でファイルを参照コードの場所を説明する代わりに、@でファイルを参照します。Claudeは応答前にそのファイルを読み込みます。
@src/auth/login.ts のバグを修正して
コピー&ペースト、またはドラッグ&ドロップで画像をプロンプトに追加できます。
ドキュメントやAPIリファレンスのURLを与えます。/permissionsでよく使うドメインを許可リストに追加しておくと便利です。
cat error.log | claude
ファイルの内容を直接送り込めます。
Bashコマンド、MCPツール、ファイル読み込みなどを使って、Claude自身にコンテキストを取得させることもできます。
いくつかのセットアップ手順で、すべてのセッションで Claude Code の効果が大幅に向上します。
CLAUDE.mdは、Claude が会話開始時に自動で読み込む特別なファイルです。
記載する内容:
これにより、コードだけでは推測できない 永続的なコンテキストを Claude に与えられます。
/init
このコマンドは:
生成されたファイルは出発点です。時間をかけて改良していきましょう。
# コードスタイル
- ES modules構文(import/export)を使用、CommonJS(require)は使わない
- importはできるだけ分割代入する(例: import { foo } from 'bar')
# ワークフロー
- コード変更の一連の作業が終わったら必ず型チェックを実行
- パフォーマンスのため、テストスイート全体ではなく単一テストを優先
ポイント: フォーマットの決まりはありませんが、短く、人間が読みやすく 保ちましょう。
CLAUDE.mdファイルが肥大化すると、クロードはあなたの指示を無視してしまいます。CLAUDE.md はセッションごとに読み込まれるため、広く適用される情報のみを含めてください。ドメイン知識や、たまにしか関係のないワークフローについては、スキル を使用してください。
各行について、「これを削除するとクロードは間違いを犯すだろうか?」 と自問してみてください。
| ✅ 含める | ❌ 除外 |
|---|---|
| クロードが推測できないBashコマンド | クロードがコードを読んで理解できること |
| デフォルトとは異なるコードスタイルルール | クロードがすでに知っている標準的な言語慣習 |
| テストの手順と推奨テストランナー | 詳細な API ドキュメント (代わりにドキュメントへのリンク) |
| リポジトリのエチケット(ブランチの命名、PR の規則) | 頻繁に変更される情報 |
| プロジェクト固有のアーキテクチャ上の決定 | 長い説明やチュートリアル |
| 開発者環境の癖(必要な環境変数) | コードベースのファイルごとの説明 |
| よくある落とし穴やわかりにくい動作 | 「きれいなコードを書く」といった自明の習慣 |
デフォルトでは、Claude Code はシステムを変更する可能性のあるアクション(ファイルの書き込み、Bash コマンド、MCP ツールなど)に対して許可を求めます。これは安全ですが、面倒です。
/permissions: 安全であることがわかっている特定のツールを許可します (または npm run lint などgit commit)/sandbox: ファイルシステムとネットワークアクセスを制限する OS レベルの分離を有効にし、定義された境界内でクロードがより自由に作業できるようにします。CLI ツールは、外部サービスとやり取りする最もコンテキスト効率の高い方法です。
gh - GitHubaws - AWS例外なく毎回実行する必要があるアクションには Hook を使用します。
Hook は、 Claude のワークフローの特定の時点でスクリプトを自動的に実行します。CLAUDE.md の指示が助言的なものであるのに対し、フックは決定論的であり、アクションの実行が保証されます。
例:
.claude/skills/ 配下に SKILL.md でファイルを作成し、Claude にドメイン知識と再利用可能なワークフローを提供します。スキルは、プロジェクト、チーム、またはドメインに固有の情報で Claude の知識を拡張します。
---
name: api-conventions
description: サービスの REST API 設計規約
---
# API 規約
- URL パスにはケバブケースを使用
- JSON プロパティにはキャメルケースを使用
- リストエンドポイントには必ずページネーションを含める
- URL パスで API をバージョニング(/v1/、/v2/)
スキルでは、直接呼び出す繰り返し可能なワークフローを定義することもできます。
---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Analyze and fix the GitHub issue: $ARGUMENTS.
1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Ensure code passes linting and type checking
7. Create a descriptive commit message
8. Push and create a PR
.claude/agents/ クロードが個別のタスクを委任できる専門のアシスタントを定義します。
サブエージェントは、独自のコンテキストで、許可されたツールセットを使用して実行されます。サブエージェントは、メインの会話を乱すことなく、多数のファイルを読み取るタスクや、特定の処理に集中する必要があるタスクに役立ちます。
---
name: security-reviewer
description: セキュリティ脆弱性のコードレビュー
tools: Read, Grep, Glob, Bash
model: opus
---
あなたはシニアセキュリティエンジニアです。以下の観点でコードをレビューしてください:
- インジェクション脆弱性(SQL、XSS、コマンドインジェクション)
- 認証・認可の欠陥
- コード内のシークレットや認証情報
- 安全でないデータ処理
具体的な行番号の参照と修正案を提供してください。
新しいコードベースにオンボーディングする際、Claude Codeを学習と探索に活用できます。他のエンジニアに聞くのと同じような質問ができます:
質問例:
foo.rsの134行目のasync move { ... }は何をしている?CustomerOnboardingFlowImplはどんなエッジケースを処理している?bar()ではなくfoo()を呼んでいる?より大きな機能を作る場合、まず Claude にインタビューをさせることで、見落としがちなポイントを洗い出せる。
質問: 「[簡単な説明]を作りたい。AskUserQuestion ツールを使って 詳細にインタビューして。
技術的な実装、UI/UX、エッジケース、懸念点、トレードオフについて
質問して。明らかな質問はしないで、私が考えていなかった
難しい部分を掘り下げて。
すべてカバーするまでインタビューを続けて、
その後完全な仕様書をSPEC.mdに書いて」
| ショートカット | 動作 |
|---|---|
| Esc | Claudeの作業を途中で停止(コンテキストは保持) |
| Esc + Esc or /rewind | リワインドメニューを開き、会話とコード状態を復元 |
| Undo that | Claudeに変更を取り消させる |
| /clear | 無関係なタスク間でコンテキストをリセット |
重要なルール:
同じ問題について2回以上修正したら、コンテキストは失敗したアプローチで散らかっている。
/clearを実行し、学んだことを組み込んだより具体的なプロンプトで新たに始めよう。
コンテキストが根本的な制約であるため、サブエージェントは最も強力なツールの1つです
Claudeがコードベースを調査すると、多くのファイルを読み込み、すべてがコンテキストを消費します。サブエージェントは別のコンテキストウィンドウで実行され、サマリーを報告します。
使用例:
Use subagents to investigate how our authentication system handles token
refresh, and whether we have any existing OAuth utilities I should reuse.
Claude が何かを実装した後、検証のためにサブエージェントを使用することもできます。
use a subagent to review this code for edge cases
症状: 1つのタスクから始めて、無関係なことを質問し、また最初のタスクに戻る。コンテキストが無関係な情報でいっぱいになる。
解決策: /clearを無関係なタスク間で使用する。
症状: Claudeが何か間違いをする→修正する→まだ間違い→また修正する。コンテキストが失敗したアプローチで汚染される。
解決策: 2回の修正に失敗したら、/clearして学んだことを組み込んだより良い最初のプロンプトを書く
症状: CLAUDE.md が長すぎると、Claude はその半分を無視する。重要なルールがノイズの中で埋もれてしまう。
解決策:
症状: Claude がもっともらしい実装を生成するが、エッジケースを処理していない。
解決策: 常に検証手段を提供する(テスト、スクリプト、スクリーンショット)。