AI最新ニュース 2026.06.04

Claude Codeコンパクション後にCLAUDE.mdルールが消える問題【2026年版】原因と5つの対策

タグ:Claude Code / CLAUDE.md / コンパクション / トラブルシューティング / 生成AI

コンパクション問題のメカニズム

セッション開始 → CLAUDE.md読み込み ← ここではルールを把握
     ↓(長い作業が続く)
コンテキスト80%消費 → 自動コンパクション発生

CLAUDE.mdのルールが要約から消える → ルールを無視し始める
     ↓(対策なしでは危険)
禁止されていたはずの操作を実行してしまう

対策1: 重要ルールをシステムプロンプトに埋め込む

# guarded_claude.py
# CLAUDE.mdを毎回システムプロンプトに追加してAPIを呼ぶ

import anthropic
from pathlib import Path
import os

client = anthropic.Anthropic()

def load_all_claude_md(project_dir: str = ".") -> str:
    """プロジェクト階層とグローバルのCLAUDE.mdを全て読む"""
    rules = []
    current = Path(project_dir).resolve()
    
    while current != current.parent:
        for filename in ["CLAUDE.md", "AGENTS.md"]:
            md = current / filename
            if md.exists():
                rules.insert(0, f"# {md}\n{md.read_text()}")
        current = current.parent
    
    global_md = Path.home() / ".claude" / "CLAUDE.md"
    if global_md.exists():
        rules.insert(0, f"# グローバルルール\n{global_md.read_text()}")
    
    return "\n\n---\n\n".join(rules)

def ask_claude_with_rules(question: str, project_dir: str = ".") -> str:
    """CLAUDE.mdのルールを常にシステムプロンプトに含めて呼ぶ"""
    rules = load_all_claude_md(project_dir)
    
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=2048,
        system=f"""あなたはコーディングアシスタントです。
以下のプロジェクトルールを必ず守ってください:

{rules}

ルールに違反しそうな場合は「確認: [操作内容]をしてよいですか?」と必ず確認してから実行してください。""",
        messages=[{"role": "user", "content": question}]
    )
    return response.content[0].text

対策2: 定期的なルールリマインダー

# セッション中に定期的にCLAUDE.mdを再確認させる
claude "CLAUDE.mdのルールを確認して、現在のセッションで守れているか教えてください"

# コンパクション後にルールを再注入する
claude "セッション継続。CLAUDE.mdを再読込して、以下の作業を再開してください: [タスク内容]"

対策3: CLAUDE.mdの重要ルールを強調する

<!-- CLAUDE.md ← コンパクション後も残りやすい書き方 -->

# ⚠️ 絶対ルール(セッション中いつでも有効)

> **注意: これらのルールはコンパクション後も常に有効です**

1. production/ フォルダを変更しない(例外なし)
2. git push --force を実行しない
3. APIキー・パスワードをコードに書かない

## ルールの確認方法
不明な場合: 「このプロジェクトで禁止されている操作を教えて」と質問してください

対策4: セッションをこまめに区切る

# 長い作業を始める前にClaude Codeを新規起動
# → CLAUDE.mdが再読み込みされる

# 目安: 以下のタイミングで新セッションを開始
# - 大きな機能実装の前
# - ブランチを切り替えるとき
# - コンテキストが70%を超えたとき(/status で確認)
claude  # 新規セッション開始

対策5: ccusageで使用量を監視する

# npm install -g ccusage でインストール
ccusage  # 今日の使用量とコンテキスト残量を確認

# 残量が少なくなったらアラート
ccusage --alert-threshold 0.8

あわせて読みたい

参考ソース