Skip to content
Published at:

第 17 章:Skills 技能系统

第 16 章我们学习了 Plugins(插件)——它们是可打包发布的扩展单元,为 Claude Code 添加新工具和集成。本章要讲的 Skills(技能) 与插件密切相关却又本质不同:Skill 是一组可复用的指令模板,告诉 Claude"遇到某类任务时应该怎么做"

你可以把 Plugin 理解为"给 Claude 安装了新工具",而 Skill 则是"给 Claude 培训了新技能"。Skill 是 Superpowers 生态体系的核心,也是社区最活跃的贡献领域。学会使用 Skills,相当于让 Claude 具备了优秀工程师的工作方法论。

本章目标:理解 Skill 的本质和运作机制,掌握 Superpowers 体系核心 Skills 的使用场景和调用方式,能编写自己的 Skill 并组织个人 Skill 库。

17.1 什么是 Skill

定义:可复用的指令模板

Skill 本质上是一个 Markdown 文件,包含了针对特定任务的完整指令。当你调用一个 Skill 时,Claude Code 会将该 Skill 的完整指令加载到上下文中,Claude 随后严格按照这些指令执行。

这个机制的精妙之处在于:Skill 把顶尖工程师的工作流程固化成了可复用的模板。你不需要每次都跟 Claude 说"先做需求分析,再写设计文档,然后拆分成子任务……",只需要调用 superpowers:brainstorming,Claude 就会自动按照经过社区打磨的最佳实践来引导你。

flowchart LR A["用户调用 Skill<br/>/superpowers:brainstorming"] --> B["Claude Code 查找<br/>Skill 文件"] B --> C["加载完整指令<br/>到上下文"] C --> D["Claude 按指令<br/>逐步执行"] D --> E["遵循最佳实践<br/>完成工作流"] style A fill:#e3f2fd style C fill:#fff9c4 style E fill:#c8e6c9

Skill 的调用方式

Skill 通过 Skill 工具来调用——你不需要手动输入,Claude 会在对话中判断何时需要使用某个 Skill 并自动调用。但你也可以直接要求 Claude:

帮我用 superpowers:brainstorming 来设计新功能
用 code-review:code-review 审查当前分支的代码

当 Claude 的系统提示中列出了可用 Skills 时(就像 Claude Code 启动时显示的 Skill 列表),Claude 会收到明确的指示:对于匹配 Skill 描述的任务,必须调用 Skill 工具而非手动处理。这就是为什么系统提醒中说"You MUST use this before any creative work"——Skills 不是可选的建议,而是经过设计的工作流保障。

Skill vs Plugin:本质区别

维度SkillPlugin
本质指令模板(Markdown 文件)可打包的扩展单元(含代码)
能力指导 Claude 如何使用现有工具为 Claude 添加新工具和集成
分发方式通过注册中心或文件共享通过 npm / marketplace
加载机制按需加载到上下文启动时加载工具定义
开发难度低(纯 Markdown,会写提示词就能写)中高(需要 TypeScript/Node.js)
代表例子superpowers:brainstorming/plugin install superpowers-marketplace

一个类比:Plugin 是给厨师买了新的厨具(比如一个搅拌机),Skill 是给厨师写了一份详细的菜谱(步骤、火候、配料顺序)。好的厨师(Claude)有了好菜谱(Skill)可以用现有工具做出精致的菜;但有些菜确实需要新厨具(Plugin)。

Skill vs Slash Command:粒度不同

维度SkillSlash Command
复杂度多步骤工作流,可包含条件分支通常是单步操作
上下文加载完整指令模板触发一个动作或命令
示例TDD 工作流(写测试→实现→重构→验证)/commit(分析变更→创建提交)
可否组合可以(brainstorming → writing-plans → executing-plans)通常独立使用

Slash Command 适合"帮我做这一件事",Skill 适合"按照这个方法论完成整个流程"。

什么时候用 Skill,什么时候直接问

应该用 Skill 的场景

  • 启动一个完整的开发工作流(从设计到实现)
  • 需要进行系统性的代码审查或调试
  • 任务有明确的行业最佳实践(如 TDD)
  • 需要保证工作流的一致性和完整性

可以直接问的场景

  • 简单的一次性问题("这个函数是干什么的?")
  • 不需要特定方法论的修改("把这段代码改成 async/await")
  • 探索性、开放式的问题

