メインコンテンツへスキップ
Memories は、会話をまたいでコンテキストを共有し、保持するためのシステムです。 Windsurf には、これを実現するための仕組みが 2 つあります。Cascade によって自動的に生成される メモリ と、ユーザーがグローバル、ワークスペース、またはシステムレベルで手動で定義する ルール です。

メモリ、ルール、Workflows、それとも Skills?

Windsurf には、Cascade をカスタマイズするための方法がいくつかあります。適切なものを選ぶには、次の表を参考にしてください。
Feature何をするものかどのように有効化されるかいつ使うか
RulesCascade に どう振る舞うか を伝える (例: 「npm ではなく bun を使う」)always_onglobmodel_decision、または manual (以下を参照)コーディング規約、スタイルガイド、プロジェクト上の制約
AGENTS.md設定不要で、配置場所に応じて適用されるルール自動 — ルート = 常時有効、サブディレクトリ = globfrontmatter なしでディレクトリ固有の規約を適用したい場合
Workflows繰り返し使う複数ステップのタスク向けプロンプトテンプレート/[workflow-name] スラッシュコマンドによる 手動のみデプロイ、PR レビュー、リリースチェックリスト
Skills補助ファイル (スクリプト、テンプレート) と一緒にまとめられた複数ステップの手順モデルが動的に呼び出す、または @mentionCascade が参照ファイルを必要とする複雑なタスク — ここに注力してください
Memories会話中に Cascade が自動生成するコンテキスト関連する場合に自動取得Cascade に単発の情報を覚えさせたい場合。長く使う知識には、ルール または AGENTS.md を推奨
推奨: Cascade に確実に再利用してほしい知識は、自動生成されるメモリに頼るのではなく、ルールとして記述するか、リポジトリの AGENTS.md に追加してください。ルールはバージョン管理でき、チームで共有でき、有効化を明示的に制御できます。

メモリの管理方法

メモリとルールは、Cascade の右上にあるスライダーメニュー内の Customizations アイコン、または右下隅の「Windsurf - Settings」からいつでもアクセスして設定できます。既存のメモリを編集するには、対象のメモリを開いてから Edit ボタンをクリックします。

Memories

会話中、Cascade は記憶しておくと有用だと判断したコンテキストに出会うと、自動的にメモリを生成して保存できます。 また、いつでも Cascade にメモリの作成を依頼できます。Cascade に「… のメモリを作成して」と指示するだけです。 Cascade が自動生成したメモリは、作成されたワークスペースに関連付けられ、~/.codeium/windsurf/memories/ にローカル保存されます。関連があると判断したときに Cascade がそれらを取得します。あるワークスペースで生成されたメモリは、別のワークスペースでは利用できず、リポジトリにもコミットされません。
自動生成されたメモリの作成と利用ではクレジットは消費されません。
自動生成されたメモリは、お使いのマシン上にのみ保存されます。Cascade に何かを永続的に記憶させ、チームと共有したい場合は、代わりに .windsurf/rules/ 内の ルール またはリポジトリの AGENTS.md に書き込むよう Cascade に依頼してください。

Rules

