Claude Code入門 レッスン 3 / 3

コンテキスト設計

このレッスンで学ぶこと

Claudeの出力品質は、提供するコンテキストに大きく依存します。このレッスンでは、何を含めるか、何を省くか、CLAUDE.mdを効果的に使う方法を説明します。

コンテキストとは?

コンテキストとは、会話中にClaudeが知っているすべての情報です:

  • 読んだファイル
  • 過去のメッセージ
  • プロジェクト設定(CLAUDE.md)
  • ツールの出力やコマンド結果

コンテキストは多ければ良いわけではありません。多すぎるとClaudeを混乱させ、トークンを無駄にします。

CLAUDE.md:プロジェクト設定ファイル

プロジェクトルートにCLAUDE.mdファイルを作成します。Claudeはセッション開始時に自動的にこれを読みます。

含めるべき内容:

  • プロジェクト構造の概要
  • 技術スタックと規約
  • よく使うコマンド(ビルド、テスト、デプロイ)
  • 重要なパターンやルール

例:

# My Project

## Stack
- Next.js 14 with App Router
- TypeScript strict mode
- Prisma + PostgreSQL

## Commands
- `npm run dev` - 開発サーバー起動
- `npm test` - テスト実行
- `npm run lint` - コードスタイルチェック

## Conventions
- デフォルトでServer Componentsを使用
- APIルートは /app/api/ に配置
- コンポーネントは100行以内に

短く保つ:CLAUDE.mdは毎セッションで読み込まれます。長いファイルは毎回トークンを無駄にします。

効果的なコンテキスト戦略

必要なものを具体的に伝える

「認証について手伝って」ではなく「/api/usersエンドポイントにJWT検証を追加して」と言いましょう。

関連ファイルを指定する

Claudeに検索させるのではなく、「UserモデルはSrc/models/user.tsにある」と伝えましょう。

制約を先に述べる

「既存の依存関係のみを使って」や「現在のAPI構造を維持して」など。

タスク切り替え時にコンテキストをクリア

別のタスクからの古いコンテキストはClaudeを誤解させる可能性があります。新しく始めるときは/clearを使いましょう。

よくある間違い:関数だけが必要なのにファイル全体を渡すこと。コンテキストが多い = ノイズが多い = 結果が悪くなる。

まとめ

  • コンテキストは量より質が重要
  • CLAUDE.mdでプロジェクト情報を自動的に伝える
  • ファイル、制約、目標を具体的に伝える
  • タスク切り替え時に古いコンテキストをクリア