Skills 和 Hooks 是 Claude Code 最核心的两个扩展机制。用了一段时间后,把理解和配置总结一下。
Skills 的理解
Skills 是什么?
Skill 是 Claude Code 的专业化指令集。每个 skill 定义了一套工作流程——不是告诉 Claude “做什么”,而是告诉 Claude “怎么做”。比如 TDD skill 定义了 “先写测试→看到失败→写最少代码→看到通过→重构” 的循环,而不是简单说 “写测试”。
Skill 的两种类型:
- Rigid(刚性):必须严格遵循。如 TDD、systematic-debugging。违反流程 = 违反 skill 精神。
- Flexible(柔性):提供原则,按场景适配。如 frontend-design、brainstorming。
我的 Skills 清单:
流程类 Skills(来自 superpowers 插件)
| Skill | 用途 | 类型 |
|---|---|---|
brainstorming |
新功能/改动前:探索项目 → 问问题 → 出方案 → 写设计文档 | Rigid |
writing-plans |
设计文档通过后:拆实现步骤 → 创任务列表 | Rigid |
executing-plans |
按计划逐步实现 | Rigid |
test-driven-development |
强制 TDD:先写失败测试,再写代码 | Rigid |
verification-before-completion |
每个步骤完成后验证:测试、typecheck、跑起来看 | Rigid |
subagent-driven-development |
并行任务分派给子 agent | Flexible |
systematic-debugging |
结构化调试流程 | Rigid |
requesting-code-review |
提交前请求代码审查 | Flexible |
finishing-a-development-branch |
分支完成后的收尾流程 | Rigid |
设计类 Skills
| Skill | 用途 |
|---|---|
frontend-design |
8 种设计锚点(Swiss/Industrial/Brutalist/Aurora/Chaotic/Retro-Futuristic/Organic/Lo-Fi),每种锁定特定 CSS token |
工具类 Skills
| Skill | 用途 |
|---|---|
karpathy-guidelines |
Karpathy 的编码准则:先想再写、简单优先、手术刀式修改、目标驱动 |
caveman:caveman |
极简压缩输出模式,减少 ~75% token 消耗 |
using-superpowers |
Superpowers 引导程序,决定何时触发哪个 skill |
fewer-permission-prompts |
自动添加常用工具到 allowlist |
update-config |
管理 settings.json 配置 |
Hooks 的理解
Hooks 是什么?
Hooks 是 Claude Code 的自动化触发器系统。在特定生命周期事件发生时,自动执行脚本。不同于 skills(由模型主动调用),hooks 是系统强制执行——模型无法跳过。
Hook 的生命周期事件:
| 事件 | 触发时机 |
|---|---|
SessionStart |
会话启动时 |
UserPromptSubmit |
用户发送消息后、模型处理前 |
PreToolUse |
工具调用前(可拦截阻止) |
PostToolUse |
工具调用成功后 |
PostToolUseFailure |
工具调用失败后 |
Stop |
会话结束时 |
PreCompact |
上下文压缩前 |
Notification |
系统通知时 |
Hook 能做:
- 注入上下文提醒(
additionalContext) - 拦截危险操作(
PreToolUse返回decision: "block") - 自动格式化代码(
PostToolUse+ Write/Edit → prettier) - 记录日志
- 启动自动任务
Hooks vs Skills 的本质区别:
| Skills | Hooks | |
|---|---|---|
| 触发方式 | 模型主动调用 Skill tool | 系统自动执行 |
| 模型能否跳过 | 理论上能(但 superpowers 要求调用) | 完全不能 |
| 适用场景 | 工作流程指导 | 兜底规则 + 自动化 |
| 执行时机 | 模型决定 | 事件驱动 |
我的 Hook 配置
1. SessionStart — 自动初始化 CodeGraph
1 | 当会话启动时,检测当前目录: |
2. UserPromptSubmit — 兜底规则提醒
1 | 每次用户消息前注入(当前 2 条): |
我的使用方法
开发新功能的流程
- 打开项目 → SessionStart 自动初始化 CodeGraph(如果需要)
- 说出需求 → UserPromptSubmit 注入规则提醒
- 调用
brainstormingskill → 探索 + 提问 + 设计方案 - 设计确认后 →
writing-plansskill 拆任务 - 实现时 → 根据情况调用 TDD skill(写代码)/ verification skill(验证)
- 功能完成 →
finishing-a-development-branchskill 收尾
改前端样式时
- 调用
frontend-designskill - 选择设计锚点(如之前用过的 Organic)
- 按锚点 token 规范写 CSS
- 验证:跑 dev server 看效果
日常操作时
- CodeGraph 自动就绪 → 用
codegraph_context/codegraph_search探索代码 - 改代码前切分支 → CLI 规则兜底
- 遇到 bug →
systematic-debuggingskill
保持配置干净
- Hook 只放”系统强制的兜底规则”(如 CodeGraph + Git)
- workflow 规则交给 skills(brainstorm/plan/verify 由 superpowers bootstrap 处理)
- TDD 按需用 skill,不作为全局 hook——CSS/配置/脚本不需要 TDD
- 避免指令疲劳:少而精,多了就视而不见





