午後の作業の途中で、Claude Codeが上限に当たって止まった。次に使えるのは数時間後。そういう日が、当社にもあります。Claude CodeのProとMaxのプランには、5時間ごとの上限と、週の上限があります。Anthropicのサポートページには、この上限はClaudeのアプリとClaude Codeで共通で、両方の利用が同じ上限に数えられる、と書かれています。当たったときの選択肢は、上のプランに変える、追加の利用枠を有効にする、APIのクレジットを買う、上限が戻るのを待つ、の4つです。

当社は、5つ目を作りました。同じ作業リポジトリを、Codex CLIで続ける。 2026年9月に、Claude Code専用だった当社のリポジトリを、Codex CLIでも同じ指示と手順で動く形に変えました。この記事は、その作り方を書きます。読者は、Claude Codeで日常の作業を回していて、上限で止まる日が増えてきた人です。確認日は2026年10月13日です。

結論を先に書きます。

  1. 作業の資産は4層に分かれます。 指示書、手順、機械検査、接続です。4層とも、Claude CodeとCodex CLIの両方に読ませる保存先があります
  2. 保存先を共通にして、途中の状態を記録しておけば、同じフォルダーでcodexを起動して続きができます。 上限に当たった日は、記録を読ませて再開します
  3. 当社で追加の対応が要るものが3つあります。 並列実行の手順、Artifactの公開、メモリです。この3つに頼る作業は、どちらの道具で行うかを先に決めます

4層と、それぞれの保存先

Claude Codeで作業を続けていると、リポジトリの中に、コードではない資産が増えていきます。当社のリポジトリで数えると、4つの層に分かれました。

作業リポジトリの4層。指示書、手順、機械検査、接続のそれぞれについて、Claude CodeとCodex CLIが読む場所と、当社が共通にした方法を並べた表

