🦐

CLAUDE.md と AGENTS.md の二重管理、シンボリックリンクで終わらせよう

に公開

はじめに

こんにちは!株式会社エクスプラザの Unsu です。

エクスプラザでは、それぞれのプロジェクトに特化したAI開発エージェント用のコンテキストファイルをエンジニアたちでアップデートするようにしています。

ですが、最近エンジニアによっては使う開発エージェントがバラバラで、Claude CodeとCodexの両方はどちらも独自のコンテキストファイル構造を要求しています。

Claude Code Codex
コンテキスト CLAUDE.md AGENTS.md
コマンド .claude/commands/ .codex/commands/
スキル .claude/skills/ .codex/skills/

同じコーディングルールを2箇所に書いて、片方だけ更新して乖離するというミスを犯しそう。

そこでシンボリックリンクで正規ファイルを1つに絞ることにしました。

やったこと

# AGENTS.md を正規ファイルにし、CLAUDE.md はリンク
ln -s AGENTS.md CLAUDE.md

# .codex/ を正規ディレクトリにし、.claude/ からリンク
ln -s ../.codex/commands .claude/commands
ln -s ../.codex/skills   .claude/skills

結果こうなる。

AGENTS.md                            ← ここだけ編集する
CLAUDE.md                            ← AGENTS.mdと自動で同期

.codex/
├── commands/                        ← ここだけ編集する
│   ├── command1.md
│   ├── command2.md
│   └── command3.md
└── skills/                          ← ここだけ編集する
    ├── skill1/
    ├── skill2/
    └── skill3/

.claude/
├── commands                         ← '../.codex/commands'と自動で同期
└── skills                           ← '../.codex/skills'と自動で同期

AGENTS.mdを編集すれば両エージェントが同じルールを読むようになります。
また、.codex/の中のコマンドやスキルを追加したり編集すれば、.claude/からも自動で同期されるようになります。

検証

この構成でClaude Codeがシンボリックリンク経由のファイルを正しく参照できるか確認してみましょう。

まず、.codex/commands/に置いたカスタムコマンドがClaude Codeから認識されるか試してみます。

カスタムコマンドの補完候補にwrite-workflow, write-entity, write-repositoryが表示されている

/write-と入力すると、リンク先の.codex/commands/に定義した3つのコマンドが補完候補に表示されました。

次に、AGENTS.mdの内容がCLAUDE.md経由で読めるか試してみましょう。

CLAUDE.mdの要約としてAGENTS.mdの内容(コマンド、フォルダ構成、コーディングルール)が表示されている

「CLAUDE.mdの内容を要約して」と聞くと、AGENTS.mdに書いたプロジェクト構成やコーディングルールがそのまま返ってきました。

シンボリックリンク経由でも、コンテキストファイル・カスタムコマンドともに問題なく解決できている様子が確認できました。

まとめ

ln -sだけで二重管理が消え、編集箇所が1つになるので乖離が原理的に起きなくなります。複数のAIコーディングエージェントを併用しているなら、最初にこの構成を作っておくと後が楽です。みなさんもぜひ試してみてください!

株式会社エクスプラザ

Discussion