Skip to main content

前言

随着Claude CodeCursorGitHub CopilotAI编程工具的广泛普及,开发者的生产力得到了显著提升。然而,随之而来的问题也逐渐清晰:AI能生成代码,却不知道该"先做什么";AI能回答问题,却不遵循团队的工程规范;AI能修复Bug,却常常改完一处又破坏另一处。

AI编程工具缺少的不是智能,而是工程纪律。

Superpowers 正是为解决这一问题而生的开源项目。它为AI编程智能体提供了一套完整的、可组合的软件工程工作流技能库,让AI不仅会写代码,更懂得如何"正确地"开展软件工程实践。

背景与痛点

AI编程工具的工程管理困境

当前主流的AI编程工具在代码生成层面已经相当出色,但在工程管理层面却普遍存在以下问题:

痛点具体表现
直接跳入实现收到需求后立即写代码,跳过需求澄清和设计阶段
缺乏测试意识先写实现代码,测试是事后补写的"装饰品"
上下文漂移长对话中逐渐偏离最初目标,产出越来越偏
验证不充分声称"已完成"但未实际运行测试验证
调试方法随意遇到问题凭感觉猜测,缺乏系统性排查流程
代码质量无保障没有代码评审环节,质量依赖AI的"自觉"

从"能用"到"好用"的鸿沟

以一个典型的功能开发场景为例:开发者说"帮我实现一个用户认证模块",AI往往会立即开始写代码。但这种行为模式存在严重问题:

  • 没有确认具体使用场景(WebCLIAPI?)
  • 没有确认技术栈约束(使用哪种加密方式?会话管理方案?)
  • 没有确认验收标准(怎样才算"完成"?)
  • 直接产出的代码缺乏测试,后期维护困难

这本质上是AI缺乏软件工程的工程纪律——不是能力问题,是流程问题。

Superpowers的解题思路