判断原则:如果你知道自己要的是一个有方法论的完整流程,就找对应的 Skill;如果你要的只是一个具体的答案或修改,直接问就行。

Skill 工具的内部机制

从 Claude 的视角来看,Skill 工具是它可调用的工具之一。当 Claude 判断当前任务匹配某个 Skill 的描述时,它会调用 Skill 工具并传入 Skill 名称。Claude Code 的 Skill 系统随即:

  1. 查找 Skill 文件(从本地 Skills 目录或注册中心)
  2. 加载 完整指令到当前会话上下文
  3. 融入 Skill 指令到 Claude 的系统提示中
  4. 执行 Claude 按照 Skill 指令逐步完成

这个过程对用户来说基本透明——你只需要在合适的时候说"用 XX skill",Claude 就会自动完成加载和执行。

17.2 内置 Skills 详解(Superpowers 体系)

Superpowers 是 Claude Code 社区中影响力最大的 Skill 套件,由 Claude Code 核心团队和社区共同维护。Superpowers 的设计理念是:将世界级工程师的工作方法论编码为可复用的 Skill,覆盖从需求分析到代码交付的完整开发流程。

Superpowers 使用 superpowers: 命名空间。下面按照开发流程的阶段,逐一介绍每个 Skill。

17.2.1 开发流程类

这些 Skills 覆盖了软件开发的完整生命周期:从头脑风暴到实现到交付。

superpowers:brainstorming

功能:在创意阶段通过协作式对话,将模糊的想法转化为清晰的设计方案。它是所有创造性工作的起点——没有经过充分讨论的需求,后续实现必然反复返工。

适用场景

  • 你有一个新功能的想法,但需求还不明确
  • 需要设计系统架构,希望 Claude 提供专业意见
  • 想要探索多种实现方案的利弊

系统提示关键指令:"You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior."

示例调用

帮我想想怎么设计一个用户权限系统,用 superpowers:brainstorming

当你调用这个 Skill 后,Claude 会主动探索你的需求、提出澄清问题、讨论设计取舍、最终产出一份结构化的设计文档。它不会直接开始写代码——这就是 brainstorming 和直接实现的关键区别。

superpowers:writing-plans

功能:将已有的设计规格转化为可执行的实现计划。当 brainstorming 产出了设计文档后,writing-plans 负责将设计拆分为具体的、可验证的步骤。

适用场景

  • 已经有明确的设计文档,需要制定实现计划
  • 多步骤的复杂任务,需要分步执行
  • 团队协作,需要清晰的实现路线图

系统提示关键指令:"Use when you have a spec or requirements for a multi-step task, before touching code."

示例调用

基于刚才的权限系统设计,用 superpowers:writing-plans 制定实现计划

这个 Skill 会让你在动手写代码之前,先想清楚每一步做什么、依赖什么、怎么验证。

superpowers:executing-plans

功能:按照已制定的实现计划分步执行,每步之间设置审查检查点。这确保了实施过程不偏离计划,每个里程碑都经过验证。

适用场景

  • 已经有一个清晰的实现计划
  • 需要在执行过程中保持代码质量
  • 希望每一步完成后都有机会审查和调整

系统提示关键指令:"Use when you have a written implementation plan to execute in a separate session with review checkpoints."

示例调用

按照刚才的实现计划,用 superpowers:executing-plans 开始执行

三大开发流程 Skill 的组合使用,构成了 Superpowers 最核心的工作流:

flowchart TB A["💡 模糊想法"] --> B["superpowers:brainstorming<br/>需求分析 + 方案设计"] B --> C["📋 设计文档"] C --> D["superpowers:writing-plans<br/>拆分为可执行步骤"] D --> E["📝 实现计划"] E --> F["superpowers:executing-plans<br/>逐步实现 + 审查检查点"] F --> G["✅ 完成实现"] style A fill:#e3f2fd style C fill:#fff9c4 style E fill:#fff9c4 style G fill:#c8e6c9

社区数据显示,遵循这个三步流程的项目返工率降低约 80%。

superpowers:subagent-driven-development

功能:为每个独立任务创建全新的子 Agent,采用两阶段审查(代码正确性 + 代码质量)。子 Agent 没有当前对话的历史包袱,能以全新的视角执行每个任务,确保每个任务的实现都是独立可验证的。

