2
1

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.md が、自動要約のあと古い中身に戻っていた(2.1.310)。それでも新しいルールで動いた

2
Last updated at Posted at 2026-10-27

会話の途中で 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 を直していると、自動の要約の直後に古い中身が見えていた」という意味です。


測り方

  1. CLAUDE.md にルールを1つ書いて会話を始める
  2. 途中で、ルールの合言葉を OLD-7731 から NEW-4402 に書き換える(Claude に頼む場合と、エディタで直す場合の2通り)
  3. テキストファイルを何本も読ませて、作業の途中で自動の要約を起こす
  4. 要約のあと会話に戻った 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 value OLD-7731 is 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 以降に上げておけば、要約に頼らずに済みます。


関連記事


JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。

▶ コーポレートサイト

エンジニア採用も行っています。もしご興味あれば覗いてみてください。

▶ 採用サイト

2
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?