with one click
using-superpowers
// Use when Superpowers mode is active or the user explicitly asks to use Superpowers - establishes how to find and use skills, requiring skill loading before responses while in that opt-in context
// Use when Superpowers mode is active or the user explicitly asks to use Superpowers - establishes how to find and use skills, requiring skill loading before responses while in that opt-in context
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | using-superpowers |
| description | Use when Superpowers mode is active or the user explicitly asks to use Superpowers - establishes how to find and use skills, requiring skill loading before responses while in that opt-in context |
| adaptedFrom | ["https://github.com/obra/superpowers/tree/main/skills/using-superpowers"] |
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
This is not negotiable. This is not optional. You cannot rationalize your way out of this.
Superpowers skills override default system prompt behavior, but user instructions always take precedence:
If CLAUDE.md, GEMINI.md, or AGENTS.md says "don't use TDD" and a skill says "always use TDD," follow the user's instructions. The user is in control.
In Pi: Skills are listed in the system prompt by name and description. When a skill might apply, load the current SKILL.md with read if the path is known, or use /skill:<name> when operating interactively. Do not rely on memory; skills change.
Tool mapping: Upstream Superpowers skills use Claude Code tool names. In this Pi harness, use references/pi-tools.md for equivalents.
Invoke relevant or requested skills BEFORE any response or action. Even a 1% chance a skill might apply means that you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
digraph skill_flow {
"User message received" [shape=doublecircle];
"About to EnterPlanMode?" [shape=doublecircle];
"Already brainstormed?" [shape=diamond];
"Invoke brainstorming skill" [shape=box];
"Might any skill apply?" [shape=diamond];
"Load matching SKILL.md" [shape=box];
"Announce: 'Using [skill] to [purpose]'" [shape=box];
"Has checklist?" [shape=diamond];
"Create pi-task per checklist item" [shape=box];
"Follow skill exactly" [shape=box];
"Respond (including clarifications)" [shape=doublecircle];
"About to EnterPlanMode?" -> "Already brainstormed?";
"Already brainstormed?" -> "Invoke brainstorming skill" [label="no"];
"Already brainstormed?" -> "Might any skill apply?" [label="yes"];
"Invoke brainstorming skill" -> "Might any skill apply?";
"User message received" -> "Might any skill apply?";
"Might any skill apply?" -> "Load matching SKILL.md" [label="yes, even 1%"];
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
"Load matching SKILL.md" -> "Announce: 'Using [skill] to [purpose]'";
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
"Has checklist?" -> "Create pi-task per checklist item" [label="yes"];
"Has checklist?" -> "Follow skill exactly" [label="no"];
"Create pi-task per checklist item" -> "Follow skill exactly";
}
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. |
When multiple skills could apply, use this order:
"Let's build X" → brainstorming first, then implementation skills. "Fix this bug" → debugging first, then domain-specific skills.
Rigid (TDD, debugging): Follow exactly. Don't adapt away discipline.
Flexible (patterns): Adapt principles to context.
The skill itself tells you which.
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.