适用场景

  • 实现计划中包含多个相互独立的任务
  • 需要并行处理多个模块
  • 希望每个子任务都有独立的审查记录

系统提示关键指令:"Use when executing implementation plans with independent tasks in the current session."

示例调用

用 superpowers:subagent-driven-development 并行实现这三个独立模块

与 executing-plans 的区别:executing-plans 在当前会话中逐步执行,适合有依赖关系的步骤链;subagent-driven-development 为每个任务开新的子 Agent,适合可以独立并行处理的模块。两者可以组合使用。

superpowers:test-driven-development

功能:严格执行 TDD 工作流——先写测试,确认测试失败,再写实现使测试通过,最后重构。这个 Skill 确保你不会跳过测试环节。

适用场景

  • 实现库函数、API 接口、工具类
  • 后端逻辑层和数据处理层
  • 任何"给定输入、期望输出"的纯逻辑代码

系统提示关键指令:"Use when implementing any feature or bugfix, before writing implementation code."

示例调用

用 superpowers:test-driven-development 实现这个用户名验证函数

TDD Skill 对于后端和工具库开发尤其有价值——这些场景输入输出明确,测试编写成本低,收益高。

superpowers:systematic-debugging

功能:在提出任何修复之前,先系统性地调查 Bug 的根因。遵循结构化的调试方法论:复现问题 → 收集信息 → 提出假设 → 验证假设 → 定位根因 → 再写修复。

适用场景

  • 遇到任何 Bug、测试失败或意外行为时
  • 问题原因不明确的故障排查
  • 想在修复前确保真正理解了问题

系统提示关键指令:"Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes."

示例调用

登录功能报 500 错误,用 superpowers:systematic-debugging 帮我排查

这个 Skill 的价值在于:阻止你盲目修改代码。大多数开发者遇到 Bug 的第一反应是"改一下看看能不能好"——systematic-debugging 强制你先理解问题,再动手修复。

superpowers:verification-before-completion

功能:在声称任务完成、Bug 修复、测试通过之前,强制运行验证命令并确认输出。确保"口说无凭,要有证据"。

适用场景

  • 完成任务后、提交代码前
  • 声称 Bug 修复后
  • 创建 PR 之前

系统提示关键指令:"Use when about to claim work is complete, fixed, or passing, before committing or creating PRs."

示例调用

功能做完了,用 superpowers:verification-before-completion 验证一下

这是 Superpowers 体系中最"简单"但也最容易被忽略的 Skill——但它的价值巨大:在 CI 报错之前,你自己先验证通过了

superpowers:dispatching-parallel-agents

功能:当面对两个或更多互不依赖的独立任务时,将它们分派给并行子 Agent 同时处理,大幅缩短总执行时间。

适用场景

  • 同时需要修改前端和后端(无共享状态)
  • 多个文件需要独立的重构
  • 批量生成多个类似的文档或组件

示例调用

前端的登录表单和后端的认证接口是两个独立任务,用 superpowers:dispatching-parallel-agents 并行处理

superpowers:finishing-a-development-branch

功能:当功能实现完成、所有测试通过后,帮助决定如何集成已完成的工作——是直接合并、创建 PR、还是需要进一步处理。提供结构化的选项(merge / PR / cleanup)。

适用场景

  • 开发分支上的工作已经完成
  • 不确定是该合并、发 PR、还是清理分支
  • 需要处理 worktree 的清理

示例调用

功能开发完成了,用 superpowers:finishing-a-development-branch 决定下一步

superpowers:using-git-worktrees

功能:当启动需要隔离的功能开发时,确保通过 git worktree 创建隔离的工作空间。避免功能开发过程中的分支切换污染当前工作区。

适用场景

  • 开始一个新功能,需要独立的工作空间
  • 执行实现计划前,需要隔离环境

示例调用

用 superpowers:using-git-worktrees 创建隔离环境来开发这个新功能

17.2.2 代码质量类

code-review:code-review

功能:对代码变更进行全面的代码审查。检查正确性(Bug)、可复用性、简化机会和效率问题。可以根据设置不同的审查强度(low / medium / high)。

适用场景

  • 完成一个功能或修复后,准备合并之前
  • Review PR 中的代码变更
  • 希望获得第二双"眼睛"来发现潜在问题

