Skip to main content

斜杠命令

创建自定义斜杠命令,通过简单的 markdown 文件来自动化重复性任务并扩展 Roo Code 的功能。


快速开始

在聊天中输入 / 来选择命令。要创建或管理命令,请打开 设置 > 斜杠命令。您仍然可以将命令存储在 .roo/commands/(项目)或 ~/.roo/commands/(全局)中。


概述

斜杠命令让您可以创建可重复使用的提示和工作流程,并能够立即触发。将复杂的多步骤流程转换为单个命令,标准化团队实践,并通过简单的 markdown 文件自动化重复性任务。

显示可用命令的斜杠命令菜单

主要优势:

  • 工作流程自动化:将复杂的多步骤流程转换为单个命令
  • 团队标准化:在团队中共享命令以保持一致的实践
  • 上下文保留:在每个命令中包含项目特定的上下文
  • 快速访问:模糊搜索和自动完成功能,实现即时命令发现

创建自定义命令

自定义命令通过将 markdown 文件添加到特定目录来扩展 Roo Code 的功能:

  • 项目特定:工作区根目录中的 .roo/commands/
  • 全局:主目录中的 ~/.roo/commands/

文件名将成为命令名称。例如:

  • review.md/review
  • test-api.md/test-api
  • deploy-check.md/deploy-check
命令名称处理

在 设置 > 斜杠命令 中创建命令时,命令名称会自动处理:

  • 转换为小写
  • 空格替换为破折号
  • 特殊字符移除(破折号除外)
  • 多个连续的破折号替换为单个破折号
  • 移除开头/结尾的破折号

示例:"My Cool Command!" 变为 my-cool-command

基本命令格式

通过添加 markdown 文件创建简单命令:

# review.md
请检查此代码是否存在:
- 性能问题
- 安全漏洞
- 代码风格违规
- 潜在错误

带有 frontmatter 的高级命令

使用 frontmatter 添加元数据以增强功能:

---
description: 专注于安全性和性能的全面代码审查
argument-hint: <要审查的文件或目录>
---

# 安全优先的代码审查

请对所选代码进行全面的安全审查:

1. **身份验证和授权**
- 检查适当的访问控制
- 验证令牌验证
- 审查权限检查

2. **输入验证**
- 识别潜在的注入点
- 检查适当的清理
- 审查数据类型验证

3. **安全最佳实践**
- 查找硬编码的密钥
- 检查安全通信
- 审查错误处理以防止信息泄露

Frontmatter 字段:

  • description:在命令菜单中显示,帮助用户理解命令的用途
  • argument-hint:(可选)提供有关使用命令时期望参数的提示。有关详细信息,请参阅参数提示
  • mode:(可选)运行命令前要切换到的模式 slug(例如 codearchitect)。Roo 首先切换到该模式,然后在该模式的上下文中执行命令内容

命令管理

从设置中创建和维护命令。

  1. 点击 Roo Code 中的齿轮图标并打开设置
  2. 转到“斜杠命令”选项卡
  3. 点击“新建命令”,为其命名,并选择位置(项目或全局)
  4. 命令文件将打开,其中包含入门模板内容
设置 > 斜杠命令选项卡,用于创建和管理命令

使用斜杠命令

在聊天中输入 / 以打开仅限选择的命令菜单。使用齿轮图标打开 设置 > 斜杠命令 来创建和编辑命令。

