MemoryLake
すべての記事に戻る
Pain Point2026年5月22日7 分で読了

なぜWindsurfは私のアーキテクチャの決定を忘れるのか?

2週間前、あなたとCascadeはデータレイヤーを決定しました:Prisma上のDrizzle、エッジランタイムに優しい、ORM側の結合なし、分析クエリ用の生SQL。あなたはその理由を長いチャットで記録しました。今日は新しいエンドポイントを追加するために新しいCascadeセッションを開くと、Cascadeはカジュアルに結合されたインクルードを持つPrismaスキーマを書くことを提案します。

その決定はあなたの頭の中、コードベースの中、そして先週のチャット履歴のどこかにあります。しかし、それはCascadeの記憶にはありません。なぜなら、そうだからです。

短い答え

Windsurfがアーキテクチャの決定を忘れるのは、Cascadeに過去のチャットの持続的なクロスセッション記憶がなく、.windsurfrulesファイルが完全なADRとその根拠を保持するには小さすぎるからです(約6,000文字の制限)。決定の詳細は古いセッションで消え、長いセッションでは圧縮されます。取得可能なプロジェクト記憶があれば、すべてのチャットとすべてのツールで決定をクエリ可能になります。

Windsurfがアーキテクチャの決定を忘れる理由

アーキテクチャの決定はコードベースにおいて最も価値のあるコンテキストであり、すべてのエディタのネイティブ記憶によって最も悪く扱われます。失われる原因は、Cascadeの3つのメカニズムです:

1. チャット内容のためのクロスセッション記憶がない。 Cascade Memoriesは短いワークスペーススコープのメモをキャプチャします。90メッセージの設計ディスカッションの完全な理由の連鎖を保存するようには設計されていません。新しいチャットを開くと、すべての決定の背後にある理由はチャットサイドバーにあり、あなたには読めますが、エージェントには見えません。

2. ルールファイルがADRsには小さすぎる。 実際のADRにはコンテキスト、考慮されたオプション、決定、結果、フォローアップがあります。それらを6,000文字の.windsurfrulesに詰め込むのは現実的ではありません。ほとんどのチームは諦めて、1行だけを書くことになります:「Drizzleを使用する」。その行は生き残りますが、根拠は生き残らず、Cascadeは拒否されたオプションを再提案し続けます。

3. セッション内の要約が理由を圧縮する。 Codeiumは、以前のバージョンが重要なコンテキストを落としたため、Cascadeの要約機能の改善を文書化しています。今でも、要約は情報を失います。理由は短い文に言い換えられ、Cascadeはその背後にある制約を失います。

Windsurfがアーキテクチャの決定を忘れると失うもの

失われた根拠は最も高価なコンテキストの損失です:

  • 拒否されたオプションが再び現れる。 Prismaはすでに評価され、拒否されました。理由がないと、Cascadeは再び提案します — そして、あなたの反発がなければ、ジュニア開発者やあまり懐疑的でないレビュアーがそれを受け入れるかもしれません。
  • 決定が毎スプリントで再訴訟される。 「Redisを使用しますか?」は3月に回答されました。取得可能な記録がないと、5月に再度尋ねられ、セッションを無駄にして再決定します。
  • 新しいコードが古い決定を静かに侵害する。 「すべての支払いはStripe Checkoutを通じて、決して生APIを使用しない」と一度決定されました。次の機能は生APIを使用しますが、その制約はエージェントに届きませんでした。

Windsurfの組み込みの回避策(それぞれの短所)

Windsurfには3つの関連メカニズムがあります。どれもADRスケールのコンテンツには作られていません。

`.windsurfrules` はあなたのスタックに関するいくつかのワンライナーを保持できます。しかし、実用的な文字制限のため、完全なADRsを保持することはできませんし、Cascadeはセッションが増えるにつれて読み込まれたルールを要約します。

Cascade Memoriesはチャット中に短いメモを自動生成します。「ユーザーは小さなPRを好む」に役立ちますが、「私たちはこれらの5つの制約のためにDrizzleをPrismaより選びました」というのには役立ちません。

ワークフローは繰り返し可能な手順をスクリプト化できます。記憶機能ではなく、役に立ちません。

公式のCascade Memoriesドキュメントを読んで、完全な機能を確認できます。

小さな好みに対してはネイティブが機能しますが、あなたのチームのアーキテクチャの根拠にはその仕事に適していません。

Windsurfの組み込みの記憶が不足している点

