首页/文章/Claude Code 压缩后别信「修好了」:先重跑失败检查,再谈收工

Claude Code 压缩后别信「修好了」:先重跑失败检查,再谈收工

· Zumac.Ai

坑在哪

长任务跑到一半,Claude Code 自动压缩上下文。压缩后的摘要往往只剩一句:「auth 测试之前在报错」。断言、期望值、文件行号、你口头定的验收标准都没了。Agent 接着修的是它自己转述的那个 bug,修完就说「好了」——你一跑测试,还是红的。

@alexlavaee 把机制说清楚了;@Fide_x_ 按可落地程度重排了建议。这和「压缩后用进度文件续上」(见长任务不断档)是同一类问题的另一面:进度在,验收细节也可能丢。

普通用户先做的两步

官方 hooks 指南 明确:可用 SessionStart + matcher compact,在每次自动或手动压缩后把命令输出重新灌进上下文。社区侧更强调验证,而不是只灌「做到哪」:

  1. 压缩结束后先重跑当初失败的那条检查,用新输出说话,不要信摘要里的「之前失败 / 已经修好」。
  2. 把验收标准写进仓库里的固定文件(例如 ACCEPTANCE.md 或测试契约),在 SessionStart(compact)hook 里 cat 回去,并加一句提醒:「压缩后先重跑失败的测试」。

示例思路(按项目改命令):

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "compact",
        "hooks": [
          {
            "type": "command",
            "command": "echo '压缩后:先重跑失败测试,勿信摘要里的已修复'; cat ACCEPTANCE.md 2>/dev/null || true"
          }
        ]
      }
    ]
  }
}

官方还说明:CLAUDE.md、计划文件等会按机制回灌;更早由 hook 加进去的上下文会随对话一起被摘要。所以「验收标准」更适合落在磁盘文件上,再由 compact 匹配的 SessionStart 读回来。

别指望模型自己改压缩器

「压缩只删行不改写」「最近几轮永不进压缩」「忽略工具输出里的保护标记」——这些多半要改压缩实现本身,个人设置做不到。能立刻做的是:文件化验收 + 压缩后重跑 + hook 回灌。

小结

  • 压缩丢掉的是「对什么算修好」,不只是「做到哪」。
  • 摘要说修好了不算数;重跑失败检查才算数。
  • 用官方支持的 SessionStart / compact 把验收文件读回来。

如果你想在常开、整机独享的新加坡 Mac mini 上跑长任务并固定这些 hooks,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服