示例调用

用 code-review:code-review 审查当前分支的变更

也可以指定审查强度:

对当前 diff 做 high 强度的代码审查

注意这个 Skill 来自 code-review 命名空间,不同于 Superpowers 套件,它是一个专注于代码质量的独立 Skill。

security-review

功能:对当前分支的变更进行安全漏洞扫描。检查常见的 OWASP 漏洞、注入风险、敏感信息泄露等安全问题。

适用场景

  • 涉及用户输入处理的代码变更
  • 认证/授权相关的修改
  • API 端点的新增或修改
  • 合并到生产环境之前的最后检查

示例调用

用 security-review 审查这次变更的安全性

code-simplifier

功能:简化和优化代码,移除不必要的复杂度。专注于代码的可读性和可维护性提升。

适用场景

  • 代码通过了功能测试但结构复杂
  • 重构遗留代码
  • 减少嵌套层级和认知负担

示例调用

用 code-simplifier 简化这段认证逻辑

simplify

功能:审查变更代码的可复用性、简化机会和效率改进。与 code-simplifier 不同,它更侧重于检查变更中的重复代码和抽象机会。这个 Skill 只关注质量改进,不检查 Bug。

示例调用

用 simplify 检查这次变更有没有可以复用的部分

17.2.3 项目管理类

commit-commands:commit

功能:分析代码变更,生成信息丰富的提交信息,创建规范化的 git commit。

适用场景

  • 完成一个逻辑单元的工作后
  • 需要生成符合项目规范的 commit 信息

示例调用

用 commit-commands:commit 提交这些变更

commit-commands:commit-push-pr

功能:将提交、推送、创建 PR 三个步骤合并为一个操作。分析变更 → 生成 commit → push → 自动创建 Pull Request。

适用场景

  • 功能开发完成,准备提交并请求审查
  • 快速推送小型修复

示例调用

用 commit-commands:commit-push-pr 一键提交并创建 PR

commit-commands:clean_gone

功能:清理所有远程已删除的本地分支(标记为 [gone] 的分支),同时清理关联的 worktree。保持本地仓库整洁。

适用场景

  • PR 合并后,远程分支已删除但本地还在
  • 定期清理本地仓库中的陈旧分支

示例调用

用 commit-commands:clean_gone 清理本地分支

17.2.4 配置与自动化

init

功能:为新项目自动生成 CLAUDE.md 文件。分析项目结构、识别技术栈、提取常用命令,生成一份初始的项目文档。

适用场景

  • 新项目首次配置 Claude Code
  • 从旧项目迁移,还没有 CLAUDE.md

示例调用

用 init 为这个项目生成 CLAUDE.md

claude-md-management:claude-md-improver

功能:审计并改进项目中的 CLAUDE.md 文件。扫描所有 CLAUDE.md,对照质量模板评估,输出质量报告,然后进行针对性改进。

适用场景

  • CLAUDE.md 写好了但想让 Claude 帮忙审查
  • 项目演进后 CLAUDE.md 需要更新
  • 定期维护项目文档

示例调用

用 claude-md-management:claude-md-improver 审查并改进 CLAUDE.md

claude-code-setup

功能:分析代码库,推荐应该启用的 Claude Code 自动化功能(Hooks、子 Agent、Skills、Plugins、MCP 服务器)。

适用场景

  • 新项目接入 Claude Code,想知道应该配置什么
  • 项目发展后,重新评估 Claude Code 配置

示例调用

用 claude-code-setup 分析项目并推荐自动化配置

update-config

功能:管理 settings.json 配置文件。处理权限规则、环境变量、Hook 配置等所有 settings.json 相关的操作。

适用场景

  • 添加新的权限规则
  • 设置环境变量
  • 配置 Hook 或调试配置问题

示例调用

用 update-config 添加对 pnpm 命令的 allow 权限

fewer-permission-prompts

功能:扫描对话记录,识别常用的只读 Bash 和 MCP 工具调用,自动生成优先允许列表并添加到 settings.json,减少权限弹窗。

适用场景

  • 刚开始使用 Claude Code 时弹窗太多
  • 希望自动分析并减少不必要的确认

示例调用

用 fewer-permission-prompts 减少权限弹窗

keybindings-help

