I’m coding with Claude, juggling multiple features. Everything works. I go to lunch, come back. “Where are we at?” No answer. So I check the files, the implementation plan, and what we have done. Piece it together. Continue. But it’s a dry, shallow snapshot. No life. No continuity.
The Workaround
So I got better at this. Gathering context fast, juggling multiple features—a new skill. But always in the back of my mind: is our context getting filled? Should I compact? I didn’t trust the built-in compact. Too obscure. What are its criteria? Is it saving the right information?
So I made my own workaround. “Hey Claude, save a state of what we’re doing.” Clear session, load state, continue. It worked. Not ideal, but I could manage.
Until I couldn’t. Until I was constantly repeating myself: save this, don’t fill it with noise, let’s review the state. I became the state manager. Continuity at the cost of tiredness and brain power.
The Paper
Then I discovered a paper: ReSum. Context summarization—compressing interaction history into compact reasoning states. The first part, the summarization approach, caught my attention. I skipped the GRPO training theory. What really got me was the appendix: they published the actual prompt.
So I built a tool. Adapted that prompt into a /summary command for Claude Code. More directive, restructured for slash commands, but the same core idea. Capture what happened in this session before I clear it.
It worked. First try. Never modified it since. To this day, when I just need a clean summary—a research session, for instance, or something I’m not continuing—I run /summary, and it captures everything in a nice format.
The Proliferation
So I used /summary everywhere. Work on a feature, summary. Work on a PR summary. Before I knew it, I had dozens of files. Back to the same problem: brain power spent on file management. Which checkpoint was I on? Should I load just the last one, or read all of them?
I tried naming conventions. Feature-a-001-checkpoint, 002, 003. But then I noticed: they’re full of duplicates. Each checkpoint repeated half of what the previous one said.
The Merge
Around that time, I watched a Ray Fernando interview with the Factory.ai team. Their engineering blog had an article—transparent, technical, with the math—about compressing context windows. The key insight: even with checkpoints, you eventually have a file so large that it fills the context window anyway.
So I started merging. Load two checkpoints, tell Claude: remove duplicates, keep only what matters, and merge into one cohesive file. It worked. But it was still manual. Still too much brain power. Still begging for automation.
The Threshold
I could automate everything. Make the agent detect milestones and compress automatically. But there’s a threshold.
Think of NotebookLM: you pass sources, and it gives you a summary. Fast, useful, but you didn’t learn anything. Learning happens when you read, extract what matters, and connect it to what you know. The summary is a byproduct of understanding, not a replacement for it.
Same here. Automate the mechanics—file management, deduplication, merging. But deciding what’s worth saving? That’s where learning happens. When you say “this matters, checkpoint this,” you’re forced to understand what you just did. Skip that, and you’re just generating output.
Proactive compression isn’t about tokens. It’s about understanding your work well enough to know when you’ve achieved something.
The Tool
So I built coihuin-compress. A Claude Code skill that automates the mechanics—checkpoint creation, delta merging, deduplication—but leaves the decision to you. Start a new line of work with a clear objective and create a checkpoint. Work on it, add deltas. When that work is done—a feature shipped, a bug fixed, a refactor complete—archive it. Start something new, create another checkpoint. Continuity with context, with meaning.
It’s open source: github.com/mabrax/coihuin-compress
The Invitation
Next time you’re in that “where were we?” moment, try this. Tell me if it works. Tell me where it breaks.
Movement is life. Movement is learning.