configs/agents/skills/using-superpowers/SKILL.md
Use when the user explicitly asks about skill selection, wants to troubleshoot or change the Superpowers workflow, or asks to audit which skills should apply
npx skillsauth add Ehrax/dotfiles 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.
Use skills when they are directly relevant to the user's request, explicitly requested by the user, or needed for a high-risk workflow where the skill materially improves the result.
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:
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 Claude Code: Use the Skill tool. When you invoke a skill, its content is loaded and presented to you—follow it directly. Never use the Read tool on skill files.
In Copilot CLI: Use the skill tool. Skills are auto-discovered from installed plugins. The skill tool works the same as Claude Code's Skill tool.
In Gemini CLI: Skills activate via the activate_skill tool. Gemini loads skill metadata at session start and activates the full content on demand.
In other environments: Check your platform's documentation for how skills are loaded.
Skills use Claude Code tool names. Non-CC platforms: see references/copilot-tools.md (Copilot CLI), references/codex-tools.md (Codex) for tool equivalents. Gemini CLI users get the tool mapping loaded automatically via GEMINI.md.
Invoke directly relevant or requested skills before taking action. Do not run a global skill check for every prompt. If no listed skill clearly applies, proceed normally.
digraph skill_flow {
"User message received" [shape=doublecircle];
"Did user request a skill?" [shape=diamond];
"Does a skill directly apply?" [shape=diamond];
"Invoke Skill tool" [shape=box];
"Announce: 'Using [skill] to [purpose]'" [shape=box];
"Has checklist?" [shape=diamond];
"Create TodoWrite todo per item" [shape=box];
"Follow skill exactly" [shape=box];
"Respond (including clarifications)" [shape=doublecircle];
"User message received" -> "Did user request a skill?";
"Did user request a skill?" -> "Invoke Skill tool" [label="yes"];
"Did user request a skill?" -> "Does a skill directly apply?" [label="no"];
"Does a skill directly apply?" -> "Invoke Skill tool" [label="yes"];
"Does a skill directly apply?" -> "Respond (including clarifications)" [label="no"];
"Invoke Skill tool" -> "Announce: 'Using [skill] to [purpose]'";
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
"Has checklist?" -> "Create TodoWrite todo per item" [label="yes"];
"Has checklist?" -> "Follow skill exactly" [label="no"];
"Create TodoWrite todo per item" -> "Follow skill exactly";
}
These thoughts mean STOP—you're rationalizing:
| Thought | Reality | |---------|---------| | "The user explicitly asked for a skill, but I can answer from memory" | Use the requested skill. | | "A skill directly matches this workflow, but it feels like overhead" | Use the matching skill. | | "I remember this skill" | Skills evolve. Read current version. | | "The skill trigger is close enough" | Only use it when the trigger clearly matches the request. |
When multiple directly relevant 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.
User instructions can also narrow when workflows should trigger. If the user says a skill or workflow is too noisy, update or follow the trigger conditions so it activates only for directly relevant work.
development
Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.
development
Grilling session that mines the user for fragments — heterogeneous nuggets of writing (claims, vignettes, sharp sentences, half-thoughts) — and appends them to a single document as raw material for a future article. Use when the user wants to develop ideas before imposing structure, or mentions "fragments", "ideate", or "raw material" for writing.
documentation
Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.
development
Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".