---
title: Claude Code 核心命令详解:simplify、review、loop、batch、run、verify
description: 深入解析 Claude Code 核心命令,涵盖 /simplify、/review、/loop、/batch、/run、/verify、/debug 等实用命令的使用方法与实战技巧。
category: AI 编程技巧
head:
- - meta
- name: keywords
content: Claude Code,命令,slash commands,/simplify,/review,/loop,/batch,/run,/verify,/debug,AI编程,AI辅助开发
---
说实话,Claude Code 里有些命令我用了一次就离不开了,但问身边朋友知道的人反而不多。这个系列文章就来聊聊这些被严重低估的命令——`/simplify`、`/review`、`/loop`、`/batch`、`/run`、`/verify`。
这些命令你知道有就行了,不用硬背。打个斜杠 `/` 就出来了,比你吭哧吭哧打字快多了。
> **版本说明**:本文基于 2026 年 5 月 Claude Code 官方 Commands 文档和当前客户端行为整理。Claude Code 命令更新很快,最终以 `/help`、`/` 命令列表和官方 Commands 页面为准。
## 先理清 Claude Code 的命令体系
Claude Code 里 `/` 开头的东西,来源有两层:
- **Commands(硬编码命令)**——`/clear`、`/compact`、`/model`、`/cost`、`/help`、`/review`、`/diff`、`/context`、`/permissions` 等。逻辑写死在 CLI 代码里,直接与终端交互,不涉及 AI 推理,执行速度快且不消耗 Token。
- **Bundled Skills(捆绑技能)**——`/simplify`、`/batch`、`/debug`、`/loop`、`/run`、`/verify`、`/code-review`、`/claude-api`。本质是基于 Prompt 的能力:调用时,Claude 会载入特定的 Markdown 指令集到上下文,然后调动子代理(Sub-agents)执行多步工作流。
> **注意**:`/review` 是内置 PR review 命令,不是 bundled skill;深度多 Agent 审查应使用 `/ultrareview`。
下面详细介绍这几个实用的内置能力。
## /simplify:代码简化与重构
`/simplify` 做的事很简单:审查你刚写的代码,找出隐藏的问题,然后直接帮你改掉。现在官方文档已把 `/simplify` 列为 bundled skill。
### 工作机制:三步走
**第一步:确定审查范围。** 通常围绕最近变更文件工作;不带参数时,它跑 `git diff` 拿增量变更;如果工作区没有未提交的修改,它会自动审查最近一次 commit。指定具体类名时(比如 `/simplify MarketDataService`),它会读取整个文件做全量审查。具体范围以当前 Claude Code 版本行为为准。
**第二步:并行启动三个审查 Agent。** 不是串行地逐条检查,而是同时派出三个"审查员",各自带着不同的视角去读同一份 diff:
```mermaid
flowchart TB
Diff["git diff
完整差异"] --> A1["Agent 1: Code Reuse
看有没有重复造轮子"]
Diff --> A2["Agent 2: Code Quality
看设计有没有问题"]
Diff --> A3["Agent 3: Efficiency
看跑起来会不会卡"]
A1 --> Fix["Phase 3: 汇总发现
直接修复"]
A2 --> Fix
A3 --> Fix
```
三个 Agent 各管一摊:
- **Code Reuse Agent**:看你的代码是不是在重复造轮子。比如你手写了一个 `requireNonBlank()`,它会在项目里搜一圈,发现已经有一个 `InputValidator.requireNonBlank()` 做了同样的事。
- **Code Quality Agent**:看代码设计有没有问题。比如同一个字符串硬编码写了三遍、两个方法长得几乎一样、一个类既管认证又管发邮件——该拆没拆、该抽象没抽象的地方,它都会指出来。
- **Efficiency Agent**:看代码跑起来会不会有性能问题。比如循环里反复创建同一对象,单线程场景非要用 `ConcurrentHashMap`、该用缓存的结果每次都重新算。
**第三步:汇总并修复。** 三个 Agent 各自报告发现,Claude Code 会自动判断哪些是真问题、哪些是误报,然后直接动手改代码。
> ⚠️ **风险提示**:`/simplify` 会应用修复,但仍建议通过 diff、测试和 review 复核,尤其是涉及事务、安全、并发的改动。它是 prompt-based skill,可能误判。
### 指定关注方向
也可以给它指定关注方向:
```bash
/simplify thread safety
/simplify SQL performance
/simplify exception swallowing
/simplify MarketDataService
```
在你已经知道哪块大概有问题、想让 AI 帮你精确定位的时候,这个功能很实用。
### 实战案例:Spring 事务失效
有一次我写了一个用户认证模块,自测通过就准备提交了。习惯性地先跑了一遍 `/simplify`,它直接帮我找到了 6 个潜在问题,经过确认,确实都是实际存在的问题。


