注意

Ultrareview 是一个研究预览功能。该功能、定价和可用性可能会根据反馈而改变。该命令是 /code-review ultra。当 ultrareview 对您的账户可用时,/ultrareview 是一个别名。

Ultrareview 是在 Anthropic 基础设施上运行的云会话中进行的深度代码审查。当您运行 /code-review ultra 时,Claude Code 在云沙箱中启动一队审查代理来查找您的分支或拉取请求中的错误。

与本地 /code-review 相比,ultrareview 提供:

  • 更高的信号质量:每个报告的发现都经过独立复现和验证,因此结果专注于真实的错误而不是风格建议
  • 更广泛的覆盖范围:许多审查代理并行探索更改,这会发现本地审查可能遗漏的问题
  • 无本地资源使用:审查完全在云沙箱中运行,因此您的终端在运行时保持空闲,可用于其他工作

Ultrareview 需要使用 claude.ai 账户进行身份验证,因为它在 Anthropic 基础设施上作为云端会话运行。如果您仅使用 API 密钥登录,请先运行 /login 并使用 claude.ai 进行身份验证。当使用 Claude Code 与 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 时,Ultrareview 不可用;对于已启用零数据保留或已应用 HIPAA 配置的组织也不可用。在这些情况下,/code-review ultra 会改为在您的会话中运行本地审查。使用客户管理的加密密钥(CMEK)的组织无法运行 ultrareview。要在本地审查您的更改,请运行 /code-review。

从 CLI 运行 ultrareview

在任意 git 仓库中启动审查:

/code-review ultra

不带参数时,ultrareview 会审查当前分支与默认分支之间的 diff,包括未提交和已暂存的更改。

对于分支审查,Claude Code 会打包仓库状态并将其上传到云端沙箱,遵循将本地仓库上传到云端会话的规则。这些规则涵盖大小限制、检出要求,以及名称类似凭据或密钥的文件(例如 .env 和 *.tfvars 文件)中未提交的更改会如何处理。当您审查 Pull Request 时,Claude Code 不会从您的计算机上传任何内容。

启动之前,Claude Code 会显示一个确认对话框,其中包含审查范围、您剩余的免费运行次数以及预估费用;对于分支审查,范围还包括文件数和行数。确认后,审查会在后台继续进行,您可以继续使用当前会话。

该命令仅在您使用 /code-review ultra 调用时运行;Claude 不会自行启动 ultrareview。

与其他基准进行比较审查

要与默认分支以外的基准进行比较,请传入分支名称。以下示例改为将当前分支与 develop 进行比较审查:

/code-review ultra develop

基准分支不必存在于您的本地克隆中;Claude Code 会从 origin 获取它。如果名称有拼写错误,Claude Code 会在错误信息中建议最接近的分支名称。

也可以使用提交 ID 或标签作为基准,此时审查将涵盖您的分支自该提交以来的更改。

审查 Pull Request

要审查 github.com 上的 Pull Request 而非本地分支,请传入 PR 编号:

/code-review ultra 1234

该命令也接受 #1234、PR 1234 以及粘贴的 PR URL;粘贴的 URL 必须指向当前目录中的仓库。

PR 模式需要 github.com 上的仓库。对于 GitHub Enterprise Server 实例上的仓库,请运行不带 PR 编号的 /code-review ultra 来审查本地分支。

在 PR 模式下,云端沙箱会从 github.com 克隆 Pull Request,而不是上传您的工作树。它使用与您的 Claude 账户关联的 GitHub 账户,因此该账户需要对仓库具有读取权限。

运行 /web-setup 将您的 GitHub CLI 登录与 Claude 账户关联。

将发现结果发布到 Pull Request

在 Claude Code v2.1.227 或更高版本中,当您审查 github.com 上的 Pull Request 时,可以让 Claude 以您自己的 GitHub 账户将完成的发现结果作为一条普通评论发布到 PR。该评论不是审查(review)或审批,并以 “Generated by Claude Code” 说明结尾。审查分支时,Claude Code 仅在您的会话中显示发现结果。

