🎓 生成AI活用の勉強会・無料相談・最新情報をお届けします
オンライン勉強会の案内や、無料相談、ChatGPT・Claude活用の具体例をメールでお届けします。登録は無料、いつでも解除できます。
Claude Codeでプログラミングを進めていると、「さっき説明したことを忘れてる?」「同じ質問を何度もされる」という経験はありませんか?実は私も最初は戸惑いました。でも、コンテキスト管理のコツを掴んでからは、長期プロジェクトでもスムーズに開発できるようになったんです。今回は、実際に試して効果があった5つのテクニックをご紹介します。
そもそも「コンテキスト」って何?なぜ管理が必要なの?
コンテキストとは、Claude Codeが「今、何について話しているか」を理解するための文脈情報のことです。人間の会話でも、話が長くなると「あれ、何の話だっけ?」となりますよね。Claude Codeも同じで、会話が長引くと最初の方の内容を参照しづらくなります。
私が最初に作った在庫管理アプリの開発では、200回以上のやり取りを重ねました。途中でClaude Codeが「このプロジェクトのデータベース構造は?」と聞いてきたときは正直驚きました。でも、これは異常ではなく、長い会話では自然なこと。だからこそ、意識的に管理する必要があるんです。
実践テクニック①:プロジェクトのREADME.mdを作成・更新する
最も効果的だったのが、プロジェクトのルートディレクトリに「README.md」を作り、常に最新状態に保つことです。Claude Codeは新しいチャットを始めるとき、このファイルを自動的に参照することが多いんです。
私が実際に作成したREADME.mdの構造はこんな感じです:
# プロジェクト名
在庫管理システム
## 概要
中小企業向けの在庫管理Webアプリケーション
## 技術スタック
- フロントエンド:React 18
- バックエンド:Node.js + Express
- データベース:PostgreSQL
## 主要機能
1. 商品の登録・編集・削除
2. 在庫数の自動更新
3. CSVエクスポート機能
## ディレクトリ構造
/src/components - Reactコンポーネント
/src/api - API呼び出しロジック
/server - バックエンドコード
## 開発状況
- ✅ 商品登録機能
- ✅ 在庫一覧表示
- 🚧 CSVエクスポート(開発中)
- ⏳ ユーザー認証(未着手)
新しいチャットを始めるときは「README.mdを確認してください」と最初に伝えるだけで、Claude Codeがプロジェクト全体を把握してくれます。開発が進んだら、その都度更新することも忘れずに。
実践テクニック②:定期的に「要約」をリクエストする
会話が50回を超えたあたりで、私はこう聞くようにしています:「ここまでの作業内容と、現在の状態を箇条書きで要約してください」
すると、Claude Codeはこんな感じで整理してくれます:
【実装済み機能】
- 商品登録フォーム(validation付き)
- 在庫一覧テーブル(ソート機能付き)
- 商品削除機能(確認ダイアログ付き)
【現在の課題】
- CSVエクスポート時の文字化け
- 削除後のページリロード問題
【次のステップ】
- 文字化け対策(UTF-8 BOM追加)
- 状態管理の見直し(useContextの導入)
この要約を新しいドキュメント(例:PROGRESS.md)として保存しておくと、後で振り返るときに便利です。実際、1週間開発を中断して戻ってきたとき、この要約のおかげですぐに作業を再開できました。
実践テクニック③:チャットを「機能単位」で分ける
以前は1つのチャットで全部やろうとしていましたが、これが失敗でした。会話が300回を超えると、明らかに応答が遅くなり、関係ない過去の情報を参照してしまうことが増えたんです。
今は「機能ごと」に新しいチャットを開始しています:
- チャット1:プロジェクトのセットアップとDB設計
- チャット2:商品登録機能の実装
- チャット3:CSVエクスポート機能
- チャット4:ユーザー認証機能
新しいチャットを始めるときの最初のメッセージはこんな感じです:
「在庫管理システムのCSVエクスポート機能を実装したいです。
プロジェクトの概要はREADME.mdを、
現在の進捗状況はPROGRESS.mdを確認してください。
今回実装したいのは:
- 在庫一覧をCSV形式でダウンロードする機能
- 日本語の文字化け対策必須
- ファイル名は「在庫一覧_YYYYMMDD.csv」形式」
このように最初に必要な情報を明確に伝えると、Claude Codeは的確に作業を始めてくれます。
実践テクニック④:重要な決定事項は「DECISIONS.md」に記録
開発中には「なぜこの技術を選んだのか」「なぜこの実装方法にしたのか」という決定がたくさんあります。これを記録しておかないと、後で同じ議論を繰り返すことに。
私はこんなフォーマットで記録しています:
# 技術的決定事項
## 2024-01-15: 状態管理にuseContextを採用
**理由**:
- Reduxは今回の規模では過剰
- propsのバケツリレーを避けたい
- チーム内でReact Hooksの経験あり
## 2024-01-18: PostgreSQL採用
**理由**:
- 将来的な拡張性を考慮
- 本番環境のサーバーでサポート済み
- JSONデータ型が使える
新しいチャットで「なぜPostgreSQLを使っているんですか?」と聞かれたら、「DECISIONS.mdを確認してください」と答えるだけでOKです。
実践テクニック⑤:「.claudecontext」ファイルで常に参照させる情報を定義
これは最近発見した上級テクニックですが、プロジェクトルートに「.claudecontext」というファイルを作ると、Claude Codeが自動的に参照してくれることがあります(※バージョンによって動作が異なる場合があります)。
# このプロジェクトで常に意識すべきこと
- コーディング規約:ESLint + Prettier設定に従う
- コミットメッセージ:日本語でOK、動詞から始める
- テスト:新機能には必ずJestテストを追加
- エラーハンドリング:ユーザーフレンドリーな日本語メッセージ必須
これを設定してから、Claude Codeが自動的にPrettier設定を考慮したコードを生成してくれるようになりました。
まとめ:小さな習慣が大きな差を生む
コンテキスト管理は難しそうに聞こえますが、実際にやってみると「ドキュメントをこまめに更新する」「定期的に整理する」という、ごく普通の習慣なんです。
今日から始められる3つのアクション:
- プロジェクトにREADME.mdを作成する(5分でOK)
- 50回会話したら要約をリクエストする習慣をつける
- 新機能は新しいチャットで始める
私の経験では、これらを実践してから、Claude Codeとの開発効率が2倍以上になりました。「また同じことを説明してる…」というストレスも激減。最初は面倒に感じるかもしれませんが、1週間も続ければ自然と習慣になりますよ。
長期プロジェクトこそ、コンテキスト管理が成功の鍵。今日から少しずつ試してみてください!