功能:自定义键盘快捷键。支持按键重绑定、和弦快捷键(chord bindings)、修改 ~/.claude/keybindings.json

适用场景

  • 想要自定义 Claude Code 的快捷键
  • 习惯 Vim/Emacs 风格快捷键

示例调用

用 keybindings-help 帮我设置 Ctrl+S 为提交快捷键

17.2.5 其他内置 Skills

superpowers:requesting-code-review

功能:在完成任务、实现重要功能或合并之前,请求对工作进行全面验证。确保交付的代码符合要求。

示例调用

功能做好了,用 superpowers:requesting-code-review 请求审查

superpowers:receiving-code-review

功能:当收到代码审查反馈时,在采纳建议之前进行技术严谨性验证。特别适用于反馈看起来不清晰或技术上存疑的情况——要求技术严谨性和独立验证,而非表演性认同或盲目实现。

示例调用

收到审查意见了,用 superpowers:receiving-code-review 分析这些反馈

verify

功能:通过实际运行应用来验证代码变更是否真的有效。不仅仅是检查代码逻辑,而是确认运行时行为。

适用场景

  • 想确认 PR 的变更是否真的解决问题
  • 测试一个修改是否在真实环境中生效

示例调用

用 verify 确认这次修改在本地可以正常运行

loop

功能:以固定间隔重复执行命令(如每 5 分钟检查部署状态)。适合需要持续监控的场景。

示例调用

用 loop 每隔 5 分钟检查 CI 状态

run

功能:启动并运行项目应用,验证变更在真实应用中的表现。会先查找是否有项目特定的启动 Skill,否则使用内置的项目类型检测来启动应用。

示例调用

用 run 启动项目,确认新功能正常

claude-api

功能:构建、调试和优化基于 Anthropic SDK 的应用。处理模型版本迁移(如 4.5 到 4.6)、prompt caching、thinking 模式等 API 层面的功能。

适用场景

  • 项目使用了 anthropic@anthropic-ai/sdk
  • 需要添加或调优 prompt caching、tool use、batch 等 API 功能
  • 模型版本升级迁移

示例调用

用 claude-api 帮我给这个 SDK 调用添加 prompt caching

superpowers:using-superpowers

功能:Claude Code 会话的启动 Skill。建立如何查找和使用 Skills 的规范——要求在做出任何回复之前先调用 Skill 工具。这是所有 Superpowers 工作流的入口。

示例调用

用 superpowers:using-superpowers 开始工作

superpowers:writing-skills

功能:创建新 Skill、编辑已有 Skill、或在部署前验证 Skill 是否正常工作。这是构建和维护 Skill 生态的开发工具。

适用场景

  • 编写自定义 Skill
  • 修改已有 Skill
  • 验证 Skill 的有效性

示例调用

用 superpowers:writing-skills 帮我写一个新的 Skill

17.2.6 Skills 速查表

下表按使用频率整理,方便快速查阅:

Skill命名空间类型一句话说明
superpowers:brainstormingsuperpowers开发流程创造性工作前的需求分析
superpowers:writing-planssuperpowers开发流程设计规格转化为实现计划
superpowers:executing-planssuperpowers开发流程按计划分步执行+审查
superpowers:subagent-driven-developmentsuperpowers开发流程独立任务的子Agent并行执行
superpowers:test-driven-developmentsuperpowers开发流程TDD:先写测试再实现
superpowers:systematic-debuggingsuperpowers开发流程系统化Bug排查方法论
superpowers:verification-before-completionsuperpowers开发流程声称完成前强制验证
superpowers:finishing-a-development-branchsuperpowers开发流程完成后的分支集成决策
code-review:code-reviewcode-review代码质量全面的代码审查
security-review代码质量安全漏洞扫描
code-simplifier代码质量简化和优化代码结构
simplify代码质量可复用性和效率检查
commit-commands:commitcommit-commands项目管理智能提交
commit-commands:commit-push-prcommit-commands项目管理提交+推送+PR一键完成
commit-commands:clean_gonecommit-commands项目管理清理远程已删除的分支
init配置生成CLAUDE.md
claude-md-management:claude-md-improverclaude-md-management配置审计改进CLAUDE.md
claude-code-setup配置推荐项目自动化配置
update-config配置管理settings.json
fewer-permission-prompts配置减少权限弹窗

17.3 自定义 Skill 编写

理解了社区 Skill 的运作方式后,下一步是学会编写自己的 Skill。

Skill 文件结构

一个 Skill 就是一个 Markdown 文件,包含 YAML 前置元数据(frontmatter)和 Markdown 正文(指令内容):

markdown
---
name: my-custom-skill
description: 我的 React 组件创建流程
when_to_use: 当用户需要创建新的 React 组件时使用
---

## Instructions

When invoked, follow this workflow:

1. Ask the user what component they need and where it should live
2. Clarify props interface and state requirements
3. Generate the component file with TypeScript types and unit tests
4. Add the component to the barrel export (index.ts)
5. Verify the component renders correctly

关键字段

字段必填说明
nameSkill 的唯一标识符。使用 namespace:skill-name 格式避免冲突
description简短描述 Skill 的功能,一行内完成
when_to_use推荐明确说明在什么场景下使用这个 Skill,帮助 Claude 判断何时调用
正文详细的指令内容,Claude 加载 Skill 后会严格遵循

Skill 命名规范

  • 使用小写字母和短横线:my-team:react-component-builder
  • 命名空间在前:superpowers:brainstormingcode-review:code-review
  • 单段名称保留给全局通用 Skill:initsecurity-review
  • 命名空间通常是你的团队名、组织名或功能领域

编写一个完整的示例 Skill

下面是一个更完整的自定义 Skill 示例,展示了一个 React 组件开发的完整工作流:

markdown
---
name: my-team:react-component
description: 按团队规范创建 React 组件及其测试和 Storybook 故事
when_to_use: 创建新的 React UI 组件或重构已有组件
---

## Instructions

你是一个遵循团队规范的 React 组件开发助手。

### 工作流程

1. **需求确认**
   - 询问组件名称和用途
   - 确认 props 接口(必填 vs 可选)
   - 确认组件属于哪个模块(atoms / molecules / organisms)

2. **创建组件文件**
   - 路径:`src/components/{module}/{ComponentName}/`
   - 使用 TypeScript 严格模式
   - 使用 FC 类型、明确的 props 类型定义
   - 默认导出组件

3. **编写测试**
   - 使用 vitest + @testing-library/react
   - 覆盖:渲染测试、props 测试、交互测试、边界情况
   - 测试文件命名:`{ComponentName}.test.tsx`

4. **编写 Storybook**
   - 至少包含 Default、Loading、Error 三种状态
   - 使用 CSF 3.0 格式

5. **导出**
   - 在模块的 barrel export 中添加导出
   - 组件和类型分别导出

### 代码风格
- 组件文件使用 PascalCase
- 不使用 default export(偏好 named export)
- 所有文本内容支持 i18n(使用 `useTranslation` hook)

自定义 Skill 的存放位置

Skills 可以放在几个位置:

  1. 项目级 Skills.claude/skills/ 目录下。仅对当前项目生效,适合团队共享的开发规范。
  2. 用户级 Skills~/.claude/skills/ 目录下。对所有项目生效,适合个人工作流偏好。
项目目录/
├── .claude/
│   ├── settings.json
│   ├── skills/
│   │   └── my-team:react-component.md    # 项目级 Skill
│   └── ...

如何调用自定义 Skill

自定义 Skill 的调用方式和内置 Skill 完全一样:

帮我在 src/components/molecules/ 下创建一个 SearchBar 组件,用 my-team:react-component

Claude 会自动发现并加载你的 Skill 文件。

也可以用 superpowers:writing-skills 来辅助编写和验证 Skill:

用 superpowers:writing-skills 帮我写一个数据库迁移的 Skill

17.4 组织个人 Skill 库

随着你使用的 Skill 越来越多,有意识地组织自己的 Skill 库会让你事半功倍。

按开发阶段分类

推荐的分类方式是按开发工作流的阶段来组织:

flowchart LR subgraph 构思阶段 A1["brainstorming"] end subgraph 计划阶段 B1["writing-plans"] end subgraph 开发阶段 C1["test-driven-development"] C2["executing-plans"] C3["subagent-driven-development"] C4["dispatching-parallel-agents"] end subgraph 质量阶段 D1["code-review"] D2["security-review"] D3["simplify"] D4["systematic-debugging"] end subgraph 交付阶段 E1["verification-before-completion"] E2["commit"] E3["commit-push-pr"] E4["finishing-a-development-branch"] end 构思阶段 --> 计划阶段 --> 开发阶段 --> 质量阶段 --> 交付阶段 style 构思阶段 fill:#e3f2fd style 计划阶段 fill:#f3e5f5 style 开发阶段 fill:#e8f5e9 style 质量阶段 fill:#fff3e0 style 交付阶段 fill:#fce4ec

