Skip to content

自定义Slash命令

Slash命令是Claude Code的可复用提示词模板。通过创建自定义命令,可以将重复性工作流程封装成简单命令。

什么是Slash命令?

Slash命令本质上是预定义的提示词模板

/review-pr → 展开为完整的代码审查提示词
/deploy    → 展开为完整的部署流程提示词
/test      → 展开为完整的测试提示词

命令文件位置

.claude/
└── commands/
    ├── review-pr.md      # /review-pr 命令
    ├── deploy.md         # /deploy 命令
    ├── test.md           # /test 命令
    └── frontend/
        └── component.md  # /frontend/component 命令

创建自定义命令

基本格式

.claude/commands/ 目录下创建Markdown文件:

markdown
<!-- .claude/commands/review.md -->
# 代码审查

请对以下代码进行全面的代码审查:

## 审查要点

1. **安全性检查**
   - SQL注入风险
   - XSS漏洞
   - 敏感信息泄露

2. **性能问题**
   - 算法复杂度
   - 内存使用
   - 不必要的计算

3. **代码质量**
   - 命名规范
   - 代码重复
   - 注释完整性

4. **测试覆盖**
   - 单元测试
   - 边界情况
   - 错误处理

请提供具体的问题列表和改进建议。

使用参数

使用 $ARGUMENTS 占位符接收参数:

markdown
<!-- .claude/commands/bug-fix.md -->
# Bug修复工作流

针对以下问题进行修复:$ARGUMENTS

## 工作流程

1. **问题分析**
   - 定位问题根源
   - 分析影响范围

2. **制定方案**
   - 设计修复方案
   - 考虑边界情况

3. **实施修复**
   - 编写修复代码
   - 添加相关测试

4. **验证结果**
   - 运行测试
   - 确认问题解决

使用方式:

bash
/bug-fix 用户登录时偶尔出现500错误

实用命令示例

代码审查命令

markdown
<!-- .claude/commands/review.md -->
# 代码审查

请审查最近的代码变更,关注以下方面:

## 安全性
- [ ] 输入验证是否完善
- [ ] 是否存在注入风险
- [ ] 敏感数据是否加密
- [ ] 权限检查是否到位

## 性能
- [ ] 是否有N+1查询
- [ ] 是否有不必要的循环
- [ ] 缓存策略是否合理

## 可维护性
- [ ] 代码是否易于理解
- [ ] 函数是否过长
- [ ] 是否有重复代码

## 测试
- [ ] 测试覆盖是否充分
- [ ] 边界情况是否覆盖

重点审查:$ARGUMENTS

创建组件命令

markdown
<!-- .claude/commands/new-component.md -->
# 创建新组件

创建一个新的React组件:$ARGUMENTS

## 执行步骤

1.`src/components/` 目录创建组件文件
2. 创建对应的样式文件(使用CSS Modules)
3. 创建测试文件(使用React Testing Library)
4. 创建Storybook故事文件
5.`src/components/index.ts` 中导出

## 组件规范

- 使用TypeScript
- 使用函数组件和Hooks
- Props需要类型定义
- 添加JSDoc注释
- 包含loading和error状态处理

部署命令

markdown
<!-- .claude/commands/deploy.md -->
# 部署流程

执行部署到 $ARGUMENTS 环境

## 部署前检查

1. 运行所有测试
2. 检查TypeScript类型
3. 运行Lint检查
4. 构建项目

## 部署步骤

1. 创建部署分支
2. 更新版本号
3. 构建生产版本
4. 部署到目标环境
5. 运行冒烟测试
6. 发送部署通知

## 回滚计划

如果部署失败,执行回滚到上一个稳定版本。

Git工作流命令

markdown
<!-- .claude/commands/pr.md -->
# 创建Pull Request

为当前更改创建Pull Request:$ARGUMENTS

## 工作流程

1. 检查当前分支状态
2. 确保测试通过
3. 创建有意义的PR标题
4. 生成PR描述:
   - 更改摘要
   - 测试计划
   - 截图(如适用)
5. 请求相关审查者
6. 关联相关Issue

测试命令

markdown
<!-- .claude/commands/test.md -->
# 编写测试

为以下代码编写测试:$ARGUMENTS

## 测试要求

1. 使用项目配置的测试框架
2. 覆盖正常流程
3. 覆盖边界情况
4. 覆盖错误处理
5. 使用描述性的测试名称
6. 遵循AAA模式(Arrange-Act-Assert)

## 测试格式

```test
describe('功能名称', () => {
  describe('方法名', () => {
    it('应该正确处理正常输入', () => {
      // Arrange
      // Act
      // Assert
    });

    it('应该正确处理边界情况', () => {
      // ...
    });

    it('应该正确处理错误情况', () => {
      // ...
    });
  });
});

### 文档命令

```markdown
<!-- .claude/commands/doc.md -->
# 生成文档

为以下内容生成文档:$ARGUMENTS

## 文档要求

1. 使用JSDoc/TSDoc格式
2. 包含参数说明
3. 包含返回值说明
4. 包含使用示例
5. 说明可能的异常

## 文档模板

```typescript
/**
 * 函数简短描述
 *
 * 详细描述(如需要)
 *
 * @param paramName - 参数说明
 * @returns 返回值说明
 * @throws 可能抛出的异常
 *
 * @example
 * ```ts
 * const result = functionName(param);
 * ```
 */

## 嵌套命令

支持目录结构创建嵌套命令:

.claude/commands/ ├── frontend/ │ ├── component.md # /frontend/component │ └── page.md # /frontend/page ├── backend/ │ ├── api.md # /backend/api │ └── model.md # /backend/model └── deploy/ ├── staging.md # /deploy/staging └── production.md # /deploy/production


## 内置变量

| 变量 | 说明 |
|------|------|
| `$ARGUMENTS` | 命令后跟随的参数 |
| `$USER` | 当前用户名 |
| `$PROJECT` | 项目名称 |
| `$DATE` | 当前日期 |

## 命令最佳实践

### 1. 清晰的指令结构

```markdown
# 命令名称

简短描述

## 执行步骤

1. 第一步
2. 第二步

## 输出格式

描述期望的输出格式

2. 使用条件逻辑

markdown
# 智能测试命令

$ARGUMENTS

根据文件类型选择测试策略:
- 如果是组件文件:使用React Testing Library
- 如果是工具函数:使用Jest单元测试
- 如果是API路由:使用集成测试

3. 团队共享

.claude/commands/ 目录提交到Git,团队成员自动获得相同的命令:

bash
git add .claude/commands/
git commit -m "添加团队共享的Slash命令"

查看可用命令

bash
/help

会列出所有可用的自定义命令。

下一步

学会了自定义命令后,继续学习 CLAUDE.md配置指南