除非您在该次运行中选择发布,否则 Claude Code 绝不会发布,默认值为 --no-post。是否发布需要在每次运行时单独选择:

  • 交互式:在启动对话框中,选择 Run and post the findings to the PR as me。如果在命令中添加 --post,例如 /code-review ultra 1234 --post,Claude Code 会预先选中该选项,但仍会在启动前询问。
  • 非交互式:使用 --post 运行 claude ultrareview 子命令。带该标志运行子命令即表示您同意发布,因此 Claude Code 会直接发布而不再询问。在 claude -p '/code-review ultra' 运行中,Claude Code 会在发现结果到达之前退出,因此不会发布任何内容;请改用子命令。

Claude Code 不会从您的计算机发布。它会将审查的会话 ID 发送到 Anthropic API,由后者通过您关联到 Claude 的 GitHub 账户,将该审查存储的发现结果作为评论发布。发布需要与审查本身相同的 claude.ai 登录,并且在第三方提供商上或设置了 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 时不可用。

在交互式会话中,Claude Code 会在发现结果到达时开始发布,因此请保持会话打开,直到审查完成。Claude Code 仅在该会话中保留发布选择。如果会话在审查完成之前结束,即使您稍后恢复该对话,Claude Code 也不会发布任何内容。

发布完成后,Claude 会告诉您结果:

  • 发布成功:Claude 会为您提供该评论的链接。
  • 此前已发布:同一审查的较早一次发布已将评论发到 PR 上,因此 Claude 会为您提供 Pull Request 的链接,而不会再次发布。
  • 发布失败:Claude 会告诉您原因,发现结果会保留在您的终端中,以便您手动发布。

用自然语言传入请求

您也可以用自然语言描述您正在处理的内容:

/code-review ultra check my auth changes

审查仍然涵盖您的当前分支,范围与不带参数运行时相同。Claude 会将您的文本保留为一条备注,显示在启动对话框中,并在发现结果到达时将其与备注关联。

只有当您的文本包含多个单词,且不是分支名称或 PR 引用时,Claude Code 才会将其视为备注。单个单词会被视为分支名称或 PR 引用,因此拼错的分支名称会得到与其他基准进行比较审查中所述的最接近分支错误,而不会附带备注启动。如果您的文本将 PR 引用与其他单词组合在一起,例如 check PR 123 again,Claude Code 同样不会启动;它会要求您仅使用 PR 编号重新运行以审查该 PR,或去掉引用重新运行以审查当前分支。

提示

如果您的仓库太大而无法打包,Claude Code 会提示您改用 PR 模式。对于 github.com 上的仓库,请推送您的分支并创建一个草稿 PR,然后运行 /code-review ultra <PR-number>。

Diff 限制与回退

Ultrareview 会在任何审查工作运行之前检查 diff,并在无法按原样审查时告知您:

  • Diff 过大:默认情况下,分支审查最多可包含 500 个更改的文件和 8,000 行更改。具体数值可能会变化,拒绝信息会列出当前生效的限制、您的 diff 大小以及更改行数最多的文件。Claude Code 会以同样的方式拒绝过大的 Pull Request,列出其文件数和行数,但不提供按文件的明细

  • 没有可审查的内容:当与基准的 diff 为空时,ultrareview 会拒绝,并列出它所比较的分支或提交以及您所处的情况,例如您正位于基准分支本身且没有未提交的内容,或者某个分支的所有提交都已包含在基准中。它还会针对该情况给出解决办法,例如切换到包含您工作的分支、暂存或提交本地编辑,或传入其他基准

  • 首次提交:仓库的首次提交没有更早的内容可供比较,因此在您于启动对话框中确认后,ultrareview 会审查其中的每个文件。如果存在未跟踪的文件,它会改为拒绝,并告诉您对希望审查的文件执行 git add。同样的大小限制适用。

    首次提交只有在该确认之后才会被整体审查,因此 claude ultrareview 子命令和 claude -p 会拒绝它,并引导您改用交互式会话。需要 Claude Code v2.1.277 或更高版本

  • 没有合并基准:当您的分支与基准分支没有共同历史,或仓库没有可供比较的基准分支时,ultrareview 会改为审查仓库中的每个已跟踪文件。该回退需要完整克隆,并适用同样的大小限制。只有当您在启动对话框中确认,或自行运行 claude ultrareview 子命令时,它才会启动。在 claude -p 以及其他两者都不会发生的场景中,ultrareview 会拒绝,说明该审查将涵盖每个文件,并引导您改用交互式会话。

    在没有分支或其他引用的检出上,例如在获取某个 URL 后检出 FETCH_HEAD 所创建的分离 HEAD,Claude Code 会拒绝审查,并建议您先创建一个分支

