一句话区分

  • Slash Command主动触发的快捷指令(你输 /commit,它跑)
  • Hook系统在特定事件自动触发的脚本(Claude 一写文件,就自动跑格式化)

一个是人按的按钮,一个是自动化陷阱。

Slash Command

是啥

.claude/commands/ 目录放一个 md 文件,文件名就是命令名。你在 Claude Code 里输入 /文件名 就执行它。

来源:claude-code-docs/hooks.md + awesome-claude-code 仓库 resources/slash-commands/ 下 22 个社群贡献样例。

最简样例

.claude/commands/commit.md

请帮我做一次规范提交:
1. git status 查看变更
2. git diff 理解改动
3. 生成合理的 commit message
4. git add 然后 commit

你输入 /commit,Claude 就执行这段。

Boris 的用法(tip 7)

“Boris uses slash commands for workflows he does many times a day.”

Boris 团队的 slash command 都 check 进 git(.claude/commands/ 目录),全团队共享。典型例子:/commit-push-pr(一条龙)。

22 个社群样例里的高频命令

扫了 awesome-claude-code 里 22 个社群贡献的 slash command md,出现频率最高的:

  • /commit(规范提交)
  • /create-pr(生成 PR)
  • /create-prd(生成产品需求文档)
  • /optimize(代码优化)
  • /fix-github-issue(处理 GitHub issue)
  • /todo(管理任务清单)

这些可以直接拿来用。

Hook

是啥

.claude/settings.json 里注册的事件监听器。事件发生 → 自动跑你写的 shell 命令。

来源:claude-code-docs/hooks-guide.md + claude-code-docs/hooks.md

常见事件

官方 hooks-guide 列出的事件类型:

事件什么时候触发
PreToolUseClaude 准备用工具前
PostToolUseClaude 用完工具后
UserPromptSubmit你刚输入 prompt 时
StopClaude 结束一轮回答时
Notification需要你注意时(如权限请求)

Boris 的做法(tip 9)

Boris 团队用 PostToolUse hook 自动格式化代码

"PostToolUse": [
  {
    "matcher": "Write|Edit",
    "hooks": [
      {
        "type": "command",
        "command": "bun run format || true"
      }
    ]
  }
]

意思:每次 Claude Write 或 Edit 了文件,自动跑 bun run format。Boris 的解释(tip 9):

“Claude generates well-formatted code 90% of the time, the hook catches edge cases to prevent CI failures.”

判断用哪个(决策速查)

场景
我想有个快捷命令重复用Slash Command
我想 AI 做完某事自动加一步Hook (PostToolUse)
我想在 AI 开始做某事前拦截Hook (PreToolUse)
我想记录 AI 每次回答的日志Hook (Stop)

陈彬视角

Slash Command 是”把你常做的事变成一个词”——门槛低,收益高,没用过的人第一个月就该上 3-5 个。

Hook 有个隐形门槛:你要会写 shell 命令。大多数非程序员到这一步会卡住。正确做法:前 3 个月只用 Slash Command,Hook 等你真正遇到”同一件事我已经手动做了 5 遍”的时候再上。过早上 Hook 会让你的 settings.json 变成黑魔法,自己都不敢改。

关联

官方链接