実際に移行されるもの
Devin Desktopは2つのメカニズムでコンテキストを保持しており、そのドキュメントはどちらを信頼すべきかについて非常に率直です。「Devin Desktopにはこのための2つのメカニズムがあります。Cascadeによって自動的に生成されるMemories(メモリ)と、ユーザーがグローバル、ワークスペース、またはシステムレベルで手動で定義するRules(ルール)です。」
AGENTS.mdは無料で移行できます。これが最大のトピックです。 Devinはこれを第一級のルールソースとして扱います。AGENTS.mdは「自動的に検出」され、「.devin/rules/(およびレガシーな.windsurf/rules/)を動かすのと同じルールエンジンに投入されます。ただし、フロントマターの代わりにファイルの場所から有効化モードが推測されます。」ルートレベルのファイルは常にオンになり、サブディレクトリのファイルは「<directory>/**という自動生成されたパターンを持つ」globルールになります。そして、現在のデフォルトエージェントを使用しているすべての人にとって重要なことに、「Devin LocalエージェントはDevin CLIルールシステムを介してAGENTS.mdを読み取ります。」
Codexも同じファイル名を読み取ります。そのドキュメントは「Codexは作業を行う前にAGENTS.mdファイルを読み取ります」という一文から始まります。つまり、1つのファイルがレガシーなCascade、現在のDevin Localエージェント、およびCodexのすべてによって読み取られます。変換する必要はありません。
ルールは移行されますが、有効化モデルは移行されません。 Devinのワークスペースルールは、フロントマターのtriggerフィールドを通じてモードを宣言します。これには4つの値があり、それぞれコンテキストコストが異なります。always_onは「すべてのメッセージのシステムプロンプトに完全なルール内容」を配置します。model_decisionは「システムプロンプトにdescriptionのみ」を表示し、Cascadeが関連性があると判断したときに本文を読み込みます。globは「Cascadeがglobsパターンに一致するファイルを読み取りまたは編集するとき」にルールを適用します。manualは「Cascadeの入力ボックスで@rule-nameと入力して有効化する」まで、ルールをプロンプトから除外します。
Codexには、これに相当する配電盤のような仕組みはありません。実行ごとに1つの指示チェーンを構築します。グローバルスコープではAGENTS.override.mdまたはAGENTS.mdを読み取り、「Codexはこのレベルで最初の空でないファイルのみを使用します。」プロジェクトスコープでは「現在の作業ディレクトリまで順に下り」、各ディレクトリをチェックして「ディレクトリごとに最大1つのファイル」を含めます。その後、それらをマージします。「Codexはルートから順にファイルを連結し、空行で結合します。現在のディレクトリに近いファイルほど、結合されたプロンプトの後半に表示されるため、以前のガイダンスを上書きします。」
場所がフロントマターに取って代わります。これがこの移行の実際の作業であり、そこには上限があります。「Codexは空のファイルをスキップし、結合されたサイズがproject_doc_max_bytes(デフォルトは32 KiB)で定義された制限に達すると、ファイルの追加を停止します。」
メモリは移行されず、すでに孤立していました。 Cascadeのメモリは「作成されたワークスペースに関連付けられ、~/.codeium/windsurf/memories/にローカルに保存されます。」これには1つの文で2つの制限が示されています。「あるワークスペースで生成されたメモリは別のワークスペースでは利用できず、リポジトリにコミットされることもありません。」Devinは率直に「自動生成されたメモリはあなたのマシン上にのみ存在します」と付け加えています。
頼りにできるインポーターもありません。Codexのインポートフローは、サポートされているソースを明示しています。デスクトップアプリは「Claude Code、Claude Cowork、またはCursorからインポート可能」であり、CLIは「Claude CodeまたはCursorからインポート可能」です。Devinはどちらのリストにも含まれていません。ボタンを探し始める前に、このことを知っておく価値があります。もしこれらから移行する場合は、What Codex can import from Cursor and Claudeでそのフローをカバーしています。
手動移行の手順
ステップ1:どのエージェントがコンテキストを読み取っていたかを確認し、棚卸しを行う
CascadeのCustomizations(カスタマイズ)パネル、またはDevinのSettings(設定)を開き、実際に何があるかを確認します。Devinのドキュメントには両方のインターフェースが説明されています。メモリとルールは「Cascadeの右上スライダーメニューにあるCustomizationsアイコンをクリックするか、'Devin - Settings'を介して、いつでもアクセスおよび設定できます。」
次に、ルールが予想以上に多くの場所に存在するため、以下の4つの場所を確認します。
~/.codeium/windsurf/memories/global_rules.md— 「すべてのワークスペースに適用される単一のファイル。常にオン。6,000文字に制限。」パスに注意してください。グローバルなルールファイルがメモリディレクトリ内にあるため、多くの人がグローバルルールを持っていないと誤解する原因になっています。- ワークスペース内の
.devin/rules/*.md(「推奨」)。フォールバックとして.windsurf/rules/*.mdがあり、「1ファイルあたり12,000文字に制限」されています。 - ワークスペースのルート。「ワークスペースルートにあるレガシーな単一ファイル
.windsurfrulesも引き続き読み取られます。」 /etc/devin/rules/などのパス下にあるエンタープライズ管理のシステムルール。「IT部門によってデプロイされ、エンドユーザーは読み取り専用」であり、「ワークスペースおよびグローバルルールとマージされ、ユーザー定義のルールを上書きすることなくCascadeに追加のコンテキストを提供します。」これらが存在する場合、あなたが移動させるものではありません。デプロイの管理者に報告してください。
もう1つ確認すべき検出の癖があります。Devinは「親ディレクトリのルールを見つけるためにgitルートディレクトリまで検索」しますが、「新しいルールを作成すると、必ずしもgitルートではなく、現在のワークスペースの.devin/rulesディレクトリに保存されます。」モノレポでは、思いもよらないサブディレクトリにルールが分散している可能性があります。
メモリについては、内容を読み、残す価値のあるものを今すぐテキストにコピーしてください。エクスポート機能はなく、リポジトリにも含まれていません。所属するワークスペースが変更されると、関連付けが失われます。
ステップ2:4つの有効化モードを1つの連結されたチェーンにフラット化する
保持するすべてのルールをtrigger値でソートし、各モードにデスティネーション(移行先)を割り当てます。
always_onはルートのAGENTS.mdに配置します。どちらのツールもルートレベルのファイルを無条件として扱うため、これは単純なコピーです。合計サイズに注意してください。Devinはグローバルで6,000文字、ワークスペースファイルごとに12,000文字を許可していましたが、Codexは合計32 KiBで追加を停止します。上限に達したときのガイダンスは「制限を引き上げるか、ネストされたディレクトリに指示を分割する」ことです。
globはディレクトリ配置になります。src/**/*.tsにスコープされたルールは、そのディレクトリ内のAGENTS.mdになり、作業ディレクトリがそのディレクトリ以下にあるときにCodexによって取得されます。DevinはすでにサブディレクトリのAGENTS.mdファイルを、自動生成された<directory>/**パターンを持つglobとして扱っているため、このモードが最もきれいに変換されます。
model_decisionには直接の同等機能がありません。ここは単に翻訳するだけでなく、考えるべき唯一の場所です。このルールはプロンプト内では説明としてのみ存在し、関連性がある場合にのみ本文が引き込まれていました。Codexでは選択が必要です。常に適用するほど重要であれば、最も近いAGENTS.mdで無条件に昇格させるか、指示から完全に除外して「スキル」として表現します。これは、Devin自身の移行ウィザードがCascadeメモリに対して指し示している方向でもあります。すべてを昇格させるのはよくある間違いです。たまにしか重要でない素材で32 KiBの上限に達する最も早い方法になってしまいます。指示とオンデマンド機能の違いに馴染みがない場合は、why agent skills aren't memoryがその境界線を示しています。
manualルールは、意図的に呼び出すものでした。これらは常に読み込まれる指示チェーンにはまったく属しません。貼り付けるドキュメントとして保持するか、スキルとして保持してください。
最後に、Codexが意図する通りにAGENTS.override.mdを使用します。「ベースファイルを削除せずに一時的なグローバル上書きが必要な場合は、~/.codex/AGENTS.override.mdを使用してください。」これは、リポジトリに個人の好みを漏らすことなく、かつてglobal_rules.mdに存在していた個人の好みを配置するのに適しています。
完了とする前の最後のチェックです。Codex自身のドキュメントも、Devinとほぼ同じ言葉で同じ境界線を描いています。「必要なチームガイダンスはAGENTS.mdまたはチェックインされたドキュメントに保管してください。メモリは役立つ想起レイヤーとして扱い、常に適用しなければならないルールの唯一のソースとはしないでください。」ルールが常に保持されるべきであれば、どちらのツールの生成されたメモリでもなく、ファイルに属します。Codexが配置されたファイルを無視しているように見える場合は、why Codex skips AGENTS.md rulesが一般的な原因をカバーしています。
より良い方法:学習された半分をどちらのエージェントも所有しない場所に置く
ステップ1と2は、かつてファイルであったすべてのものを移動します。移動できないのは、両方のベンダーが依存しないように言っているレイヤーです(そして、実際に両者ともそう言っています)。Devinの推奨事項は、「自動生成されたMemoriesに依存するのではなく、ルールとして書き込むか、リポジトリのAGENTS.mdに追加すること」です。なぜなら「ルールはバージョン管理され、チームと共有可能で、有効化を明示的に制御できるから」です。一方、Codexのローカルメモリは「デフォルトでオフ」であり、~/.codex/memories/に「生成された状態」として存在し、「Codexのレート制限の残り割合が設定されたしきい値を下回っている場合」はバックグラウンドパスを完全にスキップします。つまり、最も忙しいセッションほど記録されにくくなります。
したがって、両者において蓄積された理解は、マシンローカルであるか、生成されたものであるか、あるいは信頼できる情報源として明示的に推奨されていないかのいずれかです。指示はリポジトリに属します。学習された半分は、どちらのエディタも制御しない場所に属します。
MemoryLakeはその場所です。あなたが所有するメモリレイヤーであり、1つのツールのプライベートディレクトリを介するのではなく、APIを介して実行している任意のエージェントによって読み取られます。3つのステップです。
ステップ1:APIキーを作成する
サインインし、ワークスペースの設定からAPIキーを作成します。これはエディタのものではなくあなたのものなので、将来の切り替えによって無効になることはありません。

ステップ2:最初のメモリをアップロードする
Cascadeのメモリからコピーしたものから始め、次にルールファイルには決して収まらなかった素材を追加します。チームがすでに試して却下したアプローチ、モジュールがそのように構成されている理由、繰り返し発生するレビューコメント、ここに1年いる人なら誰でも明らかな制約などです。マルチモーダルなファイルを含め、ファイルはそのまま取り込めるため、アーキテクチャ図や規約をエンコードしたスプレッドシートを直接入れることができます。

ステップ3:AIとエージェントを接続する
Codexを接続し、まだ使用している場合はDevin Desktopも接続したままにします。それ以降、学習されたレイヤーは1つの場所から読み取られるため、移行期間中に両方のツールを実行しても、2つのコンテキストセットを維持する必要はなくなります。

3つの制限事項。MemoryLakeは~/.codeium/windsurf/memories/や~/.codex/memories/の読み書きを行いません。これらは各ツールの生成された状態であり、これこそが手動移行のステップ1が手動である理由です。また、Codexが指示チェーンを構築する方法や、32 KiBの上限がどのように適用されるかを変えるものではありません。そして、AGENTS.mdに代わるものでもありません。全員に適用されるべきルールは、チームメイトやコードレビューが確認できるリポジトリに属します。
実務における変化
即座に、手順が変わります。どのエージェントがコンテキストを読み取っていたかを監査し、AGENTS.mdをそのまま移動し、すべてを1つのルートファイルにダンプするのではなく、4つのトリガーモードを意図的にフラット化し、学習された半分を両方のツールの外部に保持します。
数ヶ月にわたり、次の移行コストが変わります。この移行には珍しい特徴があります。移行元のツールはすでにファイルに移行するために独自のメモリシステムを非推奨にしており、移行先のツールはローカルメモリをオフにした状態で出荷し、それらを信頼できるものとして扱わないよう警告しています。2つの独立したベンダーが同じ結論に達したことは、永続的な知識がどこに存在するべきかについての非常に強いシグナルであり、どちらの答えも「エディタの内部」ではありません。
また、重複期間中のマルチツールコストも排除されます。この期間は、ほとんどのチームにとって計画よりも長くなります。Devinのメモリはワークスペースごと、マシンごとです。Codexのメモリはマシンごとで、デフォルトでオフです。外部レイヤーなしで両方を実行することは、同じコンテキストを2つの場所で再学習させることを意味し、これはwhat coding agents actually readで説明されているパターンです。
切り替え後のベストプラクティス
- 1つのルート
AGENTS.mdを保持し、具体性をツリーの下方に押し下げます。 Codexはディレクトリごとに最大1つのファイルを含め、深いファイルが浅いファイルを上書きできるようにするため、ツリーが現在のスコープメカニズムになります。 - 合計32 KiBの上限に注意してください。 Codexは上限に達すると追加を停止し、エラーではなくサイレントに切り捨てられます。
- すべての
model_decisionルールを昇格させて移植しないでください。 そのモードはコンテキストを安価に保つために存在していました。すべてを昇格させると、引き継いだばかりの予算を使い果たしてしまいます。 - 新しいチェーンを検証するまで、
.windsurfrulesはそのままにしておきます。 Devinは引き続きそれを読み取るため、重複期間中の有効なフォールバックになりますが、長期的な保管場所としては扱わないでください。 - ルールをトピックごとに分割し、1つの懸念事項につき1つのファイルにします。 ルールを「シンプル、簡潔、具体的」に保つというDevinのガイダンスはCodexにも同様に適用され、トピックサイズのファイルこそがディレクトリベースのスコープモデルを判読しやすくするものです。
- Codex'sのローカルメモリについては慎重に決定してください。 これらはデフォルトでオフです。オンにする場合は、ドキュメントに記載されている動作を思い出してください。生成された状態であり、手動編集用ではなく、短いセッションではスキップされ、レート制限の余裕が少ない場合は完全にスキップされます。関連する症状はwhy Codex forgets project contextでカバーされています。
結論
この移行における驚きは、Codex側にはありません。Devin Desktopのデフォルトエージェントがメモリを永続化しないことであり、これは人々が最も失うことを恐れているレイヤーが、すでにループから外れていた可能性があることを意味します。それが確定すれば、残りは機械的です。AGENTS.mdはそのまま移動し、ワークスペースルールは4つの有効化モードからバイト制限のあるディレクトリツリーにフラット化され、メモリは手動で読み出されます。他のツールが代わりに読み取ってくれることはないからです。
適切に行う価値があるのは最後の部分です。両方のベンダーは、独自の生成されたメモリから離れ、チェックインされたファイルを指し示しており、ファイルこそがルールに適した場所です。ルールではなく知識であるすべてのものについて、永続的な答えは、今期使用しているエディタよりも長生きするレイヤーです。