10个提升Claude Code效率的必备斜杠命令

本文介绍了如何通过在 Claude Code 中创建自定义斜杠命令来优化开发流程,解决手动输入重复指令导致的“提示词漂移”问题。文章详细列举了 10 个核心命令(如环境检查、代码审查、自动测试生成等)及一个额外奖励命令,旨在通过提示词标准化和版本控制来提升个人及团队的开发效率。

Image

设置 Shell 别名(aliases)是终端工作的自然组成部分,大多数开发者几乎是反射性地在做这件事。如果你经常运行某个命令,你就会为它设置别名。

然而,在使用 Claude Code 提示词时,开发者通常会完全跳过这一步,凭记忆不断重复输入相同的 10-15 行指令,比如代码审查清单、测试生成约束、预提交扫描等……而且是在一个又一个会话中不断重复。

Image

真正的成本不仅在于开发者的重复劳动,还在于提示词漂移(prompt drift)

每次凭记忆重新输入提示词时,措辞都会略有变化。例如,你可能会忘记某个约束,或者对预期输出格式的表述有所不同。对于 Shell 命令来说,这无关紧要,因为它们是确定性的;但对于 LLM 来说,略有不同的表述可能会产生显著不同的输出。

Image

Claude Code 的自定义命令(Custom Commands)解决了这两个问题。

你可以将 Markdown 文件保存在 .claude/commands/ 中,它就会变成一个斜杠命令,让你每次都能调用完全相同的指令。这些提示词通过 Git 进行版本控制,因此整个团队都可以运行相同的命令。当有人改进了提示词时,每个人都能在下次拉取代码时获得更新。

这正是 Boris Cherny 在关于 Claude Code 工作流的推文中描述的模式:将每一个重复的工作流变成一个命令,检入 Git,并与团队共享。

Image

接下来,我们将了解如何设置这些命令,然后介绍在我的工作流中最有用的 10 个命令。我将在一个真实的 ML 推理服务(FastAPI, scikit-learn, Alembic)上演示每一个命令,以便你能看到实际输出,并提供可以直接放入你项目中的完整提示词模板。

自定义命令的工作原理

自定义命令是 .claude/commands/ 目录下的一个 Markdown 文件,文件名即为命令名。

文件内容是运行该命令时发送给 Claude 的提示词。你可以使用 $ARGUMENTS 作为占位符,代表命令名后输入的任何内容。例如,运行 /dissect src/auth/session.ts 会将 $ARGUMENTS 替换为 src/auth/session.ts

你还可以使用 ! 语法通过 Shell 命令注入动态上下文:

Claude 会在处理提示词之抢跑这些 Shell 命令,从而确保上下文始终是最新的。

最后,文件顶部可选的 YAML 前置元数据(frontmatter)允许你预先批准工具(这样 Claude 就不会在每次 git 调用时询问权限)、设置模型覆盖或添加描述。

这就是整个系统:一个 Markdown 文件、一个可选的 YAML 头部,以及用于动态输入的 $ARGUMENTS


命令 1:/env-check (环境检查)

当你克隆一个项目(或在几周后重新访问)时,第一件事就是确保本地设置确实可用。它可能存在运行版本错误、缺少环境变量或未应用的迁移。

此命令可以一次性验证整个本地设置。

该命令一次性捕获了五类问题,包括 Python 版本不匹配、缺少虚拟环境、缺少三个包(ruff, structlog, pytest-cov)、环境变量缺失以及未应用的 Alembic 迁移。每个发现都包含了修复它的确切命令。

命令 2:/orient (环境定位)

环境设置好后,你需要上下文:你在哪个分支?之前在做什么?

这在运行 /clear(你应该定期运行以避免上下文窗口退化)之后尤为重要。此命令读取未提交的更改、最近的提交和任何待办事项(TODO),以一举重建你的工作状态。

在零上下文的冷启动下,该命令识别了项目类型、当前分支目的、暂存工作的确切状态,以及提交前需要解决的三个特定问题。

命令 3:/preflight (预检)

现在你有了上下文并进行了一些更新,下一步是检查即将提交的代码是否整洁。

