Codex 側を動かすまでの順序

Claude Code 側の構成を Codex に持っていくとき、何から手をつけるか

2026-09-17 時点

いまの差

同じ Qoo.000 の中で、2つの環境が持っているものの数を並べる。

持ちものClaude CodeCodex置き場
エージェント 20体 1体 .claude/agents/ / .codex/agents/
スキル 13本 0本 .claude/skills/ / .codex/skills/(無し)
司令塔ファイル CLAUDE.md 同じ実体 AGENTS.md → .claude/CLAUDE.md
Codex 側の1体(qlaude-003.toml)は 2026-06-09 に作ったまま更新されていない。 本文には、廃止した Craft・退避したスキル・登録を解除したエージェントなど、 今は存在しない参照が13種類残っている。

順序

順序は自分で決めた。数値と設定値は実物から取っている。3までは移す前の下ごしらえで、4以降が実際の移植になる。

config.toml の既定値を決める先に決める

~/.codex/config.toml は現在 model = "gpt-6-astra" / model_reasoning_effort = "medium"。メインセッションを high にするなら、ここを変える。

approval_policy と sandbox_mode は、 グローバルにもプロジェクトにも書かれていない。どちらも既定値のまま動いている。 値の候補は「外の記事から取り入れるもの」に置いた。

なぜ先か:グローバル設定なので、後から変えると出力クレジットを同じ条件で比べられなくなり、承認とサンドボックスの挙動も途中で変わる
qlaude-003.toml を現行ルールに合わせる

落とすもの:

  • 廃止したもの:Craft(2026-08-30 に廃止・craft_read を含む)
  • 退避したスキル:daily-report / research-note / learn-url / post-create / idea-gather / food-tracking
  • 登録を解除したエージェント:sns-director / develop-director / develop-engineer

~/Desktop/{intern,school,sns}/ も、現行は {school,intern,ATOLLS} に変わっている。

MCP まわりは表記が混ざっている。「Codex.ai Google Calendar」と書かれている一方、 ツール名は mcp__claude_ai_Google_Calendar__* のまま残っている。 Claude 用の文章を置換したときの取りこぼしだと見ている。

なぜ2番目か:ここが直らないと、新しい toml を複製したときに古い参照ごと写る
AGENTS.md を分けるかどうか決める

いまは AGENTS.md が .claude/CLAUDE.md へのシンボリックリンクで、 両方が同じ本文を読んでいる。ツール名・スキル名・コマンド名は2つの環境で違うので、 共通部分と環境ごとの部分を分けるか、1本のまま書き分けるかを決める。

なぜ移植の前か:分けると決めた場合、各エージェントの本文の書き方が変わる
school の4体を移して、モデルと effort を書く

school-director / school-search / school-worker / school-recorder を .codex/agents/*.toml に置く。ドメインは school ひとつに絞る。

director と worker は gpt-5.6-terra / medium、 search は gpt-5.6-luna / low、recorder は gpt-5.6-luna / minimal。

なぜ school から:Codex のモデルと effort の割り当てを、この4体を例に組んである
呼ばれた回数を見てから次のドメインへ実績を待つ

intern / dev / 事業 は、school の4体が実際に呼ばれてから同じ形で足す。

なぜ待つか:Claude Code 側で、定義した69体のうち実際に呼ばれたのは4体だった

外の記事から取り入れるもの

出どころは Codex Studio の解説記事で、 2026年4月時点に書かれている。うちの環境にまだ入っていないものだけを拾った。 各項目の最後の一文には、うちに当てはめたときの自分の見立てを入れた。

記事は GPT-5.5 を前提に書かれている。うちは gpt-6-astra と gpt-5.6 系で、記事より後の世代を使っている。 推論努力の最小段階も、記事は none、こちらの割り当ては minimal で呼び名が合わない。 料金も、記事は API 直課金(出力 $30 / 1Mトークン)で、こちらはクレジット制を使う。 記事に出てくる数字は、モデル名も単価もしきい値も、そのまま持ってこない。
  • 承認ポリシーとサンドボックスを書く。 記事の推奨は approval_policy = "on-request" と sandbox_mode = "workspace-write"。 前者は境界を超える操作の前に確認を出し、後者はワークスペースの外に触らせない
  • プロンプトを4要素で組む。 Goal(目的)/ Context(状況)/ Constraints(やってはいけないこと)/ Done when(何をもって完了とするか)。各エージェントの本文を書き直すときの型として使える
  • 下位エージェントに渡す入力を短くする。 272,000トークンを超える入力は、入力は2倍、出力は1.5倍になる。 1枚目は出力を削る話だったが、入力の側にも単価の境目がある
  • 急がない処理は Batch と Flex に回す。 標準の50%オフで、すぐに返事が要らない処理に向く。 recorder のように、その場で読まない出力から試せる

広げるときに守ること

  • 4ドメイン分を一度に作らない。 Claude Code 側は69体まで増やしてから20体に戻した。同じことを Codex 側で繰り返さない
  • 20体をそのまま移さない。 移すのは、Claude Code 側で呼ばれた実績があるものだけ
  • 置いた数ではなく、呼ばれた数で判断する。 定義ファイルは置くだけで毎回のコンテキストを消費する