Claude Code /checkup — 設定負債をAIが診断して片付ける¶
対象 / ポイント
対象: Claude Codeを日常的に使い、スキル・MCP・プラグインが増えて動作が重くなってきたエンジニア。チームのClaude Code設定を管理する読者。
ポイント:
- Claude Code v2.1.205で
/doctorが診断と修復を行うセットアップ健診へ刷新され、/checkupが別名として追加された - 提案内容は、未使用スキル・MCP・プラグインの掃除、CLAUDE.md再編、遅いフック無効化など7項目に分かれる
- 自動モード既定化と読み取り専用コマンドの事前承認は、利便性ではなく権限ポリシーの変更として扱う必要がある
Claude Codeを長く使うほど、便利にしたはずの設定が重くなる。 スキルを足し、MCPサーバーをつなぎ、フックを書き、CLAUDE.mdに例外を書き足す。
その結果、Claude Codeの起動時点から読むもの、判断するもの、待つものが増える。 この記事の問いは、/checkupを「便利な掃除コマンド」ではなく、AIエージェント設定の保守ループとしてどう扱うかである。
何が追加されたのか¶
2026年7月8日リリースのClaude Code v2.1.205で、/doctorは「問題を診断して修復するフルセットアップ健診」へ刷新された。 同じリリースで、/checkupがその別名として追加されている1。
従来の/doctorは、インストール状態、設定、MCP構成、コンテキスト使用量をまとめて確認する診断入口だった2。 今回の変更で、単なる状態表示から、環境の掃除と最適化の実行まで踏み込む形になった。
Claude Code開発者のBoris Cherny氏は、/checkupが提案する処置として7項目を挙げている3。 実行すると項目ごとに採否を尋ねる対話形式で進み、変更前に確認するとも説明している3。 ただし、GitHubリリースノートで確認できるのは/doctor刷新と/checkup別名の追加までである。 以下の7項目の内訳は開発者告知に基づくため、実運用では手元の/checkup画面を正とする。
/checkupが提案する7つの処置¶
7項目は、設定負債の掃除と権限ポリシーの変更に分けて読むと判断しやすい。
| # | 処置 | 狙い |
|---|---|---|
| 1 | 未使用のスキル・MCP・プラグインの削除 | 常駐する説明・ツール情報を減らす |
| 2 | ローカルCLAUDE.mdとリポジトリ管理CLAUDE.mdの重複除去 | 二重読み込みと矛盾を減らす |
| 3 | ルートCLAUDE.mdのネスト分割とスキル化 | 常時読み込みから必要時読み込みへ移す |
| 4 | 遅いフックの無効化 | イベントごとの待ち時間を減らす |
| 5 | Claude Code本体の最新化 | 修正と改善を取り込む |
| 6 | 自動モードの既定有効化 | 確認プロンプトを減らす |
| 7 | 頻繁に拒否される読み取り専用コマンドの事前承認 | 承認待ちを減らす |
1〜5は主に環境メンテナンスである。 6〜7は作業速度を上げるが、権限の境界を変える。 同じ「提案」でも、レビューの重さは同じではない。
なぜ掃除が必要なのか¶
未使用の拡張は、使っていなくても判断対象として残る。 Claude Code公式ドキュメントは、CLAUDE.mdがセッション開始時に全文ロードされ、スキルは既定で説明文がセッション開始時にロードされると説明している4。 MCPについては、フルスキーマはオンデマンドだが、接続済みサーバーのツール名はセッション開始時に入る4。
コストの形は同じではない。 それでも、設定を増やすほど「Claudeが最初から背負う選択肢」は増える。
ツール追加
→ 説明文・ツール名・設定が増える
→ 実効コンテキストと判断対象が膨らむ
→ compactや誤選択のリスクが上がる
→ 長いタスクの安定性が落ちる
ルートのCLAUDE.mdも同じ問題を起こす。 プロジェクト全体に効く指示は便利だが、内容が肥大化すると全セッションの固定費になる。 Claude Codeのドキュメントも、CLAUDE.mdを短く保ち、参照資料はオンデマンドで読み込むスキルへ移す考え方を示している4。
ネストされたCLAUDE.mdや.claude/rules/を使うと、配下のファイルを扱うときだけ追加の指示を読ませられる5。 つまり処置3は、設定を削るだけでなく、固定費を変動費へ移す操作である。
フックの遅延は体感速度に直撃する¶
遅いフックは、1回だけなら小さな待ち時間に見える。 問題は、フックがイベントごとに走る点だ。
Claude Codeのフックは、セッション開始、ユーザープロンプト、ツール実行、コンパクションなど複数のタイミングで発火する6。 特にUserPromptSubmitのようにモデル処理の前に走るフックは、処理が詰まるとセッション全体を待たせる6。
ここで/checkupが「遅いフックを切る」と提案する意味が出る。 体感速度を下げている原因がモデルではなく、周辺の自作フックだったというケースはあり得る。 AIの応答が遅いとき、モデルだけを見るのでは足りない。
/doctorへの集約は段階的に進んでいた¶
今回の刷新は単発の追加ではない。 直近のリリースを見ると、起動時警告や診断情報を/doctorへ寄せる流れが続いていた1。
| バージョン | リリース日 | 変更 |
|---|---|---|
| v2.1.178 | 2026年6月15日 | /doctorの表示レイアウトを全セクションで統一 |
| v2.1.183 | 2026年6月19日 | 起動時の「setup issues」行を廃止し、設定問題は/doctorへ |
| v2.1.203 | 2026年7月7日 | 起動時の「claude command missing or broken」警告を/doctorと/statusへ移動 |
| v2.1.205 | 2026年7月8日 | 診断と修復のフル健診へ刷新し、/checkupを別名として追加 |
起動のたびに警告を並べるのではなく、ユーザーが能動的に呼ぶ入口へ寄せる。 その到達点が、今回の/doctor刷新と読める。
権限を緩める提案は別枠で扱う¶
処置6と7は、掃除ではなく権限ポスチャの変更である。 自動モードの既定有効化は確認プロンプトを減らし、読み取り専用コマンドの事前承認は許可リストを広げる。
個人開発では、承認待ちが減る効果は大きい。 一方で、組織の統制下にある環境では、健診コマンドの提案としてそのまま受け入れる前に、既存の権限ポリシーと照合する必要がある。
実務では、次の分け方が扱いやすい。
- すぐ適用しやすい: 未使用スキル・MCP・プラグインの棚卸し、古い本体の更新
- 差分レビューが必要: CLAUDE.mdの重複除去、ネスト分割、スキル化
- 事前ポリシー確認が必要: 自動モード既定化、読み取り専用コマンドの事前承認
採否は項目単位で選べる。 そのため、1〜5だけ適用し、6〜7は見送る運用が成立する。
手動クリーンアップから保守ループへ¶
/checkup以前にも、Claude Code設定の掃除はコミュニティで共有されてきた。 Naqeeb ali Shamsi氏は、2026年3月の記事で、未使用プラグイン、ユーザースコープMCP、肥大化したCLAUDE.md、古いフックを棚卸しする手順を紹介している7。
その記事の示唆は、今でも有効だ。 問題は「設定を増やしたこと」ではない。 一度入れた設定の所有者、用途、削除条件が残っていないことだ。
/checkupは、その棚卸しをツール本体へ取り込む。 Dependabotが依存関係の古さを検出するように、Claude Codeはエージェント設定の古さを検出し始めた。 これは小さなUI追加ではなく、AIエージェントの運用面が成熟してきたサインである。
まとめ¶
/doctorは診断だけでなく修復まで行うセットアップ健診へ変わり、/checkupが別名として追加された。 提案7項目のうち5つは設定負債の掃除、2つは権限設定の変更である。 同じ画面に並んでいても、適用前のレビュー基準は分けるべきだ。
次の論点は、実行タイミングである。 思い出したときに手動で走らせる健診から、定期的な設定棚卸し、チームレビュー、CI前チェックへ移せるか。
スキル、MCP、CLAUDE.md、フックはいずれも、書いた瞬間が最良で、その後は環境の変化とともに劣化する。 コードと同じように、AIエージェントの設定にも保守ループが必要になった。 /checkupは、その入口である。
関連記事¶
anthropics/claude-code Releases. v2.1.178、v2.1.183、v2.1.203、v2.1.205を参照。 ↩↩
Claude Code Docs, "Troubleshooting".
/doctorによるインストール、設定、MCP、コンテキスト使用量の確認範囲。 ↩Boris Cherny, "New in Claude Code: /checkup", X, 2026-07-08. ↩↩
Claude Code Docs, "Extend Claude Code", "Understand context costs". ↩↩↩
Naqeeb ali Shamsi, "When Your AI Assistant Becomes a Junk Drawer", Medium, 2026-03-31. ↩