这是你在每次提交抢跑的命令。它扫描暂存的更改,查找不应发布的内容,如遗留的调试语句、TODO 标记、注释掉的代码块、硬编码的密钥、跳过的测试和调试标志。

它在暂存文件中发现了四个阻碍因素,并标记了两个未暂存的问题。

命令 4:/dissect (深度剖析)

前面的预检命令捕获了明显的问题。对于特定文件的更深入审查,/dissect 提供了一个结构化分析,专注于真正导致生产事故的因素,如错误处理漏洞、竞争条件、缺失的边缘情况和静默失败。

审查从六个维度组织发现,重点捕获了标准 Linter 会完全忽略的问题,如损坏的 API 合约或错误的响应状态码。

命令 5:/testmatch (测试匹配)

AI 生成测试的一个大问题是它们往往不符合项目中现有的测试风格。

此命令先读取现有的测试,然后生成看起来像是由团队成员编写的新测试。它会匹配现有的断言库、命名约定和设置模式。

它为日志服务生成了 19 个测试,全部在第一次运行时通过,并且完美匹配了项目的 conftest.py 配置和依赖注入模式。

命令 6:/explain-func (函数解释)

在审查和测试代码库时,你会遇到逻辑密集且实现背后的推理未记录的函数。

此命令生成行内文档,其特定规则是解释“为什么(why)”,而不是“是什么(what)”,因为代码已经展示了它在做什么。

该命令记录了两个函数,解释了为什么选择特定的实现方式,并标记了文件中最大的正确性风险。

命令 7:/refactor-safe (安全重构)

如果 /dissect 标记了结构性问题,这就是修复它们的命令。

使用 AI 进行重构是有风险的,因为 Claude 倾向于“改进”你没要求它动的地方。此命令有一个明确的约束:公共 API 不得更改。它只专注于内部结构。

它将一个 45 行的单体处理程序拆分为一系列私有助手函数,同时保持公共 API 完全不变,并通过了所有现有测试。

命令 8:/ship (发布准备)

代码经过审查、测试、记录和重构后,下一步是开启 PR。

此命令先运行测试套件,然后根据实际的提交和差异(diff)生成 PR 描述。它涵盖了变更内容、变更原因、验证方法以及潜在风险。

它在生成 PR 描述抢跑了完整的测试套件,并标记了任何阻碍提交的调试遗留物。

命令 9:/migrate-draft (迁移草案)

为了支持新功能,你通常需要更改数据库架构。

此命令生成包含 updown 方法的迁移文件,以及安全检查清单。它还会检查现有迁移以推断 ORM 和命名模式。

它读取了现有的 Alembic 约定和应用代码,以理解表实际需要的列和索引。

命令 10:/debt-scan (技术债扫描)

最后一个命令用于退后一步观察整个项目的健康状况。

此命令扫描整个代码库中的常见债务模式,并输出一个你可以直接转化为工单的优先级列表:代码复杂度、依赖陈旧、测试覆盖率缺口和架构异味。

它在代码库中发现了 20 个问题,每个问题都有严重级别、文件位置、描述和估计修复时间。

[彩蛋] 命令 11:/changelog (变更日志)

功能开发完成,迁移已起草,现在你需要发布说明。

此命令读取最近的提交,检查每个差异以理解实际更改,并生成一份可供发布的、人类可读的变更日志。

它将提交分为“新增”、“修复”和“基础设施”类别,并描述用户侧的影响,而不仅仅是代码更改。


2 分钟快速上手

设置你的第一个命令只需三步:

  1. 在项目根目录创建目录
    mkdir -p .claude/commands
  2. 创建带有提示词的 Markdown 文件
    echo -e "Review the staged changes and suggest improvements.\n\n!git diff --cached" > .claude/commands/review.md
  3. 在 Claude Code 中运行它/review

对于你想在所有项目中使用的命令,请将它们放在 ~/.claude/commands/ 中。

注意:Anthropic 后来引入了 .claude/skills/ 作为新命令的推荐目录。Skills 支持更多功能,如捆绑支持文件、自动调用和子代理执行。本文使用的 .claude/commands/ 方法仍然有效,且是更简单的入门方式。

  • 原文链接: x.com/_avichawla/status/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
_avichawla
_avichawla
江湖只有他的大名,没有他的介绍。