会話の途中で CLAUDE.md を直すことは、よくあると思います。では、長い作業の途中で自動の要約が走ったあとも、直したルールは生きているのか。
Claude Code 2.1.311(2026-10-26)で、ここに関わる不具合が直りました。直る前の 2.1.310 と、直ったあとの 2.1.311 で、24回測りました。
会話の途中で CLAUDE.md の合言葉を OLD → NEW に書き換え、作業の途中で自動の要約を起こした
2.1.310 2.1.311
要約のあと、会話に戻った CLAUDE.md 古い中身(29/29) 新しい中身(27/27)
Claude が従ったルール 新しいルール 新しいルール
(判定できた回はすべて)
2.1.310 では、要約のあとに古い CLAUDE.md が戻っていました。それでも Claude は新しいルールで動きました。 要約の中に新しいルールが書いてあり、そちらが優先されたと考えられます。
検証環境: Windows 10 / Claude Code 2.1.310・2.1.311 を隔離導入 / 対話モードを自動操作 / Sonnet 5.5 /
CLAUDE_CODE_AUTO_COMPACT_WINDOW=100000/ 測定は 2026-10-27
自動の要約と CLAUDE.md の関係
会話が長くなると、Claude Code は自動で会話を要約し、要約に置き換えます。このとき CLAUDE.md はファイルから読み直され、会話に入れ直されます(ドキュメント memory)。
2.1.311 の修正文はこうです。
Fixed Claude seeing stale MEMORY.md and CLAUDE.md content right after automatic compaction when those files were edited earlier in the session
「会話の途中で CLAUDE.md を直していると、自動の要約の直後に古い中身が見えていた」という意味です。
測り方
- CLAUDE.md にルールを1つ書いて会話を始める
- 途中で、ルールの合言葉を
OLD-7731からNEW-4402に書き換える(Claude に頼む場合と、エディタで直す場合の2通り) - テキストファイルを何本も読ませて、作業の途中で自動の要約を起こす
- 要約のあと会話に戻った CLAUDE.md の中身と、Claude が従った合言葉を、会話の記録で確かめる
ルールは2種類です。「返事の最後の行に合言葉を書く」と「Python のファイルを作るときは、1行目に # owner: 合言葉 と書く」。後者では、ファイルを読み終えたあとに hello.py を作らせました。
版・直し方ごとに3回ずつ、計24回です。要約を早く起こすため、要約が走る大きさを最小の10万トークンにしています。
2.1.310 では、作業の途中の要約で古い中身が戻っていた
エディタで直した回(2.1.310)の流れです。
会話の始め CLAUDE.md(OLD)が入る
エディタで直す 次の1通で「ファイルが編集された」という通知(NEW)が届く
ファイルを読む 要約 → CLAUDE.md(OLD)が戻る
要約 → CLAUDE.md(OLD)が戻る
hello.py を作る 1行目は # owner: NEW-4402
ファイルを読む途中で要約が走った29回は、すべて直す前の中身が戻りました。 Claude に直させた場合も同じです。
古い中身が残るのは、そのやり取り(ターン)が終わるまでです。次にこちらが1通送ると、新しい中身に替わりました。また、こちらの1通を受けてすぐ要約が走った4回は、2.1.310 でも新しい中身でした。
2.1.311 では、作業の途中の27回すべてで新しい中身が戻っています。
古い中身が戻っても、新しいルールで動いた理由
hello.py の1行目は、2.1.310 でも5回とも # owner: NEW-4402 でした(1回は作る前に時間切れ)。
要約の本文を見ると、63本すべてに新しい合言葉が書かれていました。エディタで直した回の要約には、こうあります。
Project CLAUDE.md rule, updated on disk during the session: new Python files start with the line
# owner: NEW-4402. The earlier valueOLD-7731is superseded.
同じ要約には「古いルールと新しいルールがぶつかったので、ファイルの変更を今の状態として扱った」という一文もありました。戻ってきた CLAUDE.md より、要約に残った変更のほうが優先されていました。
エディタで直した CLAUDE.md も、次の1通から効いた
ドキュメント(prompt-caching)には、会話の途中で直した CLAUDE.md は、その会話では効かないと書かれています。
Editing them mid-session does not invalidate the cache, but the edit also doesn't apply.
ところが実際は、エディタで直したあとの最初の返事から新しい合言葉になりました(返事の最後に合言葉を書くルールで、6回とも)。
会話の記録を見ると、その1通に「ファイルが編集された」という通知(edited_text_file)が、新しい中身つきで入っていました。最初に読んだ CLAUDE.md は古いままでも、変更はこの通知で Claude に届いていました。
言えないこと
- Windows・Sonnet 5.5 で、各条件3回ずつです
- ルールは合言葉という分かりやすいものです。要約が変更を書き落とすような、目立たないルールでは試せていません
- 要約を早く起こすため、要約が走る大きさを最小にしました。そのため24回中8回で、ファイルを読むターンが「Autocompact is thrashing」というエラーで終わっています
- MEMORY.md は試していません
まとめ
- 2.1.310 では、作業の途中で自動の要約が走ると、直す前の CLAUDE.md が会話に戻っていた(29回すべて)。 2.1.311 で直った
- それでも Claude は新しいルールで動いた。 要約の中に新しいルールが書いてあった(63本すべて)
- エディタで直しても、次の1通から効いた(ドキュメントの説明とは違う)
古い中身が戻って困るのは、要約が変更を書き落としたときだと思われます(今回は一度もなく、試せていません)。2.1.311 以降に上げておけば、要約に頼らずに済みます。
関連記事
- CLAUDE.md の指示は先頭に書くべきか。144回測ったら、効いていたのは位置ではなく見出しだった — CLAUDE.md の書き方の回
- Claude Code の長い会話は、閉じずに席を外したほうが安かった。1時間後に戻った費用は閉じた場合の1割 — 自動の要約で何が残るかを見た回
JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
エンジニア採用も行っています。もしご興味あれば覗いてみてください。
▶ 採用サイト