Markdown版
AI-translated from English; not yet reviewed by a fluent editor.
# 2つの顧客プロジェクトでClaude Codeの指示の適用範囲を確認する
> 2つのプロジェクトで新しいClaude Codeセッションが読み込む指示を比較し、許可されたファイル読み取り後に入れ子の指示ファイルがいつ文脈に加わるかを確認します。
By BIG CHANGE Editorial
Published: 2026-10-20T00:44:54.031Z
Updated: 2026-10-20T00:44:54.031Z
Canonical: https://bigchange.ai/blog/claude-code-client-project-instruction-scope-guide

AI-generated conceptual illustration by BIG CHANGE; no actual client files, Claude Code interface or tested result is depicted.
Claude Codeは複数の場所から同時にプロジェクト指示を読み込めます。2つの顧客プロジェクトを管理している場合、各ディレクトリで新しいセッションを開始すると、どの指示ファイルが実際に文脈へ入ったかを確認できます。有用な成果は記録した2組のファイル一覧です。隣り合うフォルダが顧客情報を分離すると仮定することではありません。
## 大きな変化
**変わったこと:** この手順では、Claude Codeの文書化された指示階層を、既存の許可された2つのプロジェクトディレクトリで繰り返せる比較にします。起動時に読み込まれたファイルを記録し、許可された読み取り後に入れ子の指示ファイルが現れるかを確認します。
**重要な理由:** 共通の親ディレクトリ、個人指示、インポート、ルール、設定は両方のプロジェクトに影響し得ます。`/context`は実行中のセッションに読み込まれたメモリファイルを示すため、顧客の作業前に予期しないパスを調べられます。
**注意点:** 読み込まれた指示はClaudeのファイルアクセスを制限せず、すべての指示に従う保証にもなりません。顧客の内容を選択したプロバイダーへ送信する前に、実際のアカウント、権限、インポート、hook、データ利用条件を確認してください。
## 必要なもの
この手順は、2つの**既存の**顧客リポジトリとClaude Code設定を調査する権限がある開発者向けです。使用予定の具体的な内容を選択したClaudeアカウントまたはプロバイダーへ送信するには、別途承認を得てください。ローカルファイルの編集権限だけでは決まりません。端末、インストール済みClaude Code、利用可能なアカウントまたはプロバイダー、一方のプロジェクトのサブディレクトリ内にある機密情報を含まない既存ファイルが必要です。利用経路に対応するAnthropicの[セットアップ](https://code.claude.com/docs/en/setup)、[費用](https://code.claude.com/docs/en/costs)、[データ利用](https://code.claude.com/docs/en/data-usage)の文書を確認してください。
次の構成は確認すべきパスを示しており、新しい顧客プロジェクトを作る指示ではありません。コマンド内の例示パスは、すべて実際の許可されたパスへ置き換えてください。親ディレクトリの`CLAUDE.md`は任意で、両方のプロジェクトで承認済みの指示だけを含めます。入れ子のファイルと無害な文書は、選択したアカウントのデータ経路で扱えるものでなければなりません。
```text
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 target
```
## 1. 2つのプロジェクトパスを解決する
使うのは**どちらか一方の**PowerShellまたはBashです。変数に実際の2つのディレクトリを設定します。検査は既存パスを要求し、解決されたパス文字列を比較して、Bの読み取り対象が存在することを確認します。PowerShellの`Resolve-Path`はシンボリックリンクやジャンクションの別名を保持する場合があり、文字列の違いだけでは物理的に別のプロジェクトと証明できません。両方の起動パスとその祖先ディレクトリのリンクやジャンクションを調べ、リンク先をたどり、AとBが本当に異なることを確認してから進みます。パス、リンク先の確認、後の文脈一覧を非公開の作業記録に残してください。
```powershell
$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
$target
```
```bash
a=$(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/`ファイルも確認します。[メモリのマニュアル](https://code.claude.com/docs/en/memory)によれば、見つかった`CLAUDE.md`ファイルは連結され、近いファイルが祖先のテキストを消すわけではありません。入れ子の`CLAUDE.md`は通常、Claudeが同じディレクトリの別ファイルを読み書きまたは編集した後に読み込まれます。パスを限定したルールは、該当するファイルへのアクセス時に読み込まれることがあります。
このコマンドはパスだけを表示し、内容を出さずに祖先の一覧を作ります。見つかったファイルは、それぞれの所有者の権限の下で調べてください。両方の変数で繰り返します。Bashのループは自動的に両方を扱います。
```powershell
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
}
}
```
```bash
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が実行できるコマンドを確認します。作業ディレクトリ外のインポートは承認を求める場合があり、拒否したものは期待どおりに現れません。[設定マニュアル](https://code.claude.com/docs/en/settings)には各設定の供給元の階層と、信頼を待つプロジェクト設定が説明されています。
確認するのは**Project instructions**の選択肢です。場所は`/config`または対応するユーザー/管理対象プラグイン設定です。現在の文書では`AGENTS.md`を、プロジェクトまたは祖先に条件を満たす`CLAUDE.md`や`CLAUDE.local.md`がない場合の条件付き代替として説明しています。`claude-md-and-agents-md`は両方を読み込みます。`AGENTS.md`の直接サポートは、バージョンと有効なプラグインに依存します。旧バージョンや一部設定では省略される場合があり、BIG CHANGEの[AGENTS.mdの機能フラグに関する記事](https://bigchange.ai/blog/claude-code-agents-md-telemetry-feature-flags)はそのバージョン固有の問題を扱っています。常に読み込むと思わず、実際のバージョン、設定、`/context`の結果を使ってください。
記録するのは`--add-dir`の引数と`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`で、別々に扱います。`--add-dir`はファイルアクセスを広げますが、既定では追加ディレクトリの`CLAUDE.md`を読み込みません。環境スイッチは追加ディレクトリの指示読み込みを有効にします。`/memory`を使い、自動メモリは別経路として確認します。同じリポジトリのworktreeやサブディレクトリで共有される場合があり、保存場所も上書きできます。比較を解釈する前に実際の場所と内容を調べてください。認証情報や未公開の顧客情報を、指示例や公開記録に入れないでください。
起動前に、使用するのと同じshellで環境値を確認します。Bashの空値は未設定または空を意味し、PowerShellは存在する変数だけを表示します。shellの値だけでは設定ファイルの値を否定できないため、各セッション内で有効設定も確認してください。
```powershell
Get-Item Env:CLAUDE_CONFIG_DIR,Env:CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD -ErrorAction SilentlyContinue | Select-Object Name,Value
```
```bash
printf '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`で表示される個人、プロジェクト、自動メモリの項目と保存場所を調べ、その後セッションを終了します。
```powershell
claude --version
Set-Location -LiteralPath $a -ErrorAction Stop
claude
```
```bash
claude --version
cd -- "$a" && claude
```
Claude Code内では、`/status`が有効な設定ソースを識別し、`/permissions`が現在のツールルールと出典を表示します。指示一覧とともに記録してください。
```text
/context
/memory
/status
/permissions
/exit
```
監査した設定と除外に応じ、Aと共通祖先の適用対象指示が現れるはずです。B専用ファイルはAの起動階層に含まれないはずです。インポート、リンク、追加ディレクトリなどで現れたら、その仕組みを記録します。現れないことは、Bのファイルにアクセスできない証明ではありません。
## 4. Bで別セッションを開始し、入れ子のファイルを1つ読む
Bでは**新しい**Claude Codeプロセスを、同じインストール版とアカウント/プロバイダー経路で使います。入れ子を読む前に`/context`と`/memory`を記録します。Claudeには、承認済みで機密を含まない正確なファイルだけを読むよう依頼します。実際に読んだことをセッションで確認してから、`/context`を再実行し、含まれるパスを比較します。[マニュアルの読み込み規則](https://code.claude.com/docs/en/memory)では、Bの`subdir/CLAUDE.md`はClaudeが同じディレクトリの別ファイルにアクセスした後に文脈へ加わるとされます。ただし設定、除外、バージョン固有の挙動で結果が変わる場合があります。
```powershell
Set-Location -LiteralPath $b -ErrorAction Stop
claude
```
```bash
cd -- "$b" && claude
```
Claude Code内で、読み取り要求を置き換えるのは、承認済み対象の相対パスが異なる場合だけです。
```text
/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
/exit
```
Claude Codeがツール権限を求めたり別の操作を提案したりすることがあります。承認済みの読み取りだけを許可し、ツールが実際にそのファイルを開いたことを確認します。読んだと主張する回答だけでは証拠として不十分です。
## 5. 一覧を比較し差異を説明する
非公開の表に、解決したAとBのパス、リポジトリルート、Claude Codeの版、アカウント/プロバイダー経路、起動コマンド、信頼状態、設定ソース、追加ディレクトリ、指示・ルールのパス、インポート、自動メモリの場所、そして3つの観察した`/context`一覧、つまりAの起動時、Bの読み取り前と後を記録します。期待する各ファイルを存在、欠落、未説明に分類します。顧客の指示テキストを公開報告へコピーしないでください。
期待するファイルがなければ、まず起動ディレクトリと実際のファイルパスを確認します。次にProject instructions設定、プラグイン/版、`claudeMdExcludes`、`--setting-sources`、インポートと外部インポート承認、ルールのパスパターン、シンボリックリンク、確認済みの入れ子読み取りを調べます。予期しないファイルは祖先、ユーザーまたは管理対象指示、インポート、ルール、hook、追加ディレクトリのメモリ読み込み、自動メモリをたどって調べます。共通祖先や個人指示は意図したものかもしれません。両方に適用すべきかは由来と内容で決まります。
指示や設定を変えるのは当該顧客の権限がある場合だけです。提案差分を確認し、既存の制約を保ち、変更後に両方の新規セッションで再観察します。説明できないパスや調査権限のない経路があれば顧客作業を止め、所有者や管理者にその具体的な不明点を解消してもらいます。
2つの起動一覧、Bの確認済み読み取り前後一覧、重要な予期しないパスすべての説明がそろえば完了です。そのセッションで観察した指示の所属を示すもので、機密性の境界、ファイルアクセスの分離、確実な遵守、モデルが指示を使った正確な順序を証明するものではありません。既存の会話を調べて続ける場合は、別の[Claude Codeセッション文脈ガイド](https://bigchange.ai/blog/claude-code-session-context-continue-guide)をご覧ください。
料金と使用制限はプラン、認証、プロバイダーに依存します。Anthropicの[費用ガイド](https://code.claude.com/docs/en/costs)で現在の条件を確認してください。この記事は文書に基づき、BIG CHANGEは顧客ファイルの調査、A/Bセッション、モデル結果のテスト、時間や費用の測定をしていません。
## 出典と参考資料
- [Anthropic「Claudeがプロジェクトを記憶する仕組み」](https://code.claude.com/docs/en/memory):指示範囲、インポート、入れ子読み込み、`AGENTS.md`、ルール、除外、追加ディレクトリ、自動メモリ、`/memory`。正確な選択肢はClaude Codeの版で変わり得ます。
- [Anthropic「設定ファイルと優先順位」](https://code.claude.com/docs/en/settings):ユーザー、プロジェクト、ローカル、管理対象設定。`/status`、信頼、hook設定を含みます。
- [Anthropic「権限を設定する」](https://code.claude.com/docs/en/permissions):`/permissions`は有効なツールルールと出典を示します。指示テキスト自体はツールアクセスを強制しません。
- [Anthropic「コンテキストウィンドウを調べる」](https://code.claude.com/docs/en/context-window):`/context`は実行中の読み込み済みメモリファイルを示します。表示上の所属は注入順序の証明ではありません。
- [Anthropic:セットアップ、費用、データ利用](https://code.claude.com/docs/en/setup):インストールとアカウントの前提を確認し、利用経路別の[費用](https://code.claude.com/docs/en/costs)と[データ利用](https://code.claude.com/docs/en/data-usage)の条件も読んでください。
## Sources
- [Anthropic:Claudeがプロジェクトを記憶する仕組み](https://code.claude.com/docs/en/memory) — 管理対象、ユーザー、プロジェクト、ローカル指示の一次マニュアル。祖先と入れ子の読み込み、ファイルの加算、インポート、ルール、AGENTS.mdの条件付き代替と版・設定の制限、除外、追加ディレクトリへのアクセスとメモリ読み込みの違い、自動メモリを扱います。2つの顧客セッションの観察結果ではなく文書化された挙動です。
- [Anthropic:設定ファイルと優先順位](https://code.claude.com/docs/en/settings) — 設定階層、CLAUDE_CONFIG_DIR、/statusによる設定ソースの確認、ローカル設定、信頼、hookの一次マニュアル。実際の設定と既存hookは読者自身が調べる必要があり、顧客の環境はここでは調査していません。
- [Anthropic:権限を設定する](https://code.claude.com/docs/en/permissions) — /permissionsを、有効なツールルールと設定ファイルの出典を見る機能として説明します。指示ファイルは自らアクセスを強制しません。読者は許可された入れ子ファイルの読み取りだけを承認してください。
- [Anthropic:コンテキストウィンドウを調べる](https://code.claude.com/docs/en/context-window) — /contextによる読み込み済みメモリファイルの確認と、/memoryによるメモリ調査を説明します。この記事で提案する観察対象はファイル一覧への所属であり、表示順序をモデルへの注入順序とは扱いません。
- [Anthropic:高度なセットアップ](https://code.claude.com/docs/en/setup) — 読者自身が操作するClaude Codeセッションの、インストールとアカウント/プロバイダーの前提です。BIG CHANGEはインストールもセッションも実施していません。
- [Anthropic:費用を効果的に管理する](https://code.claude.com/docs/en/costs) — 料金と制限はプラン、認証、プロバイダーにより異なります。固定の実習料金、割当量、時間短縮、実測使用量を主張していません。
- [Anthropic:データ利用](https://code.claude.com/docs/en/data-usage) — 個人向け、商用、プロバイダー経由でデータの扱いは異なります。具体的なプロジェクト内容をモデルへ送る前に顧客の承認が必要です。普遍的なプライバシー保証は主張しません。
- [BIG CHANGE:文脈を調べてClaude Codeセッションを続ける方法](https://bigchange.ai/blog/claude-code-session-context-continue-guide) — 既存セッションの継続に関する関連記事です。2プロジェクトの新規セッションで指示を比較する今回の作業とは異なり、新しい手順の出典ではありません。
- [BIG CHANGE:テレメトリー無効時にClaude CodeがAGENTS.mdを省略することがある](https://bigchange.ai/blog/claude-code-agents-md-telemetry-feature-flags) — 特定版の機能フラグに関する関連記事です。この記事は現在の公式マニュアルと読者の実際の版・設定・確認結果を使い、AGENTS.mdを無条件に読み込むとは述べません。
BIG CHANGEニュースレター
大局を、あなたのペースで。
AI とロボティクスの最新記事、注目すべき変化、活用できる実用的なアイデア。日刊ブリーフィング、週刊ダイジェスト、月刊展望から選べます。
次回の配信予定(UTC): . 確認後、次回の配信予定時刻に最初のニュースレターが届きます。