WarpのAgentが作成したルールを見落とす理由
ファイル名は大文字・小文字を区別し、一方のみが機能する
プロジェクトルール(Project Rules)は「コードベース内に存在し、そのプロジェクト内で作業する際、自動的に適用」され、「AGENTS.md ファイル(または後方互換性のための WARP.md)」に保存されます。Warpが新規プロジェクトに推奨しているのは AGENTS.md です。
すべて大文字という要件は、ドキュメント内で「注意(Caution)」としてフラグが立てられており、これは適切な重要度と言えます。なぜなら、エラーを出さずに静かに失敗するため、ファイル名ではなく機能自体を疑ってしまうからです。ルールを書いても何も変わらず、「Agentはルールを無視する」と結論づけてしまうことになります。
WARP.md も引き続き機能しますが、後方互換性のためのものとしてドキュメントに記載されています。既存のリポジトリを引き継いでそれがある場合は読み込まれますが、新規に開始する場合は AGENTS.md を使用してください。
サブディレクトリのルールは条件付きでしか読み込まれない
これは最も見落としやすい原因であり、ドキュメントに一度だけ明確に記載されています。「Warpは、ルートおよびカレントディレクトリにある AGENTS.md(または WARP.md)を自動的に適用します。」そして、「別のサブディレクトリ内のファイルを編集する場合、Warpはそのサブディレクトリのルールファイルもベストエフォートで含めようとします。」
自動適用されるのは2つの場所。それ以外はすべてベストエフォートです。
Warpの具体的な例を見ると、その仕組みがよく分かります。カレントディレクトリが ui/ に設定されている場合、自動的に適用されるルールは project/AGENTS.md と project/ui/AGENTS.md です。一方、project/api/AGENTS.md はベストエフォートとなり、そのディレクトリ内のファイルを編集した場合にのみ含まれます。カレントディレクトリを api/ に切り替えると、この役割は逆転します。
つまり、パッケージごとにルールを持つモノレポには、信頼できる層と信頼できない層が存在し、どちらになるかはセッションを開始した場所によって決まります。リポジトリ全体で重要なルールがある場合、確実に読み込まれる場所はルートファイルのみです。
最も具体的なルールが優先される(意図しない結果になることも)
Warpは、ドキュメント化された順序で競合を解決します。まず現在のサブディレクトリのファイル内のルール、次にルートファイルのルール、最後にグローバルルール(Global Rules)です。その意図は、「最も具体的でプロジェクトに関連するルールが、より広範なルールよりも優先される」ようにするためです。
これは合理的ですが、ルートレベルの標準ルールが静かに適用されなくなる原因でもあります。18ヶ月前に特定のパッケージ用に作成されたサブディレクトリのファイルが、先週ルートに追加した規約よりも優先されてしまいます。そのディレクトリ内でのみ発生するため、問題が断続的に起きているように見えます。
グローバルルールは最後です。そこに記述したものは、真っ先に上書きされます。
Warpに読み込みを指示していないファイルにルールがある可能性
Warpはこの点において非常に寛容ですが、その寛容さはオプトイン(選択制)です。/init を実行することで「既存のルールファイルを AGENTS.md にリンク」でき、サポートされているリストは他のどのツールよりも長いです:CLAUDE.md、.cursorrules、AGENT.md、GEMINI.md、.clinerules、.windsurfrules、.github/copilot-instructions.md。
単数形の AGENT.md もこのリストに含まれており、AGENTS.md とは異なるファイルであることに注意してください。リポジトリに単数形のファイルがある場合、それはWarpのネイティブファイルではなく、リンク可能な外部ファイルとして扱われます。
罠は、リンクが必要なところを自動検出されると思い込んでしまうことです。CLAUDE.md が大量にあるリポジトリであっても、自動的にWarpに読み込まれるわけではありません。リンクする必要があります。別のAgentから移行してきたチームは、常にこの問題に直面します。ファイル変換については「how to migrate your CLAUDE.md to AGENTS.md」で解説しています。
自分で書いていないルールが存在する可能性
知っておくべき1行があります。「Warpは、今後のインタラクションをよりスマートで一貫したものにするために、使用パターンに基づいてグローバルルールを提案することもあります。」提案されたルールは便利ですが、グローバルルールパネルを一度も開いたことがなければ、そこに何があるか分かりません。ルールが無視されていると結論づける前に確認してください。読んだことのないルールによって上書きされている可能性があります。
よく試される(が効果のない)対策
ルールをより強調して書き直す。 本文をすべて大文字にしたり、感嘆符を増やしたりする。ファイル名が小文字であったり、読み込まれていないサブディレクトリにある場合、強調しても何も変わりません。
すべてを1つの巨大なルートファイルに移動する。 これにより読み込みは解決しますが、別の問題が発生します。触れていないパッケージに関する20行のルールも含め、すべてのリクエストですべてのルールが読み込まれるようになります。
プロンプトにルールを貼り付ける。 確実ですが手動であるため、一度忘れてしまうと機能しません。
Warpが CLAUDE.md を無視していると思い込む。 無視しているわけではありませんが、単に存在するだけでなく、/init を介してリンクする必要があります。
プロジェクトのナレッジを Warp Drive に入れる。 Warp Drive は非常に便利で、チーム全体でリアルタイムに同期されますが、ドキュメントでは「ワークフロー、ノートブック、プロンプト、環境変数」のためのワークスペースとして定義されています。これはルールやナレッジの保存場所ではなく、その中にあるルールパネルはUI上の利便性にすぎず、Driveが保持する内容が変わるわけではありません。
ルールをドキュメント化プロジェクトにする。 直感としては正しいですが、器が間違っています。ルールファイルは行動を制御するためのものであり、ルールの背景にある理由を記述する場所はありません。
解決策:読み込まれた内容を確認し、ルールファイルに収まらない背景情報を別の場所へ移動する
Warpは、ほとんどのツールが提供していない「確認方法」を提供してくれます。「インタラクションで使用されたルールは、会話の References の下に表示されるか、特定のルールから派生したものとしてマークされます。」
何かを変更する前に、これを使用してください。ルールが適用されるべき操作をAgentに指示し、Referencesを確認します。ルールがリストにない場合、問題は読み込みにあります。まずファイル名の大文字・小文字を確認し、次にファイルがルートまたはカレントディレクトリにあるかを確認します。ルールがリストにあるにもかかわらずAgentが別の行動をとった場合、問題は読み込みではなく、ファイルを書き直しても解決しません。
次に、自分が書いた記憶ではなく、実際の状態を確認するためにルールパネルを見つけます。ドキュメント化されたエントリーポイントは5つあります:Warp Driveの Personal > Rules、コマンドパレットで「Open AI Rules」を検索、Settings > Agents > Knowledge > Manage Rules、メニューバーの AI > Open Rules、そしてプロジェクトルールをWarpのエディタで直接開くスラッシュコマンド /open-project-rules です。/add-rule を使用してグローバルルールを作成し、具体的な説明を入力します。Warpのフィールドプロンプトは「ルールが何を行うか、およびいつ適用するか」であり、Agentはこの説明を読んで関連性を判断します。
これで読み込みの問題は解決します。しかし、後半の問題、つまりルールファイルはあなたが知っていることの大部分を保持するには不適切な形状であるという問題は解決しません。ルールはリクエスト時に適用される指示であり、必然的に短く、コンテキストを奪い合います。規約が存在する理由、すでに却下したアプローチ、明白な答えを誤りにする制約などは、どれも指示ではありません。これらを AGENTS.md に記述すると、ファイルが長くなるだけで、Agentがそれをより忠実に守るようになるわけではありません。
それを保持するのが MemoryLake です。プロジェクトの永続的なナレッジをツールがクエリできるレイヤーに保持するため、ルールは短く保たれ、背景にある理由はいつでも利用可能になります。セットアップは3つのステップです。
ステップ 1:APIキーの作成
サインインしてAPIキーを作成します。接続するツール間で共通の1つの認証情報です。