最值得说的是一个 **Spring 事务失效** 的问题。三个 Agent 中有两个独立地从不同角度捕获到了同一个 Bug。
问题代码是这样的——`WatchlistService` 里,外层方法获取 Redis 分布式锁做 double-check,内部调一个 `protected` 方法执行数据库写入:
```java
public void initializeDefaultWatchlist(Long userId) {
// Redis 分布式锁 + double-check(幂等)
// ...
doInitializeDefaultWatchlist(userId); // 同一类内部调用
// ...
}
@Transactional(rollbackFor = Exception.class)
protected void doInitializeDefaultWatchlist(Long userId) {
groupService.save(defaultGroup); // INSERT 分组
stockService.saveBatch(initialStocks); // INSERT 5 只股票
}
```
代码结构看起来合理:外层管锁和幂等,内层管事务。但 `@Transactional` 写在这实际上**完全不起作用**——因为 Spring AOP 基于动态代理,同一个类内部的直接调用会绕过代理,注解根本不会被拦截到。
这意味着如果 `saveBatch` 中途抛异常,`save` 已经提交的分组记录不会回滚,数据库里会出现一个没有股票的空壳分组。
> **前提条件**:在 Spring 默认代理式 AOP 下,同类内部直接调用会绕过代理,`@Transactional` 不会生效;如果使用 AspectJ weaving 或通过代理对象调用,结论不同。
- **Code Quality Agent** 标记了自调用导致 `@Transactional` 失效,评为高严重性。
- **Efficiency Agent** 排除了锁 TTL 不足的可能,精准定位事务失效是根因。
- **Code Reuse Agent** 确认手写的分布式锁没有可复用替代,实现合理。
`/simplify` 给出的修复方案是把声明式事务换成**编程式事务**,用 `TransactionTemplate` 直接控制事务边界。其他修复方式包括:把事务方法移动到另一个 Spring Bean、通过代理对象调用、调整事务边界到外层 public 方法。
```java
@RequiredArgsConstructor
public class WatchlistService {
private final TransactionTemplate transactionTemplate;
private void doInitializeDefaultWatchlist(Long userId) {
transactionTemplate.executeWithoutResult(status -> {
groupService.save(defaultGroup);
stockService.saveBatch(initialStocks);
});
}
}
```


这次扫描还发现了另外 5 个问题,涵盖代码复用、安全性和效率:
| 发现 | Agent | 修复方式 |
| ------------------------------------------------------------------------------------------ | -------------------- | ----------------------------------------------------- |
| 两个 Controller 各自定义了 `requireNonBlank()`,和已有的 `InputValidator` 重复 | Reuse | 删除私有方法,改用 `InputValidator.requireNonBlank()` |
| 异常处理器的 regex 每次 `replaceAll` 都重新编译,且字符类不含 `+/=`,base64 token 会漏脱敏 | Quality + Efficiency | 提取为 `static final Pattern`,扩展字符类覆盖 base64 |
| 用 `ConcurrentHashMap` + `@Scheduled` 手动清理 30 秒过期的 Ticket | Efficiency | 替换为项目已有的 Caffeine 缓存(自带 TTL 淘汰) |
| `@Bean` 方法里的局部 `Map` 用了 `ConcurrentHashMap` | Efficiency | 改为 `HashMap`(单线程填充,不需要并发安全) |
| 注释笔误:"兖底" 应为 "兜底" | Quality | 修正 |
最终结果:5 个文件修改,净减少 38 行代码,修复 6 个问题,编译一次通过。
### 实战案例:指定模块审查
`/simplify` 还可以指定具体的类或模块做深度审查:

