自定义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配置指南。