ステップ 2:最初のメモリのアップロード
各エントリーは短く、1つの主張のみにします。最適なソースは、長くしようとしていたルールファイルです。

すべてのルールの理由。 「負荷がかかるとリードレプリカが遅延するため、マイグレーションは追加のみとする。」ルール自体は AGENTS.md に記述すべきですが、この理由はここに記述します。これにより、次の四半期にルールが元に戻されるのを防ぐことができます。
このリポジトリですでに却下されたアプローチ。 ルールファイルやコミットメッセージには現れず、新しいセッションのたびに再提案されるカテゴリです。
誰も教えてくれない環境に関する事実。 CIでのみ失敗するテスト、ドキュメント化されていないレート制限、2つのジョブ間の順序依存関係など。
サブディレクトリファイル間で意見が一致しない内容。 パッケージごとのルールがルートと競合する場合、どちらが最新でその理由は何かを書き留めます。これはルールではなく事実です。
ステップ 3:AIとAgentの接続
お使いのツールを接続します。MemoryLake は MCP および API 経由でアクセス可能であり、Warp は MCP サーバーをサポートしています。知っておくべき詳細が1つあります。「CLIは、Warpアプリとは別に独自の MCP サーバー設定を保持します。」これは macOS では ~/.warp_cli/.mcp.json に保存されます。両方を使用する場合は、両方を設定してください。Claude、Codex、OpenClaw などの MCP ネイティブの Agent も同様に接続し、他のアシスタントも API を通じて同じメモリを読み込みます。