```bash
/simplify MarketDataService
```
我对项目的行情数据服务 `MarketDataService`(约 570 行)跑了一次专项审查。这个类聚合多个数据源,提供 Caffeine 本地缓存 + Redis 分布式缓存 + 熔断降级。三个 Agent 找到了 8 个问题,其中有两个高严重性的:
**Bug:`year` 周期被静默降级为 `month`。** `normalizePeriod` 方法里有一个 switch:
```java
case "year", "yearly", "y" -> "month"; // Bug!应该是 "year"
```
其他周期都正确映射(`day → "day"`、`week → "week"`、`month → "month"`),唯独 `year` 被映射到了 `month`。调用方请求年度 K 线,实际拿到的是月度 K 线,没有任何报错或提示。
### 适合的场景
**适合的:**
- 提交 PR 前的自审——尤其是涉及多文件重构的变更,让三个 Agent 并行扫一遍,成本很低但收益可能很高。
- 重构后的质量检查——刚做完一次大范围代码整理,用来确认没有引入新的设计问题。
- Code Review 的辅助工具——帮你发现那些需要领域知识才能识别的问题。
**不太适合的:**
- 全项目代码审计——不带参数时基于 `git diff` 工作,只审查增量变更。
- 风格统一——花括号放哪一行,用 tab 还是空格,那是 formatter 的活。
- 安全审计——专业的安全审查需要 SAST 工具。
**与传统工具的核心差异:** 传统规则型工具默认更擅长发现通用代码味道;框架语义类问题往往需要专项规则或语义分析。`/simplify` 的优势在于它能**结合上下文推理**,理解框架语义。
## /review:代码审查
> **前置说明**:`/review` 是本地 PR review 命令,用于审查当前分支或指定 PR;如果要讲深度多 Agent 审查,应使用 `/ultrareview`;安全审查应使用 `/security-review`。
`/review` 和 `/simplify` 定位完全不同:`/simplify` 是自动清理工,找到问题直接改;`/review` 是资深审查员,找到问题列出来给你看,你自己决定改不改。
简单说,`/simplify` 关注**可复用性、代码质量和效率**,偏重清理与改进;`/review` 关注**代码有没有写错**,偏重正确性审查。
### 工作机制
执行 `/review` 时,Claude Code 会做三件事:
**第一步:拿到变更。** 它先跑 `git diff` 拿增量变更,或者根据你指定的 PR 读取远程变更。
**第二步:并行分析。** Claude Code 并行审查变更,结合置信度过滤来减少误报。
**第三步:输出分级报告。** 最后你会拿到一份分级的问题清单(Critical / High / Medium / Low),每个问题带具体行号、原因和修复建议。
### 怎么用
```bash
/review # 审查当前分支对应 PR,或本地 PR 语境
/review 123 # 审查指定 PR
```
`/code-review` 是 `/review` 的另一个版本,更偏 correctness bug,还支持 `--fix` 直接应用部分修复:
```bash
/code-review high # 只看高严重性问题
/code-review --fix # 审查并自动修复部分问题
```
文件级审查建议写成自然语言:比如"review src/auth/login.service.ts"。
审查完发现问题后,你可以直接说"修复所有 Critical 问题",Claude 会根据审查建议自动改。
### /review、/security-review、/ultrareview 怎么选
| 命令 | 适合场景 | 重点 |
| ------------------ | ------------------------------------------ | ------------------------------- |
| `/review` | 日常 PR / 本地变更审查 | 正确性、边界条件、潜在 Bug |
| `/security-review` | 登录、支付、权限、上传、Webhook 等敏感模块 | 注入、鉴权、数据泄露、权限绕过 |
| `/ultrareview` | 重要 PR 上线前,想做更深一层审查 | 云端沙箱、多 Agent、深度 Review |
我的建议:普通 PR 用 `/review`,涉及安全边界的改动额外跑 `/security-review`,核心链路或大版本上线前再考虑 `/ultrareview`。
### /ultrareview:云端深度审查
`/ultrareview` 是 Claude Code v2.1.86+ 提供的 **research preview** 功能,定位是在云端沙箱里跑一次更重的、多 Agent 协作的代码审查,主要用来在 PR 合并前兜底发现隐藏较深的 Bug。
```bash
/ultrareview # 审查当前分支
/ultrareview 123 # 审查指定 PR
```
CLI 里也有对应的非交互式命令:
```bash
claude ultrareview [target]
```
它和日常 `/review` 的核心区别在于:**审查在云端沙箱执行**,不依赖本地环境,多个 Agent 从不同角度并行分析同一个 PR。代价是耗时更长、消耗更多 Token。
不过需要注意,官方把它标成 research preview,功能和价格都可能变化,以当前官方文档和本地 `/help` 为准。
### /review 和 /simplify 怎么选
| | `/simplify` | `/review` |
| ------ | ---------------------------- | -------------------------------------- |
| 目标 | 消除技术债、提升可读性 | 确保正确性、发现 Bug |
| 做什么 | 等效变换(重构) | 逻辑诊断(分析) |
| 结果 | 直接改代码 | 列出问题和建议 |
| 关注点 | 嵌套过深、变量命名、冗余逻辑 | 安全漏洞、性能瓶颈、边界条件、逻辑错误 |
选 `/simplify`:代码能跑但涉及可复用性、代码质量或效率问题、刚写完原型想快速重构、想删掉冗余代码省 Token。
选 `/review`:不确定代码有没有 Bug、上线前做最后把关、涉及安全或资金的关键模块、想看资深工程师会对你的代码提什么意见。
**最推荐的用法是先 `/review` 后 `/simplify`——先确保逻辑正确,再清理代码。**
### 实战案例
有一次我写了一个用户认证模块,自测通过就准备提交了。顺手跑了一遍 `/review`,它标出了三个问题:
**Critical:密码重置接口没做速率限制。** 攻击者可以无限次调用重置接口轰炸用户邮箱。这个我自己测试的时候根本想不到——测试环境只有我一个用户,哪来的速率限制需求。
**High:Token 过期时间从配置读取但没兜底。** 配置项没设的话,过期时间会变成 0,意味着 Token 一生成就过期。`/review` 建议加一个 `Math.max(config.tokenExpiry, 3600)` 做保底。
**Medium:日志里把 userId 明文打印了。** 虽然不算敏感信息,但在合规要求严格的场景下还是脱敏比较好。
三个问题,两个和安全性相关。如果不跑 `/review`,前两个问题直接上生产。
### 注意事项
**它不替你做决定。** 和 `/simplify` 不同,`/review` 默认不改代码,只给建议。涉及安全的关键代码,这种"先看再动"的模式更让人放心。
**它依赖 CLAUDE.md。** 如果你没有在 `CLAUDE.md` 里写规范,`/review` 就只能做通用审查。把项目的编码规范、技术选型偏好、安全要求写进去,输出质量会高很多。
**它不是 SonarQube。** SonarQube 基于规则匹配,`/review` 能理解框架语义——它知道 Spring 代理是怎么工作的,知道 `@Transactional` 在类内部自调用时会失效。这是它比传统静态分析工具强的地方。
## /loop:定时任务与自主迭代
这是 Claude Code 之父认为最强大的两个命令之一,他多次分享推荐。

