Claude CodeからCodexへの移行ガイド 2026
2026年5月3日、私はローカルのエージェント設定項目744件を棚卸しし、そのうち691件を運用上の重みによって順位付けした。1 数だけ見ると大きい。しかし重要だったのは形だった。およそ20個のファイルが、実質的にシステムを支えていた。
Claude Code から Codex への移行では、ファイルツリーをコピーするのではなく、運用契約を移植するべきだ。CLAUDE.md のルールは階層化した AGENTS.md へ、再利用可能な手順は Codex スキルへ、決定的な品質基準は焦点を絞ったフックへ、リスク姿勢はプロファイルへ、ブラウザやソース取得の道具立ては明示的な MCP へ移す。Claude のフック網を Codex にそのまま写してはいけない。移すべきなのは、何を証明しなければならないかという義務だ。
TL;DR
私の Codex 環境には、非公開の執筆と検証の仕組みはすでに存在していた。欠けていたのはスキルの中身ではない。欠けていたのは公開できる運用マニュアルだった。再利用可能なスキルをどこに置くべきか、Codex がそれをどう選ぶべきか、公開文章にはどのプロファイルを使うべきか、Claude 時代のどの基準を非公開の作業詳細を露出させずに Codex ネイティブなルールへ変えるべきか、という話だ。
最初の実運用の Codex パスで、移行ルールは変わった。非公開の作業手順を移植した瞬間に常時有効化してはいけない。段階化する。私のサイト固有の執筆経路は現在、明示的に呼び出した場合だけ開始する。一方で移行手順は、ローカルで能動的に使うユーザースキルとして、またローカルテスト用の非公開 Codex パッケージ候補として存在している。そのパッケージはオープンソースでも一般公開でもない。移行手順を試したい場合は、私に連絡してほしい。ローカルのインストール項目があるという理由だけで、そのパッケージを既定の実行経路にしてはいけない。本当のインストール試行には、パッケージ検証、プラグインのインストール確認、名前空間付きスキル検出、重複の整理、新しい Codex セッションがまだ必要だ。それによって、ある手順が既定動作になる前に、実作業から学べる。181014
Claude のフックをすべて Codex に複製するところから始めてはいけない。まず Codex の契約を書く。
- 永続的なリポジトリ横断ポリシーは
~/.codex/AGENTS.mdに置く。 - リポジトリのポリシーは
AGENTS.mdに置き、より狭い上書きは作業対象の近くに置く。 - 再利用可能な手順は
.agents/skillsまたは$HOME/.agents/skillsに置く。 - 公開文章は
careful-review、または専用のpublic-writingプロファイルに昇格させる。 - 決定的な基準はフックとして残す。ただしフックは安全策の一つであり、安全モデル全体ではない。
最初に成功すべき移行成果物は、自己説明できる記事であるべきだ。その成果物は、システムが自分自身を説明し、現在のドキュメントを引用し、サニタイズしたローカル棚卸しを使い、非公開の内部機構を公開せずに Codex 管理下で公開物を作れることを証明する。
Claude 側の仕組みは Claude Code as Infrastructure で、指示ファイル側は AGENTS.md Patterns で、スキルの劣化問題は Static Skills Are Dead Skills で扱った。以下の移行は、それらの話を私が実際に使っている Codex 実行環境につなげる。
関連する背景として、Codex CLI guide、Claude Code vs Codex、Codex vs Claude Code 2026、Claude Code Hooks Tutorial、Building Custom Skills、Jiro Quality Philosophy も読むとよい。これらの記事は、ここで移行が組み立てる部品を説明している。
移行の棚卸しから何が分かったか?
ローカルシステムには、重心が三つあった。
| 重心 | 中核ファイル | 重要な理由 |
|---|---|---|
| Claude Code | settings、memory ファイル、フックディスパッチャ、品質思想 | ライフサイクル制御、品質思想、プロンプト時の文脈注入、公開作業の基準 |
| Codex | config.toml、グローバル/プロジェクト AGENTS.md、プロファイル振り分け、プラグイン、MCP |
モデル選択、プロファイル振り分け、プロジェクトルール、Codex 実行時の姿勢 |
| 執筆 | 非公開の執筆、引用、評価、AI 発見性スキル | 公開コンテンツ基準、引用ポリシー、評価の循環、AI からの発見性 |
利用データも同じ結論を示していた。私のプロファイル振り分けログでは、レビュー比重の高い作業が日常実行の大部分を占めていた。1 本当の中核は、最も長いファイルでも最も賢いスクリプトでもなかった。中核は、リスク水準を選び、思想を読み込み、完了前に証拠を要求する判断層だった。
この発見は移植の仕方を変える。
重要なのが「Claude には多くのフックがある」なら、移行はフックをコピーすればよい。重要なのが「システムに思想がある」なら、移行は文章をコピーすればよい。棚卸しが示した答えは違った。重要なのは、適切なタイミングで発火する小さな契約である。
公開前に何をしたか?
この記事自体が、最初の移行演習になった。
まず、成熟した Claude Code 構成の形を整理した。どの部品が振る舞いを支配し、どの部品が単に好みを文書化しており、どの部品を非公開のままにすべきかを見た。次に、現在の Codex の挙動を公式ドキュメントとローカル CLI で確認した。移行ガイドは古いフラグや非対応の設定形状を引き継ぐとすぐ劣化するからだ。それから、実際の移行を念頭にこの記事を下書きした。ただし公開する詳細は、非公開の実装ではなく、サニタイズしたアーキテクチャに絞った。
次の手順は公開前に起こる。このガイドを使って Codex 構成を作り込み、実際に変わった内容で記事を修正する。公開記事は、移行パターンと受け入れ基準を示すべきだ。非公開プロンプト、非公開の執筆手順、正確なフック内部、機密性の高いパス、読者が非公開システムを再構築できる情報を公開してはいけない。
実運用パスでは、公開しても安全な証明表ができた。公開するのは契約、有効化状態、受け入れシグナルだけであり、非公開プロンプト、正確なフック本文、執筆手順の内部ではない。
| 移行の単位 | 公開できる教訓 | 現在の状態 |
|---|---|---|
| 移行手順 | パッケージが変化中である間は、能動的な経路をユーザースキルとして保つ。インストール済みパッケージは、検出と価値を証明するまで試行扱いにする。 | ローカルで有効。非公開パッケージはローカルのインストール試行としてのみ導入済みで、公開リリースではない。試したい読者は私に連絡できる。81014 |
| パッケージ準備状況 | 非公開または共有可能なパッケージは、広く有効化する前に検証する。マーケットプレイスの仕組みはインストール配管であり、公開の約束ではない。 | 非公開パッケージ検証は通過。ローカルのインストール試行で、インストール済みプラグイン状態と名前空間付きスキルの可視性を確認。公開リリース基準はまだブロック中。81014 |
| ハーネス健全性 | 昇格前に散発的な手動チェックへ頼らない。ポリシー参照、プロファイル、スキル、フック、パッケージ状態、レジストリ形状、有効化状態が一致していることを、一つの決定的な健全性基準で証明する。 | 手動の健全性基準は通過。有効化状態はリリースではなくインストール試行として文書化済み。8 |
| 秘密情報とログ衛生 | 認証情報を環境変数へ移しただけでは、移行がきれいになったとはいえない。実行可能ソース、ドキュメント、生成キャッシュ、セッション記録、シェルスナップショット、ログ、意図的な秘密情報保管場所を別々の面として扱う。 | 範囲を絞ったローカル監査で、必要な箇所の補助認証情報を環境必須設定へ変換し、高信頼のモデル可視履歴を墨消しし、ローテーションをソース整理とは別に追跡し、非公開パス、トークン値、検出器内部を公開せずに予防フックの不足を記録した。8 |
| エージェント間協調 | 第二エージェントのレビューは入力であり、証明ではない。Codex が、誤検出の却下、根拠ある欠陥だけの受け入れ、最小の実修正、静的レビューの再実行、ローカル検証の実行に責任を持つ。 | fail-closed アンカー、タイムアウト処理、空出力処理、Codex 所有のチェックを含むレビュー/修正/再検証の循環をローカルで証明済み。8 |
| ガイド保守 | ガイド更新の移植は、ソース証拠、ローカル実行時挙動、公開ルートの描画、発見用ファイル、提供中のクローラールート、翻訳状態、スキップした基準を名指しするまで通過ではない。 | 7件の公開ガイド更新をローカルで実行。引用、描画、発見性チェックは通過。あるパスではフックイベント、スキル予算、フック種別、非対応の並行上限に関する古い正確数の主張を修正。別のパスでは生成された llms-full.txt と提供中のものの不一致を修正。最近のパスではモデル/パラメータ互換性、ベンチマーク/モデルカードのずれ、変化の速いプラグインリリースのずれ、描画済み FAQ 構造化データのずれ、クレジット計算のずれ、第三者のみの API/法務/機能最小要件の主張、frontmatter slug によるルートずれを修正。最新の Codex ガイドパスでは Codex CLI 0.130.0 に照らして古いインストール/マーケットプレイス案内を修正し、ガイド翻訳経路をプロバイダ選択可能にして Codex を既定にし、Codex プロバイダ経路をスモークテストし、切り詰められた翻訳出力をキャッシュ書き込み前に却下し、ロケール書き込みを完了し、ロケールルートを検証し、対象を絞ったパージで古い CDN 応答を解消した。810 |
| ソース知能 | 状態を持つスキャナは、メモリへ書く前にドライランと書き込み量の基準が必要だ。設定済みのソース名は、そのソースへ実際に到達した証明ではない。 | 範囲を絞ったスキャンをローカルで証明。広い書き込みプレビューは拒否し、狭いスキャンで小さな非公開メモリのバッチを書き込み、非公開ソース一覧を公開せずにソース到達性の不足を記録した。8 |
| 会社ブログのオンボーディング | 会社向けライター設定は、対象会社、出力パス、取材証拠が明示されるまでファイル生成コマンドではない。 | 明示のみのオンボーディングは、書き込み前に fail-closed するようになり、生成設定ファイル名を有効なブログライター中核に合わせ、中身のない会社設定を作らずに不足している取材情報を記録する。8 |
| ブログ i18n 監査 | 翻訳範囲の監査は、範囲を主張する前に、ストレージ、スクリプト、認証情報、ロケール形状を発見する必要がある。既定ルートの緑色のスモークだけでは、完全なロケール範囲ではない。 | 監査手順は、認証情報基準、ローカル代替、古い任意スクリプト前提、対応ロケールの漏れを記録するようになった。漏れていたロケールへの対象ルートスモークは通過したが、D1 範囲と古い翻訳状態は別基準のまま。8 |
| ブログ翻訳 | 翻訳は書き込み可能な操作だ。ルート健全性と検出器出力は、書き込み許可ではない。 | 翻訳器は D1 認証情報、明示的な slug/locale、信頼済みキューがない場合に停止する。検出器が全バックカタログを返した場合はキューではなく絞り込みシグナルとして扱う。Codex プロバイダ経路は、翻訳サブプロセスをグローバルユーザー設定から分離し、明示的なモデル/推論設定を公開し、残留の多いロケール出力をチェックポイント/D1 公開前にブロックし、不正な title/description メタデータを D1 書き込み前に却下し、移行記事を全対応ロケールでローカル基準、D1、本番ルート検証通過まで完了した。8 |
| Codex 所有のブログリリース循環 | Codex が実記事を、翻訳、デプロイ、CDN、本番ルート、ネイティブレビュー状態を分離したうえで公開できるまで、移行は本番品質ではない。 | 4本の本番記事が Codex 所有の循環を通過済み。記事評価、llms 再生成、--provider auto による Codex 翻訳、ローカル i18n 基準、D1 行、重点テスト、正確なパスのコミット、Railway デプロイ、対象を絞った Cloudflare パージ、本番リリース検証通過、独立したルート/スキーマスモーク、明示的な保留中ネイティブレビューパケットを含む。8 |
| 公開経路 | ローカルチェック、デプロイ状態、CDN 鮮度、本番内容の証明を一つの緑色チェックに畳み込まない。移行記事は、正規 URL、描画済みメタデータ、サイトマップ、llms-full.txt、ローカライズ済み JSON-LD、デプロイ済みコミット、変更内容マーカーが本番で通過するまで公開済みではない。古い CDN 応答は、デプロイ済み修正を隠すことがある。 |
対象キャッシュパージ、全ロケールリリース検証、プッシュ済みコミットの Railway デプロイ確認後に本番記事経路を検証。後続のガイドリリース作業では、完了宣言前に英語、ローカライズ版、AI 発見用ルートの本番変更マーカーチェックを追加。8 |
| 公開執筆手順 | 非公開ライターを移した瞬間に常時有効化しない。 | 明示のみの試行。1 |
| 引用定義基準 | 足りない脚注定義と重複定義から始める。未使用定義は、滞留分が理解できるまで整理負債として扱う。 | 変更された公開 Markdown 向けの狭い Stop フック試行。28 |
| 最終検証 | 影のチェックが通過しただけでは足りない。完了にはまだ証拠と名指しした不足が必要だ。既存の品質 Stop 基準で決定的な失敗を捕まえられるなら、別の要約フックを追加しない。 | 手動の影レビューと既存の品質 Stop 試行。8 |
| セッション文脈 | 最新性と公開/非公開境界の注意は、非公開プロンプトのダンプではなく、コンパクトなセッション文脈に置く。 | 新鮮な実行時可視性の証明を伴う SessionStart 試行。28 |
| フック対応付け | Claude の PostToolUse:Edit|Write は Codex に一対一対応しない。ローカルの Codex ファイル編集は apply_patch 経由で表れた。 |
Codex 形状のフック試行と影実行。2811 |
| 品質の影実行 | 非ブロッキング出力でも、次のモデル手順を形作れる。モデルに見えるパスをサニタイズし、昇格前は検出器を高信頼に保つ。 | カテゴリ数テレメトリ、パスをサニタイズした助言出力、実運用での自己修正証明を伴う非ブロッキング影実行。8 |
Codex 移行はフックから始めるべきか?
Claude は私に、ライフサイクルイベントで考えることを教えた。UserPromptSubmit フックはプロジェクト文脈を注入できる。PreToolUse フックは機密パスをブロックできる。Stop フックは弱い完了を拒否できる。このパターンは Claude では機能する。私のローカル構成が、多数の小さなスクリプトを一つの順序付きイベントパイプラインへ変えるディスパッチャを中心に成長したからだ。11
Codex にもフックはある。ただし現在の Codex では、常時有効のフックディレクトリではなく、機能フラグ付きのライフサイクルシステムとして扱われる。OpenAI のフック文書は config.toml の [features] codex_hooks = true を示しており、私のローカル codex features list は Codex CLI 0.130.0 で hooks が stable かつ enabled と報告する。28 OpenAI はフック入力を stdin の JSON として文書化しており、セッション ID、作業ディレクトリ、イベント名、有効モデルなどの共通フィールドがある。2 Codex は SessionStart、PreToolUse、PermissionRequest、PostToolUse、UserPromptSubmit、Stop などのイベントをサポートする。PreToolUse は Bash、apply_patch、MCP ツール呼び出しを遮れる。2
同じ文書には、移行にとって重要な警告もある。PreToolUse は安全策であって、完全な強制境界ではない。文書では、遮断がすべてのシェル経路を覆うわけではなく、Web 検索やその他の非シェル、非 MCP ツール呼び出しを遮らないと説明されている。2
この制限は、Codex フックが弱いという意味ではない。フックに移植全体を背負わせるべきではない、という意味だ。OpenAI はまた、同じイベントに一致する複数のコマンドフックは並行して起動されると述べている。そのため、順序を必要とする Codex 移植には、なおディスパッチャか一つにまとめたフックコマンドが必要だ。2
Codex では、狭く決定的なチェックにフックを使いたい。
- 明らかに破壊的なシェルコマンドをブロックする。
- 認証情報らしいパスに警告する。
- 小さなセッション開始文脈を加える。
- 公開執筆実行から証拠を記録する。
- 必須成果物や検証コマンドがない場合、停止イベントを失敗させる。
執筆の声、引用ポリシー、思想、振り分け、プロジェクト思想をフックに背負わせたくはない。Codex には、それらに向いたよりよい置き場所がすでにある。
Claude の成果物は Codex にどう対応するか?
Claude の各成果物を、その役割に最も合う Codex の基本要素へ対応付けると、移行はすっきりする。
| Claude の成果物 | Codex の行き先 | 移植ルール |
|---|---|---|
CLAUDE.md |
~/.codex/AGENTS.md とリポジトリ AGENTS.md |
人間向け文書ではなく、運用ルールだけを移植する。13 |
| フックディスパッチャ | Codex フックと検証コマンド | ライフサイクル時に必ず走るべきチェックを残す。11 |
| ブログスキル | $HOME/.agents/skills またはリポジトリ .agents/skills |
スキル説明で Codex が暗黙に起動できるようにする |
| 思想ファイル | AGENTS.md の思想と焦点を絞ったスキル |
品質思想を飾りではなく実行可能にする |
カスタムスラッシュコマンドと旧 .claude/commands ファイル |
必要に応じたスキルと薄い起動器 | 反復可能な手順はスキルへ変え、$skill-name を信頼できる明示呼び出しとして扱い、/name は証拠付きの便宜的ラッパーまたは選択習慣としてだけ使う。41512 |
| MCP 設定 | config.toml の [mcp_servers.*] または codex mcp add |
サーバー設定を明示的かつ検査可能に保つ |
| エージェント役割 | Codex サブエージェントまたはタスク固有スキル | 出力範囲が限定される場合だけ委任する。9 |
OpenAI の AGENTS.md 文書は、最初の行を移行の背骨にする。Codex は作業前に AGENTS.md ファイルを読み、Codex ホームディレクトリからグローバルな指針を重ね、その後プロジェクトルートから現在のディレクトリまでたどり、近いファイルが先の指針を上書きできる。3 この挙動は、私が CLAUDE.md に実際に求めているもの、つまり永続的な作業合意とプロジェクト固有の詳細に合っている。
重要な動きは、ルールを操作として書き直すことだ。「丁寧に書く」は AGENTS.md に属さない。「公開記事では、まず引用を集め、URL を検証し、禁止表現チェックを走らせ、未検証の主張を報告する」はそこに属する。
非公開の執筆スキルは Codex へどう移すべきか?
ブログライターの仕組みは、もともと適切な形をしていたため、きれいに移植できる。Codex スキルは、frontmatter と指示を含む SKILL.md ファイルを持つフォルダだ。ユーザーが明示的に呼び出した場合、またはタスクがスキル説明と一致する場合に、Codex はスキルを有効化できる。4 Codex はリポジトリ、ユーザー、管理者、システムの各場所からスキルを読む。これにはリポジトリの .agents/skills、$HOME/.agents/skills、/etc/codex/skills が含まれる。4
ここで Claude Code の移行は微妙に間違いやすい。Codex スキルは Claude のスラッシュコマンドではない。明示呼び出しのための公式な Codex スキル経路は、スキルセレクタまたは $skill-name メンションである。一方、Codex CLI のスラッシュコマンドは、status、permissions、model 変更、plugins、セッション制御などの組み込み操作のための別の対話面だ。415 /cave のようなプロンプトは、スキル説明が認識する場合やラッパーが Use $cave ... に変える場合には便利な短縮形になり得る。しかしスラッシュ文字列そのものは永続的な契約ではない。移行の証明では $skill-name をテストし、その互換性を約束する場合だけ /name を別にテストする。
つまり、新しい Codex ネイティブの執筆スキルは、非公開のスキル名や内容を公開せず、公式のスキルパスへ標準化するべきだ。
$HOME/.agents/skills/source-verifier/SKILL.md
$HOME/.agents/skills/public-post-writer/SKILL.md
$HOME/.agents/skills/site-specific-writer/SKILL.md
私のローカル実行環境には、古い場所で動いているユーザースキルもある。1 公開ドキュメントが .agents/skills を名指ししているからといって、それらを削除すべきではない。安全な移行は次のようになる。
- 一つのスキルを
$HOME/.agents/skillsにコピーまたはシンボリックリンクする。 - Codex を再起動する。
- Codex がそのスキルを一覧表示し、有効化できることを確認する。
- 試行中は、そのスキルを明示呼び出し専用にする。
- 検出と試行利用が機能してから、残りを移す。
- 既存セッションとスクリプトが依存しなくなるまで、古いパスを残す。
最初の非公開執筆手順では、この経路を取った。私はサイト固有のライターを、あらゆるコンテンツタスクの既定ライターにするのではなく、明示呼び出し専用の非公開スキルとして段階化した。これにより移行にはよりよいテストができた。そのスキルが、非公開の手順を漏らさずにこの記事と次の公開執筆実行を改善するなら、明示専用から試行へ進める。混乱を増やすなら、範囲を絞ったままにする。
ブランド固有のライターを、既定のサイトライターにしてはいけない。非公開のプロダクトライターが同じ引用基準やレビュー基準を共有することはある。しかし対象読者、製品事実、行動喚起、声のルールは、そのプロダクトに閉じているべきだ。正しい移植では、ブランドアダプタを分離したままにし、blakecrosley.com 用の薄いサイト固有ライターを作る。
そのサイトスキルは薄く保つべきだ。
---
name: site-specific-writer
description: Write public technical posts for a specific site. Use for articles that need verified sources, internal links, site voice, and publication checks.
---
# Site-Specific Writer
Use the private writing, source-verification, and AI-discoverability skills for every public technical article.
Required proof before final:
- External technical claims have citations.
- Current Codex claims cite OpenAI docs.
- Internal claims link to existing posts or author analysis.
- The post includes a TL;DR, role-specific takeaways, and reader questions when useful.
Codex スキル文書は、name と description を手動スキルの frontmatter フィールドとして示し、description が暗黙起動のトリガーになると説明している。4 本文では、Codex に非公開の伴走スキルを使うよう指示できる。ローカルの道具立てが追加メタデータを持たない限り、合成は指示の中に属する。一般的な仕組みが執筆ルールを持つ。サイトのラッパーは、声、リンクパターン、証明を持つ。
同じ分割は移行手順そのものにも当てはまる。OpenAI のプラグイン文書は、個人的な一つの手順をまだ反復中ならローカルスキルから始め、チーム間で安定したパッケージを共有したい場合や追加連携を束ねたい場合にプラグインを作ることを勧めている。10 そのため有効な経路は明らかだった。先にユーザースキル、次に非公開パッケージ試行である。私は移行スキルをオープンソース化しておらず、公開リリースも約束していない。試したい場合は私に連絡してほしい。プラグインキャッシュの調査では、インストール済みプラグインのスキルが裸のスキル名ではなくプラグイン名前空間の下に現れることが分かった。そのためパッケージ文書では、直接のスキル利用とプラグイン経由でインストールされたスキル利用を区別するべきだ。8
非公開パッケージにまず必要なのは、公開話ではなく検証器だ。最新のパスでは、マーケットプレイス JSON、プラグイン manifest、スキル frontmatter、必須参照、引用チェッカー構文、インストールポリシー、有効なフックまたは MCP manifest がないこと、生成ファイル、明らかな非公開パスや秘密情報フィクスチャ漏れを確認する検証器を追加した。このチェックは、より広い有効化の前に必要だ。OpenAI のプラグイン文書は、マーケットプレイスをインストール面として扱っており、不安定な非公開手順の作業場所として扱っていないからだ。810
AGENTS.md は公開執筆ルールをどう持つべきか?
最も強い Codex 移行変更は、フックではなく AGENTS.md に属する。公開執筆には既定のリスク分類が必要だ。
グローバルまたはプロジェクトファイルの上部近くに置きたいルールはこれだ。
## Public Writing Is Product Work
Public articles, guides, landing pages, docs that shape user understanding, and product copy use `default` profile at minimum. Promote to `careful-review` when claims, citations, brand, money, safety, security, or user trust are at stake.
Before finishing public writing:
- Gather citations before drafting.
- Cite official product docs for current tool behavior.
- Label author analysis clearly.
- Run a banned-phrase scan.
- Verify internal links.
- Report any claim that could not be verified.
このルールは、ルーター棚卸しで見つけた欠陥を直す。一部のコンテンツ作業は、ルーターが「コンテンツ」を安い作業として扱ったため、高速実行側へ流れていた。公開執筆は、人々が何を信じ、買い、インストールし、実行するかを変えるなら、安い作業ではない。ブログ下書き、ガイド、プロダクトページには、通常のコード編集より多くのレビューが必要だ。失敗モードがローカルテストの失敗ではなく、公開の信頼だからだ。
今読んでいるこの記事が例だ。現在の Codex 挙動には現在の Codex 文書を引用している。ローカル棚卸しの主張は著者分析として明示している。空のマシンから移行が始まるふりをせず実際の仕組みを使っているが、非公開の実装詳細は公開記事の外に置いている。
Codex プロファイルはリスクをどう表すべきか?
OpenAI の設定リファレンスは、profile を起動時の既定プロファイルとして定義し、対応する設定キーについてプロファイル単位の上書きをサポートしている。5 同じリファレンスは、model_reasoning_effort、approval_policy、sandbox_mode を明示的な設定制御として定義している。5
これにより、Codex にはリスクを表す自然な場所ができる。
[profiles.public-writing]
model = "gpt-5.5"
model_reasoning_effort = "xhigh"
sandbox_mode = "workspace-write"
approval_policy = "on-request"
web_search = "live"
具体的なモデルは変わり得る。ポリシーは変えるべきではない。公開執筆には、より高い推論、事実が変わり得る場合のライブソース確認、ワークスペース内に限定された実行、安全な作業経路を外れる操作への人間の承認が必要だ。
ルーターは、次のようなタスクを public-writing または careful-review に対応付けるべきだ。
- ブログ記事、ガイド、ホームページ変更。
- 引用を含む記事。
- ツールやベンダーを比較するコンテンツ。
- 現在の Codex、Claude Code、OpenAI、Anthropic、Apple、Google、その他変化の速い製品を名指しする記事。
- schema、
llms.txt、SEO、アナリティクス、公開メタデータに触れる作業。
プロファイルは雰囲気ではない。プロファイルはリスク予算だ。
どの Codex フックがまだ重要か?
Codex フックは、実行時に必ず起こるべき小さなことを強制するために使うべきだ。
公開執筆の停止フックは、変更ファイルを確認し、公開 Markdown 記事に定義のない脚注参照が含まれていれば完了を拒否できる。事前ツールフックは、記事を書いている最中にエージェントが .env、アナリティクス認証情報、生成翻訳キャッシュを編集しようとした場合に警告できる。セッション開始フックは、現在日付を追加し、「latest」主張には検証が必要だと Codex に思い出させられる。
フックのペイロードは小さく保つ。OpenAI は、systemMessage、continue、イベント固有フィールドを含むフック用 JSON 出力形状を文書化している。2 それらのフィールドを使って、正確な失敗をブロックまたは警告する。Codex の失敗データが必要性を証明するまでは、Claude のディスパッチャ網全体を再構築してはいけない。
セットアップテストだけでは昇格に値しない。フックを試行から外すのは、実利用の監視パスで三つが分かった後だけだ。意図した状況で発火すること、通常作業を通すこと、非公開内容ではなく安全な集計テレメトリを記録すること。ブロックが発火したら、その理由はユーザーが次に何をすべきかを伝えなければならない。28
最初の実運用パス後、実用的なフック残件は次のようになっている。
SessionStart: 現在日付、最新性、プロジェクト、公開/非公開境界のコンパクトな文脈を試行として保つ。PreToolUse:Bash: 狭い破壊的コマンドと認証情報読み取りガードを試行として保つ。PostToolUse:apply_patch: 変更されたコード/設定パッチ行に対する非ブロッキング品質影実行を保つ。Stop: 変更された公開 Markdown の引用基準を試行として保つ。Stop: 最終検証契約は既存の品質 Stop 試行に畳み込み、実際の失敗が必要性を証明するまで別の要約フックを作らない。
この組み合わせは、Claude 固有の長い儀式を輸入せずに、安全性の振る舞いを移植する。
MCP とブラウザツールはどう組み込むべきか?
私の現在の Codex 構成は、すでに非公開の MCP ベースのブラウザ自動化経路を使っている。1 Codex は CLI と config.toml の両方を通じて MCP サーバーもサポートする。codex mcp add は stdio サーバーを登録でき、[mcp_servers.<server-name>] テーブルは command、args、environment、URL、enabled_tools、disabled_tools、timeout を定義できる。6
公開執筆において、MCP が属する場所は二つある。
- 本番描画ページ、スクリーンショット、ローカルプレビューを確認するブラウザ自動化。
- 特定プロバイダが信頼できる MCP サーバーを提供している場合のソース発見やドキュメント取得。
MCP はソースの足跡を隠すべきではない。ブログライターに必要なのは、読者がクリックできる引用であり、セッション内にだけ存在した非公開ツール結果ではない。MCP は事実を見つける助けになる。最終記事には、それでも公開ソースが必要だ。
Claude Code から Codex への移行をどう立ち上げるか?
最初の Codex ネイティブ成果物は、その移植を使いながら移植を説明するべきだ。
対話的な立ち上げの循環はこうなる。
codex -p careful-review --search \
"Inventory the local Codex and Claude migration surface, then create a citation bank for a sanitized post about moving the setup to Codex."
codex -p careful-review \
"Draft content/blog/claude-code-to-codex-migration.md using the local inventory, official Codex docs, and existing internal posts. Label author analysis clearly."
codex -p careful-review \
"Review the draft for unsupported claims, stale Codex flags, broken internal links, and AGENTS.md operational value."
非対話作業では codex exec を使い、対話用の --search フラグをコピーするのではなく、ライブ検索を設定またはプロファイルの関心事にする。OpenAI はスクリプト実行や CI 形式の実行向けに codex exec を文書化しており、--profile、--sandbox、--config の上書きも示している。私のローカル Codex CLI 0.130.0 の help はそれらのフラグを確認し、codex exec --search を拒否する。78
codex exec -p careful-review -c 'web_search="live"' \
"Create a citation bank for content/blog/claude-code-to-codex-migration.md from official Codex docs and sanitized local inventory."
codex exec -p careful-review \
"Review content/blog/claude-code-to-codex-migration.md for unsupported Codex claims, stale flags, broken internal links, and AGENTS.md operational value."
コマンドラインの細部は重要だ。OpenAI は --full-auto を非推奨の互換フラグとして示し、代わりに --sandbox workspace-write を推奨している。7 --full-auto を中心にした古いガイドに、新しい自動化を支配させてはいけない。
この記事が受け入れテストになる。Codex が次を満たせるなら、
- 執筆スキルを読み込む。
careful-reviewを使う。- 現在の OpenAI 文書を引用する。
- 非公開実装詳細を露出せずにローカル棚卸しを使う。
AGENTS.md、スキル、フック、プロファイル、MCP で何が変わるかを説明する。- サイトリポジトリ内にきれいな Markdown 記事を生成する。
そのとき、執筆移植は機能している。
Claude Code から Codex への移行チェックリスト
Codex 設定について:
- グローバル作業合意を含む
~/.codex/AGENTS.mdを追加または更新する。 - 公開執筆用のリポジトリ
AGENTS.mdルールを追加する。 public-writingを作るか、公開執筆をcareful-reviewに振り分ける。careful-reviewが公開主張に対して実際に high または xhigh 推論を使うようにする。- ガイド、ブログ記事、ドキュメント、プロダクトコピーを公開面の作業として扱うルータールールを追加する。
スキルについて:
- 非公開執筆スキルを
$HOME/.agents/skillsへ一つずつ移すかミラーする。 - 能動的にテスト中の移行手順は、プラグインパッケージを実行経路として扱う前にユーザースキルとして保つ。
$skill-nameを標準の明示呼び出しテストとして使う。/nameは便宜的ラッパーまたは選択習慣であり、Codex スキルが読み込まれた証明ではない。- マーケットプレイス有効化前にパッケージ準備検証器を追加する。
- 昇格前に AGENTS 参照、プロファイル、スキル、フック、パッケージ状態、レジストリ形状、有効化状態を証明するハーネス健全性基準を追加する。
- インストール試行では、マーケットプレイス追加、プラグインの読み取り/インストール、プラグイン一覧、スキル一覧、新規セッションでのスキル可視性、重複マーケットプレイス整理を検証する。
- 暗黙起動を許可する前に、試行スキルを明示呼び出し専用に保つ。
- 一般的な執筆基準とサイト固有の声を分離する。
- ソース検証を厳格な事実基準として保つ。
- AI 発見性チェックを著者の声から分離する。
- ブランド固有ライターを再利用せず、薄いサイト固有ライタースキルを作る。
- 各移動後に Codex がスキルを検出することを確認する。
エージェント間協調について:
- 循環の所有者を Codex に保つ。
- レビューを実ファイルまたは文脈成果物へ固定する。
- アンカーがない、出力が空、第二エージェントがタイムアウトした場合は fail closed する。
- 根拠のない第二エージェント所見はローカル証拠で却下する。
- 根拠ある所見だけを受け入れ、最小の修正を適用し、静的レビューを再実行してから Codex 所有のチェックを走らせる。
フックについて:
- まず決定的なチェックだけを移植する。
SessionStart、PreToolUse、PostToolUse、Stopを狭い基準に使う。- 基準を増やす前に失敗を記録する。
- 影実行フックでは、生の非公開内容ではなくカテゴリを記録する。
- 昇格前に既知の悪いフィクスチャと既知のノイズが多いフィクスチャを一つずつテストする。
- 移行したチェックを強制する前に、きれいな失敗と整理負債を分離する。
- フックを実行時チェックとして扱い、思想の正本置き場にしない。
執筆手順について:
- 下書き前に引用を集める。
- 現在の Codex 挙動には公式文書を使う。
- ローカル棚卸しと経験には著者分析を使う。
- 既存記事が概念を説明している場合は内部リンクする。
- 最終前に検証を走らせる。
- ガイド保守では、ソースと実行時主張を検証し、派生する公開面を同期し、発見用ファイルを再生成し、スキップした翻訳、デプロイ、本番チェックを名指しする。
- 翻訳済みガイドでは、選択した翻訳プロバイダ、差分バッチまたはセクション数、値を含まない認証情報状態、書き込み/アップロードの有無、ロケール検証、実行がブロックされた場合の書き込まない理由を記録する。
- 秘密情報とログ衛生では、実行可能ソース、ドキュメント、生成キャッシュ、セッション記録、シェルスナップショット、ログ、意図的な秘密情報保管場所を分離する。移行した手順を安全と扱う前に、履歴を墨消しし、補助機能を環境必須設定へ変換する。
- デプロイ後は、正規 URL、構造化データ、サイトマップ、
llms-full.txt、デプロイ状態、CDN 鮮度、本番の変更内容マーカーを検証する。 - CDN キャッシュが古い内容を返す場合は、既存のデプロイ経路を通じて影響を受けた公開 URL だけをパージし、変更マーカーを再確認する。
FAQ
非公開の執筆スキルは公開する必要があるか?
ない。移行記事は、非公開スキル名、プロンプト、採点詳細、ブランド固有アダプタを公開せずに、執筆システムの形を説明できる。公開すべき教訓は、それらのスキルをどこに置き、Codex がどう有効化すべきかである。
移行スキルにも同じルールが当てはまる。現在は非公開であり、オープンソースパッケージではない。手順を試したい場合は、私に連絡してほしい。
Claude Code から Codex への移行では、ブランド固有ライターを再利用すべきか?
すべきではない。ブランド固有ライターはブランド固有のままにするべきだ。個人サイトや会社サイトには、別プロダクトの読者、事実、行動喚起を継承せずに検証基準を共有する薄いサイトアダプタが必要だ。
Claude Code のフックをすべて Codex にコピーすべきか?
すべきではない。その裏にある契約を特定してから、振る舞いだけをコピーする。認証情報ブロックはフックに属する。執筆ルーブリックはスキルに属する。リスクルールはプロファイルまたはルーターに属する。思想は AGENTS.md と焦点を絞ったスキルに属する。
Codex スキルはどこに置くべきか?
新しい Codex ネイティブ作業では、公式のスキル場所を使う。プロジェクトスキルにはリポジトリ .agents/skills、ユーザースキルには $HOME/.agents/skills だ。4 既存のローカル構成が ~/.codex/skills も使っている場合は、Codex の検出で新しい場所が機能することを確認するまで残しておく。
Codex で /skill プロンプトが失敗することがあるのはなぜか?
/skill は Codex スキル呼び出しの標準契約ではないからだ。Codex スキルは、$skill-name を含む明示的な選択またはメンション、あるいはタスクがスキル説明に一致した場合に有効化される。4 Codex CLI のスラッシュコマンドは、それ自体が組み込みコマンド面である。15 決定的にスキルを有効化する必要がある場合は $skill-name を使う。/name は、便宜的ラッパー、選択習慣、または独自の証明が必要なプロンプト表現としてだけ残す。
Claude Code から Codex への移行の中核は何か?
中核はフック、スキル、プロファイルのいずれか単体ではない。中核は、作業開始前に四つの問いへ答える判断層だ。どんな種類の作業が来たのか。どのリスクプロファイルで実行すべきか。どの指示が支配するのか。完了前にどんな証明が必要か。
重要ポイント
Codex ユーザーへ: ディレクトリではなく契約を移植する。AGENTS.md、プロファイル、スキル、MCP、フックにはそれぞれ役割がある。各ルールを、Codex が最も直接的に守れる場所へ置く。
Claude Code から移るユーザーへ: Codex フックは安全策であり、成熟した Claude ディスパッチャシステムの完全な代替ではない。AGENTS.md とスキルから始め、実行時の強制が重要な場所にフックを追加する。
公開ライターへ: ブログ執筆は高レビューのプロファイルに属する。現在の主張には現在のソースが必要だ。磨かれた間違った記事は、壊れたローカルスクリプトより速く信頼を傷つける。
自分の仕組みについて: 非公開の執筆システムは、実質的に移植されただけではなくなった。最初のサイト固有ライターは明示呼び出し専用として段階化され、移行手順はユーザースキルとして有効であり、非公開プラグインパッケージは公開リリースにならないままローカルのインストール試行を通過した。Codex の思想は、品質と審美眼を運用ルールにした。最終検証要約は手動の影レビューに留め、狭い決定的チェックは別フックではなく既存の品質 Stop 試行に畳み込んだ。コンパクトな SessionStart 文脈フックは試行中であり、最初の有効な品質フックは apply_patch 変更を影実行で監視し、最初の事前 Bash 安全ガードは狭いブロッキング試行として動き、引用チェッカーは変更された公開 Markdown の Stop 試行として走るようになった。ガイド保守パスは実際の公開ドキュメントでソースから描画までの循環を証明し、あるパスは古いソースハーネスの数値を守るのではなく古い正確数の主張を修正し、別のパスは生成された AI 発見用ルートと提供中ルートの不一致を捕まえた。最近のパスでは、モデル/パラメータ互換性、ベンチマーク/モデルカードのずれ、変化の速いプラグインリリースのずれ、描画済み FAQ 構造化データのずれ、クレジット計算のずれ、第三者のみの API/法務/機能最小要件の主張、frontmatter slug によるルートずれを修正した。最新の Codex ガイドパスでは、ガイド翻訳をプロバイダ選択可能にし、Codex 所有の作業では Codex を既定プロバイダとして使い、切り詰められた翻訳出力をキャッシュ書き込み前に拒否し、ロケール書き込みを完了し、ロケールルートを検証し、Claude 専用経路に暗黙依存せず対象パージで古い CDN 応答を解消した。範囲を絞った秘密情報/ログ衛生パスは、ローテーション、墨消し、予防フック不足を記録する前に、ソース、ドキュメント、生成キャッシュ、セッション記録、シェルスナップショット、ログ、意図的な秘密情報保管場所を分離した。リリース循環は現在、ローカルチェック、デプロイ状態、CDN 鮮度、本番変更マーカー証明を別々の基準として扱う。ソース知能パスは、非公開メモリ書き込み前にドライラン/書き込み量規律を証明した。会社ブログのオンボーディング経路は、対象/パス/取材証拠が明示されるまでファイル生成前に停止するようになった。ブログ翻訳器は、D1 認証情報または明示的な対象がない場合に書き込み実行前に停止し、認証情報がある場合でも公開前に残留の多い Codex 出力を拒否する。エージェント間協調の循環は、第二エージェントに権限を渡さずにレビュー/修正/再検証を証明した。手動のハーネス健全性基準は、より広い有効化の前に決定的な昇格面を確認する。次の仕事は、残る明示専用の本番儀式を証明し続け、公開リリース境界を据え置き、どの基準も広げる前に実際の公開執筆とエンジニアリング作業を段階化された経路へ通し続けることだ。
参考文献
-
2026年5月3日に、ローカルの Codex、Claude Code、エージェント、リポジトリ設定から生成した著者の非公開ローカル棚卸し。本記事の公開主張では、生の棚卸し内容や非公開実装詳細ではなく、サニタイズした集計所見を使っている。 ↩↩↩↩↩↩
-
OpenAI, “Hooks,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/hooks. ↩↩↩↩↩↩↩↩↩↩
-
OpenAI, “Custom instructions with AGENTS.md,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/guides/agents-md/. ↩
-
OpenAI, “Agent Skills,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/skills. ↩↩↩↩↩↩↩
-
OpenAI, “Configuration Reference,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/config-reference. ↩↩
-
OpenAI, “Model Context Protocol,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/mcp/. ↩
-
OpenAI, “Command line options,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/cli/reference. ↩↩
-
codex-cli 0.128.0およびcodex-cli 0.130.0を使った、2026年5月3日から15日までの著者のローカルおよび本番検証。チェックは、Codex 機能状態、プロファイルとサンドボックスフラグ、対話/非対話検索挙動、MCP 一覧と公式ドキュメント取得、ユーザースキル検出、プラグインキャッシュ名前空間挙動、フックイベント/ツール名、セッション開始可視性、Bash ガード挙動、引用 Stop 挙動、品質影助言挙動、AGENTS 実行時参照検証、ハーネス健全性検証、描画済み記事メタデータ、サイトマップとllms-full.txtへの inclusion、本番正規 URL 挙動、対象キャッシュパージによる古い CDN404解消、マーケットプレイス待機状態とインストール試行状態、実行可能ソース、公開/非公開ドキュメント、生成キャッシュ、セッション記録、シェルスナップショット、ログ、意図的な秘密情報保管場所を分離してから墨消し、ローテーション、補助設定、予防フック、フォレンジック履歴の不足を記録した範囲限定の秘密情報/ログ衛生監査、現在のソース/実行時証拠、公開ルート描画、引用、AI 発見用ファイル、提供中の発見ルート、派生テンプレートを確認してから、スキップした翻訳、デプロイ、本番基準を記録した実ガイド保守更新を含んだ。その中には、古いフックイベント、スキル予算、フック種別、並行上限の主張を、非対応のソースハーネス数値を温存せずに修正したパス、生成されたllms-full.txtと提供中ルートの不一致を発見して修正したパス、現在の公式製品文書に照らしてモデル/パラメータ互換性と描画済み FAQ 構造化データのずれを修正したパス、ベンチマーク/モデルカードのずれ、変化の速いプラグインリリースのずれ、sqlite extension リリースのずれ、CLI 年表、描画済み FAQ ベンチマーク文を修正したパス、クレジット計算を修正し、第三者のみの機能最小要件を削除し、公式製品/ヘルプ文書に照らして非公開ベータ API と法的補償の主張を弱め、AI 発見用ファイルへ漏れた frontmatter guide slug を修正し、露出したガイド URL に alias redirects を追加したパス、古い v0.130 インストール/マーケットプレイス案内を修正し、描画済みガイド出力を検証し、ガイド翻訳をプロバイダ選択可能にし、Codex プロバイダ経路をスモークテストし、切り詰められた翻訳出力をキャッシュ書き込み前に拒否し、対応ロケール書き込みを完了し、ロケールルートを検証し、対象パージで古い CDN 応答を解消した重点 Codex ガイドパスが含まれる。同じ期間には、明示的な対象/パス/取材情報なしではファイル生成前に停止し、設定ファイル名を有効なブログライター中核に合わせた会社ブログオンボーディングパス、ルートスモークを翻訳範囲から分離し、非公開手順詳細を露出せずに認証情報基準、古い任意スクリプト前提、ロケール集合のずれを記録したブログ i18n 監査パス、範囲と古い翻訳状態を分けたまま通過した、漏れていたロケールへの対象ルートスモーク、D1 認証情報と明示的な slug/locale がなく、検出器が全バックカタログを指したため書き込み実行前に停止したブログ翻訳基準パス、グローバル Codex 推論設定の影響を露出させ、明示的なプロバイダモデル/推論分離を追加し、通過したロケールだけをチェックポイントし、残留の多いロケール出力を未昇格のままにした移行ブログ翻訳リリース試行、全対応移行記事ロケールをローカル残留基準、D1 公開、本番ローカライズルート、BlogPosting/Breadcrumb/FAQ JSON-LD 検証、対象 Cloudflare prefix purge、commit7624ce5dの Railway デプロイ確認まで完了した後続リリースパス、重点テストを通過して commite5706f8aとしてプッシュされ、Railway 本番サービス文脈を確認し、変更された公開 URL をパージし、英語、ローカライズ、AI 発見用ルートの変更マーカーを検証したガイド翻訳/発見リリース、候補量をドライランしてから小さな非公開メモリバッチを書き込み、ソース到達性の不足を記録した範囲限定のソース知能パス、誤った第二エージェント所見を却下し、根拠ある欠陥を受け入れ、静的レビューを再実行し、ローカル実行時チェックを通過したエージェント間レビュー/修正/再検証の循環も含まれる。agentic-design-control-surface、agent-interface-is-the-harness、html-is-the-format-agents-want、agents-need-supervision-surfacesの後続の Codex 所有ブログリリースは、それぞれ--provider autoによる Codex 選択翻訳、9対応ロケールのローカル i18n 基準通過、D1 行検証、重点テストと秘密情報スキャン証拠、正確なパスのコミット、Railway デプロイ成功、13の変更 URL への対象 Cloudflare パージ、本番リリース検証通過、独立したルート/スキーマスモーク、分離された保留中ネイティブレビューパケットを含む本番循環を完了した。非公開パッケージ準備監査はPASS package validationを返した。ローカルのインストール試行では、マーケットプレイス JSON パスからプラグインがインストールされ有効化され、バンドルされたスキルがプラグイン名前空間の下に現れ、重複するローカルパッケージ有効化が削除され、新しい Codex セッションが名前空間付きスキルを認識した。ハーネス健全性基準は、AGENTS 参照、プロファイル、必須スキル、フック、パッケージ検証、レジストリ形状、文書化された有効化状態についてPASS codex harness healthを返した。正確な非公開プローブラベル、フック内部、ソース一覧、トークン形状、検出器パターン、パス、非公開手順詳細は意図的に省略している。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
OpenAI, “Subagents,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/subagents. ↩
-
OpenAI, “Build plugins,” OpenAI Developers, accessed May 5, 2026, https://developers.openai.com/codex/plugins/build. ↩↩↩↩↩↩
-
Anthropic, “Hooks reference,” Claude Code Docs, accessed May 5, 2026, https://code.claude.com/docs/en/hooks. ↩↩↩
-
Anthropic, “Extend Claude with skills,” Claude Code Docs, accessed May 5, 2026, https://code.claude.com/docs/en/skills. ↩
-
Anthropic, “How Claude remembers your project,” Claude Code Docs, accessed May 5, 2026, https://code.claude.com/docs/en/memory. ↩
-
OpenAI, “Codex App Server,” OpenAI Developers, accessed May 6, 2026, https://developers.openai.com/codex/app-server. ↩↩↩
-
OpenAI, “Slash commands in Codex CLI,” OpenAI Developers, accessed May 6, 2026, https://developers.openai.com/codex/cli/slash-commands. ↩↩↩