ドキュメントが定義する「プロジェクト」とは
Anthropicによる定義は簡潔です。「プロジェクトとは、Claudeが関連する一連の作業を調整する、進行中の1つの会話です。」ユーザーはその会話に作業を送り、Claudeがそれをルーティングします。
実際に作業を行うのはスレッドです。ドキュメントでは、各スレッドを「独自のコンテキストウィンドウを持つ個別のセッションであり、1つの作業を実行し、完了時に会話に報告するもの」と説明しています。調整役となる会話の視野は、想像よりも狭いものです。「スレッドが報告してきた内容は確認できますが、スレッドが実行したすべてのステップを監視しているわけではありません。」
利用可能性はまだ段階的です。ドキュメントには「ProjectsはProおよびMaxプランでパブリックベータ版として提供されており、クラウドセッションを使用したことがあり、claude.aiのチャットやCoworkに既存のプロジェクトがないアカウントから順次展開されています」とあります。また、「TeamまたはEnterpriseプランではまだ利用できません」とも記載されています。チャットやCoworkに古いプロジェクトがある場合、当面はそのまま維持されます。「これらのプロジェクトは、再設計されたエクスペリエンスが適用されるまで、現在と同様に機能し続けます。」
すべてのクラウドスレッドは、同じキットから開始されます。ドキュメントによると、そのキットとは、プロジェクトのリポジトリとファイルに加えて、「その指示とメモリ」、プロジェクトの各リポジトリにあるCLAUDE.mdとスキル、claude.aiアカウントのコネクタ、そしてクラウド環境です。そして、次の1行がそれ以外を遮断しています。「クラウドスレッドは、ローカルマシン上のClaude Codeのセットアップからは何も取得しません。」
この一文こそが、プロジェクトにおけるメモリが、すでに手元にあるメモリとは異なるものであることを示す最初のヒントです。
プロジェクトメモリの保存先
プロジェクトメモリはClaudeがクラウドに書き込むファイル群
ドキュメントのコンテキスト表では、プロジェクトメモリを「要件、決定事項、落とし穴など、Claudeがプロジェクトに関して保持するメモ(ファイルとして保存)」と説明しています。また、スレッドがそれをどのように使用するかについても、「すべてのクラウドスレッドは、開始時にインデックスファイルMEMORY.mdを読み込み、必要に応じて他のファイルを開く」と述べています。
これらのファイルは確認することができます。同じ表には「『プロジェクト設定 > メモリ』でファイルの読み取り、編集、削除ができる」とあり、Claudeに話しかけることで変更することも可能です。「プロジェクトの会話または任意のクラウドスレッドで、要件、決定事項、落とし穴を記憶するようClaudeに依頼するか、忘れるよう依頼してください。」
設定画面では、これらのファイルは見覚えのあるラベルの下に配置されています。「『プロジェクト設定 > メモリ』では、Claudeがプロジェクト内で作業しながら自動的にこれらを書き込むため、これらのファイルは『自動メモリ』の下にリストされます。」
同じファイル名、3つの異なるストレージ
ここで多くの人が混乱します。ローカルマシン上のClaude Codeも、MEMORY.mdインデックスを持つ自動メモリを保持しています。Anthropicのメモリに関するドキュメントでは、これを~/.claude/projects/<project>/memory/に配置し、その適用範囲について「自動メモリはマシンローカルである」と明言しています。さらに、「ファイルはマシン間やクラウド環境間で共有されません」と付け加えています。
プロジェクトのドキュメントでは、反対側から境界線を引いています。「これらは、どちらもMEMORY.mdインデックスを使用しているものの、ローカルマシン上でClaude Codeが保持する自動メモリとは別個のものです。」
つまり、プロジェクトには独自のMEMORY.mdがあり、ノートPCには別のものがあり、これらは互いに独立しています。もし何ヶ月もかけてClaude Codeにローカルのビルドの癖を学習させていたとしても、その学習内容はローカルにとどまります。通常のセッションにおけるこの境界線については、別のマシンでClaude Codeが記憶を忘れる理由に関するガイドで解説していますが、プロジェクトはその境界線の向こう側にあるもう1つの場所にすぎません。
3つ目のストレージは、ユーザー自身が書き込むものです。「プロジェクトメモリは、プロジェクトのリポジトリ内にあるCLAUDE.mdファイルとも別個のものです。」すべてのクラウドスレッドは、クローンからこれらのファイルをロードします。Anthropicは、どちらに何を配置すべきかについて明確なルールを示しています。「リポジトリに関する指示はCLAUDE.mdに、プロジェクトに関するメモはプロジェクトメモリに配置してください。」
さらに、設定の同じ「メモリ」セクションにある「プロジェクトの指示(Project instructions)」があり、これが最も信頼性の高い部分です。表では、これを「各新しいスレッドおよびプロジェクトの会話内のClaudeに送信されるテキスト(最大16,000文字)」と説明しています。
まとめると、プロジェクトの常時コンテキストは以下の4つの場所から提供されます。
- リポジトリの
CLAUDE.mdファイル: ユーザーが作成してコミットし、すべてのクラウドスレッドがクローンからロードします。 - プロジェクトの指示: ユーザーが設定で記述し、すべての新しいスレッドが受信します。
- プロジェクトメモリ: Claudeが作業しながら書き込み、すべてのクラウドスレッドが
MEMORY.mdを介して読み込みます。 - ローカルマシンの自動メモリ: ClaudeがノートPC上で書き込み、そのマシン内にとどまります。
Claudeはプロジェクトメモリを書き込み、その内容は「ガイドライン」となる
プロジェクトメモリは自動的に蓄積されます。調整役に作業の進め方を指示すると、「Claudeはこのような好みを自動的にプロジェクトメモリに保存し、以降のクラウドスレッドでそれに従います。」
ドキュメントでは、保存された好みがどれほどの重みを持つかについて慎重に説明しています。「これらはClaudeが従うべき指示であり、強制される設定ではないため、この方法で指定したスレッド制限は厳密な上限ではありません。」もし、最初のスレッドから厳密に適用し、正確に文言を固定したいものがある場合は、代わりに「プロジェクトの指示」を使用するようAnthropicは推奨しています。
修正も同様に機能します。ドキュメントでは、「スレッドを修正する際は、Claudeにその修正を記憶するよう指示することも推奨されます。修正内容はプロジェクトメモリに保存され、以降のクラウドスレッドはそれを取り込んだ状態で開始されます」と説明されています。そうしないと、修正は1つの会話履歴の中だけにとどまってしまいます。この一般的な問題については、Claude Codeが修正を忘れる理由で解説しています。
また、プロジェクトメモリは、長い会話では不可能な役割も果たします。「プロジェクト内ではコンテキストウィンドウを管理する必要はありません。スレッドは自動的に圧縮(コンパクト化)され、会話は履歴全体ではなく、最近のメッセージ、最近のスレッド、およびプロジェクトメモリに基づいて機能するため、プロジェクトが実行されている限り継続できます。」これに続く指示は、このページで最も実用的な一文です。「決して失ってはならないものは、すべてプロジェクトメモリに保存してください。」通常のセッションで圧縮によって何が保持され、何が破棄されるかを確認したい場合は、自動圧縮ガイドをご覧ください。
プロジェクトメモリなしで開始されるスレッド
ローカルコンピュータ上のスレッド
ローカルデータベース、エミュレータ、VPNの背後にあるAPIなど、ローカルマシンを必要とするタスクもあります。そのような場合、Remote Controlを介してローカルコンピュータ上でスレッドを実行するようプロジェクトに依頼できます。ドキュメントには変更点がリストされていますが、特に注目すべき項目があります。そのようなスレッドは「プロジェクトの指示から開始されますが、メモリファイルはロードされません。」
また、「プロジェクトのクラウド環境ではなく、そのマシン上のファイル、ツール、MCPサーバー、およびフックや権限ルールを含むClaude Codeの設定を使用して動作します。」言い換えれば、ローカルスレッドはノートPCのセットアップとプロジェクトの指示を持って開始されますが、Claudeがプロジェクトメモリに保存した「落とし穴」は開始時には含まれません。
ローカルスレッドとは、Remote Controlを介して接続された、ローカルマシン上のフォルダ内にあるClaude Codeセッションのことです。リモートセッションのフォークに関する記事では、これらのセッションとそこから作成されたコピーとの関係について説明しています。
途中で追加されたリポジトリ
クラウドスレッドは、プロジェクトに含まれていないリポジトリを取り込むことができます。ドキュメントではそのタイミングについて次のように説明しています。「クローンはタスクの途中で行われるため、スレッドが開始された時点では、そのリポジトリのCLAUDE.mdやスキルは存在していませんでした。次のスレッドもそれなしで開始されます。」
リポジトリのCLAUDE.mdに、スレッドが最初のステップから必要とするルールが含まれている場合は、あらかじめプロジェクトに追加しておいてください。
設定変更時にすでに実行されているスレッド
「プロジェクト設定における指示、リポジトリ、プラグイン、環境への変更は、新しいスレッドに適用され、すでに実行中のスレッドには適用されません。」正午に追加した指示は、正午以降にClaudeが開始するスレッドに適用されます。
サブエージェントとプロジェクトの境界
Claude Codeのサブエージェントがメモリを共有しない理由で説明されているように、スレッドはサイドタスクのためにそれぞれ独自のコンテキストウィンドウを持つサブエージェントを使用できます。外側の境界はプロジェクト自体です。「スレッドは、それを開始した1つのプロジェクトに属します。スレッドを別のプロジェクトに移動またはコピーしたり、単独で機能させるために外部に移動したりすることはできません。」また、「2つのプロジェクトを1つに統合することはできません。」プロジェクトは個人用でもあります。「プロジェクトは1人のユーザーに属します。プロジェクトやそのスレッドを別のユーザーと共有することはできません。」
削除は取り消せません。削除すると「プロジェクト、スレッド、メモリ、ファイルが完全に削除され、プロジェクトのルーティンがオフになります。この操作は元に戻せません。」
よくある誤ったアプローチ
ローカルの自動メモリが引き継がれると思い込む。 自動メモリは設計上マシンローカルであり、クラウドスレッドはプロジェクトのキットから開始されます。
リポジトリのルールをプロジェクトメモリに記述する。 Anthropicの切り分けはより明確です。リポジトリのルールはCLAUDE.mdに、プロジェクトのメモはプロジェクトメモリに配置します。
口頭で伝えた制限を設定として扱う。 口頭で伝えたスレッド制限は「好み」として保存されますが、ドキュメントにある通り、これは厳密な上限ではありません。
会話がすべてを記憶していると期待する。 会話は、最近のメッセージ、最近のスレッド、およびプロジェクトメモリに基づいて機能します。
ローカルスレッドがプロジェクトの落とし穴を把握していると期待する。 ローカルスレッドは「指示」から開始され、メモリファイルは読み込まれません。
新しくやり直すためにプロジェクトを削除する。 削除すると、Claudeが学習した内容も消去されます。元に戻せる「アーカイブ」を選択してください。
解決策:各コンテキストの保存先を1つに定め、各スレッドが何を持って開始されるかを確認する
ステップ 1: 把握している情報をスレッドが読み取れる3つの場所に分類する
ブランチの命名規則、テストコマンド、すでに決定した事項、これまでに遭遇した落とし穴など、新しいスレッドが知っておくべきすべての情報をリストアップします。その後、各項目を分類します。
ビルドコマンドやコードスタイルなど、特定のリポジトリに固有のものは、そのリポジトリのCLAUDE.mdに配置します。すべてのスレッドに厳密に適用すべきルールは「プロジェクトの指示」に記述します。Anthropicが推奨する概要には、プロジェクトの目的、作業場所、スレッドが作業を確認する方法、事前に承認が必要な事項などが含まれます。要件、決定事項、落とし穴に関する流動的なメモは、Claudeが管理する「プロジェクトメモリ」に保存します。
ステップ 2: プロジェクトのメモリファイルをドキュメントとして読み直す
「プロジェクト設定 > メモリ」を開き、Claudeが保存した内容を確認します。各エントリが依然として正しいか、何気なく口にした好みが本当に保持したいものであるか、機密情報が誤って保存されていないかを確認します。
誤りがある場合は、ファイルを直接編集するか、Claudeにそれを忘れるよう指示します。決定事項が変更された場合は、会話の中でその旨を伝え、メモリを更新するようClaudeに依頼します。これにより、次のスレッドが古いバージョンに基づいて動作するのを防ぐことができます。これは、最初の数スレッドを実行した後、および定期的なサイクルで行ってください。
ステップ 3: プロジェクトの指示を通じてローカルスレッドにブリーフィングを行う
ローカルコンピュータ上のスレッドは、プロジェクトの指示から開始されますが、メモリファイルは読み込まれません。そのため、ローカルタスクが知っておくべき情報はすべて「指示」またはタスク自体に含める必要があります。ローカルスレッドを要求する前に、関連する落とし穴がメモリにしか保存されていないか確認してください。もしそうであれば、その要約を「指示」に移動するか、リクエストに直接貼り付けます。
必要に応じて追加されるリポジトリについても同様です。最初のステップからルールを適用する必要がある場合は、あらかじめリポジトリをプロジェクトに追加し、開始時にCLAUDE.mdがロードされるようにしてください。
MemoryLakeでのセットアップ方法
プロジェクトのメモリは1つのプロジェクトと1人のユーザーに限定されており、ノートPCはまた別のメモリを保持しています。複数のプロジェクト、ローカルとクラウドの作業、そして使用する他のアシスタント全体で同じ決定事項を適用したい場合、それらを特定のツールに依存しない場所に保管しておくと便利です。MemoryLakeは、ご自身で管理し、使用するツールに接続できるメモリレイヤーです。
エントリはご自身の言葉で作成します。プロジェクトのメモリファイル、マシンの自動メモリ、またはベンダーのストレージから何かが読み取られたり、書き込まれたり、削除されたりすることはありません。
ステップ 1: APIキーを作成する
サインインし、ダッシュボードからキーを生成します。このキーはMemoryLakeのワークスペースに属し、Anthropicアカウントとは独立しています。

