今天这个问题很典型,Claude Code 跑了一段时间,执行过/compact,原本记得很清楚的规则突然变得不稳定。前面还一直遵守的项目约定,压缩之后像被冲淡了一层。有时是测试命令忘了,有时是代码风格飘了,有时是某个子目录里的特殊约束不再生效。很多人第一反应会以为 Claude Code 把CLAUDE.md忘了,其实更准确的说法是,它没有把所有来源的指令都按同一种方式重新注入。官方文档对这个现象给了一个很关键的判断,项目根目录的CLAUDE.md会在/compact之后保留下来,因为 Claude Code 会从磁盘重新读取它,并重新注入当前会话。子目录里的嵌套CLAUDE.md不会自动重新注入,只有当 Claude 再次读取那个子目录里的文件时,它们才会重新加载。若某条指令在压缩之后消失,它通常只存在于对话里,或者放在还没有被重新触发加载的嵌套CLAUDE.md里。这就解释了一个很微妙的体验,我们以为规则丢了,其实是规则的存放位置、加载时机和压缩之后的恢复机制没有对齐。/compact 不是重启,也不是完整记忆迁移/compact的工作目标不是把会话原封不动搬到新窗口,而是把长上下文压缩成较短的摘要,让 Claude Code 能继续在有限的上下文窗口里工作。官方成本管理文档也提到,Claude Code 会在接近上下文限制时通过自动压缩来总结会话历史,从而降低后续上下文压力。这里最容易误判的地方在于,摘要不是数据库快照。