00:00:00这就是 Superpowers,一个在 GitHub 上拥有超过 5 万颗星的智能体技能框架
00:00:05它通过强制执行结构化工作流,防止你的编程智能体因为急于求成而犯错
00:00:10该流程包含头脑风暴、功能实现、红绿测试驱动开发(TDD)
00:00:15甚至还能调用子智能体来并行执行任务和审查代码。
00:00:19但这与单纯使用“计划模式”或“规格驱动开发”有什么区别呢?
00:00:24点个订阅,让我们深入了解一下。
00:00:27这个项目叫 XDL,是一个用于从 Twitter 下载视频的命令行工具。
00:00:32我想为这个工具创建一个 Web 界面,不仅能让用户通过 URL 下载视频到浏览器
00:00:38还能用它来生成文章。于是我用了 Opus 4.6 配合 Claude Code 的计划模式
00:00:46尝试创建那个 UI。这就是它的运行结果。
00:00:50遗憾的是,当我第一次运行代码时,出现了一些问题。
00:00:53所以我又过了一遍代码尝试修复,希望现在已经解决了。
00:00:58现在看起来一切运行正常。
00:01:00我要去 Twitter 复制这条推文的链接。
00:01:03抱歉了 Kevin,把它粘贴在这里,看看它是否能下载视频。
00:01:06正在提取,已经成功下载了。
00:01:09如果我点击这里,它会在新标签页中打开,虽然不符合预期,但好歹能用。
00:01:15现在试着根据那条推文生成文章。我把它粘贴进来,开始生成
00:01:20我们可以看到它采取的不同步骤。首先是提取视频,然后
00:01:24处理音频。完成后,我们得到了格式完美的 Markdown 文章
00:01:29确实令人印象深刻。如果我们看看用 Opus 4.6 完成的相同任务
00:01:35但这次使用 Superpowers,可以明显看到设计得更好了,还有
00:01:39下载和生成文章的选项。粘贴相同的 Twitter URL,点击下载,同样
00:01:45它提取了视频,但这次是直接下载到浏览器,我可以点击查看视频。
00:01:51现在,如果用同一条推文在这里生成文章,我们可以看到
00:01:56它执行的步骤。所有步骤完成后,它正将文章流式传输到我的浏览器。
00:02:01我可以选择复制并粘贴到任何地方。你已经能看出
00:02:06Superpowers 版本比原生版本更出色。稍后我们会看下
00:02:10代码,但首先来看看我是怎么做的。在你
00:02:15安装 Superpowers 插件后,我们会看到一些新的斜杠命令,如 brainstorm(头脑风暴)
00:02:20execute plan(执行计划)和 write the plan(编写计划)。实际上我们只需要
00:02:25这个命令,因为 Superpowers 会在阶段结束时引导我们进入下一阶段。
00:02:31让我们运行它并输入提示词。按下回车。现在它正在
00:02:35加载头脑风暴技能并开始理解当前项目。这里它会问我一些
00:02:39问题以进一步完善计划。我会说用 React 加 Vite,然后要求
00:02:44文章生成要分步进行。现在它要求我确认架构结构
00:02:49我觉得看起来不错。它还询问了布局、端点和服务器逻辑。
00:02:54回答完所有问题后,它就开始制定计划,现在
00:02:58已经保存在这个目录下了。看下这个计划,非常详细
00:03:03涵盖了概述、技术栈、结构,以及设计、布局、API 端点等更多内容。
00:03:09事实上,这与 Claude Code 自己写的计划非常相似。
00:03:15但下一步才是重头戏。当我确认计划并表示
00:03:19准备好实施后,它会再写一份实施计划。它首先会
00:03:25查看我们创建的原始设计计划。然后将其拆解为
00:03:31更小、更易管理的任务块,以便并行子智能体完成。现在它写好了
00:03:36另一份计划,再次保存到 plans 目录。如果我们看这一份
00:03:41会发现它不再提供项目和架构的详细概述,而是拆分为任务。
00:03:46这里有一个搭建项目脚手架的任务,里面包含了一些步骤。
00:03:52这里有另一个任务:创建 Vite 和 React 客户端骨架。同样有具体步骤
00:03:57完成项目所需的每个任务都是如此。接着,Superpowers
00:04:03让我选择一种方式:是子智能体驱动模式,还是并行会话模式?
00:04:08前者会为每个任务分配独立的子智能体,无需人工确认。
00:04:14后者会从计划会话中创建另一个会话,分批完成任务
00:04:18然后在继续之前与我(人类)核对,看我对已完成的批次是否满意。
00:04:24为了追求速度,我选择子智能体驱动模式。现在它已经
00:04:28开始创建该项目需要完成的任务。但不幸的是,
00:04:32这些任务看起来和刚才不同,因为我第一次忘了录屏。
00:04:36所以我重新开始了一遍,但用了完全一样的提示词。现在发生的是
00:04:41每个子智能体首先创建一个测试。它会写一个注定失败的测试。
00:04:47然后编写最少的代码让测试通过。当它完成功能开发后,
00:04:52它会验证功能是否符合计划中的要求,然后接着
00:04:57检查代码质量,看它是否整洁、健壮且易于维护。现在
00:05:02大部分任务已完成。它将测试所有已做的工作。看,
00:05:06它完成了所有任务,甚至在这个过程中发现并修复了一个 bug。
00:05:11看下代码,它被分成了 server 和 source。我猜 source 是前端或
00:05:16客户端。里面有一些组件,比如文章标签页、下载标签页等。
00:05:21在流水线进度部分,我们将阶段定义在一个对象中,这是一个 TypeScript 接口。
00:05:27看起来它在用某种 CSS-in-JS 进行样式处理。事后看来,我应该
00:05:32指定使用 Tailwind,不过这样也行。而且你看,这是 Opus 计划模式默认做不到的。
00:05:37你可以看到每一步,Superpowers 都进行了 git 提交,从搭建
00:05:43项目脚手架到添加 CLI 包装器、添加 Hano 等等。如果我检查
00:05:48git 状态,没有什么需要我提交的,因为分支很干净,省了我不少事。
00:05:53你可能会看这并纳闷:测试文件在哪?我稍后会说。
00:05:57老实说,我觉得 Superpowers 是个很棒的项目。我喜欢它对
00:06:02技能的关注。它大概有 14 种技能,涵盖了从头脑风暴到
00:06:08计划、实施甚至后期的代码审查。我喜欢它对 TDD 的重视,
00:06:12特别是红绿 TDD,先写测试。测试不通过显示为红色,
00:06:18然后写最少的代码使其变绿。但有时这并不灵光,因为智能体会
00:06:24选择不这么做。看看这个。在这里编写计划的技能明确要求了 TDD。
00:06:31出于某种原因,Claude 选择不执行。我让它确认这一点,它说,是的,是我的错。
00:06:36技能要求了 TDD,但我还是没做。我问它为什么不做?它说
00:06:42它专注于快速交付,而不是遵循流程。我不确定为什么这种
00:06:47最先进的模型会发生这种情况,但这说明你不应该盲目接受模型
00:06:53所做的一切。阅读计划并确保它符合你的预期是非常重要的。
00:06:57这也是我不打算在每个项目或功能需求中都使用
00:07:03Superpowers 的原因之一,纯粹是因为有些需求很小。如果只是增加一个小功能,
00:07:08我更愿意直接和 Claude 沟通、写个计划文档,然后清除上下文来执行。
00:07:13但如果我遇到需要同时实现多个功能的情况(这种情况
00:07:19确实时有发生),那么 Superpowers 就是一个极佳的工具,因为它
00:07:24非常擅长将复杂的需求拆解成可以由子智能体完成的模块。
00:07:31没错,Claude Code 的任务功能也能做到类似的事,但我更喜欢
00:07:37Superpowers 为此创建计划的做法,而不是直接去写代码。
00:07:43那么,Superpowers 与 Beads、SpecKit 或整个规格驱动开发
00:07:48架构相比如何呢?对我来说,它像是执行前先规划的一种更简单的版本。
00:07:53当然,没有 Ralph 那么简单,可能介于 Ralph 和 Beads 之间。
00:07:58但在我看来,越来越多的此类工具正在涌现,
00:08:02帮助人们利用 AI 智能体编写更好的代码。这是一件好事,
00:08:06但每个人习惯不同。我认为博采众长,
00:08:10最终打磨出一套最适合自己的工作流才是完美的。也许我以后
00:08:16也会这么做。如果运气好的话,我会拍个视频展示我是怎么实现的。