Claude Code 可以同時從多個位置載入專案指令。如果你維護兩個客戶專案,在各自目錄啟動全新工作階段,就能查看哪些指令檔案實際進入各自的上下文。有用的結果是兩份記錄下來的檔案清單,而不是假定同層資料夾就能隔離客戶資訊。

關鍵改變

改變了什麼: 本指南將 Claude Code 文件中的指令階層,轉為可重複執行的比較,針對兩個現有且已授權的專案目錄。先記錄啟動時載入的檔案,再檢查獲准讀取檔案後是否出現巢狀指令檔案。

為何重要: 共同的上層目錄、個人指令、匯入、規則或設定都可能影響兩個專案。/context會顯示執行中工作階段已載入哪些記憶檔案,因此可以在處理客戶工作前調查意外路徑。

應留意什麼: 載入的指令不會限制 Claude 可以存取哪些檔案,也不保證它遵守每條指令。向選定供應商傳送客戶內容前,請審查實際帳戶、權限、匯入、hook 與資料使用條款。

所需條件

本流程適用於有權檢查兩個現有客戶儲存庫及其 Claude Code 設定的開發者。還須另行取得授權,才能把打算使用的具體專案內容傳送到所選 Claude 帳戶或供應商。只有本機檔案編輯權限,並不代表允許傳送。你需要終端機存取、已安裝的 Claude Code、符合條件的帳戶或供應商,以及某個專案子目錄中現有且不含敏感資訊的檔案。請查閱 Anthropic 的安裝、費用與資料使用文件,確認所用存取途徑的要求。

下方目錄結構顯示要確認的路徑,並非要求新建客戶專案。請將指令中的每個示意路徑換成真實且已授權的路徑。上層目錄的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. 解析兩個專案路徑

請擇一使用 PowerShell 或 Bash。將變數設為兩個實際目錄。檢查要求路徑已存在、比較解析後的路徑字串,並確認 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
Terminal
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,包括該目錄與一路到檔案系統根目錄的各層上層目錄。也要檢查作業系統的受管理指令、~/.claude/CLAUDE.md、使用者規則與專案的.claude/rules/檔案。記憶手冊說明找到的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
  }
}
Terminal
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中的選項,或對應的使用者/受管理外掛設定。目前 Claude Code 文件將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 值不能排除設定檔中的值,因此每個工作階段內還要確認生效設定。

PowerShell
Get-Item Env:CLAUDE_CONFIG_DIR,Env:CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD -ErrorAction SilentlyContinue | Select-Object Name,Value
Terminal
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
Terminal
claude --version
cd -- "$a" && claude

在 Claude Code 內,/status識別生效設定的來源,/permissions顯示目前工具規則與來源。將它們與指令清單一起記錄:

Text
/context
/memory
/status
/permissions
/exit

依已審查設定和排除項目,應該出現適用於 A 和共同上層目錄的指令。B 專屬檔案不應屬於 A 的啟動階層。如果經匯入、連結、新增目錄或其他管道出現,請記錄機制。未出現不代表 B 的檔案無法存取。

4. 在 B 啟動獨立工作階段,再讀取巢狀檔案

在 B 使用全新Claude Code 程序,維持相同安裝版本與帳戶/供應商途徑。任何巢狀讀取前先記錄/context與/memory。只要求 Claude 讀取確切、已核准且無敏感資訊的檔案。在工作階段確認確實讀取後,再執行/context,比較包含的路徑。手冊的載入規則預期 B 的subdir/CLAUDE.md會在 Claude 存取同目錄的另一檔案後加入上下文,除非設定、排除項目或特定版本行為改變結果。

PowerShell
Set-Location -LiteralPath $b -ErrorAction Stop
claude
Terminal
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 版本、帳戶/供應商途徑、啟動指令、信任狀態、設定來源、額外目錄、指令與規則路徑、匯入、自動記憶位置,以及三份實際觀察的/context清單:A 啟動時、B 讀取前、B 讀取後。把每個預期檔案標為存在、缺少或未解釋。不要將客戶指令文字複製到公開報告。

若缺少預期檔案,先確認啟動目錄和實際檔案路徑。再檢查 Project instructions 設定、外掛/版本、claudeMdExcludes、--setting-sources、匯入及外部匯入核准、規則路徑模式、符號連結和已確認的巢狀讀取。出現意外檔案時,追蹤上層目錄、使用者或受管理指令、匯入、規則、hook、額外目錄記憶載入與自動記憶。共同上層目錄或個人指令可能是有意安排;是否適用兩個專案,取決於來源與內容。

只有取得相關客戶授權才能修改指令或設定。檢查提議差異,保留現有限制,變更後重新執行兩次全新工作階段觀察。若無法解釋某路徑,或無權查看某個來源管道,請暫停客戶工作,讓擁有者或管理員解決該具體疑點。

取得兩份啟動清單、B 已確認的巢狀讀取前後清單,並解釋所有重要意外路徑後,練習才完成。它確認的是這些工作階段觀察到的指令成員,而不是保密邊界、檔案存取隔離、保證服從,或模型使用指令的確切順序。若要查看並繼續現有對話,請參閱我們的Claude Code 工作階段上下文指南。

帳戶費用與用量限制取決於方案、驗證方式與供應商。Anthropic 的費用指南提供目前條款。本文依文件編寫:BIG CHANGE 未查看客戶檔案、執行 A/B Claude 工作階段、測試模型結果,也未測量時間或費用。

來源與延伸閱讀