Claude Codeは複数の場所から同時にプロジェクト指示を読み込めます。2つの顧客プロジェクトを管理している場合、各ディレクトリで新しいセッションを開始すると、どの指示ファイルが実際に文脈へ入ったかを確認できます。有用な成果は記録した2組のファイル一覧です。隣り合うフォルダが顧客情報を分離すると仮定することではありません。
大きな変化
変わったこと: この手順では、Claude Codeの文書化された指示階層を、既存の許可された2つのプロジェクトディレクトリで繰り返せる比較にします。起動時に読み込まれたファイルを記録し、許可された読み取り後に入れ子の指示ファイルが現れるかを確認します。
重要な理由: 共通の親ディレクトリ、個人指示、インポート、ルール、設定は両方のプロジェクトに影響し得ます。/contextは実行中のセッションに読み込まれたメモリファイルを示すため、顧客の作業前に予期しないパスを調べられます。
注意点: 読み込まれた指示はClaudeのファイルアクセスを制限せず、すべての指示に従う保証にもなりません。顧客の内容を選択したプロバイダーへ送信する前に、実際のアカウント、権限、インポート、hook、データ利用条件を確認してください。
必要なもの
この手順は、2つの既存の顧客リポジトリとClaude Code設定を調査する権限がある開発者向けです。使用予定の具体的な内容を選択したClaudeアカウントまたはプロバイダーへ送信するには、別途承認を得てください。ローカルファイルの編集権限だけでは決まりません。端末、インストール済みClaude Code、利用可能なアカウントまたはプロバイダー、一方のプロジェクトのサブディレクトリ内にある機密情報を含まない既存ファイルが必要です。利用経路に対応するAnthropicのセットアップ、費用、データ利用の文書を確認してください。
次の構成は確認すべきパスを示しており、新しい顧客プロジェクトを作る指示ではありません。コマンド内の例示パスは、すべて実際の許可されたパスへ置き換えてください。親ディレクトリのCLAUDE.mdは任意で、両方のプロジェクトで承認済みの指示だけを含めます。入れ子のファイルと無害な文書は、選択したアカウントのデータ経路で扱えるものでなければなりません。
AUTHORIZED_PARENT/
CLAUDE.md optional shared instructions
project-A/
CLAUDE.md A's project instructions
project-B/
CLAUDE.md B's project instructions
subdir/
CLAUDE.md B's nested instructions
README.md authorized, nonsensitive read target1. 2つのプロジェクトパスを解決する
使うのはどちらか一方のPowerShellまたはBashです。変数に実際の2つのディレクトリを設定します。検査は既存パスを要求し、解決されたパス文字列を比較して、Bの読み取り対象が存在することを確認します。PowerShellのResolve-Pathはシンボリックリンクやジャンクションの別名を保持する場合があり、文字列の違いだけでは物理的に別のプロジェクトと証明できません。両方の起動パスとその祖先ディレクトリのリンクやジャンクションを調べ、リンク先をたどり、AとBが本当に異なることを確認してから進みます。パス、リンク先の確認、後の文脈一覧を非公開の作業記録に残してください。
$a = (Resolve-Path -LiteralPath 'C:\actual\authorized\project-A' -ErrorAction Stop).Path
$b = (Resolve-Path -LiteralPath 'C:\actual\authorized\project-B' -ErrorAction Stop).Path
if (-not (Test-Path -LiteralPath $a -PathType Container)) { throw 'A must be an existing directory' }
if (-not (Test-Path -LiteralPath $b -PathType Container)) { throw 'B must be an existing directory' }
if ($a -eq $b) { throw 'A and B must be different directories' }
$target = Join-Path $b 'subdir/README.md'
if (-not (Test-Path -LiteralPath $target -PathType Leaf)) { throw 'Choose an existing authorized nonsensitive file in B/subdir' }
$a
$b
$targeta=$(realpath -- /actual/authorized/project-A) || exit 1
b=$(realpath -- /actual/authorized/project-B) || exit 1
test -d "$a" || { printf '%s\n' 'A must be an existing directory' >&2; exit 1; }
test -d "$b" || { printf '%s\n' 'B must be an existing directory' >&2; exit 1; }
test "$a" != "$b" || { printf '%s\n' 'A and B must be different directories' >&2; exit 1; }
target="$b/subdir/README.md"
test -f "$target" || { printf '%s\n' 'Choose an existing authorized nonsensitive file in B/subdir' >&2; exit 1; }
printf '%s\n' "$a" "$b" "$target"プロジェクトが兄弟ディレクトリでなければ、実際の祖先階層を別々に記録します。図から共通の親を推測しないでください。
2. プロジェクトを開く前に読み込み候補を監査する
解決した起動ディレクトリのそれぞれについて、CLAUDE.md、.claude/CLAUDE.md、CLAUDE.local.md、AGENTS.md、.claude/AGENTS.mdを、そのディレクトリとファイルシステムのルートまでの全祖先で調べます。OSの管理対象指示、~/.claude/CLAUDE.md、ユーザールール、プロジェクトの.claude/rules/ファイルも確認します。メモリのマニュアルによれば、見つかったCLAUDE.mdファイルは連結され、近いファイルが祖先のテキストを消すわけではありません。入れ子のCLAUDE.mdは通常、Claudeが同じディレクトリの別ファイルを読み書きまたは編集した後に読み込まれます。パスを限定したルールは、該当するファイルへのアクセス時に読み込まれることがあります。
このコマンドはパスだけを表示し、内容を出さずに祖先の一覧を作ります。見つかったファイルは、それぞれの所有者の権限の下で調べてください。両方の変数で繰り返します。Bashのループは自動的に両方を扱います。
foreach ($start in @($a, $b)) {
$dir = [System.IO.DirectoryInfo]::new($start)
while ($null -ne $dir) {
Get-Item -LiteralPath $dir.FullName -Force | Select-Object FullName,LinkType,Target
foreach ($name in @('CLAUDE.md', 'CLAUDE.local.md', 'AGENTS.md', '.claude/CLAUDE.md', '.claude/AGENTS.md')) {
$candidate = Join-Path $dir.FullName $name
if (Test-Path -LiteralPath $candidate -PathType Leaf) { $candidate }
}
$dir = $dir.Parent
}
}for start in "$a" "$b"; do
dir=$start
while :; do
for name in CLAUDE.md CLAUDE.local.md AGENTS.md .claude/CLAUDE.md .claude/AGENTS.md; do
test -f "$dir/$name" && printf '%s\n' "$dir/$name"
done
test "$dir" = / && break
dir=$(dirname -- "$dir")
done
done実際の指示ファイルと、その@pathインポートを読んでください。相対インポートは記載されたファイルから解決されます。各PowerShell起動パスと祖先階層のシンボリックリンクやジャンクションをたどり、名前で指定された階層とリンク先階層の両方を監査します。指示ファイルのリンク先とclaudeMdExcludesパターンを確認します。.claude/settings.json、.claude/settings.local.json、ユーザー設定と管理対象設定、--settingsまたは--setting-sourcesの起動オプション、設定済みhook、各プロジェクトの信頼状態を確認します。CLAUDE_CONFIG_DIRはユーザー設定フォルダを変更できるため、~/.claudeと決めつける前に確認してください。作業領域への信頼を承認する前に、hookが実行できるコマンドを確認します。作業ディレクトリ外のインポートは承認を求める場合があり、拒否したものは期待どおりに現れません。設定マニュアルには各設定の供給元の階層と、信頼を待つプロジェクト設定が説明されています。
確認するのはProject instructionsの選択肢です。場所は/configまたは対応するユーザー/管理対象プラグイン設定です。現在の文書ではAGENTS.mdを、プロジェクトまたは祖先に条件を満たすCLAUDE.mdやCLAUDE.local.mdがない場合の条件付き代替として説明しています。claude-md-and-agents-mdは両方を読み込みます。AGENTS.mdの直接サポートは、バージョンと有効なプラグインに依存します。旧バージョンや一部設定では省略される場合があり、BIG CHANGEのAGENTS.mdの機能フラグに関する記事はそのバージョン固有の問題を扱っています。常に読み込むと思わず、実際のバージョン、設定、/contextの結果を使ってください。
記録するのは--add-dirの引数とCLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MDで、別々に扱います。--add-dirはファイルアクセスを広げますが、既定では追加ディレクトリのCLAUDE.mdを読み込みません。環境スイッチは追加ディレクトリの指示読み込みを有効にします。/memoryを使い、自動メモリは別経路として確認します。同じリポジトリのworktreeやサブディレクトリで共有される場合があり、保存場所も上書きできます。比較を解釈する前に実際の場所と内容を調べてください。認証情報や未公開の顧客情報を、指示例や公開記録に入れないでください。
起動前に、使用するのと同じshellで環境値を確認します。Bashの空値は未設定または空を意味し、PowerShellは存在する変数だけを表示します。shellの値だけでは設定ファイルの値を否定できないため、各セッション内で有効設定も確認してください。
Get-Item Env:CLAUDE_CONFIG_DIR,Env:CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD -ErrorAction SilentlyContinue | Select-Object Name,Valueprintf 'CLAUDE_CONFIG_DIR=%s\n' "${CLAUDE_CONFIG_DIR-}"
printf 'CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=%s\n' "${CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD-}"3. プロジェクトAで新しいセッションを開始する
記録するのはclaude --versionと正確な起動コマンドです。Aから新しいプロセスを開始し、--resumeや--continueは使いません。設定とhookの監査後にだけ信頼を承認します。/context を先に実行してからClaudeにBや入れ子のファイルを開くよう依頼します。メモリファイルとルールの正確なパスを記録し、一覧は含まれるファイルの確認に使い、注入順序を推測しないでください。/memoryで表示される個人、プロジェクト、自動メモリの項目と保存場所を調べ、その後セッションを終了します。
claude --version
Set-Location -LiteralPath $a -ErrorAction Stop
claudeclaude --version
cd -- "$a" && claudeClaude Code内では、/statusが有効な設定ソースを識別し、/permissionsが現在のツールルールと出典を表示します。指示一覧とともに記録してください。
/context
/memory
/status
/permissions
/exit監査した設定と除外に応じ、Aと共通祖先の適用対象指示が現れるはずです。B専用ファイルはAの起動階層に含まれないはずです。インポート、リンク、追加ディレクトリなどで現れたら、その仕組みを記録します。現れないことは、Bのファイルにアクセスできない証明ではありません。
4. Bで別セッションを開始し、入れ子のファイルを1つ読む
Bでは新しいClaude Codeプロセスを、同じインストール版とアカウント/プロバイダー経路で使います。入れ子を読む前に/contextと/memoryを記録します。Claudeには、承認済みで機密を含まない正確なファイルだけを読むよう依頼します。実際に読んだことをセッションで確認してから、/contextを再実行し、含まれるパスを比較します。マニュアルの読み込み規則では、Bのsubdir/CLAUDE.mdはClaudeが同じディレクトリの別ファイルにアクセスした後に文脈へ加わるとされます。ただし設定、除外、バージョン固有の挙動で結果が変わる場合があります。
Set-Location -LiteralPath $b -ErrorAction Stop
claudecd -- "$b" && claudeClaude Code内で、読み取り要求を置き換えるのは、承認済み対象の相対パスが異なる場合だけです。
/context
/memory
/status
/permissions
Read only subdir/README.md. Tell me whether that exact file was read; do not open other files or display its contents.
/context
/exitClaude Codeがツール権限を求めたり別の操作を提案したりすることがあります。承認済みの読み取りだけを許可し、ツールが実際にそのファイルを開いたことを確認します。読んだと主張する回答だけでは証拠として不十分です。
5. 一覧を比較し差異を説明する
非公開の表に、解決したAとBのパス、リポジトリルート、Claude Codeの版、アカウント/プロバイダー経路、起動コマンド、信頼状態、設定ソース、追加ディレクトリ、指示・ルールのパス、インポート、自動メモリの場所、そして3つの観察した/context一覧、つまりAの起動時、Bの読み取り前と後を記録します。期待する各ファイルを存在、欠落、未説明に分類します。顧客の指示テキストを公開報告へコピーしないでください。
期待するファイルがなければ、まず起動ディレクトリと実際のファイルパスを確認します。次にProject instructions設定、プラグイン/版、claudeMdExcludes、--setting-sources、インポートと外部インポート承認、ルールのパスパターン、シンボリックリンク、確認済みの入れ子読み取りを調べます。予期しないファイルは祖先、ユーザーまたは管理対象指示、インポート、ルール、hook、追加ディレクトリのメモリ読み込み、自動メモリをたどって調べます。共通祖先や個人指示は意図したものかもしれません。両方に適用すべきかは由来と内容で決まります。
指示や設定を変えるのは当該顧客の権限がある場合だけです。提案差分を確認し、既存の制約を保ち、変更後に両方の新規セッションで再観察します。説明できないパスや調査権限のない経路があれば顧客作業を止め、所有者や管理者にその具体的な不明点を解消してもらいます。
2つの起動一覧、Bの確認済み読み取り前後一覧、重要な予期しないパスすべての説明がそろえば完了です。そのセッションで観察した指示の所属を示すもので、機密性の境界、ファイルアクセスの分離、確実な遵守、モデルが指示を使った正確な順序を証明するものではありません。既存の会話を調べて続ける場合は、別のClaude Codeセッション文脈ガイドをご覧ください。
料金と使用制限はプラン、認証、プロバイダーに依存します。Anthropicの費用ガイドで現在の条件を確認してください。この記事は文書に基づき、BIG CHANGEは顧客ファイルの調査、A/Bセッション、モデル結果のテスト、時間や費用の測定をしていません。
出典と参考資料
- Anthropic「Claudeがプロジェクトを記憶する仕組み」:指示範囲、インポート、入れ子読み込み、
AGENTS.md、ルール、除外、追加ディレクトリ、自動メモリ、/memory。正確な選択肢はClaude Codeの版で変わり得ます。 - Anthropic「設定ファイルと優先順位」:ユーザー、プロジェクト、ローカル、管理対象設定。
/status、信頼、hook設定を含みます。 - Anthropic「権限を設定する」:
/permissionsは有効なツールルールと出典を示します。指示テキスト自体はツールアクセスを強制しません。 - Anthropic「コンテキストウィンドウを調べる」:
/contextは実行中の読み込み済みメモリファイルを示します。表示上の所属は注入順序の証明ではありません。 - Anthropic:セットアップ、費用、データ利用:インストールとアカウントの前提を確認し、利用経路別の費用とデータ利用の条件も読んでください。