ユーザーは、Cascade が従う独自のルールを明示的に定義できます。 ルールはグローバル、ワークスペース、またはシステムレベルで定義できるほか、AGENTS.md ファイルから推測されることもあります。
ScopeLocationNotes
グローバル~/.codeium/windsurf/memories/global_rules.md単一ファイルで、すべてのワークスペースに適用されます。常時有効です。6,000 文字までに制限されています。
ワークスペース.windsurf/rules/*.mdルールごとに 1 ファイルで、それぞれに独自の有効化モードがあります。各ファイルは 12,000 文字までに制限されています。
AGENTS.mdワークスペース内の任意のディレクトリ同じルールエンジンで処理されます — ルートレベル = 常時有効、サブディレクトリ = そのディレクトリに対する auto-glob。
System (Enterprise)OS 固有 (例: /etc/windsurf/rules/)IT によって展開され、エンドユーザーは読み取り専用です。

ルールの検出

Windsurf は複数の場所からルールを自動検出し、柔軟に整理します:
  • 現在のワークスペースとサブディレクトリ: 現在のワークスペースおよびそのサブディレクトリ内のすべての .windsurf/rules ディレクトリ
  • Git リポジトリ構造: Git リポジトリの場合、Windsurf は親ディレクトリ内のルールを見つけるために Git のルートディレクトリまでさかのぼって検索します
  • 複数ワークスペースのサポート: 同一ワークスペースで複数フォルダを開いている場合、ルールは重複が排除され、最短の相対パスで表示されます

ルールの保存場所

ルールは次のいずれの場所にも保存できます:
  • 現在のワークスペースディレクトリ内の .windsurf/rules
  • ワークスペース内の任意のサブディレクトリにある .windsurf/rules
  • 親ディレクトリ (git リポジトリでは git ルートまで) にある .windsurf/rules
新しいルールを作成すると、git ルートとは限らず、現在のワークスペースの .windsurf/rules ディレクトリに保存されます。 ルールを使い始めるには、Cascade の右上のスライダーメニューで Customizations アイコンをクリックし、Rules パネルに移動します。ここで、+ Global または + Workspace ボタンをクリックして、それぞれグローバルまたはワークスペースレベルで新しいルールを作成できます。
導入の参考に、Windsurf チームが厳選したルールのサンプルテンプレートを https://windsurf.com/editor/directory で参照できます。
ワークスペースのルールファイルは各 12,000 文字までに制限されています。グローバルルールファイルは 6,000 文字までに制限されています。

有効化モード

各ワークスペースルールは、フロントマター内の trigger フィールドで有効化モードを宣言します。これにより、ルールの内容が いつ Cascade に渡されるか、また コンテキストウィンドウをどれだけ消費するか が決まります:
モードtrigger: の値Cascade に渡される仕組みコンテキストコスト
常時有効always_onルールの内容全体が、すべてのメッセージでシステムプロンプトに含まれます。すべてのメッセージ
モデル判断model_decisionシステムプロンプトには description のみが表示されます。Cascade は、その説明が関連すると判断した場合にルールファイル全体を読み込みます。説明は常時、全文は必要時のみ
GlobglobCascade が globs パターンに一致するファイル (例: *.jssrc/**/*.ts) を読み取るか編集するときに、ルールが適用されます。一致するファイルに触れた場合のみ
手動manualルールは システムプロンプトに含まれません。Cascade の入力ボックスで @rule-name と入力して有効化します。@ でメンションされた場合のみ
グローバルルールファイル (global_rules.md) とルートレベルの AGENTS.md ファイルではフロントマターは使用されません。これらは常時有効です。
フロントマターを含むワークスペースルールの例:
---
trigger: glob
globs: **/*.test.ts
---

All test files must use `describe`/`it` blocks and mock external API calls.

ベストプラクティス

Cascade にルールを的確に遵守させるため、次のベストプラクティスに従ってください。
  • ルールはシンプル・簡潔・具体的に保ちましょう。長すぎたり曖昧だと、Cascade が混乱するおそれがあります。
  • 一般的なルール (例: “write good code”) を追加する必要はありません。これらはすでに Cascade の学習データに組み込まれています。
  • ルールは箇条書き、番号付きリスト、Markdown を用いて記述しましょう。長文の段落よりも Cascade が理解・遵守しやすくなります。例えば:
# コーディングガイドライン
- このプロジェクトのプログラミング言語はPythonです
- 可能な限り早期リターンを使用してください
- 新しい関数やクラスを作成する際は必ずドキュメントを追加してください
  • XML タグは、類似するルールを伝え、まとめて整理するための効果的な手段になり得ます。例えば:
<coding_guidelines>
- 私のプロジェクトのプログラミング言語はPythonです
- 可能な限りearly returnを使用してください
- 新しい関数やクラスを作成する際は必ずドキュメントを追加してください
</coding_guidelines>

システムレベルのルール (Enterprise)

Enterprise 組織は、すべてのワークスペースにグローバルに適用され、管理者権限を持たないエンドユーザーが変更できないシステムレベルのルールをデプロイできます。これは、組織全体でのコーディング標準、セキュリティポリシー、コンプライアンス要件の遵守を徹底するのに最適です。 システムレベルのルールは、OS 固有のディレクトリから読み込まれます: macOS:
/Library/Application Support/Windsurf/rules/*.md
Linux/WSL:
/etc/windsurf/rules/*.md
Windows:
C:\ProgramData\Windsurf\rules\*.md
ルールファイル (.md ファイル) を、お使いのオペレーティングシステムごとの所定のディレクトリに配置してください。システムはこれらのディレクトリから、すべての .md ファイルを自動的に読み込みます。

システムレベルのルールの仕組み

システムレベルのルールは、ワークスペースおよびグローバルルールと統合され、ユーザー定義ルールを上書きすることなく Cascade に追加のコンテキストを提供します。これにより、組織はベースラインとなる基準を確立しつつ、各チームがプロジェクト固有のカスタマイズを追加することも可能になります。 Windsurf の UI では、システムレベルのルールは「System」というラベルが付いた状態で表示され、エンドユーザーが削除することはできません。
重要: システムレベルのルールは、IT チームやセキュリティチームによって管理される必要があります。組織のポリシーに従って、社内チームがデプロイ、更新、およびコンプライアンス対応を行うようにしてください。そのための手段として、Mobile Device Management (MDM) や構成管理 (Configuration Management) などの標準的なツールやワークフローを利用できます。