定价和免费运行

Ultrareview 是一项高级功能,按额外使用量而不是您计划的包含使用量计费。

计划 包含的免费运行 免费运行后
Pro 3 次免费运行 按 额外使用量 计费
Max 3 次免费运行 按 额外使用量 计费
Ultra 3 次免费运行 按 使用额度 计费
  • 免费运行:Pro、Max 和 Ultra 的三次运行是每个账户的一次性分配,不会刷新。
  • 每次审查的成本:使用完免费运行后,通常花费 $5 到 $25 的使用额度,具体取决于更改的大小,与启动对话框在每次运行前显示的估计相匹配。
  • 何时计数一次运行:一旦云会话启动。您提前停止或未能完成的审查仍然会使用一次免费运行;付费审查仅对运行的部分计费。

由于 ultrareview 在免费运行之外始终按使用额度计费,您的账户或组织必须在启动付费审查之前启用使用额度。如果未启用使用额度,Claude Code 会阻止启动。如果您可以管理您账户的计费,Claude Code 会将您链接到计费设置,您可以在那里启用使用额度。

您也可以运行 /usage-credits 来检查或更改您的使用额度设置。

Claude Code 在每次对话中要求您确认一次使用额度计费:例如,当您使用 /clear 启动新对话时,Claude Code 会在下一次付费审查时再次显示确认。

跟踪正在运行的审查

审查通常需要 5 到 15 分钟。审查作为后台任务运行,因此您可以继续在会话中工作或启动其他命令。如果您选择了将发现发布到拉取请求,请保持会话打开直到审查完成;如果会话先结束,Claude Code 将不会发布任何内容。

使用 /tasks 查看正在运行和已完成的审查、打开审查的详细视图或停止正在进行的审查。如果您停止审查,Claude Code 会存档云会话,不会返回部分发现。

Claude 还可以告诉您审查已停止或其会话未找到:

  • 如果审查的云会话在审查完成前在 claude.ai 上停止或存档,Claude 会告诉您它已停止。
  • 如果审查的云会话被删除,或者您自启动它以来已登录到不同的 Claude 账户或组织,Claude 会告诉您会话未找到。
  • 如果您切换了账户,审查可能仍会在启动它的账户下完成。如果审查仍在运行,请以该账户重新登录,并使用 claude --resume 恢复对话以重新附加它。

审查完成后,Claude Code 会在您的会话中将验证的发现显示为通知。每个发现都包括文件位置和问题的解释,因此您可以要求 Claude 直接修复它。

以非交互方式运行 ultrareview

使用 claude ultrareview 子命令,可以在 CI 或脚本中启动 ultrareview,而无需交互式会话。该子命令启动的审查与 /code-review ultra 相同,会一直阻塞到远程审查完成,然后将发现的问题输出到 stdout。如果运行时以 Error: Workspace not trusted 退出,请参阅在审查运行前信任文件夹。

claude ultrareview
claude ultrareview 1234
claude ultrareview origin/main

不带参数时,该子命令会审查当前分支与默认分支之间的 diff;当不存在合并基准时,会执行与 /code-review ultra 相同的回退到整个仓库审查。传入 PR 编号可审查 github.com 上的 Pull Request,传入基准分支则以该分支为基准进行审查;基准分支的处理方式与交互式命令一致。

当您运行该子命令时,即表示您同意回退到审查整个仓库,并同意计费和条款确认提示,因此运行过程中不会停下来请求您确认。由您亲自运行即视为同意。如果改由 Claude 代您运行该子命令(例如通过 Bash 工具),Claude Code 会拒绝执行整个仓库的审查。

