Claude Codeの/doctorを、Codexでも使いたい。
結論から言うと、Claude版の診断項目を参考に、Codexで確認できる範囲をまとめたdoctor Skillをこのリポジトリに作りました。Codexの入力欄で$doctorを使うか、/skillsからDoctorを選ぶと、まず読み取り専用の診断を始められます。fixやcleanupを明示すれば、修正候補の整理まで進めます。
ただし、Codexで文字どおり/doctorという別名が使えるとは確認していません。ここでは、Skillのdoctorと、Codex CLIのcodex doctorを組み合わせています。
実際に`claude doctor`を実行した
当初は利用上限で止まっていましたが、その後claude doctorを実際に実行できました。出力は環境やログイン状態で変わります。
Claude Code doctor
Running: native (2.1.222)
Commit: fbf49312c284
Platform: darwin-arm64
Path: /Users/<user>/.local/share/claude/versions/2.1.222
Config install method: native
Search: OK (bundled)
Auto-updates: enabled
Auto-update channel: latest
Last update attempt: success → 2.1.222
Remote Control
Remote Control requires a claude.ai subscription.
Not signed in to claude.ai
1 warning found
- macOS Keychain is not writable
APIキーやトークンは出力されませんでした。Keychainの警告は、この実行環境の権限の影響も含むため、すべてのMacで同じ結果になるわけではありません。
claude doctor --helpには、現在のディレクトリの設定ファイルを信頼確認なしで読むこと、より広い確認と修正にはセッション内で/doctorを使うことが表示されます。
`/doctor`で実際に確認されたこと
添付されたClaude Codeセッションの/doctorでは、次の確認が行われました。
- インストール方式、バージョン、PATH、重複インストール
- 設定ファイルのパースとAgent定義の衝突
- 未使用のSkill、MCPサーバー、Plugin
CLAUDE.mdの重複、矛盾、サイズ- Hookの実行時間と遅延読み込み
- コンテキストを圧迫する設定
- 古いパスやプロジェクト固有の設定矛盾
今回の環境では、未使用Skill 5個、未使用MCPサーバー2個、CLAUDE.mdの矛盾などが見つかりました。これは一般的な固定結果ではなく、その環境での診断結果です。
診断段階は読み取り専用でした。その後、整理を承認するとsettings.jsonを更新するコマンドが始まりました。ただし、ログが途中で終わっているため、修正完了までは未確認です。
なぜ`/doctor`が有益なのか
起動できているのに、Claudeの回答や作業が急に不安定になることがあります。原因はモデルではなく、読み込まれている設定、Skill、MCP、Hook、CLAUDE.md、コンテキストの重さかもしれません。
claude doctorは主にインストール状態を確認します。一方、/doctorは「何が読み込まれ、何が使われず、どこに重複や矛盾があるか」を同じ作業環境の中で棚卸しできます。
そのため、/doctorには次の価値があります。
- 起動できるのに動作が変なとき、コード以外の原因を探せる
- 不要なSkillやMCPを、削除前の候補として確認できる
- 常時読み込まれる指示やコンテキストの重さを見つけられる
- いきなり設定を変えず、診断と修正を分けられる
つまり、すぐに直す機能というより、環境の状態を見えるようにしてから安全に直すための機能です。
`claude doctor`と`/doctor`の違い
claude doctor:シェルから実行する、起動・インストール寄りの診断。Claude自体が起動しないときにも使う/doctor:Claude Codeのセッション内で実行する、設定・MCP・コンテキストを含む総合診断。修正も扱える
公式ドキュメントに書かれていること
Anthropicの公式案内でも、Claudeが起動する場合は/doctor、起動しない場合はシェルからclaude doctorを使うよう説明されています。公式のコマンド一覧では、/doctorはインストールと設定を診断し、問題を修正できるコマンドとされています。
- Claude Code公式 Troubleshooting
- Claude Code公式 Commands
- Claude Code公式 Troubleshoot installation and login
Codex側の診断範囲は、公式の/doctorをそのまま移植したものではありません。このリポジトリで確認できるSkill、設定、MCP、Hook、AGENTS.mdなどを対象にしたローカル実装です。
Codexで実際に作ったもの
主なファイルは3つです。
.agents/skills/doctor/SKILL.md
.agents/skills/doctor/agents/openai.yaml
.agents/skills/doctor/scripts/doctor-report.sh
SKILL.mdは、Claudeの/doctorの診断・整理・修正範囲をCodexへ置き換える指示書です。doctor-report.shは、プロジェクトで再実行できる読み取り専用の基本診断です。
実際にスクリプトが確認する項目
- Gitリポジトリ内で動いているか
- 必須ファイルがあるか
- Gitの空白エラー
- PATH上のCodexとChatGPTアプリ内のCodexのバージョン
codex doctor --summary --no-colorの結果- PHPの構文
- JavaScriptの構文
- Shell Scriptの構文
editor-appのlint- 作業ツリーが変更されているか
Skillが追加で扱う項目
Codexアプリの画面で利用できる場合は、次も確認対象にします。
/status/debug-config/mcp/plugins/hooks- 設定、認証状態、runtime、terminal、network、threads
.codex/agents、.agents/skills、AGENTS.mdの重複や衝突- Skill、MCP、Plugin、Hookの不要候補とコンテキスト負荷
- permission、approval、sandboxの設定
画面や環境にない項目は、確認したことにしません。
明示依頼時の修正範囲
Claude版にある次の作業も、Codex版では修正候補として扱います。
- 重複Skill、MCP、Plugin、Hookの整理
AGENTS.mdの重複削減と、長い常時指示のSkill・ネストしたAGENTS.mdへの移行- コードから導ける説明の削減。ただしgotcha、理由、非標準規約は残す
- 遅いHook、重い拡張、permission設定の見直し
- auto/default permission modeと読み取り専用コマンド許可の見直し
自動で無効化・削除・設定変更はしません。対象と変更内容が確定した時だけ進めます。
この環境での実行結果
Codex CLIは、PATH上の実体とChatGPTアプリ内の実体を確認できました。
Codex CLI (PATH) — codex-cli 0.146.0
Codex CLI (ChatGPT app) — codex-cli 0.146.0-alpha.9.2
Codex native doctor — 11 ok · 1 idle · 9 notes · 4 warn · 2 fail failed
このcodex doctorは終了コード1でした。つまり、コマンドを実行できたことは確認できましたが、環境が完全に正常だったわけではありません。
プロジェクト側の診断では、次のlintエラーも確認できました。
editor-app/src/utils/gutenberg.ts:19
Unexpected lexical declaration in case block
この結果を、Skillが認識された証拠や、Claude側の診断結果と混ぜないようにしています。
ClaudeとCodexの対応表
| Claude Code | Codex |
|---|---|
CLAUDE.md | AGENTS.md、.codex/、プロジェクトSkill |
| Skill | .agents/skills/ |
| MCP / Plugin | /mcp / /plugins |
| Hook | /hooks |
| permission mode | /permissions、approval、sandbox |
claude doctor | codex doctor + $doctor |
ただし、同じ名前に置き換えただけで同じ機能になるわけではありません。各製品が公開している診断項目と、現在の画面で確認できる範囲を分けて扱う必要があります。
使い方
Skillとして使う場合は、Codexで次を入力します。
$doctor
見つからないときは、/skillsを開いてDoctorを選びます。
端末から基本診断を直接実行する場合は、リポジトリのルートで次を使います。
sh .agents/skills/doctor/scripts/doctor-report.sh
変更箇所だけでなく、リポジトリ全体を確認するときは次です。
DOCTOR_FULL=1 sh .agents/skills/doctor/scripts/doctor-report.sh
Codex本体だけを診断するなら、こちらです。
codex doctor --summary --no-color
修正を依頼するときは、対象を指定します。
$doctor fix
未使用候補を調べて。まず候補・理由・変更しない範囲を出して。
承認なしで無効化・削除・設定変更はしないで。
読み取り専用にした理由
Claudeの/doctorには、不要な拡張を無効化する、設定を整理する、permissionを調整する、といった修正案も含まれています。
しかし、診断と修正を同時に行うと、何が変わったのか分かりにくくなります。今回のCodex版は、通常は読み取り専用にし、明示的なfix依頼だけ別モードで扱います。
- 診断だけではファイルを変更しない
- Skill、MCP、Pluginを勝手に無効化しない
- 設定、PATH、認証、permission、sandboxを勝手に変更しない
- パッケージを勝手にインストール・更新しない
- deploy、公開、cache purgeをしない
- 秘密情報、APIキー、cookie、秘密鍵を表示しない
修正時は、対象、変更内容、変更しない範囲、検証方法を先に分けます。log.mdと関連docsも更新し、診断を再実行します。
実行確認・公式情報・推測を分ける
このSkillの出力は、次の3つに分けます。
実行確認(Observed)
この環境でコマンドを実行した結果です。今回なら、claude doctorの実際の出力、添付ログの/doctorの確認項目、Codex native doctorの終了コード1、gutenberg.tsのlintエラーが該当します。/doctorの修正完了は未確認です。
公式情報(Documented)
AnthropicやOpenAIの公式ドキュメント、またはSkill定義に書かれた仕様です。
推測(Inferred)
設定やログから原因候補を考えたものです。推測は、実行結果と同じ文章に混ぜません。
CodexでDoctorを使うときの確認基準
Claude Codeの/doctorと同じ名前の機能をそのまま移植したわけではありません。
Claudeの診断・整理・修正項目をCodexのAGENTS.md、.agents/skills、/mcp、/plugins、/hooks、/permissions、codex doctorへ対応づけました。通常は安全な読み取り専用、明示依頼時だけ修正候補を扱います。
使う入口は$doctorまたは/skillsです。実行後は、Codex本体、プロジェクト、公式情報、推測、未確認を分けて確認します。
Skillはリポジトリ側で管理し、この記事では使い方と確認結果を公開しています。












