Codex Doctor (コードックス・ドクター) は何をしますか?
2層のヘルスチェックを実行します:
- Codexの安定した内蔵コマンド
codex doctor --jsonを再利用して、インストール、設定、認証、ランタイム、Git環境、ターミナル、アプリサーバー、アップデート、スレッドインベントリを確認します。 - 内蔵コマンドではカバーされない、ワークスペースコンテキストのガバナンスをチェックするためのバンドルされた読み取り専用スキャナーを実行します。
スキャナーは決定的な証拠を収集します。意味的な判断はあなたが行います。この分離が重要なのは、スクリプトはテキストの重複を証明できても、ビジネス上の事実、安全境界、ブランドボイス、ディレクトリルールが廃棄可能かどうかを安全に判断できないためです。
チェックの実行
スキルディレクトリをロードされたスキルパスから特定し、次を実行します:
python3 <skill-dir>/scripts/scan_workspace.py --cwd "$PWD" --compact-json
すでに同じタスクで内蔵レポートが実行されており、ワークスペースのみをより高速に実行したい場合:
python3 <skill-dir>/scripts/scan_workspace.py --cwd "$PWD" --compact-json --skip-built-in
--compact-json は、すべての検出結果とすべての内蔵チェック行を保持しつつ、大規模なスキルインベントリと冗長な合格チェックの詳細を省略します。完全な決定的インベントリの証拠が必要な場合のみ --json を使用してください。
生の内蔵レポートをリポジトリ内に保存しないでください。一時的な保存が必要な場合は /tmp を使用し、終了前に削除してください。
結果の解釈
クリーンアップや修復を提案する前に checks-and-repair-policy.md を読んでください。重大度と信頼度は分離して保持します:
S0: 証明された秘密情報の露出、または証明された破壊的リスクS1: 壊れた有効な設定、切り詰められたハードルール、欠落した有効な実行可能ファイル、またはインストール/アップデートの不一致S2: 正確な冗長性、重複するアクティブな名前/ソース、または明確なプロジェクト健全性違反S3: メンテナンス上の負担、古い無効エントリ、新バージョンの通知、または過剰に長い説明S4: 情報提供、セマンティック候補、または証拠のギャップ
semantic_candidates は、検出結果としてではなく、調査のためのプロンプトとして扱ってください。関連するソースセクションを読み、以下いずれかに分類してください:
- 動作ルールまたは安全境界: 維持
- ユーザー設定、ブランドボイス、ビジネス上の事実、またはディレクトリ契約: 維持
- 複数ファイルの統合が必要なリポジトリ上の事実: 通常は維持
- 直接発見可能なインベントリ、フレームワークバージョン、依存関係リスト、またはディレクトリ一覧: 削除候補
- 古い、または矛盾した記述: 変更を提案する前にリポジトリに対して検証
未使用スキルの証拠
静的な発見ではスキルが未使用であることを証明できません。ユーザーが明示的に未使用または低頻度のスキルを尋ねた場合は、インストールされている codex-skill-admin スキルを読み取り専用監査モードで使用します:
python3 <codex-skill-admin-dir>/scripts/codex_skill_admin.py audit-unused --cwd "$PWD" --days 30
証拠の期間と個別のセッション/ソース数を報告してください。ユーザーが別途要求し、対象リストを承認しない限り、何も無効にしないでください。
レポート構造
最初に全体的な結果を示し、その後、アクション可能または判断に関連する項目のみを表示します:
# Codex 健康チェック
ステータス: PASS / WARN / FAIL
## 対応が必要
- [検出ID] 重大度 / 信頼度 — 結論
証拠: ソースと観測された状態
影響: 具体的な障害またはコンテキストコスト
推奨事項: 正確な次のアクション
## 手動レビュー推奨
- 推論可能または古い可能性がある理由を含むセマンティック候補
## 合格
- グループ化されたドメイン(すべての低レベル行ではない)
## 証拠のギャップ
- 公開/ローカルデータから証明できないチェック
内蔵ドクターのサブチェックは個別の事実として保持します。たとえば、HTTP到達可能性の失敗とWebSocketの成功は2つの行として残し、「ネットワークが壊れている」とまとめないでください。
修復プロトコル
診断は修復を許可しません。ユーザーが検出結果の修正を依頼した場合:
- 1つの検出ID、正確なソース、なぜ間違っているか、および単一ファイルのunified diffを表示します。
- 変更が指示を削除または意味的に書き換える場合、設定を変更する場合、コンポーネントを有効/無効にする場合、またはファイルを移動する場合、その検出IDの明示的な承認を求めます。
- パッチを適用する直前にソースファイルの SHA-256 を再計算します。スキャンの証拠と異なる場合は停止します。
- 承認されたdiffのみを
apply_patchで適用します。 - 関連するチェックを再実行し、変更前後の結果を報告します。
以下を自動的に行わないでください:
- 安全ルール、ブランド/ペルソナルール、ビジネス上の事実、プロジェクト上の事実、Gitゲート、またはディレクトリ境界を削除または弱化する
- AGENTS.md と CLAUDE.md で重複しているという理由だけでテキストを削除する(クロスホストのパリティは意図的な場合があります)
- フックを実行してパフォーマンスを測定する
- フックを信頼する、MCPにログインする、資格情報を公開する、依存関係をインストールする、Codexを更新する、またはプロバイダーを変更する
- サンドボックス、承認、モデル、ネットワーク、または認証設定を変更する
- 破壊的なGitコマンドを実行する、追跡されていないファイルをクリーンアップする、または保護されたプロジェクトディレクトリを移動する
完了チェック
完了を報告する前に:
- スキャナーがリポジトリに変更を加えていないことを確認する
- 内蔵のCodex診断とワークスペースガバナンスの検出結果を区別する
- 推論を推論としてラベル付けする
- スキップされたチェックと証拠のギャップを報告する
- 修復が承認された場合、変更された各ファイルを検証し、そのドメインチェックを再実行する