出発点は、1 台で 2 つのエージェントを使い始めたこと

Claude Code だけではなく Codex も試す

最初は AI エージェントとして Claude Code だけを使っていました。普段使いには十分でしたが、レスポンスが遅くなる時間帯があったり、別のツールでも同じ作業を試したくなったりして、1 つだけに寄せるより選択肢を持っておきたいと思うようになりました。

そこで Codex も契約して、まずは 1 台の端末で両方を並行稼働させてみることにしました。片方が重いときはもう片方に切り替える、というだけなら簡単です。ただ、両方を使い始めると別の困りごとが出てきました。どちらのエージェントにも同じ指示・ルールを読ませたいので、ルールを共通管理するフォーマットが欲しくなったのです。

最初から複数端末へ広げたいと思っていたわけではありません。きっかけはもっと単純で、1 台の端末の中で Claude CodeCodex に同じ指示・ルールを手で揃えるのが、地味に面倒だったことです。

1 台でも 2 ファイル同期が面倒になる

当時は、Claude Code の global 指示を読む ~/.claude/CLAUDE.md と、Codex の global 指示を読む ~/.codex/AGENTS.md を別々に書いていました。1 台の端末だけなら、まだ我慢できそうに見えます。

でも、実際に編集し始めるとすぐに破綻しました。

  • Claude Code 側に書いた指示を Codex 側へ写し忘れる
  • 片方だけ古い内容のまま残る
  • 別端末でも使いたくなると、同じ内容が 4 ファイル以上に散る
  • どこが正しい状態なのか、git history から追えなくなる

気づくのは、エージェントの挙動がズレた瞬間です。そこで一回、手で頑張るのをやめることにしました。

手書き同期から、1 ファイル配信へ

Source of Truth を自分側に置く

整理した結果、自分用に agent-config-core という独立 repository を作って、rule.md を配信元の正本(Source of Truth)にしました。エージェントごとの設定ファイルを正本にするのではなく、自分が渡したい指示・ルールを 1 つにまとめる、という考え方です。

具体的な手数で言うと、こんな変化です。

Before(手書き同期していた頃)

  • 1 台目の端末で ~/.claude/CLAUDE.md を編集
  • 同じ端末の ~/.codex/AGENTS.md に同じ内容を書き写し
  • 別端末でも使いたくなったら、そこでも同じ 2 ファイルを編集
  • 1 台だけでも 2 ファイル、端末が増えると 4 ファイル以上に増える

After(rule.md を Source of Truth にして配信)

  • 端末 A で rule.md を編集して git push
  • 端末 A で ./deploy.sh を実行して両エージェントに反映
  • 端末 B では git pull して ./deploy.sh を実行
  • 1 回の修正で rule.md 編集 1 回 + 各端末で 1 コマンドに収まる

やっていることは派手ではありません。正本を 1 つにして、生成物を配るだけです。でも、この単純さが大事でした。

端末ローカルの生成物を割り切る

~/.codex/AGENTS.md~/.claude/CLAUDE.md は、それぞれの端末ローカルの生成物として扱います。書き手が直接編集するのは rule.md だけです。

この線引きをすると、追うべき履歴がはっきりします。何をいつどう変えたかは rule.md の git history を見ればよく、配信先の2ファイルを人間が読み比べる必要がありません。

共通化するもの、分けるもの

エージェント側ではなく、自分側で整理する

ちょうどその頃に読んでいたのが、オライリー・ジャパンから出ている『実践 AIエージェント開発 — マルチエージェントシステムの設計と実装』(Michael Albada 著、鈴木駿・高山洪銘・山下正浩 訳、オライリー・ジャパン 2026 年 4 月)でした。

困りごと自体は手書き同期の面倒さから始まっていましたが、「複数エージェントを動かすときに、何を共通化して何を分けるか」という観点が、自分の状況にそのまま当てはまりました。

CodexClaude Code を別々のツールとして見ると、設定も別々に書きたくなります。でも、自分から見れば両方とも「エージェントに指示・ルールを渡す窓口」です。伝えたい内容の大半は共通です。

常時読ませる前提だけを core に置く

ここで、agent-config-core には「両エージェントに常時読ませたい前提」だけを置くことにしました。安全方針、応答方針、作業方針のような、セッション開始時に毎回効いてほしい内容です。

逆に、再利用可能な作業手順やレビュー手順まで rule.md に詰め込むと、すぐに肥大化します。そこは別 repository の persona-skills-core として、あとから任意で接続する形にしました。

最初の整理は、あくまでルールの同期です。skill の共有は次の段階で扱います。

まず試すなら

向いているケース

合いそうなのは、1 台の端末で CodexClaude Code を両方使っていて、同じ指示・ルールを手で揃えるのが面倒になっている人です。複数端末でも効きますが、それはあとから効いてくる副次効果です。

1 端末 1 エージェントの構成や、dotfiles / chezmoi で既に同期できている人にとっては、わざわざ足す必要性はあまりないと思います。自分の状況に近そうなら、まずは rule.md を正本として扱う考え方だけ拾っても十分です。

続きはこちら

次の記事では、この rule.md~/.codex/AGENTS.md~/.claude/CLAUDE.md に配る deploy.sh の流れと、反映前に validate.py / test.sh で確認する手順を書きます。

agent-config-core の deploy.sh で、2 つの global instruction を揃える