Superpowers的核心洞察是:好的工程实践可以被编码为可复用的"技能"(Skill,并在合适的时机自动触发。

就像给工程师提供了一本详细的"工程手册",Superpowers通过技能文件(SKILL.md)将最佳实践结构化,然后通过一套触发机制确保AI在合适的时机自动应用这些实践——不是建议,而是强制执行

这一思路的本质是:Process over Prompt(流程大于提示)

大多数人面对AI质量问题的本能反应是:换一个更好的模型,或者写一段更精妙的提示词。Superpowers的选择恰恰相反——它不依赖AI能力的提升,而是用可重复的工程流程约束AI的行为模式。

Superpowers不会让AI变得更聪明,但会让AI的聪明变得可控。 同一个模型,在没有工程流程约束之前可能产出杂乱的代码、跳过测试、声称完成却没有验证;加上Superpowers之后,同一个模型会先做设计、再做计划、再按批次执行、完成后用证据验收——产出质量的差异不来自模型本身,而来自流程是否在场

什么是Superpowers

什么是Superpowers

Superpowers是一个完整的软件开发工作流框架,构建于一套可组合的"技能"(Skills)之上。其官方定义是:

A complete software development workflow for your coding agents, built on top of a set of composable "skills" and some initial instructions that make sure your agent uses them.

核心设计原则

Superpowers的设计体现了以下几个核心原则:

技能强制触发(Mandatory Skill Invocation): 技能不是可选建议,而是强制执行的工作流。只要有1%的可能某个技能适用,智能体就必须调用它。这种强硬的设计避免了AI"理性化跳过"最佳实践的情况。

Superpowers技能的强制触发原理是通过Skill提示词+上下文注入实现。

可组合性(Composability): 每个技能是独立的Markdown文件(SKILL.md),描述了特定场景下的最佳实践流程。技能之间通过触发关系串联,形成完整的工作流链路。

子智能体驱动开发(Subagent-Driven Development): 通过为每个实现任务分配独立的子智能体,避免长对话中的上下文污染,同时通过两阶段评审(规格符合性检查 + 代码质量检查)确保输出质量。

证据优先(Evidence Over Claims): 任何声称"已完成"的任务都必须有可验证的证据——测试通过的截图、命令输出等,不能仅凭AI的断言。

技能库一览

Superpowers当前提供以下技能:

协作与工作流

技能名称触发时机功能描述
brainstorming任何创意性工作开始前苏格拉底式设计精炼,生成设计文档
writing-plans拥有规格/需求,准备编码前编写详细的实现计划
executing-plans执行实现计划时批次执行,带人工检查点
subagent-driven-development执行含独立任务的实现计划时每任务分派独立子智能体,两阶段评审
dispatching-parallel-agents需要并行执行多个独立任务时并发子智能体工作流
requesting-code-review提交代码评审前预评审清单检查
receiving-code-review收到代码评审反馈时系统性响应评审意见
using-git-worktrees开始需要隔离的功能开发前创建隔离的Git工作树
finishing-a-development-branch开发任务完成后验证测试、选择合并/PR/保留/丢弃

测试驱动开发

技能名称触发时机功能描述
test-driven-development实现任何功能或修复Bug强制执行红绿重构(RED-GREEN-REFACTOR)循环

红绿重构(RED-GREEN-REFACTOR)是TDD(测试驱动开发)的核心执行循环,分为三个阶段:

  • 红(RED:先编写一个会失败的测试,明确定义"完成"的标准,此时测试必须处于失败状态
  • 绿(GREEN:编写最少量的实现代码,使测试刚好通过,不追求代码质量,只追求让测试变绿
  • 重构(REFACTOR:在测试全部通过的保护下,对代码进行整理和优化,消除重复、改善命名、提升可读性,同时确保测试仍然通过

这个循环的核心价值在于:测试先于实现,确保每一行代码都有明确的目的和可验证的行为约束。Superpowerstest-driven-development技能强制要求智能体遵循此循环,不允许跳过任何阶段。

调试与验证

技能名称触发时机功能描述
systematic-debugging遇到难以定位的问题时四阶段根因分析流程
verification-before-completion声称任务完成前确认问题真正修复而非表面通过

工程规范与最佳实践

技能名称触发时机功能描述
writing-skills创建新技能时遵循最佳实践创建自定义技能
using-superpowers任何对话开始时建立如何查找和使用技能的基础规则

完整工作流

Superpowers的核心工作流按照以下步骤依次触发:

  1. 阶段一:头脑风暴与设计(brainstorming)

    • 用户表达需求想法
    • AI通过交互式提问澄清需求(每次一个问题)
    • AI提出2-3种实现方案及权衡分析
    • 分段展示设计方案,用户逐段确认
    • 保存设计文档到docs/plans/YYYY-MM-DD-<topic>-design.md
  2. 阶段二:使用Git工作树(using-git-worktrees)

    • 在独立Git工作树中开展开发
  3. 阶段三:编写实现计划(writing-plans)

    • 将设计拆解为2-5分钟的细粒度任务,每个任务包含:文件路径、完整代码、验证步骤
  4. 阶段四:子智能体驱动开发(subagent-driven-development/executing-plans)

    • 每个任务由独立子智能体执行,执行后经历两阶段评审:规格符合性 → 代码质量
  5. 阶段五:测试驱动开发(test-driven-development)

    • 每个实现任务遵循RED-GREEN-REFACTOR循环
    • 任务会按照批次执行,每批次完成2-3个任务,并在完成后使用git提交,然后等待用户确认继续下一批次
  6. 阶段六:请求代码评审(requesting-code-review)

    • 任务间进行代码评审,按严重程度分类问题
  7. 阶段七:完成开发分支(finishing-a-development-branch)

    • 验证测试,选择合并策略,清理工作树

这个流程的关键特性在于:智能体会在合适时机自动调用对应技能,开发者无需手动指挥每一步。😲

安装与配置

Claude Code

Claude Code通过插件市场安装,是目前支持最完善的平台:

# 注册 Superpowers 插件市场
/plugin marketplace add obra/superpowers-marketplace

# 安装 Superpowers 插件
/plugin install superpowers@superpowers-marketplace

安装后,启动新会话时技能库会自动加载。更新:

/plugin update superpowers

Cursor

CursorAgent聊天中直接安装:

/plugin-add superpowers

Codex

克隆仓库并创建技能软链接:

# 克隆 Superpowers 仓库
git clone https://github.com/obra/superpowers.git ~/.codex/superpowers

# 创建技能发现软链接
mkdir -p ~/.agents/skills
ln -s ~/.codex/superpowers/skills ~/.agents/skills/superpowers

OpenCode

# 克隆仓库
git clone https://github.com/obra/superpowers.git ~/.config/opencode/superpowers

# 注册插件
mkdir -p ~/.config/opencode/plugins
ln -s ~/.config/opencode/superpowers/.opencode/plugins/superpowers.js \
~/.config/opencode/plugins/superpowers.js

# 创建技能软链接
mkdir -p ~/.config/opencode/skills
ln -s ~/.config/opencode/superpowers/skills \
~/.config/opencode/skills/superpowers

VSCode GitHub Copilot

暂不支持VSCode GitHub Copilot😨。

实践示例

以下通过一个完整的绿地项目(Greenfield Project)示例,展示如何使用SuperpowersClaude Code中从零到一构建一个用户服务:使用GoFrame框架,创建一个HTTP RESTful风格的用户服务,实现基本的增删改查(CRUD)功能

本示例采用Claude Code作为AI编程工具,同时配合安装了goframe-v2 Agent Skill - 一个专为GoFrame框架开发提供完整参考文档与最佳实践的技能包。

项目目标:使用SQLite作为数据库(学习/演示用途),实现以下接口:

方法路径说明
POST/api/v1/users创建用户
GET/api/v1/users分页查询用户列表
GET/api/v1/users/{id}ID查询用户
PUT/api/v1/users/{id}更新用户(支持部分更新)
DELETE/api/v1/users/{id}删除用户

阶段一:头脑风暴与设计(brainstorming)

Claude Code发出如下提示词:

我想从零开始,用 GoFrame 框架实现一个用户服务,提供 RESTful CRUD 接口,请帮我开始。

AI自动触发brainstorming技能,采用苏格拉底式提问逐步澄清需求:数据库选型、字段设计、接口规范、错误处理策略、验收标准……双方确认每个设计决策后,AI将设计方案分段呈现,用户逐段确认。

最终生成设计文档:docs/plans/2026-03-03-user-service-design.md示例文件),内容包含目录结构、API规范、数据流图、错误处理策略等。

阶段一:头脑风暴与设计(brainstorming)

阶段二:编写实现计划(writing-plans)

AI自动触发writing-plans技能,将设计文档拆解为粒度为2-5分钟的细粒度任务,每个任务包含:文件路径、完整代码、验证步骤和git提交命令。

最终生成实现计划:docs/plans/2026-03-03-user-service-impl.md示例文件),共13个任务:

注意

Superpowers会生成任务列表,但不会为每个任务生成勾选确认框,因为任务的完成状态需要通过实际验证来确定,而不是AI的主观判断。

任务说明
Task 1安装gf CLI并验证环境(CGOGo版本)
Task 2使用gf init初始化项目脚手架
Task 3添加SQLite驱动依赖(go get
Task 4配置数据库(manifest/config/config.yamlSQLite DSN
Task 5编写entity模型(internal/model/entity/user.go
Task 6编写DO模型(internal/model/do/user.go
Task 7编写DAO Internal层(internal/dao/internal/user.go
Task 8编写DAO Index文件(internal/dao/user.go
Task 9编写API Request/Response结构体
Task 10执行gf gen ctrl生成控制器脚手架
Task 11实现业务逻辑层(internal/service/user/user.go
Task 12实现控制器处理函数
Task 13注册路由、初始化SQLite建表、启动验证

阶段三:执行实现计划(executing-plans)

AI自动触发executing-plans技能,按批次顺序执行计划,每批次完成2-3个任务后进行git提交并等待用户确认,再继续下一批次。

Task 11(业务逻辑层)为例,展示执行过程:

[AI] 开始执行 Task 11: Write Service Layer
读取任务描述与设计文档
→ 创建 internal/service/user/user.go
→ 实现 Create/GetList/GetOne/Update/Delete 共 5 个方法
→ 密码使用 SHA256 哈希处理(生产环境建议使用 bcrypt)
→ 通过 gerror 传递带业务语义的错误
→ 所有方法正确透传 ctx 至 DAO 层
→ go build ./... → 编译通过
→ git commit -m "feat: implement user service layer"

任务会按照批次执行,每批次完成2-3个任务:

Superpowers任务执行,每批次完成2-3个任务

在任务批次完成后使用git提交,然后等待用户确认继续下一批次:

Superpowers任务执行,在任务批次完成后使用git提交,然后等待用户确认继续下一批次

实际的git提交历史完整记录了每个任务的开发过程:

$ git log --oneline
ee26913 fix: correct SQLite DSN format and GetList count query
c13744b feat: wire routes and SQLite init in cmd
1739219 feat: implement controller handlers
14efeb1 feat: inject service into controller
8bec4fd feat: implement user service layer
c56ed39 feat: generate controller scaffold via gf gen ctrl
2fcf1bf feat: add user API request/response structs
ae42a15 feat: add DAO index file
ace2409 feat: add DAO internal layer
385a3c8 feat: add User DO model
f754e96 feat: add User entity model
e380b30 feat: configure SQLite database
4091b82 feat: add SQLite driver dependency
3963031 feat: init GoFrame project scaffold

阶段四:验证(verification-before-completion)

所有任务完成后,AI自动触发verification-before-completion技能,启动服务进行集成验证,用实际输出为"已完成"提供证据:

# 启动服务(端口 :8080,SQLite 文件自动创建于 data/user.db)
cd user-service && gf run main.go

# 创建用户
curl -s -X POST http://127.0.0.1:8080/api/v1/users \
-H "Content-Type: application/json" \
-d '{"username":"alice","email":"alice@example.com","password":"secret123"}'
# {"code":0,"message":"","data":{"id":1}}

# 查询用户列表(分页参数为 pageSize)
curl -s "http://127.0.0.1:8080/api/v1/users?page=1&pageSize=10"
# {"code":0,"message":"","data":{"list":[{"id":1,"username":"alice","email":"alice@example.com",...}],"total":1,"page":1}}

# 按 ID 查询
curl -s http://127.0.0.1:8080/api/v1/users/1
# {"code":0,"message":"","data":{"id":1,"username":"alice","email":"alice@example.com","createdAt":"...","updatedAt":"..."}}

# 部分更新用户(只传需要修改的字段)
curl -s -X PUT http://127.0.0.1:8080/api/v1/users/1 \
-H "Content-Type: application/json" \
-d '{"username":"alice2"}'
# {"code":0,"message":"","data":{}}

# 删除用户
curl -s -X DELETE http://127.0.0.1:8080/api/v1/users/1
# {"code":0,"message":"","data":{}}

响应体中password字段因entity层配置了json:"-"标签而始终不出现在任何接口响应中,符合设计规范。

阶段五:收尾(finishing-a-development-branch)

Superpowers阶段五:收尾(finishing-a-development-branch)

总结

SuperpowersAI编程工具带来了真正意义上的工程纪律。它解决的不是AI的能力问题,而是AI工程行为模式问题:

  • 从"直接写代码"到"先设计后实现"——brainstorming技能确保每次开发都有清晰的设计共识
  • 从"测试是可选的"到"测试优先"——TDD技能将红绿重构循环变为不可绕过的强制流程
  • 从"声称完成"到"验证完成"——verification-before-completion技能要求用证据而非断言说话
  • 从"单一上下文污染"到"子智能体隔离执行"——subagent-driven-development技能通过并行子智能体保持上下文纯净

Superpowers的核心理念可以用一句话概括:Process over Prompt——流程大于提示。当所有人都在追问"哪个模型更聪明"时,Superpowers给出了一个不同的答案:AI不需要更聪明,它需要更可控。一套结构化的工程流程,比任何精心调校的提示词都更能保证输出的稳定性与可预测性——因为流程约束的是行为本身,而不是某一次对话的结果。

AI编程工具快速演进的今天,工程纪律与技术能力同等重要。Superpowers提供的不只是一套技能库,更是一种在AI时代践行严谨软件工程的方法论。

参考资料