When your conversation with Claude gets too long, it autocompacts - summarizing older parts to free up space. But compaction loses way more than people expect, and that gap between what you think survived and what actually survived is where the frustration comes from. Instructions Claude was following perfectly get ignored, not because it stopped caring, but because they lived in your conversation and got compressed away. Compaction also costs tokens just to summarize what you’ve already said - tokens that could go toward actual work. If your context engineering is solid, /clear is usually the better move.

WHAT COMPACTION KEEPS AND WHAT IT LOSES

Compaction clears older tool outputs first (file reads, command results), then summarizes the conversation itself. A 70,000-token conversation might compress to around 4,000 tokens. What survives and what doesn’t:

Survives:

  • Your CLAUDE.md and memory files (they reload from disk, not from conversation)
  • Recent messages and decisions
  • General understanding of what you’ve been working on

Gets lost:

  • Specific code details from early in the session
  • Failed approaches and why they failed
  • One-off instructions you gave verbally but never put in CLAUDE.md
  • Nuanced tradeoff discussions

Anything important enough to survive compaction belongs in a file, not in your chat.

COMPACT, CLEAR, OR SUBAGENT

  • /compact when you’re mid-task and need more room. Use /compact focus on [topic] to tell Claude what to prioritize keeping. Good for when you’re 70% through something and need a bit more runway.
  • /clear when you’re switching to something different, or when Claude starts going in circles. Anthropic’s own best practices recommend running /clear after completing subtasks. Stale context from failed approaches actively hurts the next attempt - think of it like closing a bunch of browser tabs before starting new work. If your CLAUDE.md and RFCs are solid, a fresh session picks up right where you left off anyway.
  • Subagent when you have a side task that doesn’t need your main conversation’s full context. The subagent does its work in its own window, though the results it reports back do add to your main conversation - still way less than doing the work yourself.

PRO TIP You can add compaction instructions to your CLAUDE.md, something like “when compacting, always preserve the full list of modified files and test commands.” This tells Claude what to prioritize when it summarizes.

If your context engineering is set up well - solid CLAUDE.md, up-to-date RFCs, important decisions in files instead of conversation - then /clear and starting fresh is almost always better than compacting. You lose nothing because everything important already lives in your project context.