03|Slash Commands:把高频提示词变成团队命令
创建项目级与个人级命令,理解参数、命名空间和加载过程。
创建项目级与个人级命令,理解参数、命名空间和加载过程。
好任务像一张清楚的维修单:现象、允许触碰的范围、完成标准缺一不可。“优化页面”不可验收,“把空状态改为中英双语并通过现有测试”才可以。

本课交付物
挑选一个文案或空状态改动,写出背景、范围、禁止项和验收标准。让 Claude Code先复述和列计划,批准后实施,再用 git diff 与测试结果逐条验收。
概览
Slash command 是你在 Claude 的交互式会话中用来控制行为的快捷方式,主要分为几类:
- 内置命令:Claude Code 自带,例如
/help、/clear、/model - Skills:你自己定义的命令,基于
SKILL.md文件,例如/optimize、/pr - 插件命令:来自已安装插件的命令,例如
/frontend-design:frontend-design - MCP prompts:来自 MCP server 的命令,例如
/mcp__github__list_prs
注意:自定义 slash command 已经合并进 Skills。
.claude/commands/仍然可用,但现在更推荐使用.claude/skills/。两者都会创建/command-name形式的快捷命令。完整参考请见 Skills 指南。
内置命令速查
Claude Code 目前提供 55+ 个内置命令和 5 个内置 Skills。你可以在 Claude Code 中输入 / 查看全部,也可以输入 / 后继续键入字母进行筛选。
| 命令 | 作用 |
|---|---|
/add-dir <path> |
添加工作目录 |
/agents |
管理 agent 配置 |
/branch [name] |
将当前对话分支到新会话(别名:/fork。注意:/fork 在 v2.1.77 中更名为 /branch) |
/btw <question> |
额外问题,不写入历史 |
/chrome |
配置 Chrome 浏览器集成 |
/clear |
清空对话(别名:/reset、/new) |
/color [color|default] |
设置提示栏颜色 |
/compact [instructions] |
压缩对话,可附带聚焦指令 |
/config |
打开设置(别名:/settings) |
/context |
用彩色网格可视化上下文占用 |
/copy [N] |
将 assistant 回复复制到剪贴板;w 会写入文件 |
/cost |
查看 token 使用统计 |
/desktop |
继续在桌面应用中处理(别名:/app) |
/diff |
查看未提交更改的交互式 diff |
/doctor |
检查安装健康状态 |
/effort [low|medium|high|max|auto] |
设置推理强度;max 需要 Opus 4.6 |
/exit |
退出 REPL(别名:/quit) |
/export [filename] |
将当前对话导出为文件或剪贴板内容 |
/extra-usage |
配置额外用量以应对速率限制 |
/fast [on|off] |
切换快速模式 |
/feedback |
提交反馈(别名:/bug) |
/help |
显示帮助 |
/hooks |
查看 hook 配置 |
/ide |
管理 IDE 集成 |
/init |
初始化 CLAUDE.md,可设置 CLAUDE_CODE_NEW_INIT=1 启用交互式流程 |
/insights |
生成会话分析报告 |
/install-github-app |
配置 GitHub Actions app |
/install-slack-app |
安装 Slack app |
/keybindings |
打开快捷键配置 |
/login |
切换 Anthropic 账号 |
/logout |
退出当前 Anthropic 账号 |
/mcp |
管理 MCP servers 和 OAuth |
/memory |
编辑 CLAUDE.md,切换自动记忆 |
/mobile |
生成移动端扫码二维码(别名:/ios、/android) |
/model [model] |
选择模型,并可用左右箭头调整 effort |
/passes |
分享一周免费 Claude Code 使用权 |
/permissions |
查看或更新权限(别名:/allowed-tools) |
/plan [description] |
进入规划模式 |
/plugin |
管理插件 |
/pr-comments [PR] |
获取 GitHub PR 评论 |
/privacy-settings |
隐私设置(仅 Pro/Max) |
/release-notes |
查看更新日志 |
/reload-plugins |
重新加载当前插件 |
/remote-control |
从 claude.ai 进行远程控制(别名:/rc) |
/remote-env |
配置默认远程环境 |
/rename [name] |
重命名会话 |
/resume [session] |
恢复对话(别名:/continue) |
/review |
已弃用,请改用 code-review 插件 |
/rewind |
回退对话和/或代码(别名:/checkpoint) |
/sandbox |
切换沙盒模式 |
/schedule [description] |
创建/管理定时任务 |
/security-review |
分析分支中的安全漏洞 |
/skills |
列出可用 Skills |
/stats |
可视化每日使用量、会话和连续天数 |
/status |
显示版本、模型、账号 |
/statusline |
配置状态栏 |
/tasks |
列出/管理后台任务 |
/terminal-setup |
配置终端快捷键 |
/theme |
更改颜色主题 |
/voice |
切换按住说话语音输入 |
内置 Skills
以下 Skills 随 Claude Code 一起提供,调用方式和 slash command 一样:
| Skill | 作用 |
|---|---|
/batch <instruction> |
使用 worktree 编排大规模并行修改 |
/claude-api |
加载 Claude API 参考,便于为项目所用语言编写代码 |
/debug [description] |
启用调试日志 |
/loop [interval] <prompt> |
按固定间隔重复运行提示词 |
/simplify [focus] |
审查改动文件的代码质量 |
已弃用命令
| 命令 | 状态 |
|---|---|
/review |
已弃用,已被 code-review 插件替代 |
/output-style |
自 v2.1.73 起弃用 |
/fork |
已重命名为 /branch(别名仍可用,v2.1.77) |
/vim |
自 v2.1.92 起移除;改用 /config → Editor mode |
最近变化
/fork已更名为/branch,但保留/fork作为别名(v2.1.77)/output-style已弃用(v2.1.73)/review已弃用,推荐改用code-review插件- 新增
/effort,其中max级别需要 Opus 4.6 - 新增
/voice,用于按住说话语音输入 - 新增
/schedule,用于创建和管理定时任务 - 新增
/color,用于自定义提示栏颜色 /model选择器现在显示人类可读标签,例如 “Sonnet 4.6”/resume支持/continue别名- MCP prompts 可作为
/mcp__<server>__<prompt>命令使用,见 MCP Prompts as Commands
自定义命令(现已归入 Skills)
自定义 slash command 已经合并到 Skills。两种方式都可以通过 /command-name 调用:
| 方式 | 位置 | 状态 |
|---|---|---|
| Skills(推荐) | .claude/skills/<name>/SKILL.md |
当前标准 |
| 旧式命令 | .claude/commands/<name>.md |
仍可使用 |
如果 skill 和 command 同名,skill 优先。例如同时存在 .claude/commands/review.md 和 .claude/skills/review/SKILL.md 时,会使用 skill 版本。
迁移路径
你现有的 .claude/commands/ 文件可以继续直接使用。若要迁移到 Skills:
迁移前(Command):
.claude/commands/optimize.md
迁移后(Skill):
.claude/skills/optimize/SKILL.md
为什么用 Skills
- 目录结构:可以把脚本、模板、参考文件打包在一起
- 自动触发:相关场景下 Claude 可以自动调用
- 调用控制:可以决定由用户、Claude 或两者共同调用
- 子 agent 执行:可在隔离上下文中运行 skill
- 渐进披露:只在需要时加载额外文件
把自定义命令做成 Skill
创建一个包含 SKILL.md 的目录:
mkdir -p .claude/skills/my-command
文件: .claude/skills/my-command/SKILL.md
# 我的命令
当该命令被触发时,Claude 需要遵循的说明。
1. 第一步
2. 第二步
3. 第三步
Frontmatter 参考
| 字段 | 作用 | 默认值 |
|---|---|---|
name |
命令名(会变成 /name) |
目录名 |
description |
简短说明,帮助 Claude 判断何时使用 | 第一段 |
argument-hint |
自动补全时显示的参数提示 | 无 |
allowed-tools |
命令可无权限使用的工具 | 继承 |
model |
指定要使用的模型 | 继承 |
disable-model-invocation |
若为 true,只有用户能调用,Claude 不能自动调用 |
false |
user-invocable |
若为 false,不会出现在 / 菜单中 |
true |
context |
设为 fork 时,在隔离 subagent 中运行 |
无 |
agent |
context: fork 时使用的 agent 类型 |
general-purpose |
hooks |
Skill 范围内的 hooks(PreToolUse、PostToolUse、Stop) | 无 |
参数
命令可以接收参数:
使用 $ARGUMENTS 接收全部参数:
---
name: fix-issue
description: 根据编号修复 GitHub issue
---
按团队编码规范修复 #$ARGUMENTS
调用 /fix-issue 123 时,$ARGUMENTS 会变成 123。
使用 $0、$1 等接收单个参数:
---
name: review-pr
description: 按优先级审查 PR
---
审查 #$0,优先级为 $1
调用 /review-pr 456 high 时,$0="456",$1="high"。
用 Shell 命令注入动态上下文
在 prompt 发送前,可用 !`command` 先执行 shell 命令:
---
name: commit
description: 使用上下文创建 git commit
allowed-tools: Bash(git *)
---
## 上下文
- 当前 git 状态:!`git status`
- 当前 diff:!`git diff HEAD`
- 当前分支:!`git branch --show-current`
- 最近提交:!`git log --oneline -5`
## 你的任务
根据以上变更,创建一个 git commit。
文件引用
使用 @ 引用文件内容:
审查 @src/utils/helpers.js 中的实现
比较 @src/old-version.js 和 @src/new-version.js
插件命令
插件可以提供自定义命令:
/plugin-name:command-name
如果没有命名冲突,也可以直接使用 /command-name。
示例:
/frontend-design:frontend-design
/commit-commands:commit
MCP Prompts 作为命令
MCP servers 可以把 prompt 暴露成 slash command:
/mcp__<server-name>__<prompt-name> [arguments]
示例:
/mcp__github__list_prs
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug title" high
MCP 权限语法
在权限中控制 MCP server 访问:
mcp__github- 访问整个 GitHub MCP servermcp__github__*- 通配符访问全部工具mcp__github__get_issue- 访问某个特定工具
命令架构
graph TD
A["用户输入:/command-name"] --> B{"命令类型?"}
B -->|内置| C["执行内置命令"]
B -->|Skill| D["加载 SKILL.md"]
B -->|插件| E["加载插件命令"]
B -->|MCP| F["执行 MCP Prompt"]
D --> G["解析 Frontmatter"]
G --> H["替换变量"]
H --> I["执行 Shell 命令"]
I --> J["发送给 Claude"]
J --> K["返回结果"]
命令生命周期
sequenceDiagram
participant User
participant Claude as Claude Code
participant FS as File System
participant CLI as Shell/Bash
User->>Claude: 输入 /optimize
Claude->>FS: 搜索 .claude/skills/ 和 .claude/commands/
FS-->>Claude: 返回 optimize/SKILL.md
Claude->>Claude: 解析 frontmatter
Claude->>CLI: 执行 !`command` 替换
CLI-->>Claude: 命令输出
Claude->>Claude: 替换 $ARGUMENTS
Claude->>User: 处理 prompt
Claude->>User: 返回结果
本文件中的可用命令
这些示例命令可以作为 skill 或旧式命令安装。
1. /optimize - 代码优化
分析性能问题、内存泄漏和优化机会。
用法:
/optimize
[粘贴你的代码]
文件: optimize.md
2. /pr - Pull Request 准备
引导你完成 PR 准备清单,包括 lint、测试和提交格式整理。
用法:
/pr
文件: pr.md
截图:
3. /generate-api-docs - API 文档生成器
从源码生成完整的 API 文档。
用法:
/generate-api-docs
文件: generate-api-docs.md
4. /commit - 带上下文的 Git Commit
基于仓库中的动态上下文创建 git commit。
用法:
/commit [可选说明]
文件: commit.md
5. /push-all - 暂存、提交并推送
会先暂存所有改动,再提交,并带安全检查地推送到远端。
用法:
/push-all
文件: push-all.md
安全检查:
- 密钥文件:
.env*、*.key、*.pem、credentials.json - API Keys:识别真实 key 与占位符
- 大文件:未使用 Git LFS 且大于 10MB
- 构建产物:
node_modules/、dist/、__pycache__/
6. /doc-refactor - 文档重构
重组项目文档,让结构更清晰、可访问性更好。
文件: doc-refactor.md
7. /setup-ci-cd - CI/CD 流水线配置
实现 pre-commit hooks 和 GitHub Actions 质量保障流程。
文件: setup-ci-cd.md
8. /unit-test-expand - 测试覆盖率扩展
针对未测试分支和边界情况,提升测试覆盖率。
文件: unit-test-expand.md
本站实战工作台
“优化一下”为什么无法交付
模糊需求会把产品决策藏进实现过程。假设你说“把空状态优化一下”,Agent 必须猜文案、颜色、移动端布局、语言范围和验收方法。最后即使页面变了,你也很难判断它是完成需求,还是碰巧做出一个可看的版本。
把需求改写为可观察结果:“文章搜索无结果时,中文显示指定提示,英文显示对应翻译;保留当前筛选条件;桌面和 390px 宽度不溢出;现有测试与构建通过。”这时每个动作都有边界,每个结论都有验证方式。
写一张四格任务卡
在动代码前写四部分:
| 格子 | 示例 |
|---|---|
| 背景 | 用户误以为页面坏了,因为搜索无结果时区域为空 |
| 范围 | 空状态组件与中英文语言文件 |
| 禁止项 | 不改搜索 API,不重做整个列表,不升级依赖 |
| 验收 | 两种语言正确,查询参数保留,响应式无溢出,测试通过 |
任务卡不是提示词技巧,而是让你先完成产品思考。
让 Agent 先复述,不要立刻写
要求它先找到相关页面、语言 key 和测试,复述理解并列出最小文件集合。重点检查它有没有把推断写成事实。例如它可能认为项目使用 Tailwind,但仓库实际是 scoped CSS;这种错误应在计划阶段暴露。
一个好计划按结果分步,而不是按动作堆砌:先确认现有空状态路径;再补齐语言契约;然后实现视图;最后运行定向测试、全量测试和浏览器检查。每一步都能单独判断成功或失败。
只批准最小修改
实施前保存 git status。改动后先看 git diff --stat,再看完整 diff。统计“预期文件”和“意外文件”:
git status --short
git diff --stat
git diff -- locales/zh.json locales/en.json components/EmptyState.vue
如果 Agent 顺手格式化了整份语言文件,不要因为功能可用就接受。大面积噪声会掩盖真实错误,也增加未来合并风险。
验证不是最后跑一次测试
验证要对应任务卡。语言 key 完整性测试证明结构一致,却不能证明页面在 390px 不溢出;浏览器截图能证明视觉,却不能证明查询参数保留;两者都需要。
建议证据顺序:定向测试快速反馈、全量测试发现连带影响、生产构建检查打包、浏览器走用户路径、最后复查 diff 与工作区。每一项失败都回到对应步骤,不要一口气重写。
主动制造一个需求变化
完成后把验收中的一句改掉,例如“按钮文案改为清除筛选,并真正清空查询参数”。观察 Agent 是否先更新理解和测试,还是只改可见文字。真实项目经常在实现途中变化,这个实验能检查协作是否仍由验收驱动。
交付说明应该短而可核验
最终说明只需回答:结果是什么、改了哪些关键位置、跑了哪些检查、还有什么限制。不要复述长聊天记录,也不要用“应该”“大概”替代证据。
完成本课的标准不是第一次改动零错误,而是你能把模糊想法变成一条别人可以复查的工程链路。