这套故障循环解决了 90% 的编程错误

AAI LABS
Computing/SoftwareManagementInternet Technology

Transcript

00:00:00当你强迫 AI 编程助手遵守规则时,究竟会发生什么?
00:00:03在使用 Claude 和其他编程助手时,我们都面临着一个共同的难题。
00:00:07它们往往不遵守指令,甚至完全无视 Claude.md 文件。
00:00:11即使我们尝试强推测试驱动开发(TDD),它也只会试图自己去修改测试文件。
00:00:15就在那时,我们发现了这个正在走红的插件,它在短短 24 小时内就获得了 5.8 万颗星。
00:00:21但这恰恰反映了目前 AI 工具领域的炒作周期有多么疯狂。
00:00:25这个插件承诺将严格的软件开发方法论强制引入工作流。
00:00:30但问题在于,它是否真的能兑现这个承诺。
00:00:33我们的团队已经见过类似的工作流,其中大多数最终都被证明只是噱头。
00:00:37因此,我们将这个插件投入到实际工作流中,看看它是否值得应用于真实项目,还是仅仅是炒作。
00:00:43Superpowers 是一款能将传统软件开发方法论强制嵌入到你所使用的 AI IDE 中的插件。
00:00:50现在有些人可能会认为,现有的敏捷框架如 BMAD 和 OpenSpec 已经实现了同样的功能。
00:00:56但这个插件与众不同,因为它不仅仅是用来编写项目规范的代理系统。
00:01:01它是在工作流中对同一种敏捷开发方法的强制执行,并设有严格的关卡,确保代理在当前步骤通过前无法继续。
00:01:10这些关卡是明确的检查点,旨在防止 Claude 偏离预定的指令。
00:01:15该插件的核心理念是 TDD 和系统化的流程,而非盲目猜测。
00:01:20它在声称项目成功前会进行验证,并根据 AI 常见的失败领域量身定制指令以进行修复。
00:01:28在获得用户的“绿灯”信号之前,它绝不会进入下一步。
00:01:32简而言之,它内置了我们之前视频中讨论过的所有最佳实践,无需像以前那样手动设置。
00:01:40因此,该插件强调真正的红绿测试驱动开发,以及我们学习软件开发时接触到的 DRY 和 YAGNI 等编程原则。
00:01:50它适用于所有的 AI 平台。
00:01:52但由于我们的团队正在使用 Claude Code,我们先复制了注册市场命令,并将其添加到我们的项目中,随后从市场安装了该插件。
00:02:02安装完成并重启 Claude Code 后,Superpowers 插件就可以在项目中使用。
00:02:08重启 Claude Code 后,我们给它一个提示词,说我们想构建一个类似 Trello 的项目管理软件。
00:02:15它自动激活了“头脑风暴”技能,并没有盲目猜测需要构建的内容,而是利用该技能首先识别了项目需求。
00:02:24它提出了许多问题来明确应用细节,包括目标用户、技术栈选择,并考虑了每个选择可能带来的问题。
00:02:33比如在选择数据库时,它建议我们的选择可能不合适,会有安全隐患,因为该数据库在浏览器中运行,无法从服务端访问,于是我们进行了更改。
00:02:44它不断完善所有的细节,直到我们对这些方案感到满意。
00:02:48在它与我们确认完所有内容后,下一步是提供三个方案供我们选择其中之一进行实施。
00:02:55于是我们选择了心仪的选项,并在选择的同时提出了修改建议。
00:02:58完成后,它还为我们提供了架构设计。
00:03:02接着它提供了 UX 设计,其中提到了看板的处理方式。
00:03:06它还与我们确认了整个项目的结构。
00:03:09一旦所有的设计获得批准,它就会将所有资料记录在 docs 文件夹中。
00:03:13这就是该插件胜过其他工具的地方,因为它内置了 Git 指令来提交每次更改,而其他框架做不到这一点,需要我们手动强制执行。
00:03:22头脑风暴技能创建完计划后,编写计划技能被激活,它编写了实施方案并进行了提交。
00:03:29该计划将大型应用拆解为更易于实施的子任务。
00:03:33你可能会认为 Claude 内置的“计划模式”本身就能完成这些。
00:03:37但这种规划与 Claude 原生规划的主要区别在于,Claude Code 的规划仅仅是作为代理执行任务的指引。
00:03:44它只会在认为确实有必要时询问关于技术栈的问题,而像 UI 库之类的小决策它会自行决定。
00:03:52相比之下,Superpowers 是一种强制执行,这意味着在当前步骤通过前你无法进行下一步,从而确保计划被真正落实。
00:04:01规划阶段结束后,它询问我们希望如何实施计划,并提供了两个选项,我们选择了“子代理驱动实施”。
00:04:09虽然 Claude 也会自行产生子代理,但子代理驱动实施中的技能有所不同,因为它会自动为每个子代理设置 Git 工作树,确保它们的工作互不干扰。
00:04:20代理需要通过工作树进行隔离才能更好地运作,因为如果它们在同一个目录工作,就会相互覆盖对方的成果。
00:04:28而这正是它原生自动处理的核心功能。
00:04:31一旦规划最终确定,Claude 就会进入实施阶段。
00:04:34它启动一个任务,完成后,会开启一个独立的评审子任务,根据规范来验证实施结果。
00:04:41在提交到 Git 之后,它会使用另一个 Superpowers 技能,即“代码评审员”。
00:04:46只有在之前的代理批准了代码质量后,它才会开始下一个任务,并不断迭代之前的任务直到达标。
00:04:54在每个任务完成、评审并提交到 Git 后,它会确保前置任务完成后再询问我们是直接合并到 main 分支还是创建 PR。
00:05:04于是我们让它快速合并回 main 分支。
00:05:06然后它删除了所有的工作树,并将整个项目提交到了 main 分支中。
00:05:11这个过程会消耗大量的上下文窗口,因为使用了子代理和多种技能。对我们来说,仅一次迭代就消耗了近 50% 的上下文,这意味着使用时必须非常小心。
00:05:24它创建的项目比较简单,具备基本功能。
00:05:27我们希望这些列表能按当前状态排序,即:待办、进行中和已完成。
00:05:32虽然单个卡片已经在那了,但我们还希望这些列表也是可以移动的。
00:05:36于是我们回到 Claude Code 让他处理,但起初它像往常一样在没有使用插件技能的情况下开始操作。
00:05:42这可能是因为消耗了太多的上下文,所以我们不得不提醒它使用 Superpowers 插件。
00:05:48提醒之后,它便像之前那样开始执行任务。
00:05:52在走完所有步骤后,Claude 生成代理在独立的工作树上工作,由于它们原生采用了测试驱动开发方法,这些代理的表现更出色。
00:06:02这些代理会首先为待实施的每个部分编写测试。
00:06:05编写完测试后,它会确保代理在不修改测试用例的前提下编写代码,并保证测试通过。
00:06:13该插件技能使用了强效的提示队列,防止它修改测试本身,基本上封死了 Claude 在试图跳过步骤时找的所有借口。
00:06:23这些队列看起来像是明确的指令,比如“如果有 1% 的机会使用某种技能,就使用它”。
00:06:29这确保了每个任务都以一种规范且结构化的方式完成。
00:06:32需要注意的一点是,这些代理是按顺序执行任务的,因此完成一个任务所需的时间比 Claude 原生方式要长。
00:06:41但由于它执行了严格的准则,这确保了应用程序能按预期工作。
00:06:45正如我们之前提到的,使用此插件时上下文消耗非常快,仅几个任务后就只剩下 5% 的上下文了。
00:06:53因此,在进行任何后续任务之前,我们运行了 compact 命令,这样在 Claude 为下一个任务进行头脑风暴时,我们就不会丢失上下文。
00:07:01压缩对话后,我们输入了关于下一个要实现的功能的提示词,它便以同样的方式开始运作。
00:07:07但这次会话最棒的地方在于,它没有通过猜测来实现功能,而是不断从多个角度提出问题,确保应用是按我们的想法构建的。
00:07:17该插件从各个维度鞭策 Claude,在头脑风暴阶段明确了诸如“列表为空时显示效果”之类的细节。这种微小的细节,Claude 独自处理时很可能会随手猜测一个方案就实施了。
00:07:29现在,更好地使用该插件的指南已在 AI Labs Pro 中提供。
00:07:33对于那些还不了解的人,这是我们最近推出的社区,你可以在那里获得现成的模板,直接应用到本项目及以往所有的项目中。
00:07:42如果你觉得我们的工作有价值并想支持频道,这是最好的方式。链接就在描述中。
00:07:48它的另一个强项是能够进行系统化调试。
00:07:52我们遇到了一个刷新后数据保存失败的 bug,我们给 Claude 发了一个模糊的提示词,没指定 bug 的位置,要求它使用系统化调试来修复。
00:08:01它加载了系统化调试技能来执行任务。该技能的工作被分为四个阶段。
00:08:06第一阶段通过向我们提问来确定根本原因。
00:08:10根据我们的回答,它尝试从我们提供的方向进行调查和追踪,并找到了可能存在问题的正确文件。
00:08:16确定根本原因后,第二阶段侧重于隔离 bug,而第三阶段则是缩小 bug 产生的实际原因范围,以便进行修复。
00:08:25第四阶段是应用修复。它利用整个流程确保调试比盲目翻阅代码库更有条理,并以测试作为修复的收尾。
00:08:35现在,有很多任务并不需要完整的插件工作流,使用它反而会过重。比如当我们只想更改应用的 UI 时,不想为了一个 UI 更改而等待 15 分钟。
00:08:47因此,对于这类不需要完整流程的任务,我们可以用更简单的方式来实现。
00:08:51由于我们对应用的视觉效果没有特定的目标,我们让它改进 UI,并告诉它不要直接进入实施阶段,只进行头脑风暴和规划。
00:09:01它开始进行头脑风暴,并通过询问设计不同方面的细节问题,来确认我们想要的视觉方向。
00:09:08按照提示词的要求,Claude 在完成规划后停止了,随后我们要求它在不使用完整流程的情况下实施该计划。
00:09:15整个应用的 UI 更改时间比流程驱动的方式显著缩短,尽管如此,它仍然以流程所要求的相同格式将更改提交到了 Git。
00:09:25应用从样式极简的基础布局变成了拥有改良配色方案、悬停卡片状态以及整体功能更完善的布局。
00:09:32这正是让该框架具有实用价值的原因。在 Claude 擅长的领域让它自由发挥,而在它容易出错或搞砸实施的情况下,再引入完整的流程管理。
00:09:43视频到这里就结束了。如果你想支持本频道并帮助我们继续制作此类视频,可以通过下方的 Super Thanks 按钮进行捐赠。
00:09:51感谢收看,我们下期再见。

