コンテンツにスキップ
LinkedInX

AGENTS.mdとCLAUDE.mdの違い:同じリポジトリでClaudeとCodexに別々のルールを読ませる方法

この記事について

同じリポジトリにClaude用とCodex用の設定ファイルを両方置く設計について説明します。それぞれのファイルが何をするか、なぜ別々のファイルが必要か、共通ルールをどう管理しているかを整理します。


2つのファイルの役割

CLAUDE.md は、Claude Codeが自動的に読み込む設定ファイルです。Claude Codeはプロジェクトのルートにこのファイルがあると、セッション開始時に自動で読み込み、記載されているルールをプロジェクト固有の制約として扱います。

AGENTS.md は、Codex(OpenAI)が読む設定ファイルです。OpenAIのCodexは、リポジトリのルートにこのファイルがあると、作業前にルールとして参照します。Claude Codeは AGENTS.md を自動で読み込みません。

どちらのAIに対しても「このプロジェクトのルールはこれです」と伝えるファイルですが、読むAIが異なります。


なぜ別々のファイルが必要か

ClaudeとCodexでは対応できるコマンドや権限の範囲が異なります。

たとえば、「このコマンドを実行する前に確認してください」というルールは、Claudeにとっては「確認ダイアログを表示する」という動作に対応します。しかし同じルールをCodexに渡すと、Codexが「確認」の動作を別の方法で解釈する場合があります。

また、Claudeはターミナルでのリアルタイムなやり取りに適した指示が有効ですが、Codexは非同期でGitHubに変更をプッシュするため、「作業が終わったらこのコマンドを実行してください」という指示の意味が異なります。

同じルールを同じ文章で両方のAIに渡すと、どちらかに合わない指示が混在することになります。


共通ルールの重複を避ける設計

両方のファイルに同じ内容を書くと、一方だけを更新したときに内容がずれます。このサイトでも個別管理によるずれが生じたため、現在は shared/ を共通ルールの一次情報源とし、CLAUDE.mdAGENTS.md は各ランタイム固有の入口として扱っています。

この問題に対して、以下の構成を採用しています。

プロジェクトルート/
  CLAUDE.md         ← Claudeが読む(共通ルールを集約)
  AGENTS.md         ← Codexが読む(Codex固有の設定 + shared/への参照)
  shared/
    rules/
      build-and-deploy.md   ← 共通の制約を格納
      content-i18n.md       ← 共通の規則を格納
      ...

CLAUDE.md には共通のルールを記載します。AGENTS.md には「共通ルールは CLAUDE.mdshared/rules/ を参照すること」という案内と、Codex固有の設定だけを記載します。


それぞれのファイルに書く内容の例

CLAUDE.md に書くもの

  • 実行してはいけないコマンドとその条件
  • 変更してはいけないファイル・ディレクトリ
  • コンテンツの文体ルール
  • 安全確認の手順

AGENTS.md に書くもの

  • 共通ルールのある場所への参照(CLAUDE.mdshared/rules/ のパス)
  • Codex固有の権限設定
  • GitHubへのプッシュ前に実行すべき確認コマンド

この分担により、共通ルールは一箇所で管理しつつ、AI固有の動作については別に記載できます。


注意事項

CLAUDE.mdAGENTS.md は、それぞれのAIが自動的に読むファイルです。どちらかのAIに対して「このルールは無視してください」と依頼しても、ファイルに記載されている限り次のセッションで再び読み込まれます。

ルールを変更するときは、ファイルを直接編集する必要があります。また、Codexは CLAUDE.md を参照しないため、AGENTS.md から CLAUDE.md への参照を明示しておく必要があります。


まとめ

  • CLAUDE.md はClaude Codeが自動で読む設定ファイル
  • AGENTS.md はCodex(OpenAI)が読む設定ファイル
  • ClaudeとCodexで対応できるコマンドや権限が異なるため、別々のファイルが必要
  • 共通ルールの重複を避けるため、詳細は shared/rules/ に格納し、両方のファイルから参照する設計にしている