attrip. Search
音楽

LATEST BEAT

Claudeの`/doctor`をCodexで使いたい。実際に作ったDoctor Skill

2026.08.04 · 12 MIN READ · 理解の記録

RECORD / 2026

Claude Codeの/doctorを、Codexでも使いたい。

結論から言うと、Claude版の診断項目を参考に、Codexで確認できる範囲をまとめたdoctor Skillをこのリポジトリに作りました。Codexの入力欄で$doctorを使うか、/skillsからDoctorを選ぶと、まず読み取り専用の診断を始められます。fixcleanupを明示すれば、修正候補の整理まで進めます。

ただし、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はインストールと設定を診断し、問題を修正できるコマンドとされています。

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/skillsAGENTS.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 CodeCodex
CLAUDE.mdAGENTS.md.codex/、プロジェクトSkill
Skill.agents/skills/
MCP / Plugin/mcp / /plugins
Hook/hooks
permission mode/permissions、approval、sandbox
claude doctorcodex 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/permissionscodex doctorへ対応づけました。通常は安全な読み取り専用、明示依頼時だけ修正候補を扱います。

使う入口は$doctorまたは/skillsです。実行後は、Codex本体、プロジェクト、公式情報、推測、未確認を分けて確認します。

Skillはリポジトリ側で管理し、この記事では使い方と確認結果を公開しています。

コメントを残す