"这个 skill 的存在理由只有一个:agent 不会主动加载 skill。它需要被命令。"
前置概念
using-superpowers 是 Superpowers 的入口 skill 。和其他 skill 不同------它不定义"怎么做某件事",它定义的是"什么时候、为什么、如何加载其他 skill"。它是 meta-skill------告诉 agent 如何发现和使用 skill 系统本身。
只有 63 行,是整个 Superpowers 最短的 skill。但它解决的问题是全局性的:agent 的默认行为是"能用自己知识解决的问题就不查 skill"。
逐层拆解
第 0 层:Description------强制加载断言
原文:
yaml
description: Use when starting any conversation - establishes how to find and use skills,
requiring skill invocation before ANY response including clarifying questions
agent 的默认行为:收到用户消息 → 评估任务 → 直接开始回复。agent 不会说"让我先看看有没有相关 skill"------因为 skill 查找不是它的默认推理路径中的一步。
这条指令把它扭成什么:
"Use when starting any conversation"------这个触发条件把自身设为每个会话的第一件事。"starting any conversation" 让这个 skill 在每次新对话的第一条消息就被加载。
"requiring skill invocation before ANY response including clarifying questions"------核心约束:在回复任何东西之前(包括"你指的是什么?"这样的澄清问题),先 invoke skill。 这阻塞了 agent 最自然的跳过路径------agent 倾向于说"我先问清楚再说",但这条指令说"先查 skill,再问问题"。
第 1 层:SUBAGENT-STOP------子 agent 豁免
原文:
vbnet
<SUBAGENT-STOP>
If you were dispatched as a subagent to execute a specific task, ignore this skill.
</SUBAGENT-STOP>
agent 的默认行为:子 agent 不会自行判断"我应该加载哪个 skill"------它接收主 agent 构造好的指令直接执行。但 skill 加载机制不区分主 agent 和子 agent------如果没有这条豁免,子 agent 会先加载 using-superpowers,然后开始"问我该用哪个 skill"------制造无限递归。
这条指令把它扭成什么:
"If you were dispatched as a subagent to execute a specific task, ignore this skill."------一个精准的豁免条款。子 agent 的特征是"被 dispatch 来执行一个特定任务"------它的 scope 已经被主 agent(controller)限定了,不需要自己再做 skill discovery。
这个标签的位置在最开头(第 6-8 行),确保子 agent 读到任何其他内容之前先读到豁免。
第 2 层:EXTREMELY-IMPORTANT------绝对优先级覆盖
原文:
css
<EXTREMELY-IMPORTANT>
If you think there is even a 1% chance a skill might apply to what you are doing,
you ABSOLUTELY MUST invoke the skill.
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
This is not negotiable. You cannot rationalize your way out of this.
</EXTREMELY-IMPORTANT>
agent 的默认行为:agent 判断"这个 skill 适用于我的任务吗?"时的阈值太高了。它的默认阈值接近 80%------"我很确定这个 skill 完全匹配我的任务"时才加载。对于 30-60% 匹配的情况("好像有点关系但我不确定"),agent 倾向于跳过。
这条指令把它扭成什么:
-
"even a 1% chance"------把阈值从 80% 拉到 1%。这是一个极端的过载触发:"宁可错杀一千,不可放过一个。"因为加载一个不需要的 skill 的成本极低(几 KB token),而跳过需要的 skill 的成本极高(整个流程跑偏)。 -
"ABSOLUTELY MUST invoke the skill"和"YOU DO NOT HAVE A CHOICE"------全大写 + 绝对词,不留任何解释空间。agent 被剥夺了"是否加载"的判断权。 -
"This is not negotiable. You cannot rationalize your way out of this."------直指 agent 的核心机制:agent 会对自己解释"这次不需要"。这条指令预先声明"你会发现理由------那些理由都不成立。"
第 3 层:The Rule------行动顺序重排
原文:
sql
## The Rule
**Invoke relevant or requested skills BEFORE any response or action** --- including
clarifying questions, exploring the codebase, or checking files. If it turns out
wrong for the situation, you don't have to use it.
**Before entering plan mode:** if you haven't already brainstormed, invoke the
brainstorming skill first.
Then announce "Using [skill] to [purpose]" and follow the skill exactly. If it has
a checklist, create a todo per item.
agent 的默认行为:agent 的推理顺序是:理解问题 → 收集信息 → 制定方案 → 执行。skill 查找被隐含在"理解问题"之后------agent 觉得自己已经理解了问题才去看"有没有更好的做事方式"。
这条指令把它扭成什么:
-
"BEFORE any response or action"------把 skill 查找提前到所有动作之前。不是说"先理解问题再看 skill",是"先看 skill,再理解问题"。次序的颠倒改变了信息处理流程:agent 带着 skill 的结构去理解问题,而不是用自己的直觉去理解问题。 -
"including clarifying questions, exploring the codebase, or checking files"------三个具体例子堵死了 agent 最常见的跳过理由。agent 不能说"但我只是探索代码库"、"但我只是检查文件"------这三个都是"action",都需要先查 skill。 -
"If it turns out wrong for the situation, you don't have to use it."------一个聪明的人工成本控制。强制加载,但允许在实际使用后发现不适用就放掉。这降低了加载门槛的心理阻力------因为加载不等于必须执行。 -
"Before entering plan mode: if you haven't already brainstormed, invoke the brainstorming skill first."------硬连接两个 skill。这条规则确保 brainstorming 和 writing-plans 之间的链路不会被 agent 跳过。 -
"announce 'Using [skill] to [purpose]'"------强制声明。这让 skill 加载变得对用户可见,用户可以判断 agent 是否加载了正确的 skill。
第 4 层:Skill Priority------选择顺序约束
原文:
sql
## Skill Priority
When multiple skills apply, process skills come first --- they set the approach,
then implementation skills (frontend-design, etc.) carry it out.
- "Let's build X" → superpowers:brainstorming first, then implementation skills.
- "Fix this bug" → superpowers:systematic-debugging first, then domain skills.
agent 的默认行为:agent 加载多个 skill 时,倾向于全部加载同时应用。它不会排序"先走 brainstorming 再走 implementation"------会尝试并行。
这条指令把它扭成什么:
两层优先级系统 :process skills(设置方法的) > implementation skills(执行方法的)。这是一个拓扑排序------某些 skill 的输出是其他 skill 的输入,所以它们必须先运行。
两个具体场景示例:
- "Let's build X":先 brainstorming(想清楚要做什么),然后 implementation skills(开始做)。不能反过来。
- "Fix this bug":先 systematic-debugging(找到根因),然后 domain skills(在具体技术栈中修)。不能反过来。
第 5 层:Red Flags 表------12 条合理化借口预击杀
原文:
rust
## Red Flags
These thoughts mean STOP---you're rationalizing:
| Thought | Reality |
|---------|---------|
| "This is just a simple question" | Questions are tasks. Check for skills. |
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
| "Let me gather information first" | Skills tell you HOW to gather information. |
| "This doesn't need a formal skill" | If a skill exists, use it. |
| "I remember this skill" | Skills evolve. Read current version. |
| "This doesn't count as a task" | Action = task. Check for skills. |
| "The skill is overkill" | Simple things become complex. Use it. |
| "I'll just do this one thing first" | Check BEFORE doing anything. |
| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
agent 的默认行为:这 12 条是 agent 在做出"不加载 skill"的决定时,对自己说的原话。不是理论上的借口------是从真实的"agent 跳过 skill"失败的场景中逐条采集的。
这条指令把它扭成什么:
这是 Superpowers 的合理化预击杀模式的典范应用。每一行都是一个「想法 → 反驳」对,覆盖了 agent 最常用的 12 种跳过 skill 的理由:
- 归类否定("这不是一个任务"、"这只是简单问题")→ 反驳:一切都是任务
- 顺序借口("我先收集信息再查"、"我先探索再查")→ 反驳:skill 告诉你怎么收集/探索
- 自信借口("我记得这个 skill"、"我知道那是什么意思")→ 反驳:skill 会更新;知道概念 ≠ 会执行
- 效率借口("skill 是过度杀伤"、"我先做一件小事")→ 反驳:简单 → 复杂;先查再做
- 直觉借口("这感觉很高效")→ 反驳:不守纪律的效率是无纪律的浪费
关键设计 :表格左边是 agent 对自己说的原话(这些是真实采集的,不是编的)。当 agent 在思考过程中产生这些词句模式时,Red Flags 表格启动模式匹配------agent 识别到"我刚才想的这句话在表里"然后触发 STOP。不需要高级元认知,只需要低级模式匹配。
第 6 层:User Instructions------优先级层级
原文:
sql
## User Instructions
User instructions (CLAUDE.md, AGENTS.md, GEMINI.md, etc, direct requests) take
precedence over skills, which in turn override default behavior. Only skip skill
workflows or instructions when your human partner has explicitly told you to.
agent 的默认行为:agent 可能在不同优先级的指令之间产生困惑------skill 说"必须先 brainstorming",用户的 CLAUDE.md 说"这个项目总是直接写代码",冲突怎么解决?
这条指令把它扭成什么:
建立了一个三级优先级链:用户指令 > skill 指令 > agent 默认行为 。但 exit clause 是关键:"Only skip skill workflows or instructions when your human partner has explicitly told you to"------用户不明确说"跳过 brainstorming"就不能跳过。用户的沉默不等于豁免,用户必须明确说出豁免才生效。
总结:Using-Superpowers 的 7 层约束
vbnet
┌─────┬──────────────────────────┬──────────────────────────────┐
│ 层 │ 约束 │ 对抗的 agent 默认行为 │
├─────┼──────────────────────────┼──────────────────────────────┤
│ 0 │ description 强制会话启动加载 │ 不知道应该先加载 skill │
│ 1 │ SUBAGENT-STOP 子 agent 豁免│ 子 agent 做递归 skill 查找 │
│ 2 │ 1% 概率即加载 + 不可协商 │ 加载阈值太高 → 跳过 │
│ 3 │ skill 先于一切动作 │ 先理解问题 → 再看 skill │
│ 4 │ process > implementation │ 并行加载所有 skill │
│ 5 │ 12 条 Red Flags 预击杀 │ 对自己合理化"不需要" │
│ 6 │ 三级优先级链 + exit clause │ CL.md 和 skill 冲突时犹豫 │
└─────┴──────────────────────────┴──────────────────────────────┘
核心设计理念 :这个 skill 解决的是"元问题"------不是告诉 agent 怎么做某件事,而是告诉 agent "怎么发现做这件事的正确方式"。它的 63 行代码量对应的是整个 Superpowers 生态的入口控制------如果这一关失效,其他 13 个 skill 永远不会被加载。
它的两个核心创新:
- 把加载阈值从"大概需要"拉到"1% 可能"------极端过载触发确保不漏
- 用 12 条真实采集的合理化借口做模式匹配------不需要 agent 做元认知,只需要识别自己说的原话
附录:Using-Superpowers SKILL.md 完整原文
markdown
---
name: using-superpowers
description: Use when starting any conversation - establishes how to find and use
skills, requiring skill invocation before ANY response including clarifying questions
---
<SUBAGENT-STOP>
If you were dispatched as a subagent to execute a specific task, ignore this skill.
</SUBAGENT-STOP>
<EXTREMELY-IMPORTANT>
If you think there is even a 1% chance a skill might apply to what you are doing,
you ABSOLUTELY MUST invoke the skill.
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
This is not negotiable. You cannot rationalize your way out of this.
</EXTREMELY-IMPORTANT>
## The Rule
**Invoke relevant or requested skills BEFORE any response or action** --- including
clarifying questions, exploring the codebase, or checking files. If it turns out
wrong for the situation, you don't have to use it.
**Before entering plan mode:** if you haven't already brainstormed, invoke the
brainstorming skill first.
Then announce "Using [skill] to [purpose]" and follow the skill exactly. If it
has a checklist, create a todo per item.
## Skill Priority
When multiple skills apply, process skills come first --- they set the approach,
then implementation skills (frontend-design, etc.) carry it out.
- "Let's build X" → superpowers:brainstorming first, then implementation skills.
- "Fix this bug" → superpowers:systematic-debugging first, then domain skills.
## Red Flags
These thoughts mean STOP---you're rationalizing:
| Thought | Reality |
|---------|---------|
| "This is just a simple question" | Questions are tasks. Check for skills. |
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
| "Let me gather information first" | Skills tell you HOW to gather information. |
| "This doesn't need a formal skill" | If a skill exists, use it. |
| "I remember this skill" | Skills evolve. Read current version. |
| "This doesn't count as a task" | Action = task. Check for skills. |
| "The skill is overkill" | Simple things become complex. Use it. |
| "I'll just do this one thing first" | Check BEFORE doing anything. |
| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
## Platform Adaptation
If your harness appears here, read its reference file for special instructions:
- Codex: `references/codex-tools.md`
- Pi: `references/pi-tools.md`
- Antigravity: `references/antigravity-tools.md`
## User Instructions
User instructions (CLAUDE.md, AGENTS.md, GEMINI.md, etc, direct requests) take
precedence over skills, which in turn override default behavior. Only skip skill
workflows or instructions when your human partner has explicitly told you to.