尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Superpowers:用技能文件终结AI助手的重复劳动与失忆症

Superpowers:用技能文件终结AI助手的重复劳动与失忆症 做过一段时间 AI 编程的人大概都有过这种体验同一个需求每次都要重新贴一遍上下文重新交代一堆前置条件换个会话它立刻“失忆”。尤其当任务稍微复杂一点比如“先做代码审查再顺手修掉发现的问题”“按团队规范生成提交信息顺便补单元测试”你得把流程拆成好几轮对话反反复复喂给助手。后来我把 Superpowers 这套开源的技能系统引入到工作流里才算真正把这种重复劳动消掉了。先说它是什么Superpowers 是一个面向 AI 编程助手的 VS Code 扩展核心概念叫“技能skills”——把日常反复使用的 AI 工作流封装成一个个 Markdown 文件之后用一条命令或一句自然语言就能复用整套流程。它解决的是“AI 助手记不住规则、流程不可复用、多人协作各写各的提示词”这一堆老大难问题。适合谁适合日常重度依赖 Copilot Chat、Claude Code 或者 Cursor 这类工具又不想每次都从头教 AI 怎么干活的人。下面这篇就算是我自己从安装到上手、再到手写技能的完整复盘踩过的坑和验证过的用法都记录在里头了。1. 项目复盘Superpowers 到底解决了什么痛点1.1 AI 助手的“失忆症”与重复劳动坦白讲AI 编程助手最大的问题不是“写不出代码”而是“不记得规则”。我刚开始用 Copilot 的时候几乎每天都要跟它说同样的几件事项目用 TypeScript、缩进是两个空格、不要用 any、提交信息按 Conventional Commits 写。当时没觉得麻烦直到有一次团队来了新人把这一套提示词复制粘贴给他他看着几百字的“AI 使用说明书”一脸茫然。那一刻我才意识到隐藏在“上下文补全”背后的其实是重复劳动的系统性浪费。Superpowers 的核心思路很简单把“你希望 AI 怎么处理这一类任务”从对话里抽出来变成独立文件像函数一样去调用。你想让 AI 做得标准就先写下一套标准你想让团队所有人都做得标准就把这套标准放进共享仓库。这样以来即使换了一个新助手、新会话只要技能还在它就永远不会“失忆”。1.2 技能Skills机制把流程当文件管理技能在 Superpowers 里的形态不是写在扩展配置里的几行字符串而是一个个 Markdown 文件。每个技能文件自带“名字”“描述”“触发场景”和“操作指令”结构类似菜谱菜名、适用场景、步骤、注意事项。AI 助手在收到调用指令后会把技能内容作为上下文的一部分读进去然后按步骤执行。这个设计有两点很妙。第一Markdown 本来就是人类和 AI 都能读的格式写作门槛低非程序员也能维护第二它可以进 Git 仓库能够 review、能 diff、能回滚相当于给“AI 指令”上了版本管理。一想就明白之前你要实现同样的事要么把提示词攒在某个不公开的文档里要么散落在一堆聊天记录中无从维护。Superpowers 本质上把“提示词”这个很随意的东西变成了工程化资产。1.3 它适合谁又不适合谁一个工具是不是好工具得看它解决的是不是你的问题。我这几个月用下来觉得 Superpowers 最适合三类人一是每天要跑至少五六个重复性 AI 任务的开发者比如批量代码审查、日志分析、提交信息生成二是带团队的负责人想把团队的编码规范和审查标准统一成一套可执行规则三是喜欢折腾工作流的效率控能从定义技能这件事本身获得快感。反过来如果你的用法只是“偶尔让 AI 写一段临时脚本”或者根本不用 AI 编程助手那这个扩展对你就是负资产——多了一层概念多了一套配置收益却约等于零。我见过不少朋友装上不久就卸载多半就是这种错配。工具没有好坏只有匹配度。2. 安装与初始化从零启用 Superpowers2.1 两种安装路径与验证方式安装其实没什么玄学。最直接的方式是打开 VS Code进扩展市场搜 “Superpowers”认准发布者信息后直接点安装。我习惯用命令行装步骤更少也方便写入团队初始化脚本一条命令就完成code --install-extension obra.superpowers安装完成后建议先做一步验证打开命令面板CtrlShiftP输入 “Superpowers”如果能看到类似 “Superpowers: Show Skills”“Superpowers: Open Settings” 这样的命令说明扩展已经正常加载。这里有个常见误解——装完扩展不代表技能就能用你还需要让 AI 助手“认”这套技能系统也就是后面讲到的目录初始化和调用配置。实话讲我第一次装完就急着在聊天窗口输入技能名结果毫无反应差点以为装了个假插件。后来才发现扩展装好之后还得保证对话里的 AI 助手版本支持系统提示与工具调用机制大部分新版本 Copilot Chat 和 Claude Code 都支持老版本则可能不识别。这一点先有预期后面排查才不慌。2.2 初始化技能目录Superpowers 约定技能文件放在项目根目录下的一个特定目录里。常见做法是创建.superpowers/skills/目录目录下每个技能一个子目录技能定义文件通常命名为SKILL.md或直接放到对应文件夹内。每个人的习惯略有差异我自己按社区主流方式来做mkdir -p .superpowers/skills touch .superpowers/skills/.gitkeep然后进 VS Code 设置搜索superpowers把superpowers.skillsPath配成这个目录路径。如果团队有多项目共用技能的需求还可以设置全局技能目录配合superpowers.useGlobalSkills开启跨项目加载。这一步做不到位最典型的结果是技能文件明明写好了面板里却看不到AI 也调不出来。2.3 关键配置项与初始体验我通常在项目里保持这几个核心配置足够覆盖大多数日常场景superpowers.enableAllSkills是否默认启用所有技能。刚上手可以先开熟悉后再精细调整。superpowers.useGlobalSkills是否从全局技能目录加载调试单个技能时建议暂时关闭避免同名冲突。superpowers.skillsPath技能目录路径相对或绝对路径都可但建议用相对路径方便团队克隆后直接可用。配好这些后再回到聊天窗口用一个最简单的内置技能测试一下比如让 AI 对当前工作区的代码做一次概要分析。如果 AI 能按照技能里的步骤给出结构化输出就说明链路通了。我自己的体感是从安装到跑通第一个技能熟练以后五分钟内就能完成第一次慢慢摸可能要二十分钟主要是要理解“技能是文件不是按钮”这个思维转变。3. 内置技能清单与核心使用场景3.1 按场景分类看技能清单Superpowers 自带了一批开箱即用的技能但具体清单会随版本迭代调整建议安装后打开命令面板里的 “Superpowers: Show Skills” 看一眼当前版本实际有哪些。从社区常见分布来看大致是以下几类我按使用场景整理成一个速查表场景分类常见技能名称它干什么用任务编排chained-task-execution把复杂任务拆成子任务并按顺序执行前一步输出给下一步深度分析与根因排查five-whys用连续追问的方式定位问题根因适合线上故障复盘深度分析与根因排查identify-root-cause给出一组候选根因并逐步验证适合 bug 定位学习与知识管理learn-build-teach按“学习→构建→教授”三阶段推进适合快速入门新领域学习与知识管理concept-extraction从对话或文档中提取关键概念并建立关系适合技术调研写作与总结creative-writing带风格约束的写作流程适合写技术文档和博客写作与总结summarize长文本分组摘要加汇总适合读代码仓库或长文档系统思考system-thinking分析系统各要素之间的反馈回路适合做架构设计复盘先说明一下这些技能名在不同版本里可能改名或移除所以我更建议把它当成“能力分布”参考而不是绝对清单。实际使用中以你环境中Show Skills列出来的为准。3.2 使用姿势命令面板调用与对话内调用调用技能的姿势主要有两种。第一种是通过命令面板唤起技能选择器选中后扩展会把技能内容填充到当前对话上下文里。第二种更自然直接在对话中用斜杠命令风格去触发比如输入/superpowers或者superpowers加上技能名AI 助手就会按对应技能流程去执行。说下我的实际体验对话内调用更顺手尤其是任务做到一半临时要让 AI 切换成“系统思考模式”时不需要离开当前上下文。命令面板方式则适合任务开始前先设定好工作模式相当于“开局先选职业”。两种方式本质都是在“注入技能上下文”区别只是触发入口不同。有个细节值得提技能是可以组合的。比如先调identify-root-cause定位问题再用chained-task-execution把修复、测试、提交拆成子任务执行。组合的顺序和依赖关系写在技能文件里就可以完成这也是这一套系统比“单条提示词”强的地方——流程本身是可编排的。3.3 技能运行时的上下文与反馈技能运行前扩展会把技能文件中的说明注入到 AI 的上下文窗口运行后AI 会把结果直接返回到对话里。这里有一个容易被忽视的点技能执行的效果非常依赖技能文件写得够不够“明确”。我试过用一个写得很含糊的技能和一个写得很具体的技能产出质量差距非常夸张。含糊的技能文件只会说“请分析代码质量”AI 可能给你输出一句“代码看起来还行”具体技能会列明检查维度、输出格式、每个维度的评级标准甚至给出问题示例。所以如果你觉得某个技能跑起来效果不如预期先别急着怪 AI去打开技能文件看它到底给了多少可操作的指令才是最实际的排查方向。4. 手写一个技能完整实操4.1 技能文件的结构与字段说明一个技能文件包含两大部分头部元数据frontmatter和主体指令。头部通常用 YAML 格式声明技能名称、描述、触发场景主体则是 Markdown 格式的详细操作指令。我把常见字段整理成一个模板你可以直接照着写--- name: skill-name-here description: What this skill does when_to_use: When should the AI trigger this skill --- # Skill: skill-name-here ## Goals - What you want to achieve with this skill ## Steps 1. Step one 2. Step two ## Rules - Constraints and requirements ## Output Format - Expected format of the result看到这里你可能会问为什么用 Markdown 而不是 JSON 或者代码文件我的理解是技能文件的读者是“AI 加程序员”的组合Markdown 是人类最好读、AI 也最擅长解析的格式之一。更重要的是它支持长文本自然书写可以写很细的思考步骤、示例、边界条件这些用严格的 JSON 结构反而不舒服。说白了这就是一份给 AI 看的简明 SOP工具和格式都不该喧宾夺主。4.2 实战从零写一个“代码审查”技能光说模板不够我拿自己写的一个“代码审查”技能来完整拆解。这个技能的背景是团队里每次提交代码我都想让 AI 先按几个固定维度做一轮审查包括 bug 风险、性能隐患、可读性和测试覆盖输出统一格式的报告。技能文件内容大概是--- name: pr-code-review description: Performs a structured code review on a pull request or a code diff when_to_use: When reviewing a pull request, a code diff, or a batch of modified files --- # PR Code Review Skill ## Goals - Identify critical bugs and security issues - Evaluate performance implications - Assess code readability and maintainability - Check test coverage adequacy ## Steps 1. Review the provided diff or file list. 2. For each file, identify top 3 potential issues with severity labels. 3. Cross-check whether changes break existing patterns or APIs. 4. Suggest concrete fixes with code snippets. 5. Summarize into a review report. ## Rules - Use severity levels: Critical, Warning, Suggestion. - Do not rewrite the entire file; focus on changed lines. - Reference line numbers when possible. ## Output Format ### Summary A 3-sentence overall assessment. ### Issue List - Severity, location, issue description, suggested fix. ### Testing Notes Recommend tests that should be added or updated.写这个技能时我特别在 “Rules” 里强调了“不要重写整个文件”“引用行号”因为不加约束的话AI 经常会自作主张给你贴一整段重写代码输出也会变得冗长不好用。这一版技能用下来审查报告的质量相当稳定裁剪了无关输出也让行为可预期了。4.3 把技能放进去并测试技能文件写好以后放进技能目录比如.superpowers/skills/pr-code-review/SKILL.md。命名上有三个经验文件名全小写、用连字符分隔单词、目录名与技能 name 保持一致。改完文件建议重载窗口CtrlShiftP→ “Reload Window”然后到对话里触发一次验证技能是否被正确识别。第一次测试时我建议故意输入一个简单的 diff比如两三行代码看看 AI 的输出格式和步骤是否跟你在技能里定义的一致。如果一致说明文件被正确加载如果不一致优先检查 frontmatter 是否写对、目录路径是否匹配、设置里的开关有没有打开。这里我踩过一个坑技能文件里name字段写成了大写驼峰实际约定是小写连字符导致面板里显示名称对不上AI 也无法正常匹配。所以命名规范别嫌啰嗦真的是节省时间的重要细节。4.4 多技能组合与工作流串联单个技能写出来只是第一步Superpowers 真正值钱的地方在于能组合。我常用的一个组合是“审查加修复”先调pr-code-review生成问题清单再调chained-task-execution把“修复关键问题、补充测试、更新文档、生成提交信息”串起来执行。实现组合的方式有两种。第一种是对话里依次调用靠 AI 记忆衔接第二种更强在技能文件里直接引用另一个技能写成“先使用pr-code-review获取问题列表然后逐项修复”。两种方式可以灵活混用任务复杂度高的时候就多用第二种把依赖关系固化下来下次一键执行。能把组合玩明白基本就吃透了这套系统的设计初衷。5. 常见问题与排错实录5.1 技能列表为空或调用无响应这是装完以后出现频率最高的问题。排查顺序一般这样走先确认技能目录存在且路径配置正确再确认技能文件命名和目录结构符合约定最后看设置里enableAllSkills是否被意外关掉。我见过最离谱的一次是朋友把技能文件放到了src/skills而不是.superpowers/skills设置里路径又改成了默认值两边对不上列表自然是空的。顺带提一个高频原因改完技能文件之后忘了重载窗口。VS Code 的扩展对文件变化有缓存很多时候不会实时刷新不重载就直接去调用结果就是吃着旧缓存、跑着旧逻辑。这不是扩展 bug只是文件监听机制不够激进。养成“改完就重载”的习惯能少踩不少坑。5.2 调用了但 AI 不按技能执行有一种更隐蔽的情况是技能能被列出来命令也触发了但 AI 的输出完全是另一套风格像是根本没读技能文件。根据我的经验原因多半出在上下文被截断或覆盖上对话历史太长技能注入的内容被挤出了有效窗口又或者当前 AI 助手的系统指令优先级比技能更高。应对办法有两个方向。一个是精简技能文件本身把关键的约束条件尽量前置到前几行重要的 “Rules” 不要埋在长文后面另一个是在对话里主动提醒 AI比如“严格按照已加载的 pr-code-review 技能执行优先遵守其中的 Rules”。这些办法不算高级但在实测中非常有效。不要指望扩展替你解决一切它只是帮你把指令送到门口最后执行还靠 AI 自身的配合。5.3 团队协作时技能怎么共享技能是文件所以共享方式和共享代码一样放进 Git 仓库。团队的技能目录可以在项目根目录统一管理配合superpowers.skillsPath的相对路径配置任何成员克隆项目就能直接使用。如果要做跨项目共享可以单独建一个技能仓库每个人把useGlobalSkills指到本地克隆路径。检查技能变更时走常规 PR 流程就行顺便还能在 review 里讨论“这个技能指令是否合理”这对团队知识的沉淀很有意义。这里要特别说一句团队共享技能时别把个人偏好写进技能文件。比如你个人喜欢生成的代码不带分号但团队规范是带分号那技能里就该写团队规范而不是你的个人喜好。技能一旦共享它就成为了团队的“标准操作程序”标准意味着克制不是表现欲的出口。5.4 版本更新与兼容性提醒Superpowers 还在比较活跃的迭代期技能格式、配置项都可能有变化。我在升级几次后遇到的常见现象包括旧技能文件仍然能加载但功能异常、设置项名称被调整、内置技能清单变化。建议升级扩展后先跑一次Show Skills看看当前实际能力再检查配置面板里是否有标记为弃用的项。另外它的兼容性很大程度上被 AI 助手版本绑定的。同一个技能文件在这个助手版本里跑得很好换个助手或者升级助手后可能表现不同——因为不同模型对长指令的遵循能力和方式有差异。这种时候先别急着改技能文件可以对比一下更换前后的行为差异再针对性微调。说到底这类工具都处于“生态快速发展期”保持关注变更日志远比死记配置用法有用。6. 关于这套玩法我的最后几点体会用 Superpowers 一段时间后我最大的感受是真正贵重的不是某个技能写得多漂亮而是“把 AI 工作流当成产品来设计”的思维转变。你开始考虑每个任务的输入是什么、输出是什么、规则边界在哪里、失败时候怎么兜底这种思考方式明显比“随口让 AI 干个活”要多出一大截专业度。如果要给刚入手的你一句建议那就是别在第一天就想着把十几个技能全部写出那和买了一堆菜谱但不开火没区别。挑一个你每天重复度最高的任务比如代码审查、日志排查、提交信息生成先写一个技能跑熟再迭代到第二个。最后再分享一个小技巧技能文件里的示例不要只写“正确示例”也可以写一两个“反例”明说“不要输出这样的内容”。AI 从反例中学到的边界往往比从正例里学到的还要多这个做法在好几个技能上都明显拉高了输出质量。工具是死的使用它的思路是活的这句话放到 AI 时代依旧成立。
返回列表