Key Takeaway

Superpowers 插件通过将传统的软件工程规范与强制性的 AI 流程关卡相结合,显著提升了代码生成的准确性与可维护性。

Highlights

  • Superpowers 插件通过强制执行 TDD 和敏捷开发方法论,解决了 AI 编程助手不守指令的问题。

  • 该工具采用严格的“关卡”机制,确保 AI 在当前步骤通过验证前无法进入下一阶段。

  • 内置自动化的 Git 工作树(Worktrees)管理,实现了多个子代理之间的任务隔离,防止代码覆盖。

  • 通过“头脑风暴”和“系统化调试”技能,AI 能够主动提问并定位根本原因,而非盲目猜测。

  • 插件支持灵活的工作流切换,允许在复杂逻辑下使用全流程管理,而在简单 UI 调整时选择快速实施。

  • 由于多代理协作和高强度提示,该模式会快速消耗上下文窗口,需要配合 compact 命令使用。

Timeline

AI 编程中的普遍难题与插件引入

视频开头指出了开发者在使用 Claude 等 AI 助手时常遇到的困境,即 AI 经常无视项目规范文件(如 Claude.md)并试图自行修改测试用例。尽管市场上存在许多号称能解决问题的插件,但作者强调大多数只是过度炒作的噱头。为了验证真实性,团队决定对近期走红的 Superpowers 插件进行深度评测。该插件宣称能将严格的开发方法论强制引入 AI 工作流中。作者的目标是确认这款工具究竟是能够提升生产力的利器,还是又一个无效的开发框架。

