使用 Claude Code 的 Slash Command 编排工作流,让 AI 半夜持续为你打工

1- 概述

想象一下这样的场景:你刚写完一段关键代码,需要进行全面审查:代码质量、安全漏洞、性能瓶颈、测试覆盖等等,每一项都需要专业的人或者 Agent 帮你完成。Claude Code 可以为每一个场景编写一个 Agent,但是有没有一种方式可以把它们串起来呢?

这就是今天要分享的核心技巧——自定义斜杠命令(Slash Commands)

2- 回顾 Agent 的调用方式

在上一篇 [[使用 Claude Code 的 Agent 帮助你更快编写更好的代码]] 文章中,介绍了使用 Claude Code 自定义 Agent,以及使用别人编写好的 Agent。

Claude Code 有两种调用 Agent 的方式:

  • 自动委派:当你的提示词中包含某个 Agent 的描述,或执行流程走到相应步骤时,Claude Code 会根据情况自动调用合适的 Agent
  • 显式调用:你可以直接说 使用 code-reviewer subagent 检查我最近的代码

对于复杂的工作流程,你可能会想让 Claude Code 调用不同的 Agent 处理不同的事情。你可以说:

首先使用 code-reviewer subagent 检查我最近的代码,针对需要改进的内容,使用 optimizer subagent 修复代码

这里,我们让 Claude Code 逐个调用了 code-revieweroptimizer 两个 Agent。

[!note] 提示
对于常见的工作流程,每次都要重复写这么长的提示词,太麻烦了。我们可以通过自定义斜杠命令来编排工作流,复用这段提示词。

3- 什么是斜杠命令(Slash Commands)

输入 /,你就可以看到一列命令列表。

Slash Commands

这个你肯定比较熟悉了,Claude Code 内置了很多默认命令 [^1]。

Claude Code 还支持自定义斜杠命令,这样我们就可以快速启动一个定制化的工作流了。

4- 自定义的斜杠命令

其实每一个斜杠命令都是一个 markdown 文件,存放在全局目录(~/.claude/commands/)或者项目目录(.claude/commands/)中。

[!tip] 小提示
在新版 Claude Code 中,自定义斜杠命令已经与 Skills 合并:.claude/commands/deploy.md.claude/skills/deploy/SKILL.md 都会生成 /deploy 命令,你现有的 .claude/commands/ 文件依然完全可用。相比 commands,Skills 还支持附带辅助文件、自动触发等更多能力。

4.1- 语法

/<command-name> [arguments]
  • <command-name> 就是 markdown 文件的文件名,命令名与文件名一一对应。
  • [arguments] 是传递给斜杠命令的可选参数;与严谨的命令行不同,它可以是一句提示词。

在自定义的斜杠命令中,使用 $ARGUMENTS 来接收参数(它实际上只是提示词内容中的一个占位符)。

5- 文件内容

整个 markdown 文件的格式如下:

## Context

- 当前的 git status:!`git status`
- ...

## Task

1. 根据 $ARGUMENTS 执行 XXX
2. 对比 @src/xxx.ts 执行 XXX
3. 深度思考 XXX

我们一步一步来拆分:

5.1- 元数据

--- 包裹的内容中,是这个斜杠命令的一些参数:

  • allowed-tools:该斜杠命令可以使用哪些工具
  • argument-hint:所需的参数提示
  • description:斜杠命令的一句话描述
  • model:可以自定义模型,默认使用当前对话的模型

5.2- 执行命令

你可以在文档中嵌入 shell 命令,斜杠命令执行时会自动运行这些命令,并把输出结果作为上下文注入。

!`command`

例如 !git status`` 会把当前的 Git 状态注入到提示词中。

5.3- 参数

$ARGUMENTS 就是你使用斜杠命令时的参数,会作为上下文使用。

5.4- 文件引用

你可以使用 @path 来引用指定文件,这一般用于项目中的斜杠命令。

5.5- 思考模式

当提示词中包含「深度思考 XXX」或「Think deeply about XXX」之类的表述时,Claude Code 会进行多步骤的推理(需当前模型与套餐支持)。

6- 自定义一个全面代码审查的 Slash Command

6.1- 预期效果

我们预期的使用方式为 /full-review 检查身份验证模块。然后 Claude Code 就会全面检查这部分代码,整体流程如下:

/full-review <审查目标>
 ├─ 代码质量检查(code-reviewer)
 ├─ 安全审查(security-auditor)
 ├─ 架构评审(architect-reviewer)
 ├─ 性能分析(performance-engineer)
 └─ 测试覆盖率评估(test-automator)
      ↓
 汇总为统一的审查报告

6.2- 示例内容

首先在 .claude/commands/ 目录中创建一个文件 full-review.md,文件开头的内容如下:

## Context

- 当前工作目录:!`pwd`
- Git 状态:!`git status --porcelain`
- 最近提交:!`git log --oneline -5`

## Task

执行多个专业 subagent 进行全面代码审查:

#### 1. 代码质量检查

使用 `subagent_type="code-reviewer"`

**提示词**:
```text
对以下代码进行质量与可维护性审查:$ARGUMENTS
检查代码异味、可读性、文档完整性及最佳实践遵循情况
重点关注:代码整洁原则、SOLID 原则、DRY 原则、命名规范
```

