核验日期:2026-07-24
内容来源:(think) — Bozhidar Batsov。https://batsov.com/articles/2026/03/11/essential-claude-code-skills-and-commands/
原题:Essential Claude Code Skills and Commands
原发布时间:2026-03-11

我得承认,刚开始使用 Claude Code 时,我基本忽略了内置 Skills。网上所有人都在说“去创建你自己的 Skills”,于是我照做了。我为各种事情编写自定义 Skills,也确实靠它们完成了不少工作。
直到偶然发现 /review 和 /simplify,我才意识到自己一直忽略了一些真正实用的内置功能。最近又增加了 /loop 和 /batch,内置 Skill 集合变得更加有趣。
本文将介绍 Claude Code 开箱即用的能力、如何有效使用它们,以及 Skills 与斜杠命令之间的区别——这一点最初也让我颇为困惑。
Skills 与斜杠命令有什么区别?
这个区别很早就把我绕晕了,我相信有同样困惑的不只我一个。实际情况如下:
斜杠命令是内置的固定逻辑操作。比如 /clear、/compact、/help、/model、/cost,它们被硬编码在 Claude Code CLI 中。每个命令只执行一项特定操作,不涉及 AI 推理,也无法自定义。你可以把它们理解为一组恰好以 / 开头的 CLI 命令。
Skills 是基于提示词的能力。调用 Skill 时,它会把一组指令(一个 Markdown 文件)载入 Claude 的上下文,再由 Claude 执行。Skills 可以启动子智能体、接收参数、使用指定工具,并负责协调复杂的多步骤工作流。内置 Skills(/simplify、/review、/batch、/loop、/debug、/claude-api)会随 Claude Code 一同提供,但这套系统从设计之初就允许你创建自己的 Skills。1
容易混淆的原因是,两者都通过 / 调用,而且过去确实是两套不同的系统。Claude Code 曾将“命令”(.claude/commands/*.md)和“Skills”(.claude/skills/*/SKILL.md)视为不同概念。如今两者已经合并:放在任一位置的文件都会创建相同的 /slash-command 调用界面。今后建议采用 Skills 系统,因为它支持普通命令不具备的功能:
• 配套文件(与 Skill 放在一起的模板、示例和脚本)
• 通过 Frontmatter 控制行为(disable-model-invocation、user-invocable、allowed-tools、context、agent)
• 通过 Shell 命令输出动态注入上下文
• 使用 context: fork 在子智能体中执行
现有 .claude/commands/ 文件仍然有效,但新建内容应放在 .claude/skills/ 中。
使用
/skills可以列出所有可用 Skills,包括内置和自定义 Skills。
内置 Skills
/simplify——代码质量审查
这是我最常使用的 Skill。修改代码库后,/simplify 会检查最近改动的文件,寻找复用代码的机会、质量问题和效率提升空间,然后自动修复这些问题。
它之所以有效,是因为会启动三个并行审查智能体,每个智能体都从不同角度审视改动。无需离开终端,你就能完成一次小型代码审查。
/simplify
你还可以选择性地传入关注领域:
/simplify memory efficiency
/simplify error handling
/simplify reduce duplication
这样可以把审查范围收窄到某个具体问题。当你知道代码中大致哪里不够理想,却希望 AI 帮忙处理细节时,这一点很实用。
我认为,/simplify 最适合在完成一次较大规模的重构后,或者接受了一批 AI 生成的代码后使用。它能发现未使用的导入、冗余变量、可提取的共享逻辑,以及过度复杂的条件判断。你可以把它看作第二轮整理,避免代码逐渐堆积无用的历史包袱。
/review——代码审查
/review 与 /simplify 类似,但关注重点不同。/simplify 用来优化你已经写好的代码,而 /review 会对改动进行一次真正的代码审查,提供类似严谨 Pull Request 审查的反馈。
/review
/review 123
/review https://github.com/org/repo/pull/123
不传参数时,它会审查你最近的本地改动。传入 PR 编号或网址后,它会转而审查该 Pull Request。它会检查改动中是否存在缺陷、逻辑错误、边界情况、风格问题,以及 /simplify 不会发现的潜在问题——因为 /simplify 的目标是让代码变得更简单,而不是寻找缺陷。
我的典型工作流是:先进行修改,运行 /review 查找问题,修复它指出的内容,再运行 /simplify 做清理。这两个 Skills 配合得很好:/review 保障正确性,/simplify 保障整洁度。
/batch——大规模并行修改
/batch 是其中的重型工具。它会把工作拆分为 5~30 个彼此独立的单元,再启动隔离的 Worktree 智能体并行处理,从而协调代码库范围内的大规模修改。
/batch migrate all test files from Jest to Vitest
/batch add TypeScript types to all files in src/utils/
/batch update all API endpoints to use the new auth middleware
每个智能体都在自己的 Git Worktree 中工作,实施所分配的任务、运行测试,甚至可以创建 Pull Request。因此,你可以启动一次迁移并逐步审查结果,而不必等待一项庞大改动全部完成。
使用 /batch 的关键在于,指令需要描述一种模式,也就是能统一应用到多个文件或组件的任务。它不适合“重写身份验证系统”(这是单个复杂任务),适合的是“在所有符合这种模式的地方应用这一项具体修改”。
/loop——定时重复执行提示词
只要会话保持打开,/loop 就可以按照日程反复运行一条提示词。它会解析时间间隔,并创建一项循环任务。
/loop 5m check if the dev server has any new errors in the log
/loop 10m run the test suite and report any failures
/loop 1h check deployment status and summarize metrics
时间间隔可以省略,届时会采用一个合理的默认周期。该命令很适合监控任务,例如观察长时间运行的构建、留意预发布环境的部署情况,或者定期检查日志文件中是否出现新问题。
我使用 /loop 的次数还没有其他 Skills 那么多,但在长时间编码的会话中,如果你希望在后台进行监控,又不想切换到另一个终端,它应该很方便。
/debug——会话故障排查
如果 Claude Code 会话中出了问题,比如工具调用悄无声息地失败、Claude 似乎弄乱了上下文,或者行为莫名其妙,/debug 会读取会话调试日志,帮助你查明发生了什么。
/debug
/debug why did the last edit fail
/debug tool calls are timing out
这是一个用途较窄的 Skill,但需要它时价值极高。它本质上是在说:“Claude,诊断一下你自己。”
/claude-api——API 参考资料加载器
如果你使用 Claude API 或 Anthropic SDK 开发应用,/claude-api 会根据项目使用的语言,加载相应的 API 参考资料(Python、TypeScript、Java、Go、Ruby、C#、PHP 或 cURL),同时还会载入 Agent SDK 参考资料。
/claude-api
当 Claude 检测到代码导入了 anthropic、@anthropic-ai/sdk 或 claude_agent_sdk 时,这项 Skill 也会自动激活,所以你可能永远不需要手动调用它。
实用的斜杠命令
尽管从技术上说不属于“Skills”,但以下几个内置斜杠命令也值得了解:
/compact——上下文管理
当对话持续很久,Claude 开始跟不上早先的上下文时,/compact 会压缩对话历史。你也可以选择性地告诉它压缩时应关注什么:
/compact focus on the database migration work
它对长时间会话至关重要。在同一个会话中开始新的工作阶段前,我会主动使用它。2
/diff——审查改动
/diff 会打开一个交互式差异查看器,展示 Claude 做出的全部改动。这比靠脑子记住多个文件分别发生了什么变化方便得多。
几个实用建议:
• 把它当作检查点。 Claude 完成一系列编辑后,先运行 /diff 再继续。这是你在错误不断累积之前发现问题的机会。现在就让 Claude 修正,要比三步之后再回头处理容易得多。
• 提交前使用。 每次要求 Claude 提交代码前,我都会先运行 /diff。它相当于更加方便的 git diff --staged:你看到的正是 Claude 修改的内容,而不是自己手动暂存的内容。
• 与 /rewind 结合使用。 如果 /diff 中出现了你不喜欢的改动,可以通过 /rewind 撤销,然后换一种方法。两个命令天然适合配对:先审查,再决定保留还是放弃。
/btw——顺便提问
/btw 让你可以提出一个题外问题,而不会影响主对话的上下文:
/btw what's the syntax for a Rust match guard again?
答案会返回给你,却不会污染当前工作上下文。任务进行到一半,需要快速查询某项知识时,这个命令非常方便。
/copy——复制回答内容
/copy 会把 Claude 的上一条回答复制到剪贴板。如果回答中包含多个代码块,它会打开一个交互式选择器,让你挑选要复制的代码块。这比在终端中手动选中文字快得多。
/rewind——撤销改动
/rewind 是你的安全网。它会把对话和文件改动都还原到之前的某个时间点,相当于让你说:“我们就当刚才什么都没有发生。”Claude 会在工作过程中创建隐式检查点,供你逐步回退。
当 Claude 走错方向时,这个命令尤其有用。也许它误解了你的意图,或者选用的方法行不通。你不必手动还原文件,再努力解释哪里出了问题,只需使用 /rewind,然后以一条更清楚的提示词重新开始这部分对话。
/usage、/cost 和 /stats——跟踪用量
有三个命令可以跟踪用量。你能看到其中哪些命令,取决于你通过何种方式使用 Claude Code:
• /usage 显示套餐层面的限额和当前速率限制状态。你可以用它检查每日或每月配额已经消耗多少,以及是否即将触及速率限制。所有用户都可以使用。
• /cost 显示当前会话的 Token 用量和预估美元成本。它只与通过 API 使用 Claude Code 的用户有关,也只有这些用户能看到;订阅用户(Pro/Max)的 Token 已包含在套餐内,因此不会看到该命令。
• /stats 以可视化形式展示每日使用模式、会话历史和模型偏好。它是面向订阅用户的 /cost 替代方案:关注的是你长期以来如何使用 Claude Code,而不是每次会话花了多少钱。
简而言之:/usage 回答“我的可用额度还剩多少?”,/cost 回答“这次会话花了多少美元?”(仅限 API),而 /stats 回答“我的使用模式是什么样的?”
/model 和 /fast——切换模型
/model 允许你在会话进行过程中切换 AI 模型。如果想用成本更低、速度更快的模型处理日常任务,再切换到能力更强的模型进行复杂推理,这个命令就很方便:
/model sonnet
/model opus
/fast 用于开关快速模式。该模式仍然使用同一个模型,但会针对更快的输出速度进行优化。当你不追求最高质量时,这是一个快速提速的方法:
/fast on
/fast off
/memory——自动记忆管理
/memory 让你可以查看并编辑 Claude 针对当前项目保存的持久记忆。Claude 会把有用的上下文(项目约定、架构决策和你的偏好)自动保存到一个跨会话保留的 MEMORY.md 文件中。
你可以使用 /memory 审查 Claude 记住了什么、纠正错误内容,或者手动添加那些希望它始终了解的项目知识。你也可以在对话中明确要求 Claude 记住某件事,它会将内容写入记忆文件。
/context——上下文可视化
/context 会显示一张彩色网格,展示上下文窗口的使用情况。它可以帮助你了解何时快要触及上限,以及哪些内容占用了空间。
/plan——计划模式
/plan 会进入计划模式。在该模式中,Claude 只设计实施策略,不做任何改动。当你希望在正式执行前先推敲方案时,这很有用。对话过程中,你也可以随时按 Shift+Tab 切换计划模式,无需输入命令。
以下是我的一个使用示例:
/plan refactor the authentication module to support OAuth2 in addition to
the existing API key auth
Claude 会分析代码库、找出受影响的文件并提出逐步实施计划,但不会改动任何代码。你可以讨论计划、提出问题、建议其他方案并反复迭代,直到满意为止。然后退出计划模式(再次按 Shift+Tab 或输入 /plan),让 Claude 开始执行。
值得注意的是,当你交给 Claude 一项足够复杂的任务时,它有时会自行进入计划模式。如果 Claude 判断正式动手前有必要先做规划,就会切换到计划模式,展示自己的处理方案并等待你批准。这通常是好事:说明 Claude 在行动前进行了思考,而不是沿着一条可能错误的路线一头冲下去。
Skill 的实参与参数
所有 Skills 都支持通过 $ARGUMENTS 占位符接收参数,也可以使用 $0、$1 等索引形式获取特定参数。内置 Skills 的情况如下:
| Skill | 参数 | 示例 |
|---|---|---|
/simplify |
可选:关注领域 | /simplify error handling |
/review |
可选:PR 编号或网址 | /review 123 |
/batch |
必填:改动说明 | /batch add logging to all API handlers |
/loop |
可选时间间隔 + 必填提示词 | /loop 5m check build status |
/debug |
可选:问题说明 | /debug why did the edit fail |
/claude-api |
无 | /claude-api |
创建自己的 Skills 时,参数系统相当灵活。可以在 SKILL.md 中这样编写:
---
name: fix-issue
description: 修复 GitHub Issue
argument-hint: <issue-number>
---
请按照我们的项目规范修复 GitHub Issue $ARGUMENTS。
以 /fix-issue 123 调用后,$ARGUMENTS 占位符会被替换为 123。
创建自己的 Skills
内置 Skills 很好用,但创建自己的 Skills 才能发挥这套系统真正的威力。Skills 可以放在以下三个位置之一:
| 作用域 | 路径 | 用途 |
|---|---|---|
| 个人 | ~/.claude/skills/<name>/SKILL.md |
适用于你所有项目的个人工作流 |
| 项目 | .claude/skills/<name>/SKILL.md |
团队约定,提交至 Git |
| 插件 | <plugin>/skills/<name>/SKILL.md |
通过插件系统共享 |
一项 Skill 就是一个可以带有 Frontmatter 的 SKILL.md 文件:
---
name: deploy
description: 将当前分支部署到预发布环境
disable-model-invocation: true
allowed-tools: Bash
---
将当前分支部署到预发布环境:
1. 首先运行测试套件:`npm test`
2. 构建生产版本:`npm run build`
3. 使用以下命令部署:`./scripts/deploy.sh staging`
4. 检查健康状态端点,验证部署结果
关键 Frontmatter 选项:
• disable-model-invocation: true:只有你可以调用该 Skill,Claude 不会自动触发它。任何会产生副作用的操作都应该使用此设置。
• user-invocable: false:只有 Claude 可以调用它(作为背景知识)。适用于希望 Claude 自动遵循的约定和指导原则。
• allowed-tools:限制 Claude 可以使用哪些工具。适合只读的调研 Skills。
• context: fork:在隔离的子智能体中运行。适合不应污染主对话的调研任务。
• agent:指定要使用的子智能体类型(Explore、Plan、general-purpose)。
Skills 还可以在 SKILL.md 旁边包含模板、参考文档和示例代码等配套文件,并通过 !`command` 语法执行 Shell 命令,动态注入上下文:
---
name: pr-review
description: 审查当前 PR
---
以下是 PR 差异:
!`gh pr diff`
发生改动的文件:
!`gh pr diff --name-only`
请审查这些改动的正确性、风格和潜在问题。
工作流建议
AI 生成改动后接着运行 /simplify。 每当 Claude 写下数量可观的代码,都应继续运行 /simplify。AI 生成的代码经常包含不易察觉的冗余,或者错过某些优化机会,而第二轮检查可以发现这些问题。
使用 /batch 执行迁移,而不是重新设计。 当改动具有重复性并且可以并行执行时,/batch 最能发挥优势。“为全部 47 个 API 端点增加错误处理”非常合适,“重新设计 API 层”则不适合——后者需要的是连贯统一的计划,而不是并行执行。
主动使用 /compact。 不要等到 Claude 开始丢失上下文才行动。完成一块逻辑完整的工作,即将开始下一块时,先压缩上下文。未来的你会感谢现在的自己。
处理复杂任务时从 /plan 开始。 在进入实施阶段前,先使用 /plan,让 Claude 仔细推敲方案。在写下任何代码前,你可以先讨论并完善这份计划。
放心使用 /btw。 从上下文角度来说,题外问题是“免费”的。不要让“等等,X 到底是怎么工作的?”这类岔题污染主工作上下文。
结语
如今 Claude Code 变化得非常快:新的内置 Skills 和命令不断加入,Skills 系统本身也在持续演进。如果以后看到有趣的新功能,我会尽量更新本文,所以不妨偶尔回来看看。
今天就讲到这里。继续折腾吧!