アーキテクチャの決定はエディタスコープではありません。プロジェクトスコープであり、しばしば組織スコープです。「私たちはDrizzleを選んだ」という同じ決定は、Cascade、Cursor、Claude Code、ChatGPT、またはコードレビューツールのいずれにおいても適用されます。Windsurfのネイティブ機能はWindsurfを超えて移動せず、/docs/adr/フォルダ内のADRsは、すべてのツールのすべてのエージェントが実際に見つけて使用できる場合にのみ役立ちます。

記憶はエディタではなく、プロジェクトに従う必要があります。

MemoryLakeがWindsurfのアーキテクチャの決定を忘れる問題を解決する方法

MemoryLakeは、CascadeのネイティブMCPサポートを介してWindsurfに接続するクロスモデル記憶レイヤーです。ルールファイルにADRsを詰め込もうとするのではなく、ADRフォルダと設計ディスカッションをプロジェクトにロードし、Cascadeはターンごとに関連する決定を取得します。

  • ADRsをファーストクラスの記憶として。 /docs/adr/フォルダ、RFC、および過去の設計ディスカッションをプロジェクトにドロップします。Cascadeがデータレイヤーをスキャフォールドしようとする際に、「ADR-014: ORMの選択」を引き出し、完全な根拠を確認できます。
  • 生のプロンプトの10,000倍のコンテキスト。 MemoryLakeの取得エンジンは、プロジェクト記憶の数十億トークンから読み取り、ターンごとに関連するADRのみを返します。ルールファイルの制限はなく、要約のドリフトもありません。
  • すべてのAIにわたる1つの決定ログ。 同じADRsがCursor、Claude Code、ChatGPT、Claude Desktop、Geminiで表示されます。新しい開発者が任意のツールを開くと、同じ理由で同じ決定が表示されます。

MemoryLakeはまた、記憶のGitスタイルのバージョン管理を提供し、ADRが上書きされると、差分と履歴を取得できます — 静かな上書きではありません。2026年時点でのLoCoMo長文コンテキストベンチマークで94.03%を記録し、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を実現しました。

MemoryLakeをWindsurfに接続する3つのステップ

  1. プロジェクトを作成し、決定履歴をロードします。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックし、リポジトリの名前を付けます(例:「acme-platform — ADRs」)。/docs/adr/、RFCフォルダ、およびDocument Driveを介してエクスポートされたCascadeチャットをアップロードします(PDF、Markdown、Word、Excel、画像すべてがサポートされています)。迅速な取得のために、Memoriesタブに重要な決定の短い要約を追加します。
  2. MCPサーバーエンドポイントを生成します。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「Windsurf統合」と名付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットは一度だけ表示されるので、すぐにコピーしてください。
  3. サーバーをCascadeのMCP設定に追加します。 Windsurfで、設定 → Cascade → MCPを管理 → 生の設定を表示を開き、エンドポイントURLとBearerトークンを持つmemorylakeエントリを追加します。保存してCascadeを再起動します。これでCascadeは、アーキテクチャに基づいたコードを書く前に決定履歴を参照するために呼び出すことができるmemorylakeツールを持つことになります。

よくある質問

Windsurfはセッション間でアーキテクチャの決定を記憶していますか?

WindsurfのCascadeには過去のチャットのための組み込みのクロスセッション記憶がありません。.windsurfrulesはセッション間で生き残りますが、完全なADRsには小さすぎます。Cascade Memoriesは短いメモであり、設計文書ではありません。過去のチャットはエージェントが読めないサイドバーにあります。

Cascadeにアーキテクチャの決定を記憶させるにはどうすればよいですか?

WindsurfのネイティブMCPサポートを介して、CascadeをMemoryLakeのような外部記憶レイヤーに接続します。ADR、RFC、および過去の設計ディスカッションをプロジェクトにロードします。そうすれば、Cascadeは新しいアーキテクチャに基づいたコードを書く前に関連する決定を取得できます。

なぜCascadeはすでに拒否したオプションを提案し続けるのですか?

拒否が古いチャットに存在するか、要約された段落に存在するからです。根拠の取得可能な記憶がないと、Cascadeは各新しいリクエストを一般的なベストプラクティスに対して評価し、あなたの特定の決定ログではなくなります。

ADRsを.windsurfrulesに入れるだけでいいですか?

そこに1行の要約を入れることはできますが、ルールファイルには約6,000文字の実用的な制限があり、コンテキストのスペースを他のすべてと競い合います。根拠、オプション、結果を持つ完全なADRsは、取得可能な記憶に属し、前置きされた文字列には属しません。

同じADRsはCursorやClaude Codeで機能しますか?

.windsurfrulesはWindsurf専用です。MemoryLakeはADRsをモデルに依存しないプロジェクトに保存するため、同じ決定ログがWindsurf、Cursor、Claude Code、Claude Desktop、ChatGPT、およびMCPまたはRESTを話す任意のツールで機能します。