Superpowers 插件的核心理念与安装

Superpowers 被定义为一款能将传统软件开发原则嵌入 AI IDE 的插件,它与 BMAD 或 OpenSpec 等现有框架有显著区别。其核心在于对敏捷开发方法的“强制执行”,通过设置明确的检查点来防止 AI 偏离指令。该系统强调真正的红绿测试驱动开发(TDD)以及 DRY 和 YAGNI 等经典编程原则。在安装流程上,团队演示了如何在 Claude Code 中通过注册市场命令完成部署。安装后的重启步骤是激活 Superpowers 技能的关键环节,为后续的项目构建奠定了基础。

头脑风暴与架构规划阶段

在构建类似 Trello 的项目管理应用时,插件会自动触发“头脑风暴”技能来明确需求。AI 不再盲目开始写代码,而是通过不断提问来确认用户对技术栈、数据库安全性及目标用户的偏好。例如,在数据库选择上,AI 能够指出客户端运行可能带来的安全隐患并建议更改。在方案确认后,系统会生成架构设计图、UX 设计方案以及项目文件结构,并将所有资料记录在 docs 文件夹中。这种模式与原生 Claude 规划的最大区别在于其“强制性”,确保每一个小决策都经过用户审核且记录在案。

子代理驱动的实施与代码评审