`/loop` 可以帮你定时跑任务,也可以帮你反复试错直到把活干完。
### 解决了什么问题
日常开发里有两类事特别烦人:
- 第一类是需要反复做的事。比如每隔半小时检查一下有没有新的 PR 需要处理、每天早上跑一遍测试看看有没有挂掉的。这些事不难,但总忘。
- 第二类是需要反复试错的事。比如修复一个牵扯多个模块的 Bug,把整个项目从 CommonJS 迁移到 ESM。这种任务的特点是:一次做不完,中间会出错,出错了要改,改完再验证。
`/loop` 把这两类事都接过去了。
### 三种调度方案怎么选
Claude Code 不止 `/loop` 这一种定时机制,它实际上有三套调度方案:
| | **Cloud 任务** | **Desktop 任务** | **/loop** |
| ---------------- | ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| 运行位置 | Anthropic 云端 | 你的机器 | 你的机器 |
| 需要开机吗 | 不需要 | 需要 | 需要 |
| 需要打开会话吗 | 不需要 | 不需要 | **需要** |
| 重启后还在吗 | 在 | 在 | 会话级;关闭期间不会执行;使用 `--resume` / `--continue` 恢复同一会话时,7 天内未过期的 recurring task 可恢复 |
| 能访问本地文件吗 | 不能(重新 clone) | 能 | 能 |
| MCP 服务器 | 每个任务单独配置 | 配置文件和连接器 | 继承当前会话 |
| 最小间隔 | 1 小时 | 1 分钟 | 1 分钟 |
一句话选型:**要可靠、不想管机器 → Cloud 任务;要读本地文件 → Desktop 任务;临时轮询、快速用一下 → `/loop`。**
### 两种工作模式
**模式一:定时调度(Cron 模式)**
告诉它"干什么"和"隔多久干一次",到点它自己跑:
```bash
/loop 30m /review # 每 30 分钟跑一次代码审查
/loop 1h "跑一遍单元测试,看看有没有失败的" # 每小时检查测试
/loop 5m "检查 GitHub 上开放的 PR 状态" # 每 5 分钟看 PR 动态
```
间隔写法有三种:
| 写法 | 示例 | 效果 |
| ----------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| 间隔在前 | `/loop 30m 检查构建状态` | 每 30 分钟 |
| "every"在后 | `/loop 检查构建状态 every 2 hours` | 每 2 小时 |
| 不写间隔 | `/loop 检查构建状态` | Claude 动态选择下一次执行间隔(通常 1 分钟到 1 小时);Bedrock/Vertex AI/Microsoft Foundry 场景下固定 10 分钟 |
**模式二:自主迭代(Agentic Loop)**
这个模式下 `/loop` 不再是定时器,而是"自动试错引擎"。你给它一个目标,它自己规划、执行、验证、修正,循环往复。它适合把"执行—观察—修正—再执行"这类循环交给 Claude,但要写清完成标准、最大尝试次数和停止条件:
```bash
/loop "修复 auth 模块里所有失败的单元测试,直到全部通过"
/loop "把 src/legacy 下所有组件迁移到 Tailwind CSS,确保页面渲染正常"
/loop "实现支付宝支付模块,补上单元测试,确保全部通过"
```
普通模式下 Claude 写完代码就交给你了,报错你得自己贴回去。`/loop` 模式下,它自己读报错、自己改、自己重跑测试,全程不用你盯着。
### 五个实际场景
**1. 自动监控 PR 状态。** 每 5 分钟拉一次开放的 PR,检查有没有冲突、能不能安全合并、生成摘要。
```bash
/loop 5m "用 gh 命令检查开放 PR 的状态,标记有冲突的和可以安全合并的"
```
**2. 自动测试看门狗。** 定时跑测试,发现了失败的测试就尝试修。多人协作的项目里特别实用——别人合进来的代码可能悄悄搞挂了你的模块。
```bash
/loop 2h "运行测试套件,发现失败的就修复"
```
**3. 定时同步项目文档。** 改了代码忘了改文档,这是开发者最常犯的错。每 2 小时让 `/loop` 扫一遍代码变更,自动把改动同步到用户文档里。
```bash
/loop 2h "检查最近的代码变更,更新对应的公开文档"
```
**4. 大规模技术迁移。** 比如把整个项目从 CommonJS 迁到 ESM,几十个文件,中间一定会有报错。`/loop` 能自己处理这些错误,一个文件一个文件地改过去。
```bash
/loop "把项目里所有 CommonJS 的 require/module.exports 改成 ESM 的 import/export,确保测试全部通过"
```
**5. 批量拉起自动化任务。** 可以写一个自定义命令文件,把所有定时任务列在里面。项目启动时跑一条命令就能把所有自动化任务一起拉起来。
### 怎么管理任务
直接用自然语言跟 Claude 说就行:
```bash
我现在有哪些定时任务?
停掉那个检查部署的任务
```
底层靠三个工具干活:
| 工具 | 干什么 |
| ------------ | ----------------------------------------------------- |
| `CronCreate` | 创建任务,接收 cron 表达式、要执行的 prompt、是否循环 |
| `CronList` | 列出所有在跑的任务,显示 ID、调度时间、prompt |
| `CronDelete` | 按 ID 删任务 |
### 运行机制细节
**空闲时才触发。** 调度器每秒检查一次有没有到期任务,但只在 Claude 空闲时才触发。如果你正在跟它对话,任务会排队等当前这轮结束再跑。
**有抖动机制。** 防止所有用户任务在同一时刻砸向 API。循环任务最多延迟周期的 10%,上限 15 分钟。若任务间隔小于 1 小时,最多延迟半个 interval。需要精确触发的话,建议避开 `:00` 和 `:30`。
**任务有保质期。** 循环任务创建 **7 天后**自动过期,会最后执行一次然后自行删除。需要更长周期的,用 Cloud 或 Desktop 的定时任务。
### 注意事项
- **Token 消耗不低。** 特别是自主迭代模式,指令尽量具体,完成标准要明确。
- **只在当前会话有效。** 关掉终端或退出 Claude Code,关闭期间不会执行,也不会补跑。它不是 CI/CD 的替代品。
- **建议加上限。** 目标一直达不到它会一直跑。在指令里加一句"最多尝试 10 次"之类的约束。
- **写清停止条件。** 包括最多尝试次数和验收标准(测试全部通过/CI green/无 lint error)。
- **失败时先汇报。** 限制写操作,避免无限修改。涉及关键路径的改动建议先 commit 再跑 `/loop`,方便回滚。
- **7 天限制。** 循环任务创建 7 天后自动过期,dynamic loop 也适用此限制。需要更长周期用 Routines 或 Desktop scheduled tasks。
## /debug:Claude Code 自己出问题时先跑它
`/debug` 不是帮你 debug 业务代码,而是帮你排查 Claude Code 会话本身的问题。
比如 MCP 连接异常、工具调用失败、命令卡住、权限规则没生效、插件加载异常,这类问题别急着重启,先跑:
```bash
/debug MCP 连接一直失败
/debug 为什么工具调用被拒绝
/debug Claude Code 卡住不动
```
它会开启当前会话的 debug log,并结合日志分析问题。
> **注意**:如果你不是用 `claude --debug` 启动的,`/debug` 只能从执行之后开始捕获日志,之前的错误可能看不到。
## /run 和 /verify:跑起来看看改对了没
这两个是 Claude Code v2.1.145+ 提供的 bundled skills,解决一个很常见的问题:改完代码不确定效果对不对。
### /run:启动应用并观察
```bash
/run
```
它会尝试启动当前项目,观察改动是否真的生效。比如你刚改了登录逻辑,`/run` 会把服务拉起来,你可以直接测试。
如果项目结构比较复杂,Claude 可能猜不对启动方式。这时候可以先用 `/run-skill-generator` 记录一次正确的启动流程,后面 `/run` 就会按这个流程来。
### /verify:构建或运行来验证改动
```bash
/verify
```
它比 `/run` 轻量,主要做构建和运行验证,确认改动是否符合预期。适合改完代码后快速检查有没有编译错误或明显运行时问题。
### /run-skill-generator:记录项目的启动方式
```bash
/run-skill-generator
```
普通 Node、Python、Java 项目,Claude 通常能从 README、`package.json`、`Makefile` 里推断启动方式。复杂项目就别赌它猜对,让 `/run-skill-generator` 跑一次,把正确的启动流程记下来。后面 `/run` 和 `/verify` 就不用再猜了。
## /batch:多任务并行编排
`/batch` 的核心本质是多任务并行编排器,它的强大之处在于它能将一个复杂的"大需求"**自动拆解并并行执行**。
- **任务拆解 (Task Decomposition):** 当你说一个大任务或者多条需求的时候,Claude 并没有胡乱开始,而是将其逻辑拆分成独立的 **Unit(工作单元)**。
- **并行工作 (Parallel Workers):** Claude 会同时启动多个后台 Agent,分别处理不同的功能模块。
- **独立工作区 (Independent Worktrees):** 为了防止多个 Agent 同时修改代码导致冲突,Claude 为每个 Worker 创建了独立的 **Git Worktree**。这意味着它们在物理隔离的环境中修改代码,互不干扰。
**使用方法很简单**:
```bash
/batch 1、移除自选股界面,直接通过分析界面来管理,每一行股票的最右侧展示选项,支持删除和分组。
2、自选股提取一个组件、K线展示和讨论室都单独提取一个组件出来。
3、优化提示词管理,例如支持删除和重命名。
4、历史记录目前支持10条记录,这块的设计优化一下。
```
Claude 收到后会先给出拆分计划(通常 5~30 个 unit),经确认后在隔离 worktree 中并行执行,每个单元通常产出独立 PR。

