目录
1. 总览
它是什么
Superpowers 是一套跨 harness 的 agentic skills framework。核心不是业务代码,而是
skills/*/SKILL.md 里的流程协议,以及把这些协议在会话开始时送进模型上下文的 runtime bootstrap。
它怎么工作
会话开始时,平台适配层注入 using-superpowers。这个元技能要求代理在任何回应、澄清问题、文件读取或实现动作之前,先判断是否有相关技能必须激活。
2. 本次拉取后的关键变化
这次 pull 后仓库从之前阅读到的 5.1.0 进入 6.0.3。架构报告必须按新版理解。
新增 harness
README 现在列出 Claude Code、Antigravity、Codex App/CLI、Cursor、Factory Droid、Gemini CLI、Copilot CLI、Kimi Code、OpenCode 和 Pi。
SDD review 重构
每个任务不再派 spec reviewer 和 quality reviewer 两个代理,而是派一个 task-reviewer-prompt.md,一次返回 spec compliance 与 code quality 两个 verdict。
文件交接降低 token
任务 brief、implementer report、review diff package 通过文件传递,避免把长 diff 和长报告永久塞进主会话上下文。
进度 ledger
SDD 进度写入 .superpowers/sdd/progress.md。上下文压缩后,控制器可以根据 ledger 和 git log 恢复,而不是重派已完成任务。
Visual companion 加固
Brainstorm Companion 有会话 key、cookie、WebSocket 鉴权、路径沙箱、重启复用端口、4 小时 idle timeout。
测试职责拆分
tests/ 保留插件代码测试;真实 LLM 行为测试迁往外部 evals/ drill harness。
3. 分层架构
Superpowers 的代码很薄,但流程很厚。最清晰的看法是把它分成六层。
.claude-plugin、.codex-plugin、.cursor-plugin、.kimi-plugin、gemini-extension.json、.opencode、.pi。负责让不同 harness 安装同一套技能。hooks/session-start、hooks/session-start-codex、OpenCode message transform、Pi context hook、Gemini context file。负责把 using-superpowers 注入首轮上下文。skills/*/SKILL.md。包含 brainstorming、writing-plans、TDD、systematic-debugging、SDD、review、finish 等流程。skills/using-superpowers/references/*-tools.md 与部分 manifest inline mapping。把“创建 todo、调 skill、派 subagent、读写文件”等动作映射到各平台真实工具。
flowchart TB
User["Human partner"] --> Harness["Coding harness"]
Harness --> Adapter["Distribution and adapter layer"]
Adapter --> Bootstrap["Session-start bootstrap"]
Bootstrap --> Meta["using-superpowers meta skill"]
Meta --> Router{"Which skill applies?"}
Router --> Brain["brainstorming"]
Router --> Debug["systematic-debugging"]
Router --> Plan["writing-plans"]
Router --> TDD["test-driven-development"]
Router --> SDD["subagent-driven-development"]
Router --> Finish["finishing-a-development-branch"]
Brain --> Spec["Spec document"]
Plan --> PlanFile["Implementation plan"]
SDD --> Evidence["Briefs, reports, review packages, ledger, commits"]
TDD --> Evidence
Debug --> Evidence
Finish --> Outcome["merge, PR, keep, discard"]
4. 启动注入与平台适配
docs/porting-to-a-new-harness.md 把 Superpowers 的跨平台机制总结成三个不变量:技能共享、工具映射按平台提供、bootstrap 必须在每个会话开始时自动注入。
4.1 三种集成形态
Shape A:Shell hook
Claude Code、Codex、Cursor、Copilot CLI 类似。平台在 SessionStart 执行脚本,脚本读取 using-superpowers/SKILL.md 并输出 JSON additional context。
Shape B:In-process plugin
OpenCode 和 Pi。插件在进程内注册技能目录,并通过 message/context lifecycle 插入 bootstrap。
Shape C:Instructions file
例如 Gemini extension 通过 contextFileName: "GEMINI.md" 让 harness 加载扩展内自带的上下文文件。
4.2 平台入口表
| 平台 | 入口 | bootstrap 方式 | 备注 |
|---|---|---|---|
| Claude Code | .claude-plugin/plugin.json + hooks/hooks.json |
hooks/session-start 输出 hookSpecificOutput.additionalContext |
startup、clear、compact 都注入。 |
| Codex | .codex-plugin/plugin.json + hooks/hooks-codex.json |
专用 hooks/session-start-codex |
v6 改为独立 Codex SessionStart hook。 |
| Cursor | .cursor-plugin/plugin.json + hooks/hooks-cursor.json |
sessionStart 调 run-hook.cmd session-start |
使用 Cursor 的 additional_context 字段。 |
| Kimi Code | .kimi-plugin/plugin.json |
sessionStart.skill: "using-superpowers" |
manifest 内含详细 Kimi tool mapping,例如 AskUserQuestion、TodoList、Agent。 |
| OpenCode | .opencode/plugins/superpowers.js |
experimental.chat.messages.transform 插入第一个 user message |
模块级缓存 bootstrap,避免每个 agent step 读文件。 |
| Pi | .pi/extensions/superpowers.ts |
session_start 和 session_compact 后在 context 事件注入 |
注册 skillPaths,Pi 无标准 subagent/todo 时有 fallback 说明。 |
| Gemini CLI | gemini-extension.json + GEMINI.md |
扩展声明 context file | GEMINI.md 引用 using-superpowers 和 Gemini tool mapping。 |
| Antigravity | skills/using-superpowers/references/antigravity-tools.md 等 |
README 说明 agy plugin install 后运行 session-start hook |
v6 新增,要求通过标准 React todo acceptance test。 |
flowchart LR
subgraph A["Shape A: shell hook"]
HookCfg["hooks-*.json"] --> RunHook["run-hook.cmd"]
RunHook --> Shell["session-start script"]
Shell --> Json["additionalContext JSON"]
end
subgraph B["Shape B: plugin callback"]
Plugin["JS/TS extension"] --> Register["Register skills path"]
Plugin --> Transform["Mutate message/context"]
end
subgraph C["Shape C: context file"]
Manifest["Extension manifest"] --> Context["Declared context file"]
end
Json --> Boot["using-superpowers bootstrap"]
Transform --> Boot
Context --> Boot
5. 技能库设计
技能是项目的真正核心。每个技能用 frontmatter 描述触发场景,正文则给出强流程、红旗、反合理化、检查清单和交接规则。
| 技能 | 触发场景 | 作用 |
|---|---|---|
using-superpowers | 会话开始 | 元技能。任何行动前先判断技能是否适用。 |
brainstorming | 创造性工作、功能、组件、行为修改 | 先探索上下文、提问、比较方案、分段确认设计,最后写 spec。 |
writing-plans | 已有 spec 或多步需求 | 写实施计划,新增 Global Constraints 和 Interfaces,控制任务边界。 |
using-git-worktrees | 开始功能实现或执行计划前 | 检测现有隔离,优先 harness 原生 worktree,再 fallback 到项目内 .worktrees/。 |
subagent-driven-development | 执行独立任务计划 | 每任务 fresh implementer、task reviewer、文件交接、progress ledger、最终 whole-branch review。 |
executing-plans | 没有或不使用子代理时执行计划 | 顺序执行计划,遇到 blocker 停下,不猜。 |
test-driven-development | 功能、bugfix、重构、行为变化 | 红绿重构。没有先看见失败测试,就不能写生产代码。 |
systematic-debugging | bug、测试失败、异常行为 | 先读错误、复现、查变化、追数据流,再假设和修复。 |
requesting-code-review | 任务完成、重大功能、合并前 | 派 reviewer 子代理,基于 base/head SHA 审查 diff。 |
receiving-code-review | 收到 review 反馈 | 先理解和验证,再实现或技术性 push back。 |
verification-before-completion | 任何完成声明前 | 必须有刚运行过的验证命令和输出证据。 |
finishing-a-development-branch | 实现完成,需要集成选择 | 测试、检测环境、给 merge/PR/keep/discard 选项,按 provenance 清理 worktree。 |
dispatching-parallel-agents | 多个独立问题可并行 | 按问题域派并行子代理,之后整合与全量验证。 |
writing-skills | 创建或修改技能 | 把技能写作当作 TDD,用 pressure scenario 和 eval 验证行为。 |
6. 主开发流程
主流程是一个状态机,每一步都有下一步的指定技能和产物。
Brainstorm
探索上下文、一问一答、方案权衡、设计审批。
Spec
写入 docs/superpowers/specs/,自审,再交给人类审阅。
Plan
写入 docs/superpowers/plans/,包含 Global Constraints、Interfaces、精确测试和 commit。
Worktree
确认隔离环境和 clean baseline,避免污染当前分支。
Execute
优先 SDD,fallback 到 inline executing-plans。
Finish
fresh tests 后选择 merge、PR、keep 或 discard。
flowchart TD
Idea["User idea or feature request"] --> Brain["brainstorming"]
Brain --> Design{"Design approved?"}
Design -- "no" --> Brain
Design -- "yes" --> Spec["Write spec and commit"]
Spec --> HumanSpec{"Human reviewed spec?"}
HumanSpec -- "changes" --> Spec
HumanSpec -- "approved" --> Plan["writing-plans"]
Plan --> PlanFile["Implementation plan"]
PlanFile --> Worktree["using-git-worktrees"]
Worktree --> Exec{"Execution path"}
Exec -- "recommended" --> SDD["subagent-driven-development"]
Exec -- "fallback" --> Inline["executing-plans"]
SDD --> Finish["finishing-a-development-branch"]
Inline --> Finish
Finish --> Result["merge / PR / keep / discard"]
7. SDD 子代理编排
v6 的 SDD 是这次最大变化。它把主会话变成控制器,把实现、review、修复都通过文件交接给子代理,并用 ledger 抵抗上下文压缩。
flowchart TD Start["Read plan once
note global constraints"] --> Preflight["Pre-flight plan review
find conflicts before Task 1"] Preflight --> Ledger["Check .superpowers/sdd/progress.md"] Ledger --> Brief["scripts/task-brief PLAN N
writes task brief file"] Brief --> Impl["Implementer subagent
reads brief, writes report file"] Impl --> Status{"DONE / CONCERNS / CONTEXT / BLOCKED"} Status -- "NEEDS_CONTEXT" --> Context["Controller adds context"] --> Impl Status -- "BLOCKED" --> Escalate["More context, stronger model, split task, or ask human"] --> Impl Status -- "DONE" --> Package["scripts/review-package BASE HEAD
writes diff package file"] Package --> Review["Task reviewer
brief + report + diff package"] Review --> Verdict{"Spec OK and quality approved?"} Verdict -- "no" --> Fix["One fix subagent for all Critical/Important findings"] --> Package Verdict -- "yes" --> Mark["Append progress ledger
mark todo complete"] Mark --> More{"More tasks?"} More -- "yes" --> Brief More -- "no" --> Whole["Whole-branch review
requesting-code-review"] Whole --> Finish["finishing-a-development-branch"]
7.1 文件交接机制
| 文件/脚本 | 用途 | 为什么这样设计 |
|---|---|---|
scripts/task-brief |
从 plan 中抽取任务全文到独立 brief 文件。 | implementer 读文件,不让主会话粘贴长任务文本。 |
task-N-report.md |
implementer 写完整报告、测试结果和 TDD evidence。 | 主会话只接收短状态,细节放文件,reviewer 可直接读取。 |
scripts/review-package |
生成 commit list、diff stat、完整 diff 的 review package。 | 避免 diff 进入控制器上下文,同时让 reviewer 一次读取完整证据。 |
.superpowers/sdd/progress.md |
记录任务完成状态和 commit range。 | 上下文压缩后可恢复,不重复派发已完成任务。 |
7.2 Reviewer 的新版职责
Spec Compliance Verdict
检查是否缺需求、加了额外功能、误解任务;无法从 diff 验证的跨任务要求标为 Cannot verify from diff,交给控制器处理。
Code Quality Verdict
检查结构、错误处理、测试质量、文件职责、YAGNI、DRY。reviewer 是只读的,不能改 working tree、index、HEAD 或 branch。
8. 可视化 Brainstorm Companion
brainstorming/visual-companion.md 描述了一个浏览器伴侣:当问题“看图比读文字更清楚”时,agent 可以启动本地小服务器,推送 mockup、流程图、布局选项,让用户在浏览器里点击选择。
flowchart LR Agent["Agent"] --> Start["scripts/start-server.sh"] Start --> Server["server.cjs
HTTP + WebSocket"] Server --> Browser["Browser tab
?key=session token"] Agent --> Screen["Write newest HTML
content directory"] Screen --> Server Browser --> Events["state/events
clicks and selections"] Events --> Agent Server --> Security["Token auth, cookie, sandboxed files,
no-store headers, 4h idle timeout"]
8.1 安全模型
- URL 带一次性
?key=...,HTTP 和 WebSocket 都必须携带 key。 - 浏览器首载后把 key 放入 tab-scoped storage/cookie,刷新和静态资源也能验证。
- 文件服务拒绝 symlink、dotfiles、路径穿越和 macOS resource fork。
- 服务器写入 key 文件时尽量设置 owner-only 权限。
- 默认绑定 loopback,可通过
--host和--url-host支持远程/容器场景。
8.2 图文协作循环
Offer
只有即将进入视觉问题时,单独发消息征求用户同意。
Render
写 HTML fragment 到 screen_dir,服务器自动包 frame。
Interact
用户在浏览器里看 mockup、点击选项,也可以在终端回复文字。
Read
agent 读 state_dir/events,合并终端反馈,再迭代。
9. 质量门禁
设计门禁
brainstorming:设计获批前不得实现、scaffold 或调用实现技能。
TDD 门禁
test-driven-development:没有先看见失败测试,不得写生产代码。
根因门禁
systematic-debugging:完成根因调查前不得提出修复。
验证门禁
verification-before-completion:没有刚运行的验证输出,不得声称完成。
review 门禁
subagent-driven-development:每任务 task review,最后 whole-branch review。
PR 门禁
CLAUDE.md 与 PR 模板:查重、真实问题、人类审 diff、披露 agent 环境、target dev。
10. 测试与 eval
v6 文档把测试分成两类。
tests/:插件代码测试
验证非 LLM 代码是否工作,例如 brainstorm server、OpenCode plugin loading、bootstrap caching、Codex plugin sync、Kimi manifest、shell lint。
evals/:真实 agent 行为评估
使用 drill harness 驱动真实 Claude Code、Codex、Gemini CLI 会话,并由 LLM actor/verifier 判断技能合规。该目录现在作为外部 eval harness,而非内置 tests 主体。
cd evals
uv sync --extra dev
export ANTHROPIC_API_KEY=sk-...
uv run drill run triggering-test-driven-development -b claude
11. 贡献约束
仓库的 CLAUDE.md 和 PR 模板对 agent 贡献非常强硬。原因是维护者明确观察到大量 agent PR 被拒,常见问题包括没读模板、重复 PR、编造问题、隐藏 agent 来源、把项目特定内容塞进 core。
| 要求 | 含义 |
|---|---|
| 完整填写 PR 模板 | 不能空白、不能占位、不能只写泛泛总结。 |
| 搜索 open 和 closed PR | 发现重复必须停止,不再开同类 PR。 |
| 证明真实问题 | 必须描述具体 session、错误、失败模式或用户体验。 |
| 确认属于 core | 领域特定、工具特定、第三方推广应做独立插件。 |
| 披露 authoring environment | model、harness、harness version、installed plugins 都要写。 |
| 人类审完整 diff | 没有人类明确批准,不提交 PR。 |
target dev | main 是发布分支,活跃开发先到 dev。 |
12. 读源码路线
如果你要继续深挖,建议按这个顺序读。
README.md:项目定位、支持平台、基础 workflow。RELEASE-NOTES.md:v6.0.0 到 v6.0.3 的设计变化,尤其 SDD、visual companion、new harness。skills/using-superpowers/SKILL.md:全局技能触发协议。hooks/session-start、hooks/session-start-codex、.opencode/plugins/superpowers.js、.pi/extensions/superpowers.ts:不同 bootstrap 形态。docs/porting-to-a-new-harness.md:跨平台集成的 invariants 和三种 shape。skills/brainstorming/SKILL.md与skills/brainstorming/visual-companion.md:从需求澄清到可视化协作。skills/writing-plans/SKILL.md:新版 plan 的 Global Constraints、Interfaces、task right-sizing。skills/subagent-driven-development/SKILL.md、implementer-prompt.md、task-reviewer-prompt.md:新版 SDD 的控制器、实现者、reviewer 协议。skills/test-driven-development/SKILL.md、skills/systematic-debugging/SKILL.md、skills/verification-before-completion/SKILL.md:三大质量纪律。docs/testing.md:插件测试与行为 eval 的分工。
结论
Superpowers 的设计不是“给代理多几条建议”,而是把软件交付拆成可触发、可验证、可恢复的流程单元。v6 的重点是跨平台中立化、SDD 降本增严、文件化交接、可视化协作安全加固,以及把技能行为测试提升为 eval 问题。
本报告生成自本地仓库 /Users/chenmeili/Documents/GitHub/superpowers,拉取后 HEAD 为 896224c,版本为 6.0.3。