带有齿轮图标的斜杠命令弹出窗口,可打开设置 > 斜杠命令
  1. 仅限选择:从现有命令中选择;创建和编辑位于设置中
  2. 自动完成:开始输入以过滤命令(例如,/sam 显示 sample-command-name
  3. 描述预览:在菜单中查看命令描述
  4. 命令优先级:项目命令会覆盖具有相同名称的全局命令

参数提示

参数提示为斜杠命令提供即时帮助,显示当命令期望额外输入时应提供何种信息。

当您输入 / 调出命令菜单时,期望参数的命令将在其旁边显示浅灰色提示。此提示告诉您命令期望的参数类型。

例如:

  • /mode <mode_slug> - 提示 <mode_slug> 表示您应提供模式名称,如 codedebug
  • /api-endpoint <endpoint-name> <http-method> - 显示您需要同时提供端点名称和 HTTP 方法

选择命令后,它将被插入到聊天输入中,后跟一个空格。提示不会被插入;它仅作为视觉指南,帮助您知道接下来要输入什么。然后,您必须手动在命令后输入参数。

为自定义命令添加参数提示

您可以使用 frontmatter 中的 argument-hint 字段为您的自定义命令添加参数提示:

---
description: 使用最佳实践生成新的 REST API 端点
argument-hint: <endpoint-name> <http-method>
---

这将在命令菜单中显示为 /api-endpoint <endpoint-name> <http-method>

参数提示的最佳实践:

  • 具体明确:使用描述性占位符,如 <file-path>,而不是通用占位符,如 <arg>
  • 显示多个参数:如果您的命令需要多个输入,请全部显示:<source> <destination>
  • 使用一致的格式:始终将占位符用尖括号括起来:<placeholder>
  • 保持简洁:提示应简短明了

常见问题:

  • “如果我不提供参数会怎样?” 命令可能无法按预期工作,或者可能会提示您提供更多信息。提示的存在是为了帮助您第一次就正确操作。
  • “所有命令都有提示吗?” 不是,只有设计为接受参数的命令才会有提示。无需额外输入即可工作的命令不会显示提示。
  • “我可以在不替换提示的情况下使用命令吗?” 提示文本(如 <mode_slug>)需要替换为实际值。保留提示文本很可能会导致命令失败或行为异常。

示例和用例

模式定位命令

使用 mode 字段确保命令在特定模式上下文中运行:

---
description: 分析架构并提出改进建议
mode: architect
---

审查当前系统架构,并针对以下方面提出改进建议:
- 可扩展性瓶颈
- 组件耦合
- 安全边界
- 数据流优化

当您运行此命令时,Roo 首先切换到 Architect 模式,然后使用 Architect 的角色定义和工具限制处理命令内容。

开发工作流程

API 端点生成器

---
description: 使用最佳实践生成新的 REST API 端点
argument-hint: <endpoint-name> <http-method>
---

创建一个新的 REST API 端点,具体要求如下:
- 完善的错误处理机制
- 输入验证
- 身份验证中间件
- OpenAPI 文档
- 单元测试
- 集成测试

请遵循我们项目的 API 规范和模式。

**数据库迁移助手**
```yaml
---
description: 创建支持回滚的数据库迁移
---

生成一个数据库迁移文件,要求:
1. 包含 up 和 down 两个方向的迁移脚本
2. 正确处理事务
3. 包含数据验证
4. 提供清晰的迁移描述
5. 遵循我们的命名规范

请记得检查依赖的迁移文件和数据完整性。

代码质量

性能分析器

---
description: 分析代码中的性能瓶颈
---

分析选定代码的性能问题:
- 识别 O(n²) 或更差的算法
- 查找不必要的数据库查询
- 检测内存泄漏
- 建议缓存优化机会
- 推荐异步/等待优化
- 检查资源清理是否正确

重构助手

---
description: 建议重构改进以编写更清晰的代码
---

审查此代码并建议重构改进:
- 将重复代码提取为函数
- 改进变量和函数命名
- 简化复杂的条件判断
- 应用 SOLID 原则
- 降低组件间的耦合度
- 提高可测试性

文档

README 生成器

---
description: 为当前项目创建综合性的 README
---

生成一个 README.md 文件,包含:
1. 项目标题和描述
2. 安装说明
3. 使用示例
4. API 文档
5. 配置选项
6. 贡献指南
7. 许可证信息

请基于当前项目结构和现有代码来生成。

API 文档

---
description: 生成 OpenAPI/Swagger 文档
---

为当前文件中的 API 端点创建 OpenAPI 3.0 文档:
- 包含所有 HTTP 方法
- 记录请求/响应模式
- 添加示例请求和响应
- 包含身份验证要求
- 记录错误响应
- 添加描述性摘要

测试

测试生成器

---
description: 生成综合测试套件
---

为选定代码创建测试:
1. 所有公共方法的单元测试
2. 边界情况测试
3. 错误处理测试
4. 模拟外部依赖
5. 性能基准测试
6. 适用的集成测试

使用我们项目的测试框架和规范。

测试覆盖率分析器

---
description: 识别缺失的测试覆盖率
---

分析当前测试覆盖率并:
- 识别未测试的代码路径
- 建议额外的测试用例
- 查找未覆盖的边界情况
- 推荐集成测试
- 检查错误测试是否充分

最佳实践

命令命名:

  • 使用描述性、以动作为导向的名称
  • 保持名称简洁明了
  • 多词命令使用连字符连接
  • 避免使用通用名称如 helptest
  • 注意:名称会自动进行 slugify 处理(转为小写,移除特殊字符)
  • .md 扩展名会根据需要自动添加/移除

命令内容:

  • 以清晰的指令开头
  • 使用结构化格式(列表、章节)
  • 包含具体要求
  • 引用项目规范
  • 保持命令专注于单一任务

组织方式:

  • 将相关命令分组到子目录中
  • 使用一致的命名模式
  • 记录复杂命令
  • 对命令进行版本控制
  • 在项目仓库中共享团队命令

内置命令

Roo Code 包含强大的内置命令,提供专门的功能:

init 命令

/init 命令是一个全面的 AI 助手设置工具,它会分析你的代码库并创建定制的配置文件。这个强大的命令:

执行多阶段分析:

  • 发现阶段:扫描项目结构并识别关键技术
  • 项目识别:确定项目类型、框架和依赖关系
  • 架构映射:分析代码组织和模式
  • 构建/测试检测:识别构建工具、测试框架和脚本
  • 代码风格提取:捕获编码规范和模式

创建 AI 助手配置:

  • .roo/rules-* 目录中生成特定模式的 AGENTS.md 文件
  • 为不同的 AI 助手模式(Code、Architect、Debug 等)创建详细规则
  • 生成简洁、高信息量的文档,遵循"仅非显而易见"原则
  • 支持多种 AI 助手格式(Claude、Cursor、Copilot)

管理项目设置:

  • 创建全面的项目初始化待办事项列表
  • 识别安全和性能考虑因素
  • 记录项目特定的规范和模式
  • 对生成的文档实施质量标准

使用方法: 只需在聊天中输入 /init 即可分析你的代码库并设置针对你项目定制的 AI 助手配置文件。

tip

当你开始新项目或想要在整个团队中建立一致的 AI 助手行为时,init 命令特别有用。

故障排除

命令未显示:

  • 检查文件位置:确保自定义命令文件位于 .roo/commands/~/.roo/commands/
  • 验证文件扩展名:自定义命令必须是 .md 文件
  • 重新加载窗口:有时 VS Code 需要重新加载才能检测到新命令文件

命令未找到: 当斜杠命令未找到时,LLM 会看到错误消息,指示命令应该位于何处。这有助于指导你在正确的位置创建命令。

命令模板内容: 通过 UI 创建的新命令会收到模板内容以帮助你开始。此模板包括基本结构和示例,你可以自定义。

命令冲突:

  • 项目命令(.roo/commands/)会覆盖同名的全局命令(~/.roo/commands/
  • 内置命令不能被覆盖
  • 通过 UI 创建重复名称时,会附加数字(例如,new-command-1new-command-2

文件系统错误:

  • 权限问题:确保你对 .roo/commands/ 目录有写入权限
  • 目录创建:如果命令目录不存在,系统会尝试创建它
  • 符号链接:命令目录支持符号链接,以便在项目间共享命令
关于模式命令

斜杠菜单包括模式切换命令(如 /code/ask),这些命令从根本上改变 AI 的操作模式——它们不只是注入文本,而是切换整个 AI 上下文。你创建的自定义模式也会显示为斜杠命令(例如,slug 为 reviewer 的模式会变成 /reviewer)。这些模式命令不能被自定义工作流命令覆盖。更多信息请参见使用模式自定义模式


另见