审 PR 之前,先把手上那半截活留在原地
用 git worktree 把别人的 PR 检到单独目录里,Sonnet 审并修,Haiku 查调用点和跑测试,Opus 只在三个时刻开口。一条命令,不用 stash,不用切分支。
审一个 PR,真正烦人的环节是读 diff 之前的那几步。
手上改到一半的函数、跑了一半的迁移、没提交的调试代码。要切过去看别人的分支,就得 stash,或者先 commit 一个 wip 凑合。看完切回来,再 stash pop,运气不好还得解冲突。代码没审几行,自己的活先断了一次。
X 上有人(@skunzu)给了一套做法,核心动作只有一个:把 PR 检到它自己的工作目录里,你的分支一动不动。
worktree 才是主角
git worktree 是 git 自带的功能,年头不短了。同一个仓库可以挂出多个工作目录,每个目录检出不同的分支,共享同一份对象库。说白了,你可以在 /repo 里继续写你的代码,同时在 /repo/.claude/worktrees/pr-1234 里检出别人的 PR,两边互不干扰。
Claude Code 把这件事包成了一条命令:
claude --worktree "#1234" --model sonnet --advisor opus
它做的事:从 origin 取 pull/1234/head,落到 .claude/worktrees/pr-1234。你的分支保持你离开时的样子。没有 stash,没有 checkout 来回跳,没有半截工作被打断。
三个模型,三种活
分工是这样的:
- Sonnet 5.5 在那个 worktree 里跑
/code-review high --fix 1234,边审边把发现的问题改掉。改动落在 PR 的工作目录里,不碰你本地。 - Haiku 5.5 的两个子代理干体力活:一个把被改函数的调用点全找出来,一个并行跑测试套件,只报失败,不刷屏。
- Opus 5.5 挂在 advisor 位,平时不出声,只在 review 真的走到岔路口时读一遍记录。
- 加
--comment,结论直接贴回 GitHub 上那个 PR。
Opus 被限定在三个时刻开口:
- review 计划定下来之前,判断这个 PR 哪部分真能影响到生产。
- 同一个测试连挂两次,判断是代码问题还是 flaky。
- 下结论之前,approve 还是打回。
一句话概括:Sonnet 审,Haiku 查,Opus 判。
那层没被画出来的成本
原文还提到 JEV 这个分叉层:改哪个文件、跑哪个测试、重试还是停,这类不需要思考的判断在毫秒级处理掉,大模型只看真正需要权衡的那些。
这跟 Opus 只在三个时刻介入是同一件事,只是抬了一层。它承认了一个事实:贵模型不该看每一行 diff。
很多人用 Claude Code 觉得贵,问题往往出在这里。不是 token 单价高,是让最强的模型去干了 Haiku 该干的活。
值得保留的怀疑
让 AI 自动 fix PR,比让它写 review 意见激进得多。原文回复里 @noclipepe 就说,worktree 这套听着干净,但让它自动修 PR 是个跳跃。这个担心有道理。
修完之后谁来确认这些改动是对的?流程里给的答案是 Haiku 跑测试,加上 Opus 在结论前看一眼。测试覆盖不到的地方,还是得你自己读 diff。worktree 至少让这件事变简单了:改动在一个独立目录里,git diff 随便看,不满意就整个目录删掉,你本地一点没脏。
另一条回复里 @鼬 提到一个容易被忽略的点:worktree 让 review 能在 PR 自己的代码状态下跑测试,Sonnet 改的东西才有验证的余地。如果在你本地分支上跑,测的其实是你和 PR 混在一起的东西。
想直接抄的话
把下面这段丢给 Claude Code:
Set me up for PR reviews in worktrees:
1. Add .claude/worktrees/ to .gitignore.
2. Create two read-only Haiku 5.5 subagents in .claude/agents: call-sites (finds every caller of a changed function) and test-runner (runs the suite, reports only failures).
3. Add one rule to CLAUDE.md: for reviews, start with claude --worktree "#" --model sonnet --advisor opus, then run /code-review high --fix , and ask the advisor before the plan locks, after the same failure twice, and before the verdict.
4. Route fast deterministic forks through JEV.
Show every change as a diff first. No edits until I say go.
文档在 code.claude.com/docs/en/worktrees。原文发布于 2026 年 10 月,模型版本按原文写的来,实际以你本地 CLI 支持为准。
这套东西里最耐用的部分跟模型无关。worktree 是 git 早就有的能力,用对了,审 PR 这件事就从切分支的折腾里脱出来了。模型换代,这个动作不用换。
发布时间: 2026-10-31 14:54