Claude Media
Claude Codeの/doctorが自動修正までするチェックアップになった仕組み

Claude Codeの/doctorが自動修正までするチェックアップになった仕組み

Claude Codeの/doctorはv2.1.205で読み取り専用の診断から自動修正までするチェックアップに変わりました。検出できる項目、自動修正の範囲、claude doctorとの違いをまとめました。

Claude Codeの/doctorが自動修正までするチェックアップになった仕組み

Claude Codeの/doctorは、v2.1.205でただの診断コマンドから「診断して直せる」フルチェックアップに変わりました。インストールの不整合やCLAUDE.mdの肥大化を検出するだけでなく、確認を取ったうえで実際に修正まで行います。別名は/checkupです。

Claude Codeの/doctorで何が変わったか

以前の/doctorは読み取り専用の診断画面でした。問題を一覧表示し、fキーを押すとその報告をClaudeに送って会話で修正を依頼する、という間接的な作りです。v2.1.205以降は違います。/doctor自体がインストール状態・設定ファイル・CLAUDE.mdの中身まで踏み込んで検査し、直せる項目には修正案を提示します。実行だけは自動化されません。結果を先に報告し、変更を加える前に必ず確認を求める仕様です。

/checkupはこの新しい/doctorのエイリアスとして追加されました。どちらを打っても同じチェックアップが起動します。覚えやすい方を使えば十分です。

何を検出し、何を自動修正できるか

チェックアップが扱う範囲は、インストールの健全性からコンテキストの無駄遣いまで広がっています。

検出項目対応の性質
インストールの重複・残留、PATHの問題、パース不能なsettingsファイル対応の性質検出して報告
コンテキストコストに見合わない未使用のskill・MCPサーバー・plugin対応の性質検出して報告
実行が遅いhooks対応の性質検出して報告
利用中のrelease channelでの新バージョンの有無対応の性質検出して案内
ローカルのCLAUDE.mdとチェックイン済みCLAUDE.mdの重複対応の性質統合を提案(確認後に実行)
チェックイン済みCLAUDE.mdの肥大化(v2.1.206以降)対応の性質内容の削減を提案(確認後に実行)
auto modeが既定になっていない状態対応の性質既定化を提案(確認後に実行)
何度も拒否している読み取り専用コマンド対応の性質事前承認(pre-approve)を提案(確認後に実行)

表の後半4行が「診断だけでなく直せる」部分です。いずれも提案止まりで、承諾しない限りClaude Code側の設定やファイルは変更されません。この「まず報告、変更は確認後」という順序は、v2.1.205のどの検出項目にも共通しています。

読み取り専用コマンドの事前承認は/doctor単体の機能で、対象は「何度も拒否されているコマンド」に限られます。手元の許可ルールをまとめて整理したい場合は/fewer-permission-promptsで許可プロンプトを自動整理するのようなコマンド単体の整理手段もあり、役割が異なります。

インストール方式の判定とskillのコスト

「重複・残留インストール」の検出は、同じ場所にファイルが増えているかどうかより踏み込んだ判定を行います。ネイティブインストール、Homebrew、npmグローバル、mise・asdfのようなバージョンマネージャー経由のインストールは、実体の置き場所もシンボリックリンクの向きも異なります。過去には、mise・asdf管理下のインストールをネイティブインストールと誤って判定したり、シンボリックリンクの解決を誤ってHomebrewとnpmグローバルを取り違えたりする不具合が見つかり、修正されてきました。/doctorはここまで踏み込んでインストール方式そのものを区別しようとしている、という裏付けです。

未使用skillの検出では、単純な「使っていない」判定だけでなく、/doctorを実行すると読み込んでいるskill一覧全体のコンテキストコストの見積もりと、そのうちコストの大きい要因が分かります。一覧が想定の予算を超えている場合、警告そのものはデバッグログで確認できます。予算自体を引き上げたい場合は、skillListingBudgetFraction設定やSLASH_COMMAND_TOOL_CHAR_BUDGET環境変数で上限を調整するか、skillOverridesで個別のskillを"name-only"にして一覧内の占有量を減らす、という手段があります。skillを整理するとき、どれを優先して削るかの判断材料にそのまま使えます。

CLAUDE.mdの分割とトリムをどう判断するか

CLAUDE.mdまわりの提案は1種類ではありません。まずローカルのCLAUDE.mdとチェックイン済みのCLAUDE.mdが重複している場合、その統合を提案します。個人用の上書きファイルとリポジトリ管理下のファイルが同じ内容を持っていると、どちらが正なのか分かりにくくなるためです。

v2.1.206からはもう一段踏み込み、チェックイン済みCLAUDE.md自体のトリムを提案するようになりました。判断基準は「Claudeがコードベースから導き出せる内容かどうか」です。ディレクトリ構成の説明、依存関係の一覧、アーキテクチャの概観のような、リポジトリを読めば分かる情報は削減候補になります。逆に、ツールの既定動作と異なる注意点、設計判断の理由、チーム独自の規約は残す対象として区別されます。

トリムはゴールではなく、その先にもう一段の整理が続きます。トリム後も残った「常時読み込みされるべきガイダンス」は、skillや、必要なときだけ読み込まれる入れ子のCLAUDE.mdへ移す提案も行います。つまりCLAUDE.mdまわりの提案は「重複統合」「肥大化のトリム」「常時読み込みからオンデマンド読み込みへの移行」の3段構えです。CLAUDE.mdの書き方そのものを見直したい場合はClaude CodeのCLAUDE.mdを実用に引き上げる10のパターンも参考になります。

