原创专题
Claude Code 上下文:压缩前怎样保留任务约束
用 /context、持久指令和交接记录核对长任务上下文,区分会话恢复与文件恢复。
长任务出现反复读取或遗漏约束时,先判断上下文里装了什么,再决定压缩、续接或补充指令。本文的预期产物是一份可检查的任务交接记录,而不是声称扩大了模型上下文。需要已有 Claude Code 会话与可查看的项目文件;本文没有启动实际会话。
操作与检查顺序
先识别上下文组成
官方文档说明上下文包括对话、文件内容、命令输出、CLAUDE.md、auto memory、已加载技能和系统指令。读取一个巨大文件或输出会占用窗口,自动压缩保留请求和关键代码,但早期细节可能丢失。/context 用于查看占用,不能把“压缩成功”当成所有原文仍然完整保留。[1]
写一份短交接记录
- 目标:修复队列重试导致的重复执行;验收是同一消息不会重复写入。
- 已确认:消息 ID 是去重键;当前只检查两个相关模块。
- 已完成:定位文件与复现输入,保留实际测试输出位置。
- 待完成:修复、验证重试路径;没有执行的检查写未执行。
- 恢复起点:当前分支、未提交差异与下一条具体命令。
这是本站原创练习,不代表某个真实项目的故障结果。持久约定放在 CLAUDE.md;阶段记录保留工作状态。官方允许用 /compact 加关注点,也可在 CLAUDE.md 中写 Compact Instructions,说明压缩应保留什么。[1]
恢复时检查文件与会话
官方区分继续、恢复和分叉会话:claude --continue 或 claude --resume 续接原会话;分叉复制历史到新会话。切换分支后会话讨论历史仍在,Claude 看到的文件则属于新分支。因此恢复后应先核对 Git 状态与实际差异,再按交接记录继续,不直接把历史描述当成当前文件。[1]
文件撤回与核验范围
Claude Code 的文件检查点与 Git、会话恢复不同;官方说明检查点覆盖文件变更,不能撤回数据库、API 或部署等远程动作。本文实际核验了官方流程和交接样例,没有执行 /context、/compact、恢复会话或检查点撤回。采用后需逐项核对真实输出与当前文件,不能仅凭会话继续运行就宣称状态一致。[1]
本文来源
本站原创整理;官方说明与编辑建议分别标注。