注意

claude -p '/code-review ultra' 无法获取发现的问题,因此请在脚本中使用 claude ultrareview。-p 运行会启动云端审查,但不等待其完成就退出。如果该审查会消耗使用额度,-p 运行会停止且不启动审查。

标志 描述
--json 输出原始的 bugs.json 负载,而不是格式化后的发现结果
--timeout <minutes> 等待审查完成的最长分钟数。默认为 45
--post 以您的 GitHub 账户身份,将完成的发现结果作为一条纯文本评论发布到 Pull Request。适用于 github.com 上的 Pull Request 目标;对于其他目标,Claude Code 会忽略该标志并给出提示。需要 Claude Code v2.1.227 或更高版本
--no-post 不发布发现结果。这是默认行为;如果同时传入两个标志,Claude Code 不会发布。需要 Claude Code v2.1.227 或更高版本
--trust-workspace 仅在本次运行中信任当前文件夹,且不进行询问,以便脚本或 CI 作业可以审查您尚未信任的检出目录。该标志不接受值:请将 PR 编号或基准分支放在它之前。需要 Claude Code v2.1.309 或更高版本

claude ultrareview 会将进度消息写入 stderr,以便 stdout 保持可解析。

运行 claude ultrareview 所需的身份验证和使用额度配置与 /code-review ultra 相同。

该子命令会以以下三种退出码之一退出:

  • 0:审查已完成,无论是否有发现结果
  • 1:审查启动失败或在完成前被停止、云端会话出错,或已超时。当文件夹未被信任时,退出码也为 1,包括您在信任询问处回答 n、按下 Enter 或按下 Ctrl-C 的情况。
  • 130:您在该子命令启动审查、等待发现结果或发送 --post 评论期间按下了 Ctrl-C,而不是在信任询问处按下

如果子命令在发现结果返回之前退出,这些结果将永远不会到达您的终端。审查可能仍在云端运行。再次运行该子命令会启动一次新的审查,而不是恢复之前那次,并且新的审查会使用一次免费运行或按使用额度计费。

使用 --post 时,子命令会在输出发现结果后立即开始发布,并将链接输出到 stderr。

  • 如果运行失败、被停止或超时,子命令不会发布任何内容。
  • 如果审查完成但评论未能发布,Claude Code 会将原因输出到 stderr,发现结果仍保留在 stdout 中,以便您手动发布。

如需对 GitHub Pull Request 进行自动审查,Code Review 可直接与您的仓库集成,并以 PR 行内评论的形式发布发现结果,无需 CLI 步骤。

在审查运行前信任文件夹

当 claude ultrareview 询问 Trust <folder>? [y/N] 时,回答 y 即可信任该文件夹。仅当您信任其中的代码时才应信任该文件夹,因为此后 git 和 Claude Code 可能会运行其 git 配置和项目设置中指定的程序。

当它无法询问您时(例如在 CI 作业中,或输出被重定向到文件时),它会以 Error: Workspace not trusted 退出。追加 --trust-workspace 即可在该次运行中信任该文件夹:

claude ultrareview 1234 --trust-workspace

要审查不受信任的 Pull Request,请在您信任的分支上运行 claude ultrareview <PR number> --trust-workspace。该 PR 会在云端克隆,因此您无需在本地拥有其分支。

ultrareview 与 /code-review 的比较

两个审查都检查代码,但您在工作流的不同阶段使用它们。

/code-review /code-review ultra
目标 您的工作差异、pull request、分支或路径 您的工作差异或 pull request
运行位置 在您的会话中本地运行 在云沙箱中运行
深度 随着 effort 参数扩展 具有独立验证的多代理队列
持续时间 几秒到几分钟 大约 5 到 15 分钟
成本 计入正常使用量 免费运行,然后大约 $5 到 $25 每次审查作为使用额度
最适合 迭代时的快速反馈 合并前对重大更改的信心

使用 /code-review 获得工作时的快速反馈,或传递 PR 编号以在批准前审查团队成员的 pull request。在合并重大更改前使用 /code-review ultra,当您想要更深入的审查来捕捉本地审查可能遗漏的问题时。

相关资源