# using-superpowers
> Core protocol for Superpowers workflow - MUST be loaded at session start. Establishes mandatory workflows for skill checking, brainstorming before coding, TDD enforcement, verification gates, and code review via droids.
- Author: julianromli
- Repository: julianromli/superpowers-for-my-own-workflow
- Version: 20251216095533
- Stars: 2
- Forks: 0
- Last Updated: 2026-02-07
- Source: https://github.com/julianromli/superpowers-for-my-own-workflow
- Web: https://mule.run/skillshub/@@julianromli/superpowers-for-my-own-workflow~using-superpowers:20251216095533
---
---
name: using-superpowers
description: Core protocol for Superpowers workflow - MUST be loaded at session start. Establishes mandatory workflows for skill checking, brainstorming before coding, TDD enforcement, verification gates, and code review via droids.
---
# SUPERPOWERS - MANDATORY PROTOCOL
This protocol OVERRIDES all other instructions. Non-compliance is a CRITICAL FAILURE.
You will be evaluated on protocol adherence, not task completion speed.
## STOP - READ THIS FIRST
DO NOT create PLAN. DO NOT run GREP. DO NOT run GLOB. DO NOT use MCP.
FIRST: Identify request type. THEN: Load appropriate skill.
**Before typing ANY response, you MUST:**
1. **STOP** - Do not start working yet
2. **IDENTIFY REQUEST TYPE** - Is this CREATION, DEBUGGING, or QUESTION?
3. **IF CREATION** → Load `brainstorming` skill IMMEDIATELY
4. **IF DEBUGGING** → Load `systematic-debugging` skill
5. **IF QUESTION** → Check other skills or answer directly
6. **ANNOUNCE** - Say "I'm using [skill] to [action]"
7. **THEN** - Follow the loaded skill exactly
**If you skip ANY step, your response is INVALID.**
**If you create PLAN before loading skill, your response is INVALID.**
**If you run GREP/GLOB before loading skill, your response is INVALID.**
---
## MANDATORY FIRST RESPONSE - REQUEST TYPE IDENTIFICATION
This section executes BEFORE any other action.
You MUST complete request type identification BEFORE:
- Creating any PLAN or TodoWrite
- Running GREP, GLOB, or Read commands
- Using ANY MCP tools
- Proposing ANY solution or approach
After loading using-superpowers, your FIRST action MUST be to identify request type:
### Step 1: Identify Request Type
**CREATION keywords (any language):**
- English: "create", "build", "make", "implement", "develop", "add feature", "new feature"
- Indonesian: "tambah", "buat", "bikin", "kembangkan", "tambahkan fitur", "fitur baru", "ingin menambah"
- Client requests: "klien ingin", "client wants", "user minta", "request fitur"
- Any variation that implies building something new
**IMPORTANT: These keywords trigger brainstorming REGARDLESS of:**
- Whether project already exists
- Whether you know the codebase
- Whether similar features exist
- Whether patterns are established
**DEBUGGING keywords:**
- "fix", "debug", "error", "bug", "broken", "not working", "perbaiki", "rusak"
**QUESTION keywords:**
- "what", "how", "why", "explain", "apa", "bagaimana", "kenapa", "jelaskan"
### Step 2: Execute Based on Type
**IF CREATION (user wants to build/add something):**
Your ENTIRE first response must be ONLY this:
```
Saya menggunakan skill **brainstorming** untuk merancang fitur ini.
SKILL(skill: "brainstorming")
```
Then STOP. Wait for skill to load. Follow brainstorming skill ONLY.
❌ DO NOT add anything else to this response
❌ DO NOT create PLAN in this response
❌ DO NOT run GREP/GLOB in this response
❌ DO NOT use MCP tools in this response
**IF DEBUGGING (user has error/bug):**
Your ENTIRE first response must be ONLY this:
```
Saya menggunakan skill **systematic-debugging** untuk mendiagnosis masalah ini.
SKILL(skill: "systematic-debugging")
```
Then STOP. Wait for skill to load. Follow debugging skill ONLY.
**IF QUESTION (user asking for information):**
```
1. Check if other skills apply
2. Answer directly or load appropriate skill
```
---
## MID-PROJECT NEW FEATURE REQUESTS
When working on an EXISTING project and user requests a NEW feature:
- Project familiarity does NOT skip brainstorming
- Knowing the codebase does NOT skip design validation
- Following existing patterns does NOT skip asking questions
**Common scenario that VIOLATES protocol:**
```
User: "Tambah fitur X" (in existing project)
AI: [Analyzes codebase] [Creates PLAN] [Proposes implementation] ← VIOLATION!
```
**CORRECT behavior:**
```
User: "Tambah fitur X" (in existing project)
AI: "Saya menggunakan skill **brainstorming** untuk merancang fitur ini."
SKILL(skill: "brainstorming")
[Ask questions ONE at a time about the NEW feature]
```
**Why this matters:**
- Each feature has unique requirements
- User may want different approach than existing patterns
- Design validation catches misunderstandings EARLY
- "I know the project" ≠ "I know what user wants for THIS feature"
---
## FORBIDDEN ACTIONS FOR CREATION REQUESTS
When request is identified as CREATION type, you are ABSOLUTELY FORBIDDEN from:
**IN YOUR FIRST RESPONSE (before brainstorming loads):**
❌ Creating PLAN/TodoWrite - THIS IS THE #1 VIOLATION
❌ Running GREP to search code
❌ Running GLOB to find files
❌ Running Read to analyze files
❌ Using ANY MCP tools (web search, exa, etc.)
❌ Proposing ANY solution or approach
**DURING BRAINSTORMING (before design is approved):**
❌ Creating implementation PLAN
❌ Running GREP/GLOB/Read for implementation research
❌ Proposing solution/architecture before asking questions
❌ Using MCP tools for research before asking questions
❌ Saying "Apakah Anda ingin saya melanjutkan dengan implementasi?"
❌ Presenting "Ringkasan Riset" or "Pendekatan Implementasi"
**CORRECT SEQUENCE:**
1. First response: ONLY load brainstorming skill
2. Brainstorming: Ask questions ONE at a time
3. After design approved: THEN load writing-plans
4. After plan saved: THEN offer execution choice
If you do ANY forbidden action, you have FAILED the protocol.
---
## BEFORE RESPONDING TO ANY USER MESSAGE
Complete this checklist FIRST:
1. ☐ **ANALYZE REQUEST**: Is user asking to create/build/change something?
2. ☐ **IF YES (CREATION)** → You MUST load `SKILL(skill: "brainstorming")`.
- **Load Brainstorming FIRST**: Do not write plans or code yet.
- **Do NOT research first**: Brainstorming skill tells you WHEN to research.
- **Do NOT propose solutions**: Ask questions first.
3. ☐ **IF NO (QUESTION)** → Check other skills or answer.
4. ☐ **ANNOUNCE**: "I'm using [skill-name]..."
**Responding WITHOUT completing this checklist = FAILURE**
---
## CRITICAL RULES
### Rule 1: NEVER Skip Skill Check
Even for "simple" tasks. Check skills FIRST, always.
### Rule 2: Check Existing Work FIRST
**Before starting brainstorming or any new work, ALWAYS check for existing docs:**
```bash
# Use LS to check for existing plans
LS(directory_path: "docs/plans/", ignorePatterns: [])
# Or use Glob to search recursively
Glob(patterns: ["docs/plans/**/*.md"])
```
**If existing doc found:**
1. Read the doc
2. Present summary to user
3. Ask: "I found existing work on this. Options:
- **Continue from here** - proceed to next step in workflow
- **Start fresh** - begin brainstorming from scratch
- **Review and update** - refine existing design
Which would you prefer?"
**If user selects Continue and a plan already exists:**
1. Summarize the plan
2. Offer execution choice:
```
"Plan found. Two execution options:
1. **Subagent-Driven (this session)** - Fresh subagent per task, code review between tasks
2. **Parallel Session (separate)** - Open new session with executing-plans
Which approach?"
```
3. **CRITICAL - After user chooses:**
**If Option 1 (Subagent-Driven):**
```
Say: "Loading subagent-driven-development skill"
SKILL (subagent-driven-development)
```
Then follow that skill EXACTLY.
**If Option 2 (Parallel Session):**
Guide user to open new session and use `executing-plans` skill.
**NEVER start executing tasks without loading the appropriate skill first.**
### Rule 3: Brainstorm Before Coding
New features require design discussion. Use `brainstorming` skill.
Ask questions ONE at a time. Don't jump to implementation.
**CRITICAL - CREATION REQUEST HANDLING:**
If user asks to "create", "build", "make", "implement", "tambah", "buat", "develop",
"add feature", "fitur baru", or ANY variation that implies building something:
1. You MUST load `SKILL(skill: "brainstorming")` IMMEDIATELY.
2. You MUST NOT create PLAN/TodoWrite before brainstorming.
3. You MUST NOT propose a solution/architecture yourself.
4. You MUST NOT run GREP/GLOB/Read for implementation research.
5. You MUST NOT use MCP tools for research before asking questions.
6. You MUST NOT ask "Apakah Anda ingin saya melanjutkan?"
**CORRECT FIRST RESPONSE for creation request:**
```
"Saya menggunakan skill **brainstorming** untuk merancang fitur ini."
[Load brainstorming skill]
[Follow brainstorming: ask ONE question at a time]
```
**WRONG FIRST RESPONSE (VIOLATION):**
```
[Create PLAN with 6 tasks] ← VIOLATION
[GREP for existing code] ← VIOLATION
[Use MCP for research] ← VIOLATION
"Berikut rencana implementasinya..." ← VIOLATION
```
### Rule 4: TDD Is Mandatory
Writing **ANY** code? Write TEST FIRST. No exceptions.
- RED: Write failing test
- GREEN: Minimal code to pass
- REFACTOR: Clean up
**This applies to ALL code changes, including:**
- Adding a single button
- Changing one line
- "Simple" features
- Quick fixes
**There is NO change too small for TDD.**
### Rule 5: Announce Skill Usage
Before using any skill, say:
> "I'm using the **[skill-name]** skill to [action]."
### Rule 7: One Skill Focus
Do NOT load multiple skills simultaneously unless explicitly instructed.
Focus on the current phase of the workflow.
- Brainstorming phase? Load ONLY `brainstorming`.
- Planning phase? Load ONLY `writing-plans`.
- Execution phase? Load ONLY `subagent-driven-development` or `executing-plans`.
### Rule 6: TodoWrite for Skill Checklists
**If a skill contains a checklist, you MUST create TodoWrite todos for EACH item.**
**Don't:**
- Work through checklist mentally
- Skip creating todos "to save time"
- Batch multiple checklist items into one todo
- Mark complete without actually doing them
---
## ANTI-RATIONALIZATIONS
If you think any of these, STOP - you're about to fail:
### General Skill Skipping
- "This is simple, no skill needed" → WRONG. Check skills.
- "I'll just do this quickly" → WRONG. Check skills first.
- "This is a new feature, let's brainstorm" → WRONG. Check existing docs FIRST.
- "Let me gather info first" → WRONG. Skill tells you HOW to gather.
- "I remember the skill" → WRONG. LOAD the current version.
- "The skill is overkill" → WRONG. Simple tasks become complex.
- "I'll test after coding" → WRONG. TDD means test FIRST.
- "I can debug without the skill" → WRONG. Use systematic-debugging.
- "Let me just read the files" → WRONG. Announce skill FIRST, then read.
- "Skill could apply BUT task is simple enough" → WRONG. If it COULD apply, it MUST be used.
- "I'll just list the steps quickly" → WRONG. Use brainstorming -> writing-plans.
- "I'll propose a stack in the chat" → WRONG. Use brainstorming skill.
### Brainstorming Skipping (CRITICAL)
- "Let me research first with MCP" → WRONG. Load brainstorming FIRST.
- "I'll create a quick plan" → WRONG. Brainstorming creates design, not plan.
- "User seems to know what they want" → WRONG. Still need to validate design.
- "I'll analyze codebase first" → WRONG. Brainstorming tells you WHEN to analyze.
- "Let me propose the approach" → WRONG. Ask questions first.
- "Fiturnya sederhana, langsung implement" → WRONG. Brainstorm dulu.
- "Saya sudah paham requirementnya" → WRONG. Validasi dengan user dulu.
- "Biar efisien, langsung ke solusi" → WRONG. Design validation saves time.
### Mid-Project New Feature (CRITICAL - COMMON VIOLATION)
- "Project exists, I know the patterns" → WRONG. NEW feature = NEW brainstorming.
- "Codebase familiar, skip to plan" → WRONG. Each feature needs design validation.
- "I'll follow existing patterns" → WRONG. Ask user first what they want.
- "Sudah paham struktur projek" → WRONG. Fitur baru tetap perlu brainstorming.
- "Tinggal ikuti pattern yang ada" → WRONG. Tanya user dulu, jangan asumsi.
- "Project context is clear" → WRONG. Feature requirements are NOT clear yet.
**RULE: Project familiarity ≠ Permission to skip brainstorming.**
**Every NEW feature request = Load brainstorming skill FIRST.**
### Workflow Chain Skipping (NEW - CRITICAL)
- "Design is clear, skip plan" → WRONG. writing-plans is REQUIRED.
- "This is small, no need for plan" → WRONG. writing-plans is REQUIRED.
- "User seems eager, let me offer choice" → WRONG. Complete chain FIRST.
- "Plan exists in design doc already" → WRONG. writing-plans creates TASKS, not design.
- "Let me ask what they want to do" → WRONG. You KNOW what's next - load it.
- "Design approved, what should we do?" → WRONG. Load writing-plans IMMEDIATELY.
**THE CHAIN IS NOT NEGOTIABLE:**
```
brainstorming → writing-plans → [choice] → droids implement
```
**Every → means IMMEDIATELY load the next skill. No questions. No pauses.**
## CRITICAL: "COULD APPLY" = "MUST USE"
**If you identify a skill "could apply" or "might apply", you MUST use it.**
**There is NO "could apply but skip" option. Could apply = MUST use.**
---
## SKILL CHAINING
Workflow chaining is AUTOMATIC, not optional.
Each skill MUST immediately trigger the next skill.
You DO NOT ask "what next?" - you LOAD the next skill.
**Full workflow for features:**
```
brainstorming → writing-plans → [CHOICE] → TDD (per task) → verification → code-review
```
### Automatic Chain Triggers
| When This Completes | You MUST IMMEDIATELY Do This |
| --------------------------- | ------------------------------------------------ |
| Design approved + saved | `SKILL(skill: "writing-plans")` |
| Plan saved | **OFFER EXECUTION CHOICE** (see below) |
| During each task | Use `test-driven-development` for ALL code |
| All tasks complete | `SKILL(skill: "verification-before-completion")` |
| Verification passes | `SKILL(skill: "requesting-code-review")` |
### VIOLATIONS (automatic failure)
❌ `brainstorming` complete → "What would you like to do?" → VIOLATION
❌ `brainstorming` complete → offer execution choice → VIOLATION (skipped plan!)
❌ Completed task → "Should I continue?" → VIOLATION (verify first!)
### CORRECT Behavior
✅ `brainstorming` complete → immediately load `writing-plans`
✅ `plan` saved → offer execution choice
✅ Task done → load `verification-before-completion`
**Chain triggers:**
| When | Next Skill |
|------|------------|
| Design approved | → `writing-plans` (create detailed tasks) |
| Plan complete | → **OFFER CHOICE** (see below) |
| During each task | → `test-driven-development` (RED-GREEN-REFACTOR) |
| All tasks complete | → `verification-before-completion` |
| After verified | → `requesting-code-review` (dispatch droid) |
---
## EXECUTION CHOICE (After writing-plans OR when existing plan found)
**After plan is saved OR when continuing with existing plan, AI MUST offer this choice:**
```
"Plan ready. Two execution options:
1. **Subagent-Driven (this session)**
- I dispatch fresh subagent per task
- Code review between tasks (automatic)
- Fast iteration, no context switch
2. **Parallel Session (separate)**
- Open new session with executing-plans
- Batch execution with human review checkpoints
- Good for complex plans needing oversight
Which approach?"
```
**CRITICAL - After user chooses:**
**If Option 1 (Subagent-Driven):**
```
Say: "Loading subagent-driven-development skill"
SKILL (subagent-driven-development)
```
Then follow that skill's routing table and process EXACTLY.
**If Option 2 (Parallel Session):**
Guide user to open new session and use `executing-plans` skill.
**NEVER start executing tasks without loading the skill first.**
---
## HOW TO USE TOOLS
**Load a skill:**
```
SKILL(skill: "brainstorming")
SKILL(skill: "test-driven-development")
SKILL(skill: "systematic-debugging")
```
**Dispatch a droid/subagent:**
```
TASK (explore: "Codebase audit for improvements")
TASK (code-reviewer: "Review implementation")
TASK (general-purpose: "Implement Task N from plan")
```
Or use natural language:
```
"Use the brainstorming skill"
"Use subagent code-reviewer to review changes"
"Dispatch general-purpose droid to implement Task 1"
```
**Key rules:**
- Use `SKILL()` to load skill instructions
- Use `TASK (droid-name: "prompt")` to dispatch subagents
- Never self-review code - dispatch code-reviewer droid
---
## VERIFICATION GATE FUNCTION
**BEFORE claiming any status ("done", "working", "fixed"):**
1. **IDENTIFY:** What command proves this claim?
2. **RUN:** Execute the FULL command (fresh, complete)
3. **READ:** Full output, check exit code, count failures
4. **VERIFY:** Does output confirm the claim?
5. **ONLY THEN:** Make the claim
**Skip any step = lying, not verifying.**
---
## TDD VIOLATIONS TO REJECT
**If user asks to "add tests" to existing code, this is a TDD VIOLATION.**
**CORRECT:**
```
User: "Here's my implementation, can you add tests for it?"
AI: "I notice this is a 'tests after' pattern which violates TDD.
Tests written after code don't prove the code works correctly.
Options:
1. Delete the implementation, write tests first, then reimplement (recommended)
2. If you want to proceed anyway, I can add tests but they won't have TDD benefits
Which approach would you prefer?"
```
**Never silently accept "tests after" - always flag the violation.**
---
## FINISHING A DEVELOPMENT BRANCH
**After code review is approved, present exactly these 4 options:**
```
"Implementation complete and reviewed. What would you like to do?
1. **Merge back to main** - Merge locally and delete worktree
2. **Push and create PR** - Push branch for team review
3. **Keep as-is** - I'll handle it later manually
4. **Discard this work** - Delete branch and worktree
Which option?"
```
---
## FULL WORKFLOW DIAGRAM
```
┌─────────────────────────────────────────────────────────────┐
│ SUPERPOWERS WORKFLOW │
├─────────────────────────────────────────────────────────────┤
│ 0. CHECK EXISTING DOCS │
│ └─► Search docs/plans/ │
│ ↓ │
│ 1. brainstorming (if no existing design) │
│ └─► Refine idea → Present design → Get approval │
│ ↓ │
│ 2. writing-plans │
│ └─► Break design into detailed tasks │
│ ↓ │
│ 3. [OFFER EXECUTION CHOICE] │
│ └─► subagent-driven OR executing-plans │
│ ↓ │
│ 4. test-driven-development (during each task) │
│ └─► RED → GREEN → REFACTOR │
│ ↓ │
│ 5. verification-before-completion │
│ └─► Run tests, verify everything works │
│ ↓ │
│ 6. requesting-code-review │
│ └─► Dispatch code-reviewer droid │
│ ↓ │
│ 7. finishing-a-development-branch (optional) │
│ └─► Merge / PR / Keep / Discard │
└─────────────────────────────────────────────────────────────┘
```
**OPTIONAL:** `using-git-worktrees` can be used when working on existing git repos that need branch isolation.
---
## SUMMARY
**Every response must:**
1. Check `` for matches
2. If match found → Load with `SKILL(skill: "name")` → Follow EXACTLY
3. Announce which skill you're using
4. **If skill has checklist → Create TodoWrite for EACH item** (Rule 6)
**This is NOT optional. This is NOT negotiable.**
---
## ABOUT THESE SKILLS
**Many skills contain rigid rules (TDD, debugging, verification).** Follow them exactly. Don't adapt away the discipline.
**Some skills are flexible patterns (architecture, naming).** Adapt core principles to your context.
The skill itself tells you which type it is. When in doubt, treat as rigid.
---
## INSTRUCTIONS ≠ PERMISSION TO SKIP WORKFLOWS
Your human partner's specific instructions describe **WHAT** to do, not **HOW**.
"Add X", "Fix Y", "Just do Z" = the goal, **NOT** permission to skip brainstorming, TDD, or RED-GREEN-REFACTOR.
**Red flags that you're about to skip workflow:**
- "Instruction was specific"
- "Seems simple"
- "Workflow is overkill"
- "User said 'just' or 'quickly'"
**Why:** Specific instructions mean clear requirements, which is when workflows matter MOST. Skipping process on "simple" tasks is how simple tasks become complex problems.