層 中身 Claude Codeが読む場所 Codex CLIが読む場所 当社の共通化
指示書 会社の方針、禁止事項、作業の順番 CLAUDE.md。デフォルトの設定では、CLAUDE.mdが無いときだけAGENTS.mdを読む AGENTS.md。リポジトリの根から作業フォルダーまで順に読む 本文をAGENTS.mdに置き、CLAUDE.mdはAGENTS.mdを読む指示とClaude固有の数行だけにした
手順 繰り返す作業のSKILL.md .claude/skills と ~/.claude/skills .agents/skills と ~/.agents/skills skills/ を大もとにして、.agents/skills からリンクを張った。Claude側は指示書の指示で skills/ を読む
機械検査 禁止語の検査、秘密値の検査、git addの制限 settings.jsonのhooks .codex/hooks.json か config.tomlのhooks 検査はscripts/hooks/*.pyに置き、両方の設定から同じスクリプトを呼ぶ
接続 手順書を配るMCPサーバー .mcp.json config.tomlの[mcp_servers] .mcp.jsonを大もとにして、スクリプトで.codex/config.tomlを生成する

指示書。 Codex CLIは、AGENTS.mdを読みます。OpenAIのドキュメントによると、リポジトリの根から作業中のフォルダーまで順にたどり、各フォルダーで最初に見つかった1つを読み、根から順につないで渡します。合計の大きさにはデフォルトで32KiBの上限があります。Claude Codeは、CLAUDE.mdを読みます。ドキュメントによると、デフォルトの設定では、作業フォルダーとその上にCLAUDE.mdが無いときだけAGENTS.mdを読み、CLAUDE.mdがあればそちらだけを読みます。この条件は設定で変えられ、CLAUDE.mdの中に@AGENTS.mdと書いて取り込む方法も案内されています。当社は、本文をAGENTS.mdに統合し、CLAUDE.mdは、まずAGENTS.mdを読む、という文章の指示とClaude固有の数行だけにしました。文章の指示は、モデルがそのファイルを開くと判断したときにだけ読まれます。確実に取り込むなら、@AGENTS.mdで取り込み、セッションの最初に読まれたことを確かめるほうが堅い、とドキュメントから読めます。書くときは1か所、読むときは両方、という形です。

手順。 繰り返す作業は、SKILL.mdという形式の手順書にしています。形式そのものはSKILL.mdの記事に書いたとおり、フォルダーにSKILL.mdを1つ置き、先頭にnameとdescriptionを書きます。保存先が違います。Claude Codeは.claude/skillsと~/.claude/skillsを自動で見つけ、Codex CLIは.agents/skillsと~/.agents/skillsを自動で見つけます。Claude Codeのドキュメントには.agents/skillsを読むという記述がなく、Codexのドキュメントには.claude/skillsを読むという記述がありません。当社は、skills/というフォルダーを大もとにして、.agents/skillsから各手順へシンボリックリンクを張りました。Claude Code側は、自動の発見ではなく、指示書の中で、作業に関係するskills/の手順書を読む、と指示する運用です。自動で見つけさせたいなら、.claude/skillsにも同じリンクを張ります。

機械検査。 禁止語が入った文章を書いたら差し戻す、秘密値をファイルに書いたら差し戻す、git add -Aを使わせない。こういう判断の要らない検査は、モデルに頼まず、スクリプトで行います。Claude Codeはsettings.jsonのhooksから、Codex CLIは.codex/hooks.jsonから、ツールの実行前と実行後にスクリプトを呼べます。実行前の検査は、終了コード2で止めて理由を標準エラーに書くと、その操作を止められます。実行後の検査は、既に書き込まれた内容を検出して修正を求めるもので、書き込みそのものは防げません。当社の秘密値と禁止語の検査は実行後の検査なので、書いた直後に差し戻す形です。この作法は両方の道具で同じです。Codexのドキュメントには、hooksの入った.codex/フォルダーはリポジトリを信頼した場合だけ読み込まれ、管理されていないhookは実行前に確認して信頼する必要がある、と書かれています。当社は、8本の検査をscripts/hooks/に置き、両方の設定ファイルから同じスクリプトを呼んでいます。入力の形式が少し違う部分は、スクリプトの中で吸収しました。

接続。 当社は、手順書をMCPサーバー経由で配っています。Claude Codeは.mcp.jsonを、Codex CLIはconfig.tomlの[mcp_servers]を読みます。Codexのドキュメントには、信頼したリポジトリなら.codex/config.tomlでもMCPを設定できる、と書かれています。当社は.mcp.jsonを大もとにして、小さなスクリプトで.codex/config.tomlを生成しています。手で2か所を直すと、いつかずれるからです。

4層とは別に、実行の権限があります。Claude Codeで、どの操作を止め、どの操作で確認を求めるかを決めている設定と、Codex CLIの承認とサンドボックスの設定は、別のものです。共通のhooksは一部の検査を共通にしますが、権限の設定全体を代わりに担うものではありません。同じ方針を参照できることと、同じ制限が機械的に働くことは別なので、Codex側の承認の条件は、切り替える前に別に確かめます。

上限に当たった日の流れ

4層を共通にすると、上限に当たった日はこうなります。

Claude Codeの上限に当たった日の流れ。Claude Codeで作業し、止まったら同じフォルダーでCodex CLIを起動し、同じ指示書と手順で続け、戻ったらClaude Codeに戻る。3つのレーンで示す

Claude Codeで作業していて、上限の警告が出ます。警告が出た時点で、作業の目的、変更済みのファイル、未完了の事項を、リポジトリの中の状態ファイルに書きます。会話の中にしかない判断は、書かなければ次の道具に渡りません。同じフォルダーでcodexを起動します。AGENTS.mdが読まれ、同じ方針で動きます。状態ファイルを読ませて、続きを頼みます。手順は$で呼び、検査は同じスクリプトが走ります。続きを終えたら、コミットします。コミットの署名行は、Claude Codeのときと、Codexのときで変えます。当社の検査の1本は、通常のコミット操作で署名行の付け忘れを検出します。どちらの道具で作業したかは、コミットの本文で確かめます。上限が戻ったら、Claude Codeに戻ります。

道具を変えても、指示書と手順と検査は同じものが使われます。モデルの違いで文章の癖は変わりますが、禁止語の検査は同じスクリプトが行い、手順は同じSKILL.mdが決めます。当社が両対応を決めた理由は、ここにあります。作業の基準が道具の中にあるなら引っ越せませんが、リポジトリの中にあるなら引っ越せます。成果物の品質は、道具に関係なく、個別に確かめます。

当社で追加の対応が要る3つ

共通にするだけでは済まないものもあります。当社のリポジトリでは3つです。

並列実行の手順。 Claude Codeには、複数のサブエージェントに作業を分けて同時に走らせる仕組みがあります。当社は、記事のレビューを複数の視点で同時に回すときに使います。Codex CLIにも、ドキュメントによると並列のサブエージェントの機能があります。ただし、当社の並列レビューの手順はClaude Code向けに書いてあり、Codex側では動作を確かめていません。確かめるまでは、並列が要る作業はClaude Code側で行う、と決めています。

Artifactの公開。 Claude Codeから、HTMLの成果物をURLで共有する仕組みです。設計の解説をこれで渡すことがあります。Codex側には同じ仕組みが無いので、同じ用途は自社のサーバーに置く形に切り替えられるようにしています。

メモリ。 Claude Codeは、作業の中で得た学びを自動でメモに残し、次の作業で読みます。当社には、本人の指示や判断の記録が100件以上あります。Codexにもメモリの機能はありますが、ドキュメントによるとデフォルトでは無効で、Claude側の記録をそのまま共用できるものではありません。当社は、Claude側のメモをスクリプトでリポジトリの中の1つのMarkdownに写し、AGENTS.mdから、作業の最初にgrepで引け、と指示しています。全文を読ませると指示書が太るので、必要な項目だけを引かせる形です。写す向きは一方向で、Claude側の記録から索引を作り直します。Codexで得た新しい判断は、索引を直接編集すると作り直しで消えるので、共有の文書に残し、Claude Codeに戻ったときにメモへ反映します。

3つとも、無いと困るものではなく、あると速いものです。上限に当たった日に止まるのは、速さではなく、作業そのものです。作業が続けられる状態を先に作り、速さの差はClaude Codeに戻ってから取り返す、という考え方です。

引っ越せる状態までの4段階

当社の作業を順に並べると、4段階になります。当社は2026年9月6日に、4段階の初期対応をまとめて実装しましたが、1日で全部やる必要はありません。

Claude Code専用のリポジトリを、Codex CLIでも動く形にする4段階。指示書の統合、手順と接続の共通化、機械検査の共通化、メモリの写し、の順に進む

  • 段階1。指示書をAGENTS.mdに寄せる。 CLAUDE.mdの本文をAGENTS.mdに移し、CLAUDE.mdには、@AGENTS.mdの取り込みとClaude固有の数行だけを残します。ここまでで、Codexを起動すれば同じ方針を参照して動きます
  • 段階2。手順と接続の保存先をつなぐ。 skillsのフォルダーに.agents/skillsからリンクを張り、.mcp.jsonからconfig.tomlを生成するスクリプトを置きます。Codexで手順を呼べることを1つ試して確かめます
  • 段階3。機械検査を共通のスクリプトにする。 hooksで呼んでいる検査をscripts/に出し、両方の設定から呼びます。片方にしか無い検査が残っていないかを一覧で見比べます。Codex側の承認とサンドボックスの設定も、ここで別に確かめます
  • 段階4。メモリを写す。 自動メモリの内容をリポジトリ内のMarkdownに写すスクリプトを置き、AGENTS.mdからgrepで引く指示を足します。本人の判断の記録が、道具に関係なく引けるようになります

段階1とCodexの初期設定が終わり、作業の途中の状態を記録する習慣があれば、上限に当たった日の作業は続けられます。

注意点

プランの条件と保存先の仕様は、変わります。 上限の仕組みはAnthropicのサポートページを、保存先のフォルダー名はそれぞれのドキュメントを、作業の前に見てください。この記事の保存先の名前は2026年10月13日時点です。OpenAIのドキュメントは、この日に見たときdevelopers.openai.comからlearn.chatgpt.comへ転送されていました。

Claude CodeがAGENTS.mdを読む条件があります。 ドキュメントによると、AGENTS.mdを直接読むのはClaude Code v2.1.277以降で、作業フォルダーかその上にCLAUDE.mdがあると、AGENTS.mdは読まれません。CLAUDE.mdを残すなら、その中からAGENTS.mdを取り込むか、AGENTS.mdを読む指示を書いてください。

Codexのhooksは、信頼してから動きます。 ドキュメントによると、プロジェクトを信頼したうえで、起動時の警告から/hooksを開き、各hookの定義を確認して信頼します。新しく足したhookと、変更したhookは、もう一度確認するまで実行されません。信頼していないhookは動かないので、検査が走っていないことに気づかないまま作業が進むことがあります。初回と変更のたびに、わざと禁止語を書いて、検査の結果が返ることを確かめてください。

モデルの違いは残ります。 同じ指示書でも、文章の癖や、手順の読み飛ばし方は道具ごとに違います。当社は、公開するものは道具に関係なく、別のモデルで事実の確認を通してから出しています。両対応は、品質の検査を省く理由にはなりません。

秘密値は、どちらの設定にも書きません。 MCPの設定で環境変数を渡すときは、値を書かず、起動時に環境から注入します。Codexの設定には、値を書くenvと、環境から受け渡す名前を指定するenv_varsの2つがあり、別のものです。当社の生成スクリプトは.mcp.jsonの内容を写すだけで、秘密値を取り除く検査はしません。生成した.codex/config.tomlに値が入っていないことは、別に確かめます。

KOIYALの見解

当社がこの作業をしたきっかけは、Claude Codeの5時間の上限で、仕事がしづらくなったことです。同時に、別の会社のモデルの性能が上がってきたので、1つの道具に縛られる理由が薄くなりました。両対応にして分かったのは、指示書と手順と検査を共用すると、モデルを替えても作業の基準を引き継ぎやすい、ということです。モデルの違いが成果物に出ないわけではないので、品質は個別に確かめます。それでも、基準がリポジトリの中にあることで、道具を替える判断が軽くなりました。

これは、インハウス経営(AIを活用し、自社で業務を改善し、自社で仕組みをつくる経営)を進める会社にとって、1つの確認になります。AIで仕事を回す仕組みを自社で持つなら、その仕組みは、特定の道具の中ではなく、自社のリポジトリの中に置く。道具は、上限や価格や性能で、いつでも替えられる状態にしておく。当社は2026年9月6日に初期対応を実装し、その後は上限に当たった日にCodexで続ける運用にしています。

次の行動

  1. 自社のClaude Codeの作業フォルダーで、CLAUDE.md、.claude/skills、settings.jsonのhooks、.mcp.jsonの4つがあるかを見る
  2. 4つのうち、他の道具でも読める保存先に移せるものを1つ選ぶ。最初はCLAUDE.mdの本文をAGENTS.mdに移すのが、作業が少なく効果が大きい
  3. 移したら、同じフォルダーでcodexを起動し、同じ指示で動くことを1つの作業で確かめる

自社のリポジトリで4層をどう分けるかを決めるところから、一緒に作ることもできます。FDE型支援では、社外の推進チームが週1で入り、指示書と手順と検査を自社のリポジトリに残して離れます。お問い合わせの本文に、今使っている道具と、止まって困っている作業を書いていただければ、共通にする範囲の相談から始められます。

参考