ターミナルのclaude doctorとの違い

/doctorはClaude Codeのセッション内で打つスラッシュコマンドですが、ターミナルから直接claude doctorを実行することもできます。

claude doctor

こちらはセッションを開始せず、読み取り専用のインストール診断だけを表示します。CLAUDE.mdのトリム提案や事前承認の提案のように、確認を挟んで何かを変更するタイプの機能は含みません。「インストールが壊れていないか確認したいだけで、対話は始めたくない」という場面向けの入口です。逆に、修正案まで含めた本来のチェックアップを回したいなら、Claude Codeを起動して/doctor/checkupを打つ必要があります。

v2.1.205前後で何が変わったか

/doctorの性格は一度に変わったわけではなく、段階的に拡張されてきました。

バージョン変更点
v2.1.105変更点読み取り専用の診断画面にステータスアイコンを追加。fキーでレポートをClaudeに送り、会話の中で修正を依頼する形式
v2.1.205変更点/doctorが診断だけでなく修正までできるフルチェックアップに変わり、/checkupが別名として加わった
v2.1.206変更点チェックイン済みCLAUDE.mdのトリム提案が追加された。Claude Code v2.1.206で導入された変更の1つ
v2.1.207変更点自動更新がカスタムランチャーを上書きしてしまう問題を検知し、外部管理のランチャーとして報告するようになった
v2.1.210変更点Bedrock・Vertex・Foundryではauto modeのopt-inが不要になった後も、auto mode既定化の提案がスキップされていた問題を修正

v2.1.105までの/doctorは、あくまで人間かClaudeが後から手を動かす前提の「レポート係」でした。v2.1.205でその境界が動き、レポートと修正提案が1つのコマンドに統合されています。v2.1.206以降の変更は、この統合済みのチェックアップに検出項目を積み増していく形で進んでいます。

disableBundledSkillsでも/doctorは消えない

/doctorはv2.1.205からbundled skillの一種として実装されています。ここで注意が必要なのは、Claude Codeに同梱されたbundled skill全体を無効化するdisableBundledSkillsを設定していても、/doctorだけは例外的にタイプ可能なまま残る点です。/code-review/loopのような他のbundled skillが軒並み使えなくなっても、セットアップの問題を診断する手段だけは残しておく、という設計です。

それでも/doctor自体を隠したい場合は、DISABLE_DOCTOR_COMMAND環境変数を設定するか、skillOverrides"doctor": "off"を指定します。この2つはdisableBundledSkillsとは別の設定キーで、/doctorだけをピンポイントで隠すための専用の仕組みです。skillの可視性そのものをまとめて管理したい場合はClaude Code /skillsコマンドの使い方でトークン数や可視性の切り替えを扱っています。

よくある質問

claude doctorをターミナルで実行するとセッションが始まりますか

始まりません。読み取り専用のインストール診断を表示するだけで、対話セッションには入りません。修正提案まで含めたチェックアップを使いたい場合は、Claude Codeを起動してから/doctorまたは/checkupを実行します。

/doctorが提案した変更は自動的に適用されますか

されません。検出結果を先に報告し、変更を加える前に必ず確認を求めます。CLAUDE.mdのトリムも事前承認の提案も、承諾するまでファイルや設定は書き換わりません。

disableBundledSkillsを設定すると/doctorも消えますか

消えません。v2.1.205以降、/doctorは他のbundled skillと違ってdisableBundledSkillsの対象外として扱われ、引き続きタイプできます。隠したい場合はDISABLE_DOCTOR_COMMAND環境変数か、skillOverrides"doctor": "off"を使います。

CLAUDE.mdのトリム提案はどのバージョンから使えますか

v2.1.206以降です。それより前のバージョンでは、ローカルとチェックイン済みのCLAUDE.mdの重複統合までしか提案されません。

release channelの新バージョンはどこまで教えてくれますか

現在使っているrelease channel(stableやlatestなど)で新しいバージョンが出ているかどうかを検出し、案内します。この項目は診断・案内の範囲にとどまり、CLAUDE.mdのトリムや事前承認のような「確認して直す」系の項目とは性格が異なります。

/checkupと/doctorは別の機能ですか

別の機能ではなく、同じチェックアップのエイリアスです。どちらを実行しても同じ検出・提案が走ります。

まとめ

/doctorはv2.1.205を境に、読み取り専用の診断コマンドから、確認を挟みながら実際に修正まで行うチェックアップへと役割を広げました。未使用のskill・MCPサーバー・plugin、遅いhooks、肥大化したCLAUDE.mdといった「気づきにくいがコンテキストを圧迫する問題」を拾い上げ、承諾した分だけ手を入れてくれます。ターミナルのclaude doctorは読み取り専用の入口として残り、disableBundledSkillsを設定していても/doctor自体は使い続けられます。プラグイン・skillを追加したりCLAUDE.mdを書き足したりするたびに状態は変わるので、一度実行して終わりにせず、環境をいじった後の確認習慣として使うと効果が続きます。コマンド全体の見取り図はClaude Codeスラッシュコマンド一覧も合わせて参照してください。

この記事を共有:XはてブLinkedIn