继续补充文件剩余部分中,另外 4 个专业 Agent 的检查项:

6.2.1- 安全审查

使用 subagent_type="security-auditor"

提示词

对以下内容进行安全审计:$ARGUMENTS
检查漏洞、OWASP 合规性、认证问题及数据保护措施
重点关注:注入风险、身份验证、授权机制、数据加密

6.2.2- 架构评审

使用 subagent_type="architect-reviewer"

提示词

审查以下架构设计与模式:$ARGUMENTS
评估其可扩展性、可维护性及对架构原则的遵循程度
重点关注:服务边界、耦合性、内聚性、设计模式

6.2.3- 性能分析

使用 subagent_type="performance-engineer"

提示词

分析以下内容的性能特征:$ARGUMENTS
识别瓶颈、资源使用情况以及优化机会
重点关注:响应时间、内存使用、数据库查询、缓存策略

6.2.4- 测试覆盖率评估

使用 subagent_type="test-automator"

提示词

评估以下内容的测试覆盖范围与质量:$ARGUMENTS
检查单元测试、集成测试,并识别测试覆盖中的空白
重点关注:覆盖率指标、测试质量、边界情况、测试可维护性

6.3- 报告结构

将所有反馈整理成统一报告:

6.3.1- 🔴 关键问题(必须修复)

  • 安全漏洞
  • 功能故障
  • 架构缺陷

6.3.2- 🟡 推荐修复(应该修复)

  • 性能瓶颈
  • 代码质量问题
  • 测试缺失

6.3.3- 🟢 建议改进(可选修复)

  • 重构机会
  • 文档改进

6.3.4- ✅ 正面反馈

  • 良好实践总结
  • 值得维护的优秀代码

审查目标:$ARGUMENTS

6.3.5- 完整示例文件

将以上内容合并到一起,full-review.md 的完整内容如下(可直接复制使用):

---
description: 对代码进行全面的多 Agent 审查
argument-hint: [要审查的代码或模块]
allowed-tools: Read Grep Bash
---

## Context

- 当前工作目录:!`pwd`
- Git 状态:!`git status --porcelain`
- 最近提交:!`git log --oneline -5`

## Task

执行多个专业 subagent 进行全面代码审查:

#### 1. 代码质量检查

使用 `subagent_type="code-reviewer"`

**提示词**:
```text
对以下代码进行质量与可维护性审查:$ARGUMENTS
检查代码异味、可读性、文档完整性及最佳实践遵循情况
重点关注:代码整洁原则、SOLID 原则、DRY 原则、命名规范
```

#### 2. 安全审查

使用 `subagent_type="security-auditor"`

**提示词**:
```text
对以下内容进行安全审计:$ARGUMENTS
检查漏洞、OWASP 合规性、认证问题及数据保护措施
重点关注:注入风险、身份验证、授权机制、数据加密
```

#### 3. 架构评审

使用 `subagent_type="architect-reviewer"`

**提示词**:
```text
审查以下架构设计与模式:$ARGUMENTS
评估其可扩展性、可维护性及对架构原则的遵循程度
重点关注:服务边界、耦合性、内聚性、设计模式
```

#### 4. 性能分析

使用 `subagent_type="performance-engineer"`

**提示词**:
```text
分析以下内容的性能特征:$ARGUMENTS
识别瓶颈、资源使用情况以及优化机会
重点关注:响应时间、内存使用、数据库查询、缓存策略
```

#### 5. 测试覆盖率评估

使用 `subagent_type="test-automator"`

**提示词**:
```text
评估以下内容的测试覆盖范围与质量:$ARGUMENTS
检查单元测试、集成测试,并识别测试覆盖中的空白
重点关注:覆盖率指标、测试质量、边界情况、测试可维护性
```

## 报告结构

将所有反馈整理成统一报告:

### 🔴 关键问题(必须修复)

- 安全漏洞
- 功能故障
- 架构缺陷

### 🟡 推荐修复(应该修复)

- 性能瓶颈
- 代码质量问题
- 测试缺失

### 🟢 建议改进(可选修复)

- 重构机会
- 文档改进

### ✅ 正面反馈

- 良好实践总结
- 值得维护的优秀代码

**审查目标**:$ARGUMENTS

就这样,一份对代码进行全面分析的自定义斜杠命令就完成了。这是一套不错的工作流,集合了 5 个 Agent 共同对内容进行审查。

6.4- 更多的 Slash Commands

同理,你也可以创建多种多样的 Slash Commands 来满足你的需求。

wshobson/commands 这个仓库预设了一套适用于 Claude Code 的 Slash Commands 集合,包含大量针对复杂任务的多 Agent 编排示例。

6.5- 总结

这种工作流可以做得更复杂、更智能。你甚至可以在睡觉前启动一个完整的项目审查流程,第二天醒来就能看到详细的分析报告。充分利用 Claude Code 按时间段限流的机制,让 AI 持续为你打工

6.5.1- 核心优势

  • 自动化工作流:一次配置,多次复用
  • 多 Agent 协作:不同专业领域的 AI 协同工作
  • 标准化输出:统一的报告格式,便于阅读和处理
  • 高效便捷:简单的命令调用,复杂的任务执行

参考链接

[^1]: 内置命令包括 /help/clear/compact/init/model/config/memory/agents/mcp/usage 等,输入 / 即可查看完整列表。