每个 Worker 完成后,主进程会检查每个单元的改动,最终产出多个独立 PR(而非合并成一个大的 PR)。
> ⚠️ **风险提示**:`/batch` 适合边界清晰、模块相对独立的大任务;不适合强耦合核心链路一次性大改。共享文件(如 package.json、路由表、公共类型、数据库迁移脚本)容易冲突。使用前建议先 commit 干净工作区。

**你可以理解为:** 你请了三个外包程序员(Worker)为三个不同的房间干活,现在项目经理(Main Agent)发现那三个房间的门锁有点问题,于是他亲自去每个房间把写好的代码拷贝出来,最后交到你手里。
## 几个容易被忽略的辅助命令
上面几个命令负责干活,但真正用顺手之后,你还会频繁用到这些辅助命令。
| 命令 | 作用 | 我一般什么时候用 |
| ------------------ | ------------------------- | ------------------------------------ |
| `/diff` | 查看 Claude 到底改了什么 | 每次 `/simplify`、`/batch` 后必看 |
| `/context` | 查看上下文占用 | 长任务开始变慢、变飘时先看 |
| `/compact` | 总结并压缩上下文 | 长会话继续推进前用 |
| `/debug` | 排查 Claude Code 会话问题 | MCP、工具调用、权限异常时用 |
| `/run` | 启动应用并观察改动效果 | 改完代码想快速看效果 |
| `/verify` | 构建或运行来验证改动 | 改完代码快速检查编译和运行时问题 |
| `/permissions` | 管理工具权限 | 跑 `/loop`、`/batch` 前先检查 |
| `/statusline` | 配置状态栏 | 想常驻看模型、目录、上下文、成本时用 |
| `/usage` / `/cost` | 查看用量和成本 | 长任务前后看消耗 |
### 别忽略上下文管理:/context 和 /compact
长任务跑久了,Claude Code 不一定是"能力变差",很多时候是上下文被塞得太满了。
先看:
```bash
/context
```
它会展示当前上下文使用情况,告诉你是不是工具输出、历史对话、规则文件把窗口挤爆了。
如果任务已经聊了很久,但还想继续推进,可以用:
```bash
/compact 只保留当前重构目标、已完成改动、剩余 TODO、关键约束
```
`/compact` 会总结当前会话,释放一部分上下文。大任务中途做一次 compact,但一定要给它明确的保留范围,不要只裸跑 `/compact`。
### 别把权限全放开:/permissions 要会用
Claude Code 能读文件、改文件、跑命令,能力很强,但权限不能无脑全开。
建议先跑:
```bash
/permissions
```
把高风险命令设成 ask 或 deny,比如删除文件、执行部署脚本、操作生产数据库、推送远程分支这类动作。尤其是你要跑 `/loop` 或 `/batch` 时,更应该先收紧权限。
让 AI 自动干活可以,但别让它自动闯祸。
### 让用户养成"看 diff 再信 AI"的习惯
Claude 改完代码后,不要只看它的总结,直接跑:
```bash
/diff
```
它会打开交互式 diff viewer,看当前工作区到底被改了哪些文件、哪些行。尤其是 `/simplify`、`/batch` 这类会直接动代码的命令,跑完之后先看 diff,再决定要不要继续。
## 真正高频的不是命令本身,而是组合
上面讲了 `/simplify`、`/review`、`/loop`、`/batch`,但真正用顺手之后,你会发现这些命令是可以组合成一个完整工作流的:
- `/batch` 负责拆任务
- `/loop` 负责反复执行和验证
- `/simplify` 负责清理技术债
- `/review` 负责正确性把关
- `/security-review` 负责安全兜底
- `/verify` 负责快速验证改动
- `/run` 负责启动应用看效果
- `/diff` 负责人工验货
- `/context` + `/compact` 负责上下文续命
一个更稳的工作流是这样的:
1. `/context` 先看上下文是否健康
2. `/permissions` 检查权限设置是否合理
3. `/batch` 把大需求拆成多个独立任务
4. `/loop` 处理需要反复验证的复杂任务
5. `/simplify` 清理冗余代码和技术债
6. `/review` 做正确性审查
7. 涉及登录、支付、权限、上传、Webhook 等敏感模块,再跑 `/security-review`
8. `/verify` 快速验证改动是否有编译或运行时问题
9. `/diff` 人工确认改动
10. 最后跑测试、提交 PR
这一套走下来,能显著减少机械操作,但关键节点仍要看计划、看 diff、跑测试、做最终 review。
## 非交互模式:脚本和 CI 里用 Claude Code
Claude Code 不一定要在终端里交互使用,也可以跑单条命令然后退出。
### `claude -p`:非交互模式
适合脚本和 CI:
```bash
claude -p "summarize this diff" --output-format json
```
`-p` 接收一段 prompt,执行完直接输出结果。配合 `--output-format json` 可以拿到结构化输出,方便脚本解析。
### `--bare`:跳过自动加载
如果只是跑一个很轻的任务,不需要自动发现 Hooks、Skills、MCP、Auto Memory 和 `CLAUDE.md`,可以加 `--bare`:
```bash
claude --bare -p "explain this function"
```
`--bare` 启动更快,但也意味着少了很多项目上下文。适合一次性分析,不适合复杂代码修改。
### `--teleport`:网页端会话拉回本地
```bash
claude --teleport
```
如果你在 Claude Code on the web 上开了任务,后来发现需要本地仓库、命令行或更完整的开发环境,`--teleport` 可以把网页会话拉回本地终端继续。
## 附录:Claude Code 接入国内模型
Claude Code 强在它的工具链和执行力,但 Claude 官方模型太贵,加上现在 Claude 太容易封号。我们可以使用国内的 MiniMax 或 GLM 作为它的底层大模型。它们都采用了标准的 **OpenAI 兼容接口**,接入过程非常丝滑。
### 1. 获取 API Key
- MiniMax 开放平台:**https://platform.minimaxi.com/user-center/basic-information/interface-key**
- GLM 开放平台:**https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys**


