コンテキストに読み込まれた内容を確認する
/context コマンドは、現在のセッションのコンテキストウィンドウを占めるすべてのものを表示します。カテゴリ別に分類されます:システムプロンプト、メモリファイル、スキル、MCP ツール、会話メッセージです。まず実行して、CLAUDE.md、ルール、またはスキルの説明が存在するかどうかを確認します。
特定のカテゴリの詳細については、専用コマンドで確認してください:
| コマンド | 表示内容 |
|---|---|
/memory | 読み込まれた CLAUDE.md とルールファイル、およびオートメモリエントリ |
/skills | プロジェクト、ユーザー、プラグインソースから利用可能なスキル |
/agents | 設定されたサブエージェントとその設定 |
/hooks | アクティブなフック設定 |
/mcp | 接続された MCP サーバーとそのステータス |
/permissions | 現在有効な許可と拒否ルール |
/doctor | 設定診断:無効なキー、スキーマエラー、インストール状態 |
/status | アクティブな設定ソース(マネージド設定が有効かどうかを含む) |
/memory に見つからない場合は、その場所を CLAUDE.md ファイルの読み込み方法 と照らし合わせて確認してください。サブディレクトリの CLAUDE.md ファイルは、セッション開始時ではなく、Claude が Read ツールでそのディレクトリ内のファイルを読むときにオンデマンドで読み込まれます。
/memory がファイルが読み込まれたことを確認しても Claude が特定の指示に従わない場合、問題はファイルが読み込まれたかどうかではなく、指示の書き方である可能性が高いです。CLAUDE.md は、新しいチームメンバーに与えるような指示に適しています。例えば、プロジェクト規約、ビルドコマンド、ファイルの場所などです。
指示が複数の方法で解釈できるほど曖昧な場合、2 つのファイルが矛盾した指示を与える場合、またはファイルが長くなって個々のルールの注意が減る場合、遵守は低下します。効果的な指示を書く は、遵守を高く保つ特異性、サイズ、構造パターンをカバーしています。
解決された設定を確認する
設定はマネージド、ユーザー、プロジェクト、ローカルスコープ全体でマージされます。マネージド設定が存在する場合は常に優先されます。その他の場合、より近いスコープが、ローカル、プロジェクト、ユーザーの順序でより広いスコープをオーバーライドします。一部の設定は、コマンドラインフラグまたは 環境変数 で設定することもでき、これは別のオーバーライドレイヤーとして機能します。設定が適用されないように見える場合、設定した値は通常、別のスコープまたは環境変数によってオーバーライドされています。/doctor を実行して設定ファイルを検証し、無効なキーまたはスキーマエラーを表示します。/status を実行して、マネージド設定が有効かどうかを含む、どの設定ソースがアクティブかを確認します。特定のキーに対してどのスコープが優先されるかを理解するには、スコープの相互作用方法 を参照してください。
MCP サーバーを確認する
/mcp を実行して、すべての設定されたサーバー、その接続ステータス、および現在のプロジェクトに対して承認したかどうかを確認します。サーバーは正しく定義されていても、いくつかの一般的な理由でツールを提供しない場合があります:
.mcp.jsonのプロジェクトスコープサーバーは 1 回限りの承認が必要です。プロンプトが却下された場合、/mcpから承認するまでサーバーは無効のままです。- 起動に失敗したサーバーは
/mcpで失敗として表示されます。commandまたはargsの相対ファイルパスは頻繁な原因です。これらは.mcp.jsonの場所ではなく、Claude Code を起動したディレクトリに対して解決されるためです。 - 接続されているが 0 個のツールをリストするサーバーは正常に起動していますが、ツールリストを返していません。
/mcpから 再接続 を選択します。カウントが 0 のままの場合は、claude --debug mcpを実行してサーバーの stderr 出力を確認します。
Hooks を確認する
/hooks を実行して、現在のセッションに登録されているすべてのフックをイベント別にグループ化して一覧表示します。定義したフックが表示されない場合、それは読み込まれていません:hooks は設定ファイルの "hooks" キーの下に置かれ、スタンドアロンファイルではありません。
フックが表示されても発火しない場合、通常の原因はマッチャーです。matcher フィールドは、複数のツール名をマッチするために | を使用する単一の文字列です。例えば "Edit|Write" です。ツール名のスペルミスはマッチャーが一致しないため、サイレントに失敗します。配列値はスキーマエラーです:Claude Code は設定エラー通知を表示し、/doctor は検証失敗を報告し、フックエントリは削除されるため /hooks に表示されません。
settings.json への編集は、短いファイル安定性遅延後に実行中のセッションで有効になります。再起動する必要はありません。保存後数秒経っても /hooks が古い定義を表示している場合は、/hooks を再度実行してビューをリフレッシュします。
/hooks がフックを表示しても発火しない場合、次のステップはフック評価をライブで監視することです。claude --debug hooks でセッションを開始し、ツール呼び出しをトリガーします。デバッグログは各イベント、チェックされたマッチャー、フックの終了コードと出力を記録します。ログ形式については フックをデバッグする を、一般的な失敗パターンについては hooks トラブルシューティング を参照してください。
一般的な原因
ほとんどの設定の驚きは、小さな場所とシンタックスルールのセットに遡ります。バグを想定する前にこれらを確認してください:| 症状 | 原因 | 修正 |
|---|---|---|
| フックが発火しない | matcher が JSON 配列ではなく文字列 | 複数のツールをマッチするために | を含む単一の文字列を使用します。例えば "Edit|Write" です。マッチャーパターン を参照してください。 |
| フックが発火しない | matcher 値が小文字です。例えば "bash" | マッチングは大文字と小文字を区別します。ツール名は大文字です:Bash、Edit、Write、Read。 |
| フックが発火しない | Hooks がスタンドアロンの .claude/hooks.json ファイルにあります | スタンドアロンの hooks ファイルはありません。settings.json の "hooks" キーの下に hooks を定義します。フック設定 を参照してください。 |
| グローバルに設定された権限、hooks、env が無視されます | 設定が ~/.claude.json に追加されました | ~/.claude.json はアプリ状態と UI トグルを保持します。permissions、hooks、env は ~/.claude/settings.json に属します。これらは 2 つの異なるファイルです。 |
settings.json 値が無視されているように見えます | 同じキーが settings.local.json で設定されています | settings.local.json は settings.json をオーバーライドし、両方とも ~/.claude/settings.json をオーバーライドします。設定の優先順位 を参照してください。 |
スキルが /skills に表示されません | スキルファイルがフォルダ内ではなく .claude/skills/name.md にあります | SKILL.md を含むフォルダを使用します:.claude/skills/name/SKILL.md。 |
スキルが /skills に表示されますが Claude が呼び出しません | スキルのフロントマターに disable-model-invocation: true があるか、その説明がリクエストの言い方と一致しません | /skills のバッジを確認します:「user-only」ラベルは Claude が独自にトリガーしないことを意味します。スキル呼び出し を参照してください。 |
サブディレクトリの CLAUDE.md 指示が無視されているように見えます | サブディレクトリファイルはセッション開始時ではなくオンデマンドで読み込まれます | Claude が Read ツールでそのディレクトリ内のファイルを読むときに読み込まれます。起動時ではなく、ファイルを書き込みまたは作成するときではありません。CLAUDE.md ファイルの読み込み方法 を参照してください。 |
サブエージェントが CLAUDE.md 指示を無視します | サブエージェントは常にプロジェクトメモリを継承するわけではありません | 重要なルールをエージェントファイル本体に入れます。これはサブエージェントのシステムプロンプトになります。サブエージェント設定 を参照してください。 |
| クリーンアップロジックがセッション終了時に実行されません | SessionEnd フックが設定されていません | SessionStart と SessionEnd の両方が存在します。フックイベントリスト を参照してください。 |
.mcp.json の MCP サーバーが読み込まれません | ファイルが .claude/ の下にあるか、Claude Desktop の設定形式を使用しています | プロジェクト MCP 設定はリポジトリルートの .mcp.json に置かれます。.claude/ 内ではありません。MCP 設定 を参照してください。 |
| プロジェクト MCP サーバーが追加されても表示されません | 1 回限りの承認プロンプトが却下されました | プロジェクトスコープサーバーは承認が必要です。/mcp を実行してステータスを確認し、承認します。 |
| MCP サーバーが一部のディレクトリから起動に失敗します | command または args が相対ファイルパスを使用しています | ローカルスクリプトには絶対パスを使用します。npx または uvx のような PATH 上の実行可能ファイルはそのまま機能します。 |
| MCP サーバーが予期された環境変数なしで起動します | 変数は settings.json env にあり、MCP 子プロセスに伝播しません | 代わりに .mcp.json 内のサーバーごとの env を設定します。 |
Bash(rm *) 拒否ルールが /bin/rm または find -delete をブロックしません | プレフィックスルールは基になる実行可能ファイルではなく、リテラルコマンド文字列をマッチします | 各バリアントの明示的なパターンを追加するか、PreToolUse フック または サンドボックス を使用して、ハード保証を取得します。 |
関連リソース
各設定サーフェスの完全なリファレンスについては、専用ページを参照してください:.claudeディレクトリリファレンス: すべての設定ファイルの場所とそれを読むもの- 設定: 優先順位と完全なキーリスト
- Hooks リファレンス: イベント名、ペイロード、
--debug hooks出力形式 - MCP: サーバー設定、承認、
/mcp出力 - トラブルシューティング:
claude doctor、プラットフォーム問題、インストール問題