ステップ 2: 最初のメモリをアップロードする
単一のプロジェクトにとどまらない決定事項(アーキテクチャの選択、命名規則、過去の修正の背景など)から始めます。1つのエントリに1つの決定事項を日付付きで記述することで、新しいエントリが古いエントリを明確に置き換えることができます。

ステップ 3: AIとエージェントを接続する
Claude Codeや、普段使用している他のアシスタントを接続します。これにより、タスクがプロジェクトのスレッド、ローカルセッション、またはその他の場所で実行されているかに関わらず、同じ決定事項をすべてのアシスタントで利用できるようになります。

実践における変化
第1の違いは、同じ修正を繰り返すことが減ることです。プロジェクトメモリに保存された修正は、1つの会話履歴にとどまることなく、次のクラウドスレッドに引き継がれます。
第2に、ローカルスレッドの動作が予測可能になります。ローカルコンピュータ上のスレッドが「指示」から開始され、「メモリ」は読み込まれないことを理解していれば、事前に適切なブリーフィングを行うことができます。
第3に、権限の明確な切り分けが可能になります。リポジトリのルールはコードとともに、プロジェクトのルールは「指示」に、端的に言えばClaudeの流動的なメモは「メモリ」に保存されるため、問題が発生したときにどのファイルを開くべきかが明確になります。ローカルセッションとクラウドセッション全般については、クラウドセッションとローカルセットアップに関するガイドで引き継がれる内容をリストアップしています。
第4に、誤って情報を失うことが減ります。削除する代わりにアーカイブを選択し、プロジェクトの枠を超えて重要な決定事項のコピーを保持することができます。
Claude Code Projectsにおけるプロジェクトメモリのベストプラクティス
最初のバッチを実行する前にプロジェクトの指示を記述する。 ローカルコンピュータ上のスレッドを含め、すべての新しいスレッドがこれを受信します。
修正を記憶するようClaudeに依頼する。 これにより、修正内容が以降のクラウドスレッドに適用されます。
「プロジェクト設定 > メモリ」を定期的に確認する。 正しくなくなったエントリは編集または削除します。
リポジトリのルールはCLAUDE.mdに、厳密な制限は「指示」に記述する。 口頭で伝えた好みは保持されますが、強制はされません。
ローカルスレッドには明示的にブリーフィングを行い、ルールを持つリポジトリを追加しておく。 そうしないと、どちらも想定しているコンテキストがない状態で開始されます。
削除するのではなくアーカイブする。 削除すると、スレッド、メモリ、ファイルが永久に失われます。
結論
Claude Code Projectsは、ウェイトリストに登録していたすべてのProおよびMaxユーザーに開放されました。そのドキュメントは、アクセス権の次に生じる疑問、すなわち「プロジェクトが学習した内容をどこに保持しているのか」に答えています。
プロジェクトのメモリは、Claudeがクラウドに書き込むファイル群であり、独自のMEMORY.mdによってインデックス化され、「プロジェクト設定 > メモリ」で閲覧・編集できます。これは、ローカルマシンの自動メモリやリポジトリのCLAUDE.mdファイルとは別個のものです。すべてのクラウドスレッドは開始時にこれを読み込みます。一方、ローカルコンピュータ上のスレッドは、プロジェクトの指示から開始され、メモリファイルは読み込まれません。
各コンテキストの保存先を1つに定め、Claudeが保存する内容を確認し、指示を通じてローカルスレッドにブリーフィングを行いましょう。そうすれば、プロジェクトは重要なスレッドにおいて、意図した通りの記憶を保持し続けることができます。