### 2. 推荐使用 CC Switch
强烈推荐安装 **CC Switch**,这是一个专门管理 Claude Code 模型切换的小工具,支持管理 Skills、MCP 和提示词。
项目地址:**https://github.com/farion1231/cc-switch**

启动 CC Switch,点击右上角 **"+"** ,选择预设的 MiniMax/GLM 供应商,填写 API Key,选择模型,添加即可。


### 3. 验证是否生效
在任意目录下输入 `claude` 命令即可启动 Claude Code,选择 **信任此文件夹 (Trust This Folder)**。

### 4. 接入验证清单
MiniMax / GLM 接入不是"能对话"就算成功,Claude Code 的关键是工具调用。建议验证以下核心功能:
- [ ] 是否能稳定 stream 输出
- [ ] 是否能调用 Bash / Read / Edit / Write
- [ ] 是否能跑 subagent
- [ ] 是否能处理长上下文和压缩
- [ ] 是否支持 MCP 工具调用
- [ ] 是否能完成真实项目的「改代码 → 跑测试 → 修复」闭环
## 总结
讲了这么多,最后把全文提到的命令串一遍。命令记不住没关系,知道有这么个东西、需要时打个 `/` 翻出来用就行。
**直接干活的命令(会动代码或执行任务):**
- `/simplify`:派三个 Agent 并行审查你刚写的代码,找到问题直接帮你改。适合提交前自审、重构后清理技术债。
- `/batch`:把一个大需求自动拆成多个工作单元,开多个后台 Worker 在隔离 worktree 里并行干。适合边界清晰的多模块大改。
- `/loop`:既能定时调度(每隔多久跑一次),也能自主试错(给个目标让它反复"执行—验证—修正"直到达成)。
- `/run`:把应用启动起来,看改动是不是真生效。
- `/verify`:比 `/run` 更轻量,主要做构建和运行验证,快速确认有没有编译或运行时问题。
**专门找问题的命令(只给建议、默认不改):**
- `/review`:日常 PR 和本地变更审查的主力,关注正确性、边界条件和潜在 Bug。
- `/code-review`:`/review` 更偏 correctness 的版本,支持 `--fix` 直接修一部分。
- `/security-review`:登录、支付、权限、上传、Webhook 这类敏感模块的安全兜底,盯注入、鉴权、数据泄露、权限绕过。
- `/ultrareview`:云端沙箱里的深度多 Agent 审查,适合核心 PR 合并前兜底。Research preview,功能和价格可能变化。
**控制会话和看状态的辅助命令:**
- `/diff`:看 Claude 到底改了哪些文件哪些行,`/simplify`、`/batch` 跑完必看一眼。
- `/context`:看上下文占用,长任务变慢、变飘时先查它。
- `/compact`:总结并压缩上下文,长会话继续推进前用。
- `/permissions`:管理工具权限,跑 `/loop`、`/batch` 前先收紧。
- `/debug`:排查 Claude Code 会话本身的毛病(MCP 连接、工具调用、权限异常)。
- `/statusline`:配置状态栏,常驻看模型、目录、上下文、成本。
- `/usage`、`/cost`:查看用量和成本。
- `/run-skill-generator`:给复杂项目记录正确的启动方式,让 `/run` 不用瞎猜。
**脚本和 CI 里的非交互用法:**
- `claude -p`:跑单条 prompt 后直接退出,配 `--output-format json` 能拿到结构化输出方便解析。
- `--bare`:跳过自动加载、启动更快,适合一次性轻量分析。
- `--teleport`:把网页端会话拉回本地终端续接。
最后几个高频习惯记牢就够了:
- **干活类命令会直接动代码,跑完一定先看 `/diff`,别只信它的总结。**
- **审查习惯是先 `/review` 后 `/simplify`,先保证逻辑正确再清理代码。**
- **跑 `/loop`、`/batch` 这种自动化前,先用 `/permissions` 收紧权限——让 AI 自动干活可以,别让它自动闯祸。**
- **长任务变慢多半不是能力变差,而是上下文被塞满了,先看 `/context` 再 `/compact` 续命。**
## 参考资料
- [Claude Code commands](https://code.claude.com/docs/en/commands)
- [Claude Code CLI reference](https://code.claude.com/docs/en/cli-reference)
- [Best practices for Claude Code](https://code.claude.com/docs/en/best-practices)
- [Configure permissions](https://code.claude.com/docs/en/permissions)
- [Extend Claude with skills](https://code.claude.com/docs/en/slash-commands)
- [Automate with hooks](https://code.claude.com/docs/en/hooks)