skills/using-superpowers/SKILL.md
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
npx skillsauth add sartoris-digital/pi-superpowers using-superpowersInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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. </EXTREMELY-IMPORTANT>
Superpowers skills override default system prompt behavior, but user instructions always take precedence:
AGENTS.md, direct requests) — highest priorityIf 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 auto-triggered when their description matches your intent. You can also invoke any skill explicitly via its /skill-name slash prompt. Skill content is delivered to you directly — do not read the SKILL.md file yourself; just follow the instructions when they arrive.
When this skill itself loads, the bootstrap extension has already injected its content into the session, so you have it without doing anything special.
Skills were originally authored against Claude Code tool names. Pi uses lowercase equivalents (read, write, edit, bash, grep, find, subagent, state, …). When a skill mentions a Claude Code primitive, consult references/pi-tools.md for the Pi equivalent.
Other harness tool maps (Copilot, Codex, Gemini) live upstream and are intentionally not bundled in Pi.
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 start planning?" [shape=doublecircle];
"Already brainstormed?" [shape=diamond];
"Invoke brainstorming skill" [shape=box];
"Might any skill apply?" [shape=diamond];
"Invoke skill (slash prompt or auto-trigger)" [shape=box];
"Announce: 'Using [skill] to [purpose]'" [shape=box];
"Has checklist?" [shape=diamond];
"Track each item as a todo" [shape=box];
"Follow skill exactly" [shape=box];
"Respond (including clarifications)" [shape=doublecircle];
"About to start planning?" -> "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?" -> "Invoke skill (slash prompt or auto-trigger)" [label="yes, even 1%"];
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
"Invoke skill (slash prompt or auto-trigger)" -> "Announce: 'Using [skill] to [purpose]'";
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
"Has checklist?" -> "Track each item as a todo" [label="yes"];
"Has checklist?" -> "Follow skill exactly" [label="no"];
"Track each item as a todo" -> "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.
These agents are available via the subagent extension:
| Agent | Tier | Purpose |
|-------|------|---------|
| architect | reasoning | Plan review and completion verification |
| critic | reasoning | Adversarial quality review of plans and designs |
| designer | standard | UI/frontend components, styling, accessibility |
| writer | fast | Documentation, READMEs, changelogs |
| researcher | standard | External documentation and API reference lookup |
| scientist | standard | Data analysis, hypothesis testing |
| vision | standard | Visual analysis of screenshots and mockups |
| worker | standard | General-capability implementer (Pi's general-purpose equivalent) |
Dispatch with subagent (single, parallel, or chain mode) — see references/pi-tools.md for the JSON shapes.
Model tiers map agent names to model capabilities:
| Tier | Default Model | Used For |
|------|--------------|----------|
| fast | claude-haiku-4-5 | Quick lookups, documentation, recon |
| standard | claude-sonnet-4-6 | Implementation, review, analysis |
| reasoning | claude-opus-4-6 | Complex debugging, security, architecture |
Override via .pi/superpowers.json:
{
"models": {
"fast": "claude-haiku-4-5",
"standard": "claude-sonnet-4-6",
"reasoning": "claude-opus-4-6"
}
}
Pass tiers explicitly in subagent dispatch:
{ "agent": "worker", "task": "...", "tier": "standard" }
The executing-plans skill supports 4 strategies:
| Strategy | Keyword | Best For | |----------|---------|----------| | Sequential | (default) | Dependent tasks, small plans | | Parallel | "parallel" | Many independent tasks | | Autopilot | "autopilot" | Large plans, hands-off | | Ralph | "ralph" | PRD with user stories |
These keywords are detected automatically by the orchestrator:
| Keyword | Action |
|---------|--------|
| ralph | Activate ralph (story-driven) execution strategy |
| autopilot | Activate autopilot execution strategy |
| ecomode | Toggle token-efficient model routing |
| cancel | Cancel active execution mode |
| ralplan | Start consensus planning |
| parallel | Use parallel execution strategy |
/plan — Unified entry point. Detects broad vs. specific requests, routes to interview or direct planning./ralplan — Consensus planning: planner → architect → critic review loop until approved.The verification-before-completion skill dispatches the architect agent at different tiers:
| Tier | When | Evidence Required | |------|------|-------------------| | Light (fast) | <5 files, <100 lines | Build passes + diagnostics clean | | Standard | Default | Build + full test suite passes | | Thorough (reasoning) | >20 files, security, architecture | Full architect review + all tests + security |
The state extension provides persistent state for execution modes:
state read <key> — Read state
state write <key> {...} — Write state
state clear <key> — Delete state
state list — List all active states
Used by autopilot, ralph, ecomode, and the persistence engine.
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
data-ai
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
tools
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback