ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

superpowers 技能包实战:给 Claude Code 安装技能并构建 AI 工作流

superpowers 技能包实战:给 Claude Code 安装技能并构建 AI 工作流 1. superpowers 到底是什么它和普通插件有什么区别1.1 一个仓库几十个“技能包”如果你最近在看 AI 编程助手的使用技巧大概率会刷到 superpowers 这个词。我第一次看到这个仓库时以为它又是一个“一键生成项目”的脚手架用了一段时间才发现它其实是一套给 Claude Code 这类 AI 工具准备的技能包合集安装之后AI 不再是只会顺着你话说的通用模型而是一个能走完头脑风暴、写计划、TDD、复盘全流程的虚拟同事。它最核心的东西是 Skills 概念。每一个技能本质上就是一个文件夹文件夹里有一个SKILL.md文件。这个文件先通过 YAML 头告诉 AI我叫什么、什么时候该用我再用一段正文写出完整的工作流程、执行步骤、注意事项。举个例子brainstorming技能会在正文里要求 AI 先澄清目标再做发散、收敛、风险评估最后给出方案对比而不是直接甩一个答案。把整个 superpowers 装好之后你的 AI 手里就有了一批可以随取随用的“操作手册”做计划、拆步骤、写测试、跑复盘、写文档、做代码审查。需要注意这些技能不是普通提示词模板而是通过框架约定被 AI 自动识别并加载的。当你问的话命中某个技能的场景时AI 会主动读取对应的SKILL.md然后照着上面的流程执行。整个过程不需要你在每次提问时复制粘贴一堆规则。作者是 Jesse Vincent仓库在 GitHub 上叫obra/superpowers。这个项目早期主要面向 Claude Code后来因为很多支持 Agent Skills 的工具都兼容同一套格式适用范围也跟着扩大了。1.2 为什么“给 AI 发技能手册”比调 prompt 更靠谱以前调 AI大家习惯在 system prompt 里堆规则你要先分析、再规划、然后写代码最后检查。但 prompt 越长AI 越容易把关键约束忽略掉有时候甚至前后矛盾。superpowers 的核心思路完全不同它把任务拆成独立的小手册按需使用而不是让 AI 在几万字的 prompt 里大海捞针。这就像你给一个新同事发了一本《常见问题手册》遇到纠纷翻第 3 页遇到客户投诉翻第 7 页而不是让 TA 把整本手册倒背如流。只有遇到对应场景时AI 才会去翻那一页这样上下文更干净执行也更稳定。另一个优势是技能之间可以编排。brainstorming 先把需求想清楚writing-plans 把方案落地成可执行计划executing-plans 负责按计划逐项推进test-driven-development 保证每一段代码都有测试兜底。技能串联起来之后整个开发流程会像一条流水线AI 也很少再出现“答了一半突然跑偏”的问题。这套东西对谁最有价值我觉得是两类人。一类是重度使用 Claude Code 的开发者想在项目里建立一套稳定的 AI 工作流另一类是刚接触 Agent Skills 的新手想搞明白“给 AI 安装技能”到底是什么体验。如果你只是偶尔让 AI 写一段一次性脚本那可能用不上全家桶但挑几个常用技能装上也能明显提升回答质量。2. 安装前的准备和目录约定2.1 环境要求哪些工具能跑这套技能我目前用得最顺的是 Claude Codesuperpowers 对它的支持也最完整。其实只要是能识别 Agent Skills 目录的工具都可以尝试比如 Cursor 的较新版本也对SKILL.md有兼容。你在安装之前最好先确认你用的工具到底读取哪个目录不同工具的约定并不完全一样。以 Claude Code 为例它支持两个位置的技能目录用户级目录~/.claude/skills和项目级目录.claude/skills。前者对所有项目生效后者只对当前项目生效。Cursor 通常读取项目里的.cursor/skills或者对应版本的 agent 配置目录具体路径要以官方文档为准因为这类目录结构更新得很快。我的建议是第一次玩直接用 Claude Code 跑通。它的路径明确、日志清晰报错也直观。等你在一个工具上把机制理解透了再迁移到其他工具上本质上只是把技能文件夹复制到对应目录的事情没有太多学习成本。2.2 全局技能目录和项目技能目录怎么选选全局还是项目级取决于这个技能是不是和特定代码库强绑定。像 brainstorming、writing-plans、test-driven-development 这类通用技能放~/.claude/skills更合适因为你在任何项目里都可能用到。而某个项目特有的数据库操作约定、部署脚本、代码风格规范就应该放.claude/skills这样团队成员一起维护时行为才一致。还有一点需要注意同一个技能如果同时存在全局和项目级不同工具的优先级可能不一样。我遇到过项目级覆盖全局的情况也遇到过反过来。最稳妥的做法是不要同时放着同名但内容不同的技能否则 AI 可能加载到一份你根本不想用的旧版本。注意在动手安装之前先想清楚你的使用场景。如果你只在一个项目里试验先放项目级目录如果确定希望所有项目都拥有这套能力再放全局目录。不要一上来就全盘复制后面维护起来会有点乱。3. 安装 superpowers 的两种实操方式3.1 最稳妥手动 clone 并平铺技能目录安装其实不复杂但有几个细节很容易踩坑我一个个说。第一步把仓库克隆到本地临时目录git clone https://github.com/obra/superpowers /tmp/superpowers克隆完成之后先不要急着复制打开看下目录结构find /tmp/superpowers -maxdepth 2 -name SKILL.md正常情况下你会看到仓库里有一个skills/文件夹里面的每个子目录都是一个独立技能每个技能目录下都包含一个SKILL.md。正常的技能目录结构是skills/brainstorming/SKILL.md、skills/writing-plans/SKILL.md以此类推。接下来创建一个全局技能目录并把skills/下面的一级子目录全部复制过去mkdir -p $HOME/.claude/skills cp -r /tmp/superpowers/skills/* $HOME/.claude/skills/如果你只想安装其中几个技能不要用*直接逐个复制目录就行比如cp -r /tmp/superpowers/skills/brainstorming $HOME/.claude/skills/ cp -r /tmp/superpowers/skills/writing-plans $HOME/.claude/skills/为什么强调“平铺”因为 Claude Code 在识别技能时会扫描技能根目录下的第一层子目录每个第一层子目录必须直接包含SKILL.md它才认为这是一个技能。如果你直接把整个 superpowers 仓库文件夹丢进~/.claude/skills路径就变成了~/.claude/skills/superpowers/skills/brainstorming/SKILL.md技能层级深了一层AI 很可能识别不到。这个坑我在第一次安装时就遇到过装完之后怎么调都不生效后来才发现是目录层级的问题。3.2 更省心用软链实现“一次安装随时更新”手动复制有个问题上游仓库更新了你只能再拉一次、再复制一次。有些技能迭代很快频繁复制比较麻烦。我的做法是使用软链接把克隆目录固定放在一个地方技能目录通过链接指过去这样只要在仓库里git pull所有技能自动更新。git clone https://github.com/obra/superpowers ~/repos/superpowers mkdir -p $HOME/.claude/skills for d in ~/repos/superpowers/skills/*; do ln -s $d $HOME/.claude/skills/$(basename $d) done这段脚本会在~/.claude/skills下生成一堆指向~/repos/superpowers/skills/下各子目录的符号链接。之后每次想更新直接cd ~/repos/superpowers git pull所有软链接指向的内容会同步更新不用再手动复制。Windows 用户可以打开 PowerShell用New-Item -ItemType SymbolicLink -Path ... -Target ...逐个创建链接也可以直接用cmd /c mklink /D效果一样。软链接的方式也有代价如果你把克隆目录删了或者移动到别处技能也跟着失效。所以克隆目录的位置最好固定别今天放桌面、明天放临时目录。另外如果是团队共享项目我不建议用软链直接把技能放到项目目录里提交到 git 更可控团队别人 clone 下来就能用不需要各自配置。4. 到底有哪些 skills怎么按需选配4.1 常用技能清单与使用场景我在实测中比较常用的几个技能大致可以分成下面几类。不同版本清单会有些增删但核心思路是一样的每个技能都针对一个特定任务场景。分类技能目录什么时候用技术规划brainstorming需要先想清楚思路、对比方案时技术规划writing-plans把选定的方案写成可执行的分步计划技术规划executing-plans按计划文件逐项执行任务并跟踪进度技术规划risk-analysis识别方案的技术风险、依赖风险和返工风险工程质量test-driven-development需要先写测试再写实现时工程质量code-review写完代码后审查 diff找出逻辑和风格问题工程质量debugging排查 bug按证据链而不是猜来猜去工程质量refactoring在保持功能不变的前提下重构代码沟通协作meeting准备会议议程、生成会议记录沟通协作standup写项目同步内容把进展和阻塞讲清楚沟通协作retro做项目复盘提炼值得改进的动作沟通协作onboarding给新成员介绍项目结构、运行方式和常见约定写作文档writing写博客、周报、方案文档调整语气和结构写作文档documentation给代码库补充 README、接口文档、贡献指南问题调查investigation面对一堆未知现象时梳理证据和可能性问题调查root-cause-analysis找到问题背后的根因而不只是修表面现象问题调查postmortem事故结束后写详细的事故复盘报告这些技能并不是互相独立的。比如你接到一个需求先让 AI 用 brainstorming 发散思路确定方案后再用 writing-plans 生成计划文件最后用 executing-plans 把计划拆成具体任务逐项执行。整个过程像是把几个技能拼成了一条工作流。4.2 单项目引入还是全家桶引入有些朋友装完 superpowers 会很兴奋把所有技能全塞进目录然后发现 AI 反而变笨了你让它改一段代码它可能会先跑出一个 investigation 流程搞得像要破案一样。原因很简单技能太多每个技能都有自己的 descriptionAI 在匹配时会出现“选择困难”甚至把不相关的技能读进上下文既浪费 token又拖慢响应。我的建议是按当前阶段挑 6-10 个最常用的装全局其余暂时不装。比如这一周在写新功能那就装 brainstorming、writing-plans、executing-plans、test-driven-development、code-review、debugging下周转去做文档整理就把 writing、documentation 也放进项目级目录。按需引入有两种方式。第一种是只复制你需要的技能目录不要让多余技能出现在扫描范围内。第二种是即使技能目录存在也要在提示语里强制指定比如直接说“使用 test-driven-development 技能来完成这个功能”这通常比让 AI 自己猜更稳。5. 让 AI 真正调用技能一次完整工作流演示5.1 核心工作流从头脑风暴到执行计划只看不练没法真正理解这套东西我带大家走一遍真实场景。假设我要给博客加一个 RSS 输出功能以前的我会直接问 AI“怎么给博客加 RSS”它大概率会噼里啪啦给出一堆方案。现在有了 superpowers流程完全变样。第一步我先输入“帮我想想给博客加 RSS 的方案使用 brainstorming 技能。”AI 会先加载 brainstorming 技能然后按照技能文档里的流程走先问我目标读者是谁、希望输出格式是什么、是否需要按分类聚合再让我补充现有博客的技术栈最后给我两到三个方案做对比并标出每个方案的优缺点。第二步我输入“把选定的方案用 writing-plans 技能写成执行计划。”这时 AI 会生成一份 markdown 计划文件放到类似plans/的目录里。计划里的每个任务都有一个编号和完成状态比如“第一步创建 RSS 生成模块”“第二步添加路由”“第三步编写测试”每项都可以单独勾选方便后续跟踪。第三步我输入“按计划执行使用 test-driven-development 技能。”AI 就会回到计划文件里从第一个任务开始先写失败测试再写实现代码让测试变绿然后再进入下一个任务。如果中途某个测试一直不过它可能会自动调用 debugging 技能去排查而不是硬着头皮把代码写完。这里最关键的一点是不要指望 AI 自动跑完整条流水线。你需要逐步指定当前阶段使用哪个技能或者在第一句话里把整条链路说清楚。如果一句话包含全部需求AI 有时会跳过计划环节直接动手反而把系统设计初衷给丢了。5.2 怎么判断 AI 有没有用上技能很多人在安装后最困惑的是我怎么知道 AI 到底有没有真的加载技能在 Claude Code 里当某个技能被加载时界面上会有比较明显的提示类似Loading skill: brainstorming。如果你使用过程中完全没看到这类提示说明技能可能没有被触发。如果你用的是其他兼容工具可以打开 verbose 模式或者在日志里查看技能加载记录。还有一个笨但有效的测试方法安装一个只有几行内容的自定义测试技能SKILL.md 中强制要求 AI“每次回答前先输出一个固定字符串比如 SUPER_POWER_OK”。之后你随便问一个问题如果 AI 输出了这个字符串就证明技能机制已经生效。这个方法我在排查问题时经常用能快速区分“技能没装成功”和“技能没被触发”。5.3 写一个自己的 SKILL.md 示例理解了机制之后你完全可以写自己的技能。下面是一个最小可用的SKILL.md示例用于让 AI 生成规范化 Git 提交信息--- name: commit-message description: 当用户要求写 Git 提交信息或者需要根据暂存区改动生成 commit message 时使用。适用于任何包含 version control 的代码库。 --- # Commit Message Skill 1. 先运行 git diff --staged 查看暂存区改动。 2. 分析改动涉及的功能模块、修改类型和影响范围。 3. 按 Conventional Commits 规范生成提交信息格式为 type(scope): subject。 4. 输出 3 条候选信息并说明推荐哪一条、为什么。注意几个细节。name要短最好用英文小写和连字符不要有空格。description是整个技能的灵魂它决定了 AI 什么时候会读这个技能所以要把触发场景写清楚甚至可以写上“当用户说‘帮我写 commit’、‘生成提交信息’时使用”这类具体表达。YAML 头下面的正文步骤要明确、可执行也可以引用项目内的文件路径但不要依赖太强的假设否则换一个项目就不适用了。把这段内容保存到某个目录比如~/.claude/skills/commit-message/SKILL.md再重启会话你的 AI 就多了这个技能。之后只要涉及提交信息它就会自动按这个规范输出。6. 常见问题与排查技巧实录6.1 装完没反应的 4 个检查点安装后最常遇到的问题就是明明装了AI 却没有任何反应。根据我的经验按下面四个检查点排查基本能解决九成问题。第一目录位置对不对。Claude Code 认的是~/.claude/skills和项目下的.claude/skills不是别的自定义目录。检查命令find ~/.claude/skills -maxdepth 2 -name SKILL.md正常情况下应该能看到每个技能目录下的 SKILL.md 文件。如果输出为空说明目录层级不对或者根本没有复制进去。第二文件名是不是SKILL.md。这里的文件名必须全大写不能写成skill.md或SKILL.MD。很多工具在匹配时区分大小写文件名不对就会直接跳过。第三有没有重启会话。技能目录的扫描通常发生在会话启动阶段如果你是在当前会话中间安装的AI 可能不会立刻感知到。新开一个会话再去提问往往就正常了。第四触发词有没有对得上。技能是靠description里的关键词匹配的如果你问“帮我想几个思路”但技能描述里写的是“当用户要写详细计划时使用”AI 就不会加载。遇到这种情况直接在问题里加上“使用 brainstorming 技能”这种明确指示比让它自己猜要可靠得多。提示如果你装了技能但效果不明显先不要怀疑工具坏了。很多时候是技能本身没有触发但 AI 依靠通用能力也能完成简单任务所以你看不出差别。先用测试技能验证机制是否生效再回到真实业务场景。6.2 技能冲突、更新覆盖与自定义superpowers 更新频率不算低直接git pull固然方便但如果你改过技能内容更新时可能会被上游覆盖。我的做法是把自定义技能放在单独目录比如~/.claude/skills-custom/不跟 superpowers 混在一起。需要保留原版技能时就复制一份出来改名为brainstorming-custom再调整里面的流程。这样即使上游更新也不会把你改过的版本冲掉。如果你发现 AI 行为很奇怪也可以检查是不是存在同名技能冲突。比如全局目录有一个writing项目目录又有一个writing这两个内容不一致时工具加载哪个完全看它的优先逻辑结果很可能不可控。检查方法很简单ls ~/.claude/skills ls .claude/skills看到同名目录后要么删除一个要么把其中一个重命名。团队协作时建议固定技能版本并把项目级技能目录纳入 git 管理这样大家都用同一套规则不会出现“同一个功能AI 在不同人手里行为不一样”的尴尬。6.3 安全提醒第三方技能别盲装最后聊一个容易被忽视的问题安全。技能的本质是给 AI 一段“操作手册”里面很可能包含建议执行的命令、建议修改的文件路径。如果它来自不可信的第三方等于你把 AI 的操作许可交给了一份你不了解的手册。安装前花几秒钟打开SKILL.md看看它要 AI 跑什么命令、读写什么路径再决定要不要用。我在安装任何第三方技能前会在沙箱项目里先调用一次确认它不会执行危险命令、不会向外部接口发送数据然后才放进主力目录。这个习惯和安装 npm 包前看一眼 package.json 是一个道理。像 superpowers 这种社区热度高的项目相对可信度会高一些但依然建议你保持这个审阅习惯。我个人在实际操作中体会最深的一点是superpowers 的价值不只是让 AI 多会几个技巧而是逼着你把“你想让 AI 怎么做”这件事想清楚。每装一个技能你都在定义一类任务的标准流程。装多了以后你会慢慢形成自己的工作流体系而不是让 AI 每次随机应变。这也是为什么我更推荐你从最小集合开始把几个核心技能用熟再决定要不要扩充。
返回列表