[AI書房] 第10章 基本コマンドとプロジェクト設定の階層
Claude Code完全攻略
第3部
第10章 基本コマンドとプロジェクト設定の階層
金京鎮
導入
ターミナルに「/status」と入力した瞬間、画面には Claude Code のバージョン、現在接続されているモデル名、認証済みアカウント情報が一斉に流れ出します。まるで自動車の計器類を一度見渡すように、このエージェントがどのような状態にあるかを瞬時に把握できます。このコマンドを暗記する必要があったのでしょうか?いいえ。
「今の Claude Code の状態を教えて」と自然な言葉で尋ねるだけでも、エージェントが自動的に「/status」を実行します。ビルトインコマンドの世界は、このようにして始まります。
核心コマンド集
Claude Code には大きく分けて二種類の基本コマンドがあります。一つは現在の状態を確認する診断・ステータスコマンドであり、もう一つはエージェントの行動様式を変更する設定コマンドです。
診断・ステータス関連のコマンドから見ていきましょう。
[図 10-1] /status コマンドの実行結果の例
ここで重要なのは、これらのコマンドを暗記する必要がないという点です。Claude Code は自然言語を解釈し、適切なコマンドを自動的に実行できます。「診断を一度実行して」と言えば /doctor が実行され、「現在どのモデルを使用していますか?」と尋ねれば /status が回答します。コマンドの存在を知っておくことは有益ですが、暗記はエージェントの役割です。
設定コマンド
設定コマンドは、エージェントの動作を調整するためのコントロールパネルです。
これらのコマンドも自然言語で操作できます。「自分の権限設定を表示して」と言うと、/permissions の内容が表示されます。ただし、直接スラッシュコマンドを入力する方が速い場合もあります。これは、エージェントが意図を解釈するステップをスキップできるためです。状況に応じて自然言語とコマンドを併用するのが実用的です。
設定の階層構造:ユーザー、プロジェクト、ローカル
基本コマンドがエージェントとの対話手段であるなら、設定ファイルはエージェントの基本的な行動様式を定義する設計図です。Claude Code の設定は 3 つの層から構成されており、各層が異なる範囲を担当します。
ユーザーレベル(グローバル)の設定はホームディレクトリ(~/)に位置します。この設定は、コンピュータ上のすべてのプロジェクトに影響を及ぼします。どのフォルダを開いても、どのプロジェクトで作業しても、常に適用される基本値です。
プロジェクトレベルの設定は、プロジェクトフォルダ内の .claude/settings.json に位置します。このファイルは GitHub にコミットされ、チーム全体で共有できます。チームのメンバーが誰でもこのプロジェクトを開けば、同じ設定が適用されます。
私のコンピュータにおけるプロジェクトレベル(ローカルプロジェクトレベル)の設定は、.claude/settings.local.json に格納されます。このファイルは私のコンピュータでのみ適用され、GitHub にアップロードされることもなく、同じプロジェクトを共有するチームメンバーには表示されません。
[図 10-2] 設定階層構造ダイアグラム:ユーザー → プロジェクト → 私のコンピュータ
3 つの階層は、上から下へと優先順位が決定されます。エージェントが何らかの動作を実行しようとする際、まず「私のコンピュータ」の設定を確認します。そこに該当する規則がない場合はプロジェクト設定を参照し、プロジェクト設定にもない場合はグローバル設定に従います。
この優先順位が実際にどのように機能するか、具体例で説明しましょう。例えば「read」というファイル読み込みコマンドがあるとします。「read」を絶対に使用しないよう「私のコンピュータ」の設定で指定されている場合、エージェントは即座に動作を停止します。プロジェクトやグローバル設定で許可されていても、その指定には及びません。逆に、「私のコンピュータ」やプロジェクト設定で許可されていても、グローバル設定で禁止されている場合は、グローバル段階でブロックされます。
「私のコンピュータ」は最も狭い範囲であり、最初に確認される設定です。一方、グローバル設定は最も広い範囲をカバーし、最終的な関門としての役割を果たします。
settings.json と settings.local.json の違い
両方のファイルは同じ .claude フォルダ内に並んで存在しますが、その用途は明確に異なります。
settings.json には、チーム全体で合意したルールを記載します。コーディング規約、必須ツールのリスト、共通の MCP 接続サーバーの情報などです。新しいチームメンバーがプロジェクトをクローンすると、これらの設定が自動的に適用されるため、オンボーディングプロセスで「設定を合わせてください」と個別に案内する必要性が減少します。
settings.local.json には、個人の好みを記載します。好みのエディタ動作、個人用 API キーのパス、自分のコンピュータ専用のデバッグオプションなどです。チーム設定と競合する場合は、自分のコンピュータが優先されるため、チームの標準に従いながらも、自分だけの作業環境を維持することができます。
一つ注意すべき点があります。settings.local.json は .gitignore に登録し、GitHub に決してアップロードされないようにする必要があります。個人用 API キーや機密性の高いパス情報が含まれる可能性があるためです。
.claude フォルダの構造と役割
プロジェクトフォルダを開いた際、目に入る .claude ディレクトリは Claude Code の心臓部です。このフォルダ内には、エージェントがプロジェクトを理解し動作させるために必要なすべての構成要素が格納されています。
[図 10-3] .claude フォルダの内部構造と各ファイルの役割
CLAUDE.md は、エージェントが対話を開始するたびに最初に読み込むファイルです。プロジェクトの目的、主要なルール、他のファイルの場所を案内する地図の役割を果たします。CLAUDE.local.md は CLAUDE.md の個人版であり、独自の追加指示を格納します。
.gitignore ファイルは、Git が追跡しないファイルのリストを指定します。.env ファイル(API キーの保管)、settings.local.json、個人用の画像やパスワードファイルなどをここに登録します。VS Code では、これらのファイルは灰色で表示され、視覚的に区別されます。緑色は Git がまだ追跡していない新規ファイル、黄色は変更されたファイルを示します。
この色体系は、「今コミットすべきものがあるか」を一瞬で示します。
rules/ フォルダには、エージェントのコミュニケーションスタイルやコーディングルールなどの行動指針が格納されます。skills/ フォルダには再利用可能なワークフローレシピが、agents/ フォルダには補助エージェントの定義ファイルが保存されます。
グローバル設定も同様の構造を持っています。ホームディレクトリの .claude フォルダの下に settings.json、skills/、agents/、rules/ などが配置され、ここに保存された内容はどのプロジェクトを開いても適用されます。プロジェクトごとに繰り返したくない共通設定 — 例えば「常に敬語体を使用せよ」といったルール — は、グローバルに置く方が効率的です。
各階層に何を配置するかを整理すると、以下のようになります。
この構造を初めて見ると複雑に思えるかもしれません。フォルダの中にフォルダ、ファイルの中にファイル。しかし、実際にプロジェクトを開いて .claude フォルダを直接探索してみると、各ファイルの役割は名前だけで明らかになります。設定の階層は、「チームが合意した内容」「プロジェクトが要求する内容」「私が望む内容」という三層のレンズのようなものです。エージェントはこのレンズを内側から外側へと順に確認し、自分がどのように行動すべきかを決定します。
基本コマンドがエージェントとの即座の対話手段であるのに対し、設定階層はエージェントの長期的な性格を形成する骨格です。しかし、エージェントの記憶には根本的な限界があります。それは一度に読み込む範囲(コンテキストウィンドウ)と呼ばれる、一度に処理できる情報量の天井です。この天井を超える膨大なデータをエージェントが活用するためには、外部記憶装置が必要です。