实施阶段采用了“子代理驱动”模式,利用 Git 工作树为每个任务创建相互隔离的运行环境。这种隔离机制有效解决了多代理同时协作时可能出现的代码覆盖冲突问题。每个子任务完成后都会开启独立的评审任务,由“代码评审员”技能根据规范验证代码质量。只有在评审通过后,系统才会询问用户是直接合并到主分支还是创建 PR。作者提醒,这种深度迭代的过程会消耗大量的上下文窗口,在单次实验中就消耗了近 50% 的容量。因此,在使用过程中必须时刻监控上下文剩余量以防任务中断。

TDD 强制执行与上下文管理

在处理复杂功能(如列表排序和移动)时,AI 有时会因为上下文压力而忘记使用插件技能,此时需要手动提醒。一旦进入流程,代理会严格遵守 TDD 流程,即先编写测试用例,再在不修改测试的前提下编写业务代码。插件通过强效提示队列封锁了 AI 寻找借口跳过步骤的可能性,确保了功能的稳健性。针对上下文枯竭的问题,作者演示了使用 compact 命令来压缩对话历史,以便在不丢失关键信息的情况下继续开发。尽管按顺序执行任务会增加总耗时,但产出的代码质量与预期高度契合。

系统化调试与灵活的工作流选择

视频最后展示了该插件强大的系统化调试能力,将其分为确定根本原因、隔离 bug、缩小范围和应用修复四个阶段。这种有条理的方法避免了盲目修改代码,通过层层递进的逻辑引导 AI 修复了数据保存失败的问题。此外,作者也承认并非所有任务都需要如此繁重的流程,对于纯 UI 样式的更改,可以选择只进行头脑风暴后直接实施。这种灵活性使得 Superpowers 既能在复杂逻辑中提供保障,又能在简单任务中保持效率。最终,应用从简陋的布局进化成了具有现代感和交互反馈的成熟产品。

Community Posts

View all posts