短い答え
Windsurfがプロジェクトルールを忘れるのは、.windsurfrulesとglobal_rules.mdが各チャットの最初に挿入される静的テキストであり、両方とも約6,000文字の実用的な文字制限があり、Cascadeが長いセッションを自動要約するためです — これによりルールの詳細が1行の再表現に圧縮されます。取得可能なプロジェクト記憶があれば、ルールは各ターンで強制されます。
Windsurfがプロジェクトルールを忘れる理由
Cascadeはあなたのルールに従おうとします。しかし、3つのメカニズムが静かにそれを妨げています:
1. ルールはプレフィックスであり、アクティブな記憶ではない。 .windsurfrulesとglobal_rules.mdはあなたのプロンプトの前に追加されます。Cascadeはセッションの開始時に一度それらを読みます。それらはあなたのコードや会話と同じコンテキストウィンドウに存在し、セッションが進むにつれてスペースを競い合います。
2. ルールファイルには制限があります。 Windsurfは、ルールが効果を失い始める前に、ファイルごとに約6,000文字の実用的な制限を文書化しています。ワークスペースルール、グローバルルール、および一部のチームが使用するAGENTS.mdの慣習を組み合わせると、1回のスプリントで上限に達することがあります。
3. 要約がルールの詳細を圧縮します。 Codeiumは、以前のCascade要約が重要なコンテキストを削除するほど攻撃的であったことを変更履歴で認めています。改善があっても、要約パスは情報を失います。安全なDB操作に関する12行のルールは、要約を通じて「データベースに注意すること」として戻ってくることがあります — これはルールではなく、雰囲気です。
結果:ルールはしばらく機能し、徐々に漂流し、最悪のタイミングで失敗します。
Windsurfがプロジェクトルールを忘れたときに失うもの
定着しないルールは、全くルールがないよりも悪い — 偽の安全感を与えます:
- 安全でない操作が通過します。 ターン5で機能した「prodに触れない」ルールは、ターン40で静かに失敗します。Cascadeがリファクタリングの深いところにあり、あなたが禁じた操作を正確に提案する時です。
- ハウス慣習が無視されます。 「常にミューテーションにはサーバーアクションを使用する」は最初の3つのファイルで機能します。6つ目になると、ルールの詳細が要約されてしまったため、Cascadeは古いAPIルートパターンを探し始めます。
- 毎回、永遠に同じルールを再述します。 そして、再述するのを忘れた瞬間、Cascadeはデフォルトに戻ります。
Windsurfの組み込みワークアラウンド(それぞれの短所)
Windsurfにはルールのための3つのネイティブメカニズムがあります。それぞれが役立ちますが、単独ではラインを保持しません。
`.windsurfrules`(ワークスペース)は、リポジトリごとのルールファイルです。Cascadeは毎回のセッションでそれを読み込みます。それは静的で、制限があり、会話とコンテキストのスペースを競います。長いセッションはそれを圧縮します。
`global_rules.md`(クロスワークスペース)は、あなたのWindsurf設定にあり、どこでも適用されます。同じ形状、同じ制限、同じ圧縮問題です。
Cascade Memoriesは、チャット中に短いワークスペーススコープのメモを自動生成します。「ユーザーがpnpm testを実行することを記憶する」には便利です。しかし、複数行にわたる微妙なプロジェクトルールや例を含む場合には役に立ちません。
公式のCascade Memoriesドキュメントを読んで、機能の詳細を確認できます。
安定したルールの少数には、ネイティブが機能します。しかし、週ごとに進化する本当のプロジェクトルールブックには、短所があります。
Windsurfの組み込み記憶の短所
プロジェクトルールはエディタの上に存在します。「prodに触れない」ルールは、Cascade、Cursor、Claude Code、またはChatGPTにいるかどうかにかかわらず適用されます。.windsurfrulesはそれらのどれにも移動しません。それぞれのツールは独自のコピーを持ち、それらのコピーは漂流し、プロジェクトは単一の真実のソースを失います。
ルールはプロジェクトに属します。記憶はプロジェクトと共に存在する必要があります。エディタではありません。
MemoryLakeがWindsurfのプロジェクトルールを忘れないようにする方法
MemoryLakeは、CascadeのネイティブMCPサポートを介してWindsurfに接続するクロスモデル記憶レイヤーです。切り詰められたルール文字列を前に追加する代わりに、プロジェクトに完全なルールブックを読み込み、Cascadeはターンごとに関連するルールを取得します。
- 取得可能な記憶としてのルール、前に追加された文字列ではない。 完全なルールブック — DBの安全性、ブランチの衛生、デプロイチェック、命名、テスト — をプロジェクトに読み込みます。Cascadeは決定の瞬間に関連するルールを引き出すので、ルールはコンテキストのスペースを争う必要がありません。
- 生のプロンプトよりも10,000倍のコンテキスト。 MemoryLakeの取得エンジンは、数十億のトークンからなるプロジェクト記憶を読み取り、ターンごとに関連するものを引き出します。もはや6,000文字の制限はありません。
- 1つのルールブック、すべてのAIツール。 同じルールがCursor、Claude Code、ChatGPT、Claude Desktop、Geminiを支配します。ルールが一度変更されると、すべての場所で変更されます。
MemoryLakeは、LoCoMoの長文コンテキストベンチマークで94.03%を記録しました — 2026年時点での最高の公表結果で、ミリ秒の取得とAES-256のエンドツーエンド暗号化を実現しています。
MemoryLakeをWindsurfに接続する3つのステップ
- プロジェクトを作成し、ルールブックを読み込む。 MemoryLakeにサインインし、プロジェクト管理を開き、プロジェクトを作成をクリックし、リポジトリの名前(例:「acme-platform — プロジェクトルール」)を付けます。既存の
.windsurfrules、AGENTS.md、ランブック、安全文書をドキュメントドライブを通じてアップロードします(PDF、Markdown、Word、Excel、画像がすべてサポートされています)。記憶タブに短い命令ルールを追加します — 1つのルールごとに記憶が取得に適しています。 - MCPサーバーエンドポイントを生成する。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「Windsurf統合」と名付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットをすぐにコピーしてください — 一度だけ表示されます。
- サーバーをCascadeのMCP設定に追加する。 Windsurfで、設定 → Cascade → MCPを管理 → 生の設定を表示を開き、エンドポイントURLとBearerトークンを持つ
memorylakeエントリを追加します。保存してCascadeを再起動します。Cascadeは、リスクのあるアクションを取る直前に適用可能なルールを取得するために呼び出すことができるmemorylakeツールを持つようになります。