3つの率直な制限事項。MemoryLake は AGENTS.md やグローバルルールを書き換えません。 これらはWarpを制御するためのものであり、上記の読み込み動作はWarpの仕様であって、メモリレイヤーが変更するものではありません。また、あなたやAgentが入力したもののみを保持するため、ステップ2は手動です。さらに、ルールは強制的な設定ではなくコンテキストです。常に遵守すべき事項は、マークダウンファイルの1行ではなく、CIでのチェックが必要です。
実践における変化
「ルールは読み込まれているか?」の確認が2秒で終わる。 Referencesを確認するだけです。
ファイル名の大文字・小文字が謎のバグではなくなる。 すべて大文字の AGENTS.md でなければ、存在しないものとして扱われます。
ルートかサブディレクトリかの選択が意図的なものになる。 ルートは保証され、それ以外はベストエフォートです。
ルールファイルが短くなる。 背景にある理由が除外されるため、残るのは指示のみになります。
移行が「書き直し」を意味しなくなる。 7つの外部フォーマットを /init でリンクできます。
CLIとアプリが重要な部分で同期を維持する。 Warpのドキュメントには、それらの間で「ルールとスキルは移行の必要がない」と記載されています。これらは同じファイルの場所から読み込まれます。MCP設定のみが例外です。
Warpプロジェクトルールのベストプラクティス
常に、まず大文字・小文字を確認する。 最もコストのかからない診断であり、最も一般的な原因です。
リポジトリ全体のルールはルートファイルに記述する。 ルートとカレントディレクトリのみが自動的に読み込まれます。
サブディレクトリのファイルに古い上書きがないか監査する。 最も具体的なファイルが優先され、古いファイルであっても具体性は維持されます。
グローバルルールパネルを一度確認する。 Warpが見たことのないルールを提案している可能性があります。
複製せず、リンクする。 /init は CLAUDE.md、.cursorrules、.clinerules、およびその他4つのファイルをリンクします。同じルールのコピーが2つあると、内容が乖離していきます。
グローバルルールに具体的な説明を記述する。 Agentが関連性を判断するために読み込むのはこの説明です。
ファイルを読み直すのではなく、Referencesで確認する。 読み込まれた内容は事実であり、あなたが書いたものは意図にすぎません。
背景にある理由はルールファイルに含めない。 ルールはリクエスト時に適用され、コンテキストを奪い合います。一般的な仕組みについては「what AI memory actually is」を参照してください。
結論
Warpのルールシステムは、その4つの境界線を理解すればうまく機能します。ファイル名はすべて大文字である必要があり、小文字の agents.md はエラーを出さずに失敗します。ルートファイルとカレントディレクトリのファイルのみが自動的に読み込まれ、それ以外は触れたファイルに応じたベストエフォートとなります。競合は最も具体的なファイルに解決されるため、古いサブディレクトリのルールが、そのディレクトリ内では新しいルート標準よりも優先されます。そして、7つの外部ルールフォーマットを /init でリンクできます。これは自動検出ではなく、リンクです。
本当に優れた部分は、検証パスです。適用されたルールは会話の References の下に表示されるため、「ルールは読み込まれているか?」という疑問が、推測から確認へと変わります。このカテゴリのほとんどのツールにはこのような表示機能がないため、何かを編集する前にこれを確認する習慣をつける価値があります。
ルールにできないことは、背景にある理由を保持することです。ルールは短く、関連するすべてのリクエストで読み込まれます。規約が存在する理由を説明し始めた瞬間、そのファイルの本来の役割を損なうことになります。大文字・小文字を確認し、リポジトリ全体のルールをルートに配置し、サブディレクトリの上書きを監査し、Referencesで検証してください。そして、決定事項、理由、却下されたアプローチは、Agentが毎回読み込む必要のあるファイルではなく、クエリできるレイヤーに配置しましょう。