
在 GitHub Trending 榜单上,obra/superpowers 累计斩获 274,688 颗星标,mattpocock/skills 同样突破 225,087 颗星标。两大开源项目在同一周期内迎来密集迭代,向整个软件工程界释放出一个强烈的演进信号。
表面看这只是开发者在给大模型配置更多 Markdown 格式的提示词(Prompt),本质是软件工程方法论对 vibe coding(指完全凭借模糊灵感和连续对话让 AI 随意生成代码的粗放模式)发起的一场确定性改造。当上下文窗口的膨胀不再能掩盖逻辑漂移与幻觉,代码生成助手正在从“单会话黑盒狂奔”走向“可复用、可组合、可测试的技能单元”。
从盲猜生成到方法论注入:为什么单次Prompt正在失效
很多开发者在使用 AI 编程助手时,习惯直接输入一句话需求让模型自由发挥。这种交互在几十行脚本的原型开发中表现亮眼,但一旦进入数万行代码的中大型项目,缺陷就会迅速暴露。模型会遗忘早期的架构约束,跳过边界条件测试,甚至为了修复一个局部 bug 而重构无关模块。
单纯加长系统提示词无法解决根本问题,反而会造成上下文负载过重。当所有规约常驻在上下文窗口中,不仅消耗宝贵的 token 预算,还会稀释大模型对当前核心任务的注意力。业内由此经历了从无约束生成到强行接管流程,再到细粒度技能拆分的探索周期。
| 阶段 | 核心问题 | 留下的硬伤 |
|---|---|---|
| vibe coding 原型盲冲阶段 | 缺乏明确规格说明书与测试红线,模型完全基于概率猜测意图 | 上下文污染严重,产生大量未经测试的代码与破坏性重构 |
| 重型全流程框架阶段 | 框架试图接管整个开发生命周期,剥夺人类工程师控制权 | 流程僵化,中间步骤出现幻觉时极难定位并精准介入 |
| Agent Skills 模块化阶段 | 一次性提示词无法跨项目复用,工程经验难以沉淀为软件资产 | 需要建立严格的文档编写规范与子智能体测试闭环 |
这一演变清晰地表明:AI 编程助手需要的不是一个无所不知的超级提示词,而是一套随用随调、边界清晰的技能(Skills)工具箱。
两个流派的架构拆解:全自主流水线与模块化工程师工具箱
当前走在最前沿的两个开源项目展示了 Agent Skills 落地时的不同工程哲学。
Jesse Vincent 主导的 obra/superpowers 建立了一套严谨的软件工程流水线。其核心规则 using-superpowers 规定:如果某个技能有哪怕 1% 的可能适用,智能体必须立刻强制调用该技能,优先级高于直接回答甚至提问。在此体系中,流程型技能(如头脑风暴 brainstorming、系统化排错 systematic-debugging)永远前置于具体的实现型技能。
[用户需求输入]
│
▼
[Brainstorming 提炼 Spec] ──► 分块给人类确认
│
▼
[Writing-Plans 编写实现计划] ──► 强调红绿 TDD、YAGNI 原则
│
▼
[Subagent-Driven-Development]
├─► 派发崭新子智能体 1 ──► 任务级 Spec + 代码 Review
├─► 派发崭新子智能体 2 ──► 任务级 Spec + 代码 Review
└─► 派发崭新子智能体 N ──► 任务级 Spec + 代码 Review
│
▼
[全分支最终代码审查与验证]
superpowers 引入了子智能体驱动开发(subagent-driven-development)机制。主智能体拆解完工程任务后,为每一个独立的子任务启动一个全新的 implementer(执行者)子智能体。这个子智能体不继承主会话漫长混乱的历史上下文,仅携带当前任务所需的最小上下文开展工作。任务完成后,主智能体立即执行规格合规性与代码质量审查,最后在分支合并前完成全量验证。
与之相对,TypeScript 教育家 Matt Pocock 推出的 mattpocock/skills 更加强调工程师的自主控制权。Matt 明确反对让框架垄断整个软件开发生命周期,他将技能拆解为工程(engineering)与效率(productivity)两大类别共数十个独立微模块。
在 mattpocock/skills 中,诸如 codebase-design(代码库设计)、diagnosing-bugs(故障诊断)、tdd(测试驱动开发)等技能被设计得极度轻量。开发者可以像调用终端命令一样,在需要的时候激活特定技能,模型在执行完单一职责后迅速退回辅助状态,保证调试透明度与掌控感。
编写面向Agent的文档:writing-for-agents的核心工程法则
要让技能真正被模型准确消费,必须掌握面向智能体写作(writing-for-agents)的方法论。大模型阅读文档的机制与人类存在巨大差异,以下四个核心规则决定了技能库的执行下限:
1. 上下文指针(Context Pointer)代替全量灌输 不要把所有的 API 文档、配置文件和业务背景直接塞进常驻上下文。上下文指针是在智能体当前视野里放置一个精简的外部引用,并明确编码“何时去读取”的前置条件。指针本身的触发措辞比目标内容更重要,它以极低开销决定了模型能否在正确时刻拉取必要资料。
2. 借助引导词(Leading Word)锚定行为集群 利用大模型在预训练阶段已经掌握的高信息密度词汇作为概念锚点。在编写规约时,反复使用类似 lesson、fog of war、tracer bullets 或 red(红灯测试)等紧凑 token,可以在极小字数代价下快速调动模型内在对应的复杂工程行为模式。
3. 消除否定指令(Negation Trap) 在提示词中禁止某种行为往往会导致相反结果。心理学上的“别想房间里有一头粉色大象”在语言模型上表现尤为明显:禁令语句会强行将被禁行为拉入注意力上下文,提升其采样概率。所有技能指令必须写成正向的目标与操作步骤,而非连篇累牍的否定限制。
4. 持续修剪(Pruning)与单一事实来源 代码库中的 package.json、配置文件、目录层级以及命令行 --help 输出本身就是最权威的事实来源。在文档中重复这些信息属于冗余缓存,一旦代码更新就会引发认知冲突。编写技能文档时,必须逐句剔除模型默认就会遵守的无效指令(no-op),确保每条规则拥有单一事实来源。
<!-- 典型技能定义示例:tdd.md -->
# Test-Driven Development (TDD) Skill
## 触发条件
当且仅当接收到新功能实现、缺陷修复或算法重构指令时执行。
## 执行步骤
1. 编写失败测试:基于接口定义编写最小化单元测试用例。
2. 验证红灯状态:运行测试套件,确认测试因预期原因失败(严禁跳过此步)。
3. 最小化实现:编写刚好能让测试通过的代码,严格遵循 YAGNI 原则。
4. 验证绿灯状态:再次运行测试套件,确认全部通过。
5. 重构清理:消除重复代码并修剪冗余依赖,保持测试持续处于绿灯状态。
落地可复现工作流:如何给日常AI编程环境装上技能库
对于想要从随机交互转向系统化工程的团队,构建本地技能库需要遵循技能测试驱动(Writing Skills as TDD)的原则:
如果你没有亲眼看过一个大模型在没有某项技能时产生错误行为(Baseline 失败),你就无法证明写出来的技能是否真正起到了纠偏效果。
具体的落地路径分为四个闭环步骤:
第一步是建立基线压力测试。在没有注入任何技能的前提下,让全新的子智能体处理一个典型的复杂需求(例如:给已有系统添加带鉴权的 API 接口),记录模型犯下的典型错误,如直接修改生产代码、缺少异常分支测试等。
第二步是编写原子化技能文件。针对暴露出来的错误,按照上述 writing-for-agents 规范编写单一职责的 Markdown 技能文件,严格划分有序操作步骤(Steps)与按需查阅的参考规则(Reference)。
第三步是验证技能阻断效果。将技能文件挂载到智能体工作流中,重新运行基线压力测试场景,观察模型是否严格执行了技能规约并输出合规代码。
第四步是生态接入与版本管理。将打磨成熟的技能文件归档入项目的 .skills、AGENTS.md 或 CLAUDE.md 目录中,与 Cursor、Claude Code、Codex 等开发插件实现标准化挂载,纳入 Git 实现与业务代码同等的版本化迭代。
综合研判
当前 Agent Skills 框架的爆发,并非否定自然语言交互在软件开发中的普惠价值,而是将自然语言的自由度牢牢约束在经受过验证的工程纪律之内。
必须澄清一个普遍的认知偏差:技能库绝不是把日常收集的提示词打包堆叠得越长越好。堆砌未经修剪的提示词不仅会带来沉重的上下文负载,还会引发规则冲突与不可预测的推理耗时。真正的技能化,是把工程流程降解为高内聚、低耦合、正向表述且具备测试基准的微指令。
一个尚未彻底解决的技术痛点在于:子智能体之间的上下文物理隔离虽然杜绝了历史会话的污染,但多任务并行时跨子智能体的隐式状态同步与全局架构共识的维护,仍然高度依赖人类工程师的主动裁决。如何在保持子任务轻量隔离的同时,低成本维护一套动态演进的全局架构图谱,将是下一代 AI 编程架构竞争的核心制高点。
引用来源
- obra/superpowers 官方开源仓库(2026-08-20 更新)https://github.com/obra/superpowers
- mattpocock/skills 模块化工程技能库(2026-08-20 更新)https://github.com/mattpocock/skills
- Claude Code 官方文档:Extend Claude with skills(持续更新)https://code.claude.com/docs/en/skills
- Simon Willison:Quoting Jeremy Morrell,谈 coding agents 与概念完整性(2026-08-19)https://simonwillison.net/2026/Aug/19/jeremy-morrell/
- skills.sh:mattpocock/skills 技能分发站(持续更新)https://www.skills.sh/