0
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 の auto compact が 100% でデッドロック——再現確認と3つの回避策

0
Posted at

環境

  • Claude Code(Max プラン、2026-05 〜現在 daily 運用)
  • 複数リポジトリ横断セッション(sns-automation / masatoman.net)
  • OS: macOS / Linux(GitHub Actions 経由含む)

何が起きたか

Claude Code のコンテキスト使用量が 100% に近づくと、auto compact(自動コンテキスト圧縮) が走ります。圧縮後に Claude が「さっき決めたこと」を忘れ、前の指示と違うコードを生成し始める事象を複数回確認しました。

GitHub Issues でも独立した複数の報告があります(#66144 等)。

疑った原因(外れ)

最初は「モデルの調子が悪い日がある」と思っていましたが、関係ありませんでした。

次に「CLAUDE.md の設定が悪い」を疑いましたが、セッション頭では正常だったため原因ではありませんでした。

実際の原因

コンテキストが 100% に達した後の auto compact です。

compact の仕組み:

  1. 会話履歴を自動要約に置き換える
  2. 以降の Claude は「要約から推測した前提」で動く
  3. 要約には直前の詳細な指示・制約が入らないことがある

結果として、compact 前と compact 後で Claude の前提がズレます。特に長時間のルーティン実行中(複数リポジトリ横断など)に起きやすい。

回避策1:PreCompact hook でログを退避する

compact が走る直前に、セッションの生ログを _inbox/ にコピーする hook を実装しました。

# ~/.claude/hooks/precompact-backup.sh
#!/bin/bash
INBOX="$HOME/_inbox/claude-sessions"
mkdir -p "$INBOX"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
SESSION_LOG="$HOME/.claude/current-session.jsonl"

if [ -f "$SESSION_LOG" ]; then
  cp "$SESSION_LOG" "$INBOX/session_${TIMESTAMP}.jsonl"
  echo "PreCompact backup: $INBOX/session_${TIMESTAMP}.jsonl"
fi
// ~/.claude/settings.json
{
  "hooks": {
    "PreCompact": [
      {
        "type": "command",
        "command": "bash ~/.claude/hooks/precompact-backup.sh"
      }
    ]
  }
}

compact 後に挙動がズレたら _inbox/ の最新ファイルを確認し、失われた前提を Claude に再共有できます。

回避策2:コンテキスト 80% で手動 /compact を打つ

auto compact に任せず、自分でタイミングを制御します。

コンテキスト使用量 アクション
〜60% 通常作業
60〜80% 次フェーズに必要な情報を整理し始める
80%〜 手動 /compact + 「次のタスクは〇〇」を明示して実行
100% auto compact が走る。状態 drift のリスク高

手動 compact の前に「次に続けるタスクは〇〇です。この前提を要約に含めてください」と伝えると、情報損失を減らせます。

回避策3:1タスク1セッション設計

根本解は「1セッション内のスコープを小さくする」ことです。

❌ 悪い例:調査→設計→実装→push を1セッションで完結
✅ 良い例:「調査セッション」と「実装セッション」に分割

CLAUDE.md に「不要ファイルを読まない」制約を書いておくとコンテキスト消費が減り、compact 到達を遅らせられます。

まとめ

  • auto compact 後の state drift は「モデルの調子」ではなく仕様上の挙動
  • PreCompact hook で「圧縮前ログの退避」を自動化する
  • 80% で手動 /compact を打って「要約内容を自分でコントロール」する
  • ルーティンは1実行のスコープを絞って構造で避ける

AI ツールを業務に組み込む設計の実験ログを書いています。 https://masatoman.net

0
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
0
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?