# Claude Code Code Review 与 CI

> Claude Code 官方 Code Review、Ultrareview、Ultraplan、GitHub Actions、GitLab CI/CD、本地审查和 Passion8 接入边界。

URL: https://docs.passion8.cc/docs/claude-code/review-ci
Language: zh-CN
Publisher: Passion8

Claude Code 可以在本地、PR、云端和 CI/CD 里做 review 或自动化改动。关键先判断两件事:模型请求从哪里发出,代码和命令在哪里执行。

如果要把 Ultrareview、Ultraplan、Agent View、`/goal`、Routines 和 scheduled tasks 放在同一张图里看,先读 [高级工作流与云端能力](https://docs.passion8.cc/docs/claude-code/advanced-workflows-cloud)。

| 入口 | 运行位置 | 适合 | Passion8 边界 |
| --- | --- | --- | --- |
| `/code-review` | 本地 session | 快速审查当前 diff | 可以沿用本地 Passion8 配置 |
| `/review <pr>` | 本地 session | 审查某个 GitHub PR | 本地执行,但需要 GitHub 访问 |
| 官方 Code Review | Anthropic GitHub App / check run | PR 自动审查 | 通常走官方云端和官方计费 |
| `/code-review ultra` / `/ultrareview` | 官方云端 sandbox | 合并前深度多 agent review | 云端独立上下文和缓存 |
| GitHub Actions / GitLab CI | CI runner | 自动修复、评论、生成 MR/PR | 可显式注入 Passion8 env |
| `/ultraplan` | 云端先计划,再选择执行位置 | 复杂任务先深度规划 | 执行回本地后才可能走 Passion8 |

## 严重性标准

官方 Code Review 主要把发现分成几类:

| 标记 | 含义 | 本地执行建议 |
| --- | --- | --- |
| Important | 合并前应该修的 bug、安全问题或回归 | 阻塞合并或要求修复 |
| Nit | 小问题,不一定阻塞 | 控制数量,避免噪音 |
| Pre-existing | 旧问题,不是这个 PR 引入 | 单独建 issue,不要混进 PR 修复 |

给 Claude 写 review 指令时要明确“什么算 Important”。例如支付、鉴权、权限、数据丢失、迁移脚本、生产配置通常要更严格。

## 本地 review 流程

```text
/code-review current diff, focus on correctness, security, migration risk, and missing tests. Treat style-only comments as nit.
```

更稳定的本地流程:

1. 先跑测试或静态检查,把失败输出给 Claude。
2. 让 Claude 只审当前 diff,不要让它泛读整个仓库。
3. 明确 severity 标准和“不报告”的范围。
4. 对重要发现要求文件和行号。
5. 修复后再让 Claude 复查同一 diff。

本地 review 会继续使用当前 session 的模型、effort、工具和 Passion8 网关配置。中途切 `/model`、`/effort` 或触发 fallback 会让下一轮缓存 miss。

## 官方 Code Review

官方 Code Review 通过 GitHub 集成在 PR 上运行,可以自动发布 check run 和评论。它适合团队统一审查,但要配置:

| 项 | 说明 |
| --- | --- |
| GitHub App | 授权访问目标组织或仓库 |
| Spend cap | 控制 review 花费 |
| CLAUDE.md | 项目规则和上下文 |
| REVIEW.md | review 专用规则,定义 severity、忽略项和必查项 |
| Feedback | 开发者可标记发现是否有用,帮助后续调整 |

如果你希望完全走 Passion8,优先使用本地 `/code-review` 或 CI runner 里的 headless CLI。官方云端 Code Review 不应默认算作本地 Passion8 流量。

## REVIEW.md 应该写什么

`REVIEW.md` 可以把 review 从泛泛而谈变成团队标准。

```md title="REVIEW.md"
# Review instructions

## Important

Report issues that can cause auth bypass, data loss, payment error, privilege escalation, silent corruption, failed migration, or production outage.

## Nit

Limit nit comments to concrete maintainability problems. Do not report formatting already covered by linters.

## Always check

- Permission boundaries
- Error handling and retries
- Database migrations and rollback
- Tests for changed behavior
```

## Ultrareview

Ultrareview 是更深的云端多 agent review。它适合合并前做高置信度检查,不是每次小改都跑。

| 对比 | `/code-review` | `/review <pr>` | `/code-review ultra` |
| --- | --- | --- | --- |
| 目标 | 工作区 diff | GitHub PR | 工作区 diff 或 PR |
| 运行位置 | 本地 session | 本地 session | 云端 sandbox |
| 深度 | 快速到中等 | 中等 | 多 agent 独立验证 |
| 时长 | 秒到几分钟 | 几分钟 | 通常 5 到 10 分钟 |
| 成本 | 普通使用量 | 普通使用量 | 免费额度后按 usage credits |
| 缓存 | 本地 session 缓存 | 本地 session 缓存 | 云端独立缓存 |

非交互使用时可以要求 JSON 输出,方便接入脚本或 CI。

## Ultraplan

Ultraplan 用于先在云端做复杂计划,再选择在 web 执行或把计划发回终端。

| 阶段 | 说明 |
| --- | --- |
| CLI 启动 | 从本地发起任务和上下文 |
| 云端研究 | Claude 在 web session 里研究并起草计划 |
| 浏览器确认 | 你可以补充约束或批准计划 |
| 执行选择 | 继续在 web 执行,或把计划带回本地终端 |

如果计划涉及内网、未提交文件或 Passion8 网关,优先把计划带回本地执行。

## GitHub Actions

GitHub Actions 可以让 Claude 响应 issue、PR 评论、失败测试或手工 workflow dispatch。接 Passion8 时,最关键是显式注入 env:

```yaml title=".github/workflows/claude.yml"
env:
  ANTHROPIC_BASE_URL: https://passion8.cc
  ANTHROPIC_AUTH_TOKEN: ${{ secrets.PASSION8_API_KEY }}
```

安全建议:

| 项 | 建议 |
| --- | --- |
| Token | 使用最小权限 secret |
| fork PR | 不要把写权限和密钥暴露给不可信 fork |
| 日志 | 不打印 API Key、客户数据和完整生产日志 |
| prompt | 提供 diff、失败日志和任务目标,不要塞整个仓库 |
| tools | 通过 `claude_args` 或 settings 限制允许工具 |
| 成本 | 固定模型和 max turns,避免无限循环 |

## GitLab CI/CD

GitLab 场景和 GitHub 类似,但需要额外关注 runner 权限、MR 权限和变量保护。

```yaml title=".gitlab-ci.yml"
claude:
  variables:
    ANTHROPIC_BASE_URL: "https://passion8.cc"
    ANTHROPIC_AUTH_TOKEN: "$PASSION8_API_KEY"
  script:
    - claude -p "Review this merge request and summarize important correctness issues."
```

生产建议:

1. 只在 protected branches 或可信 MR 上开放写操作。
2. 对外部 contributor 的 MR 使用只读 review。
3. 把 cloud provider OIDC、Bedrock、Vertex 这类凭据和 Passion8 Key 分开管理。
4. MR 评论和 commit push 要使用最小权限 token。
5. CI job 的缓存和 artifacts 不要保存完整 transcript。

## 缓存和成本

| 动作 | 5m / 1h 解释 |
| --- | --- |
| 本地连续 review | 前缀稳定时可持续刷新 TTL |
| 同一 CI job 多轮修复 | 5m TTL 内可能读到热缓存 |
| 每个 CI job 新容器 | system prompt、路径、env 可能不同,容易冷启动 |
| 官方 Code Review | 官方云端独立上下文,不共享本地 Passion8 缓存 |
| Ultrareview | 多 agent 云端缓存,总 token 更高 |
| Ultraplan 回本地执行 | 回本地后按本地 provider 和当前 session 重新判断 |

完整逐命令影响见 [命令与缓存影响](https://docs.passion8.cc/docs/claude-code/command-cache)。

## 官方参考

- [Code Review](https://code.claude.com/docs/en/code-review.md)
- [Ultrareview](https://code.claude.com/docs/en/ultrareview.md)
- [Ultraplan](https://code.claude.com/docs/en/ultraplan.md)
- [Claude Code GitHub Actions](https://code.claude.com/docs/en/github-actions.md)
- [Claude Code GitLab CI/CD](https://code.claude.com/docs/en/gitlab-ci-cd.md)

## 相关页面



- [Headless 自动化](https://docs.passion8.cc/docs/claude-code/headless): claude -p、JSON 输出、CI 脚本和结构化结果。
- [平台与集成](https://docs.passion8.cc/docs/claude-code/platforms-integrations): CLI、IDE、Web、Slack、CI/CD 和云端能力的入口边界。
- [最佳实践与工作流](https://docs.passion8.cc/docs/claude-code/best-practices-workflows): 探索、计划、实现、验证和复查的日常流程。

