Always New Claude
Every session starts from zero. This is a feature, not a bug. Why fresh sessions produce better results and when to kill a thread.
You've been working with Claude Code for forty minutes. It was great at first. Sharp answers, clean code. But something shifted. The suggestions are getting weaker. It keeps referencing a dead-end approach you abandoned twenty minutes ago. You correct it, and it apologizes but circles back to the same mistake.
Kill the session. Start fresh.
Every Session Starts at Zero
When you launch Claude Code, it has no memory of yesterday. No recollection of the bug you fixed last week, no trace of this morning's architecture discussion. The context window is completely empty except for what gets loaded automatically: your CLAUDE.md files and any auto memory entries.
This feels like a limitation. It's actually one of the best things about Claude Code.
No baggage. No leftover confusion from a wrong turn. No accumulated noise from five different tasks. Just a clean slate focused on exactly one thing.
It's the whiteboard effect. A clean whiteboard beats one covered in half-erased diagrams from three previous meetings. Sure, some of those diagrams were useful, but they're creating visual noise that makes it harder to think about the current problem.
Same thing inside a context window. Every message, every code block, every correction takes up space and influences future responses. After enough back-and-forth, the signal-to-noise ratio tanks. Claude Code starts hedging, referencing old mistakes, getting confused about which approach you actually want.
Context Contamination
Two patterns kill session quality. Spot them early.
The kitchen sink session. You ask Claude Code to refactor a component. That goes well. Then you ask about a completely unrelated database query. Then you jump back to the component. Now the context window is stuffed with database schemas, SQL examples, and component code all jumbled together. Claude Code has to sort through all of it for every response, and quality drops fast.
The correction spiral. Claude Code generates something wrong. You correct it. It tries again but misses the point. You correct it again with more detail. It apologizes and produces something slightly different but still wrong. Three failed attempts plus two corrections, all cluttering the context window. Every future response is dragged down by this mess of wrong approaches.
Rule of thumb: if you've corrected Claude Code more than twice on the same issue, the context is contaminated. Those failed approaches are actively poisoning every response that follows.
The fix is dead simple. Next time you hit a correction spiral, instead of correcting a third time, run /clear. Then write one focused prompt that incorporates everything you learned from the failed attempts:
Refactor the UserProfile component to use React Query instead of useEffect.
Keep the existing prop interface. The API endpoint is /api/users/[id].
Don't use suspense mode - we need manual error handling because
the error UI varies by section.That single prompt, informed by what went wrong before, will almost always outperform a long thread of corrections. You're giving Claude Code the benefit of your learning without the noise of the failed journey.
Making Fresh Sessions Work
Starting fresh only works if the important stuff persists between sessions. Two mechanisms handle this.
CLAUDE.md is what you write. It's your project's instruction manual. Architecture decisions, naming conventions, key patterns. This loads automatically at the start of every session. If you find yourself repeating the same correction across multiple sessions, that correction belongs in CLAUDE.md. Full stop.
Auto memory is what Claude Code writes. When it learns something important during a session, it can save that to memory. Next session, that knowledge is there from the start.
Between these two, the important knowledge survives. Everything else? Disposable.
# Start a session for Task A
claude
# Task A is done. Don't start Task B in the same session.
# Use /clear to reset the context window.
/clear
# Now start Task B with a clean context window.
# CLAUDE.md and auto memory are still loaded.The /clear command is your best friend. Use it between unrelated tasks, after completing a feature, or whenever responses start feeling off. It resets the context window without closing Claude Code. Your CLAUDE.md and auto memory persist.
Some developers resist this. Feels like you're "losing progress" by clearing the context. But the actual progress lives in the code you've committed, the CLAUDE.md you've updated, and the auto memory entries Claude Code has saved. The context window was always temporary storage.
When to Kill a Session Entirely
Beyond /clear, sometimes you need to fully restart. The signs:
- Claude Code keeps referencing something you've explicitly told it to ignore
- Responses are getting noticeably longer and less focused
- You're seeing the same suggestion recycled in different words
- The tone shifts to excessive apologizing and hedging
- You've used
/clearbut quality still feels off
When you see these, close the session and start fresh. Update your CLAUDE.md if you learned something worth preserving. Then approach the problem with a clean slate.
The Rule
Every session starts empty. CLAUDE.md and auto memory carry forward. Nothing else.
Context contamination from mixed tasks or correction spirals is real and degrades everything. If you've corrected Claude Code twice on the same issue, stop. Run /clear, write a better initial prompt. Put recurring corrections into CLAUDE.md. Use /clear between unrelated tasks. This is the whole workflow.
Mastering Claude Code
Lesson 22 of 70