如何用结构化语言约束 LLM 行为?这份项目的 git 日志,是一部用 6.5 个月的迭代写就的"AI 编程代理失败模式手册"。
几乎每一次重要修改,都对应某种真实观察到的 agent 失败模式。这不是普通的演变史,而是一部失败 → 修复 → 验证的循环日志。
整个演变可压缩为一条核心命题:
让 agent 在面对"快速跳过工程纪律的诱惑"时,依然遵守 brainstorming → writing-plans → executing-plans → verification 的工作流。
围绕这条主线,项目内部存在三种持续拉锯的力量。每一次 commit,都是这三种力量的一次再平衡。
活跃度有明显双高峰。第一次在创世月,定型 skills 体系;第二次在 v5 发布月,引入可视化与实证驱动的反转。
从混乱的第一日 → 心理工程加固 → 测试基础设施大爆发 → 多平台扩张 → 实证否定与收官。
2025-10-09 这一天的 commit 序列,密集得像一场实况赛跑。前 40 分钟在调试 hook,晚上 10 点诞生项目灵魂。
hookEventName、命令格式、变量展开、最小化 bootstrap…… 错误一个接一个。Add brainstorming trigger section,紧接着 Restore mandatory brainstorming workflow —— 简化与强制的拉锯,从第一天就开始。2026-03-20 ~ 03-25。一个看似显然有用的机制,被 25 组对照试验证明零价值。这是项目工程哲学最纯粹的体现。
v5.0.0 引入了 spec / plan reviewer subagent。直觉上,让另一个 agent 审查计划质量"显然"有用。但作者用 5 版本 × 5 试验的回归矩阵进行了验证 ——
期间经历两次 revert 又 reapply —— 作者顶住了"恢复 subagent"的诱惑。这次反转单独就证明了项目哲学:测试 > 直觉,即使是作者自己的直觉。
项目的核心结构:从 hook 注入,到层层心理工程屏障,直至防御外部贡献者的 AI agent。
<EXTREMELY-IMPORTANT> 标签 + "1% chance" 概率提示 + "you cannot rationalize" 命令式语言。把一切合理化的可能性预先剥夺。9d2b886 实证)。TOP 5 全部是 process skills(如何工作),而非 implementation skills(做什么)。TDD、systematic-debugging 修改最少 —— 早期定型且有效。
每个 harness 都有自己注入 bootstrap 的最佳路径,没有"通用方案"。Windows 兼容占用了不成比例的工程时间。
最高频迭代的 skill (51 commits)。每一次迭代都对应一种 agent 行为失败,每一次失败都驱动下一次设计。
从 438 个 commits 中归纳出的工程哲学。每一条都有具体 commit 作为证据。
Superpowers 不是一个 prompt 库,而是一个用 git 历史逐周记录的"如何用结构化语言约束 LLM 行为"的实证研究项目。
它的 438 个 commits 中相当一部分是负面发现("X 不起作用,删除")—— 这种对自己设计的批判性诚实,是其工程哲学的最深一层。