创建个人"常用 Skills"清单

不需要每种 Skill 都用到——根据你的日常开发场景,梳理出最常用的几个:

前端开发者

  1. superpowers:brainstorming — 设计新组件时
  2. superpowers:writing-plans — 大功能拆分时
  3. superpowers:subagent-driven-development — 并行开发多个组件
  4. code-review:code-review — 提交前审查
  5. superpowers:verification-before-completion — 声称完成时

后端/工具库开发者

  1. superpowers:brainstorming — API 设计时
  2. superpowers:test-driven-development — 实现核心逻辑
  3. superpowers:systematic-debugging — Bug 排查
  4. security-review — 安全审查
  5. commit-commands:commit-push-pr — 提交和发布

DevOps/基础设施

  1. init — 新项目初始化
  2. claude-md-management:claude-md-improver — 维护项目文档
  3. security-review — 配置变更的安全审查
  4. fewer-permission-prompts — 优化权限配置

什么时候写 Skill,什么时候写提示词

场景建议
一次性任务直接写提示词
重复 3 次以上的同类任务值得写一个 Skill
团队需要共享的开发规范必须写 Skill
复杂的多步骤工作流写 Skill(即使只用一次,Skill 结构也能确保不遗漏步骤)
简单的单步操作适合写成 Slash Command(第 19 章)

判断标准:如果你发现自己在重复说同样的话给 Claude——那就是一个 Skill 的信号。

团队共享 Skills

项目级的 Skill 文件放在 .claude/skills/ 下,可以通过 Git 随项目一起分发。这样团队新成员 clone 项目后,Claude Code 自动获得项目标准的开发规范。

建议在项目 README 或 CLAUDE.md 中注明项目有哪些自定义 Skill:

markdown
## 项目 Skills

`.claude/skills/` 下定义了以下项目专用 Skills:

- `my-team:react-component` — 按团队规范创建 React 组件
- `my-team:api-endpoint` — 按团队规范创建 API 端点
- `my-team:db-migration` — 数据库迁移脚本生成

运行 Claude Code 后,直接告诉 Claude 使用对应 Skill 即可。

Skill 发现:持续扩展你的工具库

Skill 生态在快速发展,建议定期关注:

  1. Superpowers Marketplace:通过 Plugin 安装的 Skill 注册中心
  2. 社区推荐:Reddit、Discord、Twitter/X 上的 Claude Code 社区
  3. Claude Code 更新日志:新版本通常会包含新的内置 Skills
  4. 观察 Claude 的系统提示:启动 Claude Code 时显示的可用 Skills 列表是最完整的参考

17.5 Skills 最佳实践

经过社区的大量实践,以下七条原则经过了广泛验证。

1. 先理解再调用

在调用 Skill 之前,先阅读它的描述和 when_to_use 说明。确保这个 Skill 真的适合你当前的场景。错误的 Skill 调用不仅浪费时间,还可能把工作流引向错误的方向。

# 好:先理解
> 查看 superpowers:brainstorming 是做什么的
> 确认我的场景是"新功能设计",匹配 → 调用

# 不好:盲目调用
> 用 superpowers:brainstorming 修这个 typo
(brainstorming 用于需求分析,修 typo 根本不需要任何 Skill)

2. 按流程使用开发三件套

对于任何非 trivial 的功能开发,遵循这个流程:

brainstorming → writing-plans → executing-plans

不要跳过 brainstorming 直接写代码——那是"先射箭再画靶子"。社区数据表明,使用完整三步流程的返工率比直接实现低约 80%。

3. 不要跳过 Skill 的系统提醒

当 Claude 的系统提示中列出了 Skill,并且声明了 "You MUST use this before..." 时,这不是建议而是要求。这些提醒的存在经过了大量工程实践验证——跳过它们意味着跳过最佳实践。

如果你确实不需要某个 Skill,明确告诉 Claude 原因:

