第3天使用Claude Code:我如何停止因Compaction而丢失工作(Real Workflow)
Source: Dev.to
没有人提醒你的问题
你已经和 Claude Code 进行了一场 90 分钟的复杂重构。所有的思路都已经理清,你已经建立了模式,处理了边缘情况,离完成已经不远了。
然后,压缩(compaction)来了。
Claude 总结了会话,丢失了一半的上下文,回来后对你一个小时前做出的决定感到困惑。最糟糕的情况是,它会重新做你已经完成的工作——甚至把它撤销。我曾在三次不同的情况下因为这种情况失去了三小时的工作,之后才建立起合适的工作流。
压缩期间的上下文丢失不是随机的。 它会持续性地清除:
- 决策和拒绝 —— 你告诉 Claude 不要 做的事情会被忘记。
- 已建立的模式 —— 你在会话中协商的编码约定。
- 进行中的工作 —— 已完成 80% 但尚未提交的任务。
- 文件关系 —— 哪些模块相互调用,这些是通过探索发现的。
Claude 生成的摘要是乐观的:它捕捉了任务,却没有捕捉背后的推理。它知道 你在做什么,但不知道 为什么 或 该避免什么。
解决方案:会话管理工作流
在项目根目录创建 SESSION.md
# Session Context
## Active Goal
One sentence: what are we trying to accomplish
## Key Decisions Made
- Decision 1 and the reason
- Decision 2 and the reason
## What NOT To Do
- Approach we rejected and why
## Current State
Files changed, state of in‑progress work
此文件充当 压缩保险——Claude 每次都会重新加载它。
定期更新 SESSION.md
- 每 20–30 分钟刷新一次。
- 大约需要 2 分钟,但可以节省数小时的返工时间。
使用自定义压缩提示
当上下文变长时,运行:
/compact "Please include in your summary: all rejected approaches, all active decisions with reasoning, all files currently being modified, and the exact current state of any in‑progress task."
自定义压缩提示可以显著提升摘要质量。
在继续之前验证 Claude 的理解
不要直接跳回任务,而是先询问:
What is the current state of what we are working on, and what decisions have we made so far?
如果答案错误或不完整,请先纠正再继续。
使用 Mantra 完整会话快照
对于关键的工作会话,使用 Mantra 捕获整个 Claude Code 对话的“保存状态”。在任何风险操作或自然断点之前,Mantra 会记录完整上下文,方便你精确恢复。
- 将其视为视频游戏中的快速保存功能。
- 该工具本地存储快照,兼容 Claude Code、Cursor 和 Windsurf,并提供可视化浏览快照的功能,让你随时查看任意时刻的上下文。
- 免费下载:
为什么会话管理很重要
会话丢失表明你正在用 Claude Code 进行真实、复杂的工作。最有野心的开发者已经构建了稳健的会话管理工作流;仍然因为压缩而丢失工作的人尚未养成这种习惯。
入门步骤
- 在项目中添加
SESSION.md文件(成本 = 0,立竿见影的收益)。 - 每半小时更新一次。
- 根据需要使用自定义
/compact提示。 - 当风险较高时,加入 Mantra 快照。
你在使用哪些会话管理策略?