Mingyu's Library主页
2026年8月4日

第 5 课:自定义斜杠命令——把重复 prompt 变成一条命令

2026-08-04 · 主题:custom slash commands。你每天敲三遍以上的同一段话,都应该变成一个 /命令。本课 4 条技巧由浅入深。

技巧 1:一个 Markdown 文件就是一条命令

解决的问题:同一段 prompt 每天重复敲;团队各写各的提示词,好用的没法沉淀共享。

在项目里建 .claude/commands/ 目录,放一个 .md 文件,文件名就是命令名,文件内容就是 Claude 收到的 prompt:

mkdir -p .claude/commands
cat > .claude/commands/changelog.md << 'EOF'
根据最近 10 条 git commit,按「新增/修复/变更」三类整理一份中文 changelog 草稿。
EOF

之后在会话里输入 /changelog 即可。放在 ~/.claude/commands/ 的是个人全局命令,所有项目可用;.claude/commands/ 是项目命令,可随仓库提交给全组共享。

📖 官方文档:Slash commands

技巧 2:用 $ARGUMENTS 和 $1 $2 接收参数

解决的问题:命令内容写死了,换个 issue 号或分支就得改文件——参数化后一条命令覆盖一类任务。

命令里写 $ARGUMENTS 占位符,运行时 /命令 xxx 后面的内容会整体替换进去;需要多个字段时用 $1、$2 位置参数:

<!-- .claude/commands/fix-issue.md -->
请阅读 GitHub issue #$1,在 $2 分支上修复它:
1. 先复现问题并写失败测试
2. 修复后运行全部测试

使用:/fix-issue 1234 hotfix/login。$ARGUMENTS 适合自由文本,$1 $2 适合结构化输入,两者可混用。

📖 SDK 文档:Slash Commands(含参数语法)

技巧 3:frontmatter 给命令加约束——限工具、限模型、写提示

解决的问题:审查类命令误改代码;轻量任务用贵模型白烧钱;队友不知道命令该传什么参数。

文件顶部加 YAML frontmatter,可以声明允许的工具、指定模型、给出参数提示:

---
description: 审查暂存区改动的安全隐患
argument-hint: [可选:关注的文件或目录]
allowed-tools: Read, Grep, Glob, Bash(git diff:*)
model: haiku
---
对 `git diff --cached` 的改动做安全审查,重点:注入、密钥泄漏、越权。$ARGUMENTS

allowed-tools 让审查类命令只读不写,避免误改代码;model: haiku 让轻量任务用便宜模型跑,是最简单的成本控制;argument-hint 会显示在命令自动补全里,方便队友。

📖 官方文档:frontmatter 字段说明

技巧 4:命令里内嵌 bash 输出与文件引用,做「带上下文的命令」

解决的问题:每次都要让 Claude 现跑 git 命令收集上下文——多一轮工具调用,输出还不稳定。

命令正文里可用 !(反引号包裹的 bash 命令)把命令输出注入 prompt,用 @文件路径 引用文件,让命令自带新鲜上下文:

---
description: 生成今日站会汇报
allowed-tools: Bash(git log:*), Bash(git status:*)
---
## 上下文
- 昨日提交:!`git log --oneline --since=yesterday`
- 当前状态:!`git status -s`
- 项目规范:@CLAUDE.md

基于以上内容,按「昨天/今天/阻塞」三段生成站会汇报。

这样 /standup 每次运行都拿到实时 git 信息,而不是靠 Claude 自己再去跑命令——省一轮工具调用,输出也更稳定。进阶:命令文件里写「先做 A,确认后再做 B」可以把多步工作流固化成一条命令。

📖 社区实践:Slash command 4 种参数模式 · Steve Kinney: Claude Code Commands


本课小结:.claude/commands/*.md 建命令 → $ARGUMENTS/$1 参数化 → frontmatter 限工具限模型 → ! 与 @ 注入实时上下文。从「重复敲 prompt」到「团队共享的命令库」,四步走完。

已讲课程:第 1 课 CLAUDE.md 项目记忆 · 第 2 课 Plan Mode · 第 3 课 Subagents · 第 4 课 Hooks