2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code の CLAUDE.md が読み込まれたかを /context all で確かめる(Windows・PowerShell)

2
Posted at

CLAUDE.md を書いたのに、Claude Code が読んでいるのか分からない。
この記事では、読み込まれたファイルを /context all で一覧し、効き目を指示書なしの対照と比べる手順を示します。
Git Bash で /context all が別の文字列に変わる問題も、実測して回避策を確かめました。

要約

  1. claude -p "/context all" を対象フォルダで実行すると、### Memory Files に読み込まれた指示書が表で出る
  2. 置き場所が合っていれば、CLAUDE.md は Project、CLAUDE.local.md は Local として並ぶ
  3. 作業フォルダ直下以外(例: docs/CLAUDE.md)は、起動時の表に載らなかった
  4. Git Bash では /context all がパスに変換される。MSYS_NO_PATHCONV=1 を付けると動いた

検証した環境

項目 値
OS Windows 11 Pro(Windows NT 10.0.26300.0)
シェル PowerShell 7.6.4。4 章の確認だけ Git Bash
Claude Code 2.1.322
モデル 効き目の確認は --model sonnet を指定

Mac と Linux では実行していません。
結果はいずれも 1 回ずつの実行です。同じ依頼でも返答の細部は変わりえます。

1. 練習用リポジトリを作る

作業フォルダの外(%TEMP% の下)に、空のリポジトリを作ります。

$d = Join-Path $env:TEMP 'p488-demo'
New-Item -ItemType Directory $d | Out-Null
Set-Location $d
git init -q

CLAUDE.md には、全体設定に無い決まりを 1 つだけ書きます。
効き目を見分けるためです。

CLAUDE.md
# demo
- 返事の最後に必ず「確認済み: <実行したコマンド>」の1行を付ける
<!-- 自分用メモ -->
CLAUDE.local.md
- ローカル専用: 変数名は snake_case

2. 読み込まれたファイルを一覧する

claude -p "/context all" --no-session-persistence --model sonnet --output-format text

出力のうち ### Memory Files の表が、読み込まれた指示書です。
手元の環境では、ユーザー単位の全体設定が 3 行並びました。
下の抜粋では、その 3 行を省いています。

| Type    | Path                                              | Tokens |
| Project | C:\Users\…\Temp\p488-demo\CLAUDE.md                | 46     |
| Local   | C:\Users\…\Temp\p488-demo\CLAUDE.local.md          | 25     |

Project と Local の行があれば、そのファイルは読まれています。
行が無ければ、置き場所かファイル名を疑います。

3. 作業フォルダ直下以外は表に載らない

docs/CLAUDE.md を足して、同じコマンドを実行しました。

New-Item -ItemType Directory docs | Out-Null
"- docs専用ルール" | Set-Content docs\CLAUDE.md -Encoding utf8
claude -p "/context all" --no-session-persistence --model sonnet --output-format text |
  Select-String 'p488-demo'

表に出た行は、直下の CLAUDE.md と CLAUDE.local.md の 2 行だけでした。
docs/CLAUDE.md は載りませんでした。
サブフォルダの CLAUDE.md が、そのフォルダのファイルを扱うときに読まれるかどうかは、この実行では確かめていません。

起動時の表に載らないことと、読まれないことは別です。
この記事で言えるのは「起動時の /context all の表には載らなかった」までです。

4. Git Bash では /context all が変換される

同じ claude -p "/context all" を Git Bash から実行すると、Claude Code は引数を C:/Users/…/Git/context all のようなパスとして受け取り、/context は組み込みコマンドなので実行できない、と答えました。
表は出ませんでした。
Git Bash(MSYS)が、先頭が / の引数を Windows のパスへ変換するためです。

MSYS_NO_PATHCONV=1 を付けると、変換が止まり、表が出ました。

MSYS_NO_PATHCONV=1 claude -p "/context all" --no-session-persistence --model sonnet

確認として、出力に練習用フォルダのパスが 2 行(CLAUDE.md と CLAUDE.local.md)含まれることを grep -c で数えました。
PowerShell から実行するなら、この対策は要りません。

5. 指示が効いているかを対照で見る

読み込まれることと、従うことは別です。
CLAUDE.md の決まり(返事の最後に「確認済み:」の 1 行を付ける)を使って、あり・なしを比べました。

claude -p "このリポジトリにあるファイルを一覧で教えて。" --model sonnet --no-session-persistence --allowedTools "Glob" "Bash(ls:*)"
  • 指示書あり: 返答の最後に 確認済み: git ls-files; echo ---; git ls-files --others --exclude-standard が付いた
  • 指示書なし(空のリポジトリ、CLAUDE.md なし): この行は付かなかった

全体設定は両方で読み込まれています。
全体設定に無い語句を選んだので、差は練習用の CLAUDE.md によるものと読めます。
ただし各 1 回の実行です。回数を重ねた確率は測っていません。

ハマりどころ

  • /context all の出力は、全体設定やツールの一覧も含めて長い。Select-String で自分のフォルダのパスに絞る
  • HTML コメント(<!-- -->)の中身が読まれるかは、この記事では確かめていない
  • 空のリポジトリでの対照は、ファイルが無いことで返答自体が変わる。本格的に比べるなら、同じ中身のリポジトリで CLAUDE.md だけ外す

※この検証を含む個人開発の記録は note の入口記事にまとめています(無料)。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?