4 min read
Superpowers 学习笔记 — Zero Trust Architecture for AI Agents

Superpowers 是一套 Claude Code 的 skill 插件,把软件工程最佳实践编码为可执行约束。

TLDR

  1. 对抗 AI 的惰性 — AI 永远倾向于在满足约束的前提下最小化输出。不能靠自觉,只能靠强制 checkpoint。就像 lint 规则,不是因为程序员坏,而是因为某些错误太常见、代价太高。

  2. 对抗 AI 的 over confidence — AI 声称的确定性永远超过实际证据。“应该能工作”不是完成,展示能证明其为真的输出才是。证据先于断言。

  3. Zero Trust — Superpowers 不是在写「AI 应该怎么工作」的指南——它在设计一个假设 AI 会偷懒、撒谎、自欺欺人的系统架构。

  4. 去中心化 pipeline — 每个 skill 的最后指向下一个(或者多个 skill)

  5. Digraph 描述 workflow — 选择用 digraph 来描述流程,因为大模型天生对 digraph 很熟悉

  6. Rationalization table — 枚举出常见大模型会选择的偷懒路径并且 say no,把大模型”逼”到我们想要的路径上


设计哲学:三层理解

第一层(表面):流程强制

给 AI 装上 lint 规则,不是因为 AI 不聪明,而是某些错误太常见、代价太高。

第二层(本质):Zero Trust Architecture applied to AI

Superpowers 不是在写「AI 应该怎么工作」的指南——它在设计一个假设 AI 会偷懒、撒谎、自欺欺人的系统架构。

安全领域概念Superpowers 对应
Never trust, always verifyverification-before-completion:不信任 AI 的 assertion,要求 exit code + 完整输出
Least privilegesubagent 只拿到当前 task 的 context,不是全局
Defense in depthIron Law → Red Flags → Rationalization Table → Gate Function,四层防御
Mandatory access controlHARD-GATE:不是建议,是阻断
Zero trust between peersspec reviewer 的 prompt 明确写:CRITICAL: Do Not Trust the Report——前一个 agent 的自我报告不可信

演化路径对比

早期网络安全:信任内网,防御边界 → 内部人员也会出问题 → Zero Trust

早期 AI agent:给好 prompt,信任输出 → AI 会偷懒、幻觉、overconfident → Superpowers

第三层(元层):用 AI 的弱点约束 AI

一个矛盾:Superpowers 的规则本身也是 prompt。如果 AI 会无视 prompt 去偷懒,为什么它会遵守「不要偷懒」这条 prompt?

答案:AI 的惰性和 compliance 不是同一个回路。

生成 token 时,两股力量在竞争:
  力量 A(惰性):argmin(输出成本) → 跳过这步,直接给答案
  力量 B(compliance):prompt 中有明确指令 → 必须执行

Superpowers 系统性地加大力量 B 的权重,
使违规输出的概率低于合规输出。

具体机制:

  • EXTREMELY-IMPORTANT 标签 — empirically 提高后续指令权重(机制未完全明确,但效果可测)
  • Rationalization table — 在 token generation 的概率空间里预先堵死偷懒路径。当所有常见借口都被提前反驳,AI 被推向 compliance 方向,因为那是剩下概率最高的路径
  • Iron Law 命名 — 训练数据中「non-negotiable」「must」这类词出现在高优先级指令的上下文中,distributional semantics 给对应指令更高权重

关键认知

Superpowers 不是在逻辑层面说服 AI(AI 没有「被说服」的能力),而是在统计层面操控 AI 的 token generation distribution。这就是「用 AI 的弱点约束 AI」——AI 对 instruction markers 的高敏感性被反向利用,变成质量保障工具。


AI 的惰性模式

本质:argmin(输出成本),满足约束即止

模式表现
数量取下界”>=8页”只写8页,把 >= 当 ==
跳过中间步骤”分析 bug”直接给修复,过程压缩成结果
模板填充测试只写 happy path,文档复制函数签名
对模糊需求选最窄解释”优化函数”只改个变量名
遇到复杂问题降级需要深度搜索时凭记忆回答
对错误倾向掩盖测试报错 → 改测试,加 @ts-ignore

反贪婪(Anti-Greedy)

“对模糊需求选最窄解释”本质是贪婪算法取反:贪婪 argmax(局部收益) → AI 惰性 argmin(当前输出成本)。同样不回头的单次决策,目标函数反了。


Skills 分类

两大类,关注点分离:

流程类(how to work) — 普适,是质量保障的骨架:

Skill必须?作用
using-superpowers✅ meta 层任何任务前先检查是否有 skill 适用
brainstorming需求理解 → 方案设计,主入口
writing-plans把设计转为可执行任务列表
test-driven-development实现阶段遵循 TDD
systematic-debugging✅(遇到 bug)4阶段根因分析,禁止猜测式修复
verification-before-completion声称完成前必须展示验证输出
requesting-code-review完成后请求 review
receiving-code-review先核实反馈技术上是否正确,再实现
finishing-a-development-branch收尾整合
dispatching-parallel-agents❌ 可选多个独立问题并行调查,纯加速

领域类(domain knowledge) — 可插拔:frontend-designclaude-developer-platformobsidian-markdown


完整 Flow

没有总调度器,去中心化 pipeline——每个 skill 的终态硬编码指向下一个:

using-superpowers  (meta 层)

brainstorming      (主入口,终态只能 → writing-plans)

writing-plans

      ├── subagent-driven-development  (当前 session,subagent 自动两阶段 review)
      └── executing-plans             (新 session,人工 review,每批3个任务)

finishing-a-development-branch

brainstorming 有一个 HARD-GATE:设计没经用户批准,不能写任何代码。直接对抗 AI 跳过设计阶段的冲动。

执行层三选一

核心区分:谁来 review顺序还是并行

subagent-driven-developmentexecuting-plansdispatching-parallel-agents
ReviewSubagent 自动两阶段人工 checkpoint
顺序顺序顺序并行
前置writing-planswriting-plans多个独立 bug/失败
人工介入

dispatching-parallel-agents 不需要计划文件,是 systematic-debugging 的下游——发现多个独立根因时才触发,本质是加速而非质量保障。


设计巧思

Digraph 描述 workflow — 用 Graphviz DOT 而非自然语言,消除歧义,决策分支显式化,LLM 理解更可靠。

显式命名失败模式 — 每个 skill 的 Red Flags 章节列的不是错误,而是 AI 为跳过这个 skill 会对自己说的那些话。预防合理化,而不只是规定行为。

1% 规则using-superpowers 规定只要有 1% 概率适用就必须调用。刻意的过矫正——用不对称约束对冲 AI 系统性低估 skill 必要性的偏差。

自反性skill-creator 让这套系统用自身方法论来扩展自身。


关键引用

“Instructions say WHAT, not HOW. ‘Add X’ or ‘Fix Y’ doesn’t mean skip workflows.”

“Every project goes through this process. A todo list, a single-function utility — all of them.”