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.
Instruction Priority
Superpowers Ruby skills override default system prompt behavior, but user instructions always take precedence:
- User's explicit instructions (CLAUDE.md, GEMINI.md, AGENTS.md, direct requests) — highest priority
- Superpowers skills — override default system behavior where they conflict
- Default system prompt — lowest priority
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.
How to Access Skills
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.
Platform Adaptation
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.
Using Skills
The Rule
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];
"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];
"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?" -> "Invoke Skill tool" [label="yes, even 1%"];
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
"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";
}
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. |
Skill Priority
When multiple skills could apply, use this order:
- Process skills first (brainstorming, debugging) - these determine HOW to approach the task
- Implementation skills second (frontend-design, mcp-builder) - these guide execution
"Let's build X" → brainstorming first, then implementation skills.
"Fix this bug" → debugging first, then domain-specific skills.
Skill Types
Rigid (TDD, debugging): Follow exactly. Don't adapt away discipline.
Flexible (patterns): Adapt principles to context.
The skill itself tells you which.
User Instructions
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.
Skills Catalog
All available skills — invoke with the Skill tool using the name value.
Process & Workflow
| Name |
When to Use |
superpowers-ruby:brainstorming |
When starting any creative work — new features, components, or behavior changes (REQUIRED) |
superpowers-ruby:test-driven-development |
When implementing any feature or bugfix — before writing implementation code (REQUIRED) |
superpowers-ruby:systematic-debugging |
When diagnosing a bug or unexpected behavior |
superpowers-ruby:writing-plans |
When planning a multi-step implementation |
superpowers-ruby:executing-plans |
When executing an existing plan |
superpowers-ruby:dispatching-parallel-agents |
When parallelizing independent work across subagents |
superpowers-ruby:subagent-driven-development |
When using subagents to implement and review code |
superpowers-ruby:verification-before-completion |
When finishing a task — before marking it done |
superpowers-ruby:finishing-a-development-branch |
When wrapping up a feature branch for PR |
superpowers-ruby:using-git-worktrees |
When needing isolated git worktrees for parallel work |
superpowers-ruby:compound |
When a non-trivial problem has just been solved — capture the solution |
Session Continuity
| Name |
When to Use |
superpowers-ruby:handoff |
When capturing session state before switching context, ending a session, or manually preserving progress |
superpowers-ruby:handoff-resume |
When starting a new session and wanting to continue from a previous handoff |
superpowers-ruby:handoff-list |
When viewing available handoff documents |
Ruby & Rails
| Name |
When to Use |
superpowers-ruby:ruby |
When writing, reviewing, or debugging pure Ruby — idiomatic patterns, Ruby 3.x+ features (pattern matching, Data.define, endless methods), memoization, result objects |
superpowers-ruby:rails-guides |
When working on any Rails-specific topic: ActiveRecord, routing, controllers, views, mailers, jobs, Action Cable, Action Text, Active Storage, migrations, validations, associations, caching, security |
superpowers-ruby:37signals-style |
When writing Rails code in 37signals/Basecamp style — controllers, models, views, Hotwire, testing, database, philosophy |
superpowers-ruby:ruby-commit-message |
When committing changes in Ruby or Rails projects — Conventional Commits format with developer-friendly body |
superpowers-ruby:sandi-metz-rules |
When reviewing or refactoring Ruby code for quality — classes <100 lines, methods <5 lines, ≤4 params, one object per controller action |
Hotwire & Stimulus
| Name |
When to Use |
superpowers-ruby:hwc-stimulus-fundamentals |
When working on Stimulus controller lifecycle, values, targets, outlets, action parameters, keyboard events — framework-level APIs |
superpowers-ruby:hwc-navigation-content |
When implementing Turbo Drive/Frames navigation: pagination, tabbed nav, lazy loading, faceted filtering, cache lifecycle, scroll restoration |
superpowers-ruby:hwc-forms-validation |
When building Hotwire form workflows: submission lifecycle, inline editing, validation errors, typeahead, modal forms |
superpowers-ruby:hwc-ux-feedback |
When adding cross-cutting UX feedback: loading states, busy indicators, progress bars, optimistic UI, page transitions |
superpowers-ruby:hwc-realtime-streaming |
When implementing push-based Hotwire: Turbo Streams over WebSocket/SSE, custom stream actions, live list updates, cross-tab sync |
superpowers-ruby:hwc-media-content |
When building media-heavy features: image/video/audio uploads, previews, playback controls, progress tracking, third-party media libs |
Security
| Name |
When to Use |
superpowers-ruby:brakeman |
When running Rails security audits, analyzing code for SQL injection/XSS/command injection, or setting up CI/CD security scanning |
Code Review & Quality
| Name |
When to Use |
superpowers-ruby:requesting-code-review |
When submitting code for review |
superpowers-ruby:receiving-code-review |
When processing incoming code review feedback |
Meta
| Name |
When to Use |
superpowers-ruby:writing-skills |
When authoring a new skill or improving an existing one |
superpowers-ruby:compound |
When capturing a non-trivial solution for compound knowledge |
superpowers-ruby:compound-refresh |
When docs/solutions/ learnings may be stale — after refactors, migrations, or dependency upgrades |
1---2name: using-superpowers3description: Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions4---56<SUBAGENT-STOP>7If you were dispatched as a subagent to execute a specific task, skip this skill.8</SUBAGENT-STOP>910<EXTREMELY-IMPORTANT>11If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.1213IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.1415This is not negotiable. This is not optional. You cannot rationalize your way out of this.16</EXTREMELY-IMPORTANT>1718## Instruction Priority1920Superpowers Ruby skills override default system prompt behavior, but **user instructions always take precedence**:21221. **User's explicit instructions** (CLAUDE.md, GEMINI.md, AGENTS.md, direct requests) — highest priority232. **Superpowers skills** — override default system behavior where they conflict243. **Default system prompt** — lowest priority2526If 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.2728## How to Access Skills2930**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.3132**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.3334**In Gemini CLI:** Skills activate via the `activate_skill` tool. Gemini loads skill metadata at session start and activates the full content on demand.3536**In other environments:** Check your platform's documentation for how skills are loaded.3738## Platform Adaptation3940Skills 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.4142# Using Skills4344## The Rule4546**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.4748```dot49digraph skill_flow {50 "User message received" [shape=doublecircle];51 "About to EnterPlanMode?" [shape=doublecircle];52 "Already brainstormed?" [shape=diamond];53 "Invoke brainstorming skill" [shape=box];54 "Might any skill apply?" [shape=diamond];55 "Invoke Skill tool" [shape=box];56 "Announce: 'Using [skill] to [purpose]'" [shape=box];57 "Has checklist?" [shape=diamond];58 "Create TodoWrite todo per item" [shape=box];59 "Follow skill exactly" [shape=box];60 "Respond (including clarifications)" [shape=doublecircle];6162 "About to EnterPlanMode?" -> "Already brainstormed?";63 "Already brainstormed?" -> "Invoke brainstorming skill" [label="no"];64 "Already brainstormed?" -> "Might any skill apply?" [label="yes"];65 "Invoke brainstorming skill" -> "Might any skill apply?";6667 "User message received" -> "Might any skill apply?";68 "Might any skill apply?" -> "Invoke Skill tool" [label="yes, even 1%"];69 "Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];70 "Invoke Skill tool" -> "Announce: 'Using [skill] to [purpose]'";71 "Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";72 "Has checklist?" -> "Create TodoWrite todo per item" [label="yes"];73 "Has checklist?" -> "Follow skill exactly" [label="no"];74 "Create TodoWrite todo per item" -> "Follow skill exactly";75}76```7778## Red Flags7980These thoughts mean STOP—you're rationalizing:8182| Thought | Reality |83|---------|---------|84| "This is just a simple question" | Questions are tasks. Check for skills. |85| "I need more context first" | Skill check comes BEFORE clarifying questions. |86| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |87| "I can check git/files quickly" | Files lack conversation context. Check for skills. |88| "Let me gather information first" | Skills tell you HOW to gather information. |89| "This doesn't need a formal skill" | If a skill exists, use it. |90| "I remember this skill" | Skills evolve. Read current version. |91| "This doesn't count as a task" | Action = task. Check for skills. |92| "The skill is overkill" | Simple things become complex. Use it. |93| "I'll just do this one thing first" | Check BEFORE doing anything. |94| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |95| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |9697## Skill Priority9899When multiple skills could apply, use this order:1001011. **Process skills first** (brainstorming, debugging) - these determine HOW to approach the task1022. **Implementation skills second** (frontend-design, mcp-builder) - these guide execution103104"Let's build X" → brainstorming first, then implementation skills.105"Fix this bug" → debugging first, then domain-specific skills.106107## Skill Types108109**Rigid** (TDD, debugging): Follow exactly. Don't adapt away discipline.110111**Flexible** (patterns): Adapt principles to context.112113The skill itself tells you which.114115## User Instructions116117Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.118119## Skills Catalog120121All available skills — invoke with the `Skill` tool using the `name` value.122123### Process & Workflow124125| Name | When to Use |126|------|-------------|127| `superpowers-ruby:brainstorming` | When starting any creative work — new features, components, or behavior changes (**REQUIRED**) |128| `superpowers-ruby:test-driven-development` | When implementing any feature or bugfix — before writing implementation code (**REQUIRED**) |129| `superpowers-ruby:systematic-debugging` | When diagnosing a bug or unexpected behavior |130| `superpowers-ruby:writing-plans` | When planning a multi-step implementation |131| `superpowers-ruby:executing-plans` | When executing an existing plan |132| `superpowers-ruby:dispatching-parallel-agents` | When parallelizing independent work across subagents |133| `superpowers-ruby:subagent-driven-development` | When using subagents to implement and review code |134| `superpowers-ruby:verification-before-completion` | When finishing a task — before marking it done |135| `superpowers-ruby:finishing-a-development-branch` | When wrapping up a feature branch for PR |136| `superpowers-ruby:using-git-worktrees` | When needing isolated git worktrees for parallel work |137| `superpowers-ruby:compound` | When a non-trivial problem has just been solved — capture the solution |138139### Session Continuity140141| Name | When to Use |142|------|-------------|143| `superpowers-ruby:handoff` | When capturing session state before switching context, ending a session, or manually preserving progress |144| `superpowers-ruby:handoff-resume` | When starting a new session and wanting to continue from a previous handoff |145| `superpowers-ruby:handoff-list` | When viewing available handoff documents |146147### Ruby & Rails148149| Name | When to Use |150|------|-------------|151| `superpowers-ruby:ruby` | When writing, reviewing, or debugging pure Ruby — idiomatic patterns, Ruby 3.x+ features (pattern matching, `Data.define`, endless methods), memoization, result objects |152| `superpowers-ruby:rails-guides` | When working on any Rails-specific topic: ActiveRecord, routing, controllers, views, mailers, jobs, Action Cable, Action Text, Active Storage, migrations, validations, associations, caching, security |153| `superpowers-ruby:37signals-style` | When writing Rails code in 37signals/Basecamp style — controllers, models, views, Hotwire, testing, database, philosophy |154| `superpowers-ruby:ruby-commit-message` | When committing changes in Ruby or Rails projects — Conventional Commits format with developer-friendly body |155| `superpowers-ruby:sandi-metz-rules` | When reviewing or refactoring Ruby code for quality — classes <100 lines, methods <5 lines, ≤4 params, one object per controller action |156157### Hotwire & Stimulus158159| Name | When to Use |160|------|-------------|161| `superpowers-ruby:hwc-stimulus-fundamentals` | When working on Stimulus controller lifecycle, values, targets, outlets, action parameters, keyboard events — framework-level APIs |162| `superpowers-ruby:hwc-navigation-content` | When implementing Turbo Drive/Frames navigation: pagination, tabbed nav, lazy loading, faceted filtering, cache lifecycle, scroll restoration |163| `superpowers-ruby:hwc-forms-validation` | When building Hotwire form workflows: submission lifecycle, inline editing, validation errors, typeahead, modal forms |164| `superpowers-ruby:hwc-ux-feedback` | When adding cross-cutting UX feedback: loading states, busy indicators, progress bars, optimistic UI, page transitions |165| `superpowers-ruby:hwc-realtime-streaming` | When implementing push-based Hotwire: Turbo Streams over WebSocket/SSE, custom stream actions, live list updates, cross-tab sync |166| `superpowers-ruby:hwc-media-content` | When building media-heavy features: image/video/audio uploads, previews, playback controls, progress tracking, third-party media libs |167168### Security169170| Name | When to Use |171|------|-------------|172| `superpowers-ruby:brakeman` | When running Rails security audits, analyzing code for SQL injection/XSS/command injection, or setting up CI/CD security scanning |173174### Code Review & Quality175176| Name | When to Use |177|------|-------------|178| `superpowers-ruby:requesting-code-review` | When submitting code for review |179| `superpowers-ruby:receiving-code-review` | When processing incoming code review feedback |180181### Meta182183| Name | When to Use |184|------|-------------|185| `superpowers-ruby:writing-skills` | When authoring a new skill or improving an existing one |186| `superpowers-ruby:compound` | When capturing a non-trivial solution for compound knowledge |187| `superpowers-ruby:compound-refresh` | When docs/solutions/ learnings may be stale — after refactors, migrations, or dependency upgrades |