这个改动很小,不需要 brainstorming,直接改就行

4. TDD 适合后端和工具库

superpowers:test-driven-development 在以下场景效果最好:

  • 函数库和工具方法(输入输出明确)
  • API 接口(请求响应可预测)
  • 数据转换逻辑(输入数据→输出数据)

在以下场景效果有限:

  • UI 布局调整(视觉效果难以自动化断言)
  • 快速原型开发(需求还在变化)
  • 一次性脚本(用完就扔)

5. Review 不可省

无论功能多小,在合并之前使用 code-review:code-review 做一次全面的代码审查。自己写的代码自己很难发现所有问题——这就是 review 存在的原因。

# 最小化但完整的提交工作流
1. 实现功能
2. code-review:code-review(审查变更)
3. superpowers:verification-before-completion(验证通过)
4. commit-commands:commit-push-pr(提交并创建 PR)

6. 验证再声称完成

人类和 AI 都容易犯的一个错误是:代码写完了就以为功能正确了。superpowers:verification-before-completion 强制你在声称"做完了"之前运行验证命令。

在任何声称完成之前,至少做以下之一:

  • 运行相关的测试套件
  • 在本地启动应用确认行为
  • 运行 verify Skill

7. 组合使用,形成完整工作流

Skills 的价值在组合使用中最大化。以下是一个完整的开发工作流示例:

flowchart TB subgraph 规划 A["superpowers:brainstorming<br/>需求分析"] B["superpowers:writing-plans<br/>制定计划"] end subgraph 实现 C["superpowers:using-git-worktrees<br/>创建隔离环境"] D["superpowers:subagent-driven-development<br/>并行开发"] E["superpowers:test-driven-development<br/>TDD实现"] end subgraph 质量 F["code-review:code-review<br/>代码审查"] G["security-review<br/>安全审查"] H["superpowers:systematic-debugging<br/>问题排查"] end subgraph 交付 I["superpowers:verification-before-completion<br/>最终验证"] J["commit-commands:commit-push-pr<br/>提交并创建PR"] K["superpowers:finishing-a-development-branch<br/>分支集成决策"] end A --> B B --> C C --> D D --> E E --> F F --> G G --> H H --> I I --> J J --> K style 规划 fill:#e3f2fd style 实现 fill:#e8f5e9 style 质量 fill:#fff3e0 style 交付 fill:#fce4ec

这个流程看起来很长,但每个环节都有明确的价值。实际使用中,并非每个项目都要走完所有步骤——根据项目规模和风险来选择。

17.6 本章小结

本章全面介绍了 Claude Code 的 Skills 系统。以下是核心要点:

  1. Skill 是可复用的指令模板:本质是 Markdown 文件,指导 Claude 如何完成特定类型的任务。Skill 是"方法论",Plugin 是"新工具",两者互补而非替代。

  2. Superpowers 是最重要的 Skill 套件:覆盖了从头脑风暴到分支集成的完整开发流程。核心的三步流程(brainstorming → writing-plans → executing-plans)能减少约 80% 的返工。

  3. Skill 生态系统覆盖开发全流程:开发流程类(brainstorming、TDD、systematic-debugging 等)、代码质量类(code-review、security-review、simplify 等)、项目管理类(commit、clean_gone 等)、配置自动化类(init、claude-md-improver、update-config 等)。

  4. 编写自定义 Skill 很简单:一个 Markdown 文件 + YAML frontmatter,放在 .claude/skills/ 下即可。关键是写清楚 descriptionwhen_to_use,让 Claude 知道何时调用。

  5. 组织 Skill 库提高效率:按开发阶段分类(构思 → 计划 → 开发 → 质量 → 交付),根据角色场景挑选常用 Skill,通过 Git 与团队共享项目级 Skill。

  6. 七条最佳实践:先理解再调用、按流程使用三步法、不要跳过系统提醒、TDD 场景选择、Review 不可省、验证再声称完成、组合使用形成完整工作流。

Skills 系统是 Claude Code 从"工具"进化为"工作伙伴"的关键——它让 Claude 不仅仅是执行命令,而是按照经过验证的专业方法论来工作。在下一章,我们将学习 Hooks(钩子系统),它让你可以在 Claude Code 的各个生命周期节点插入自动化操作,与 Skills 形成强大的组合。