| 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
STOP - READ THIS FIRST
Before typing ANY response, you MUST:
- STOP - Do not start working yet
- IDENTIFY REQUEST TYPE - Is this CREATION, DEBUGGING, or QUESTION?
- IF CREATION → Load
brainstormingskill IMMEDIATELY - IF DEBUGGING → Load
systematic-debuggingskill - IF QUESTION → Check other skills or answer directly
- ANNOUNCE - Say "I'm using [skill] to [action]"
- 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
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
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
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:
- First response: ONLY load brainstorming skill
- Brainstorming: Ask questions ONE at a time
- After design approved: THEN load writing-plans
- 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:
- ☐ ANALYZE REQUEST: Is user asking to create/build/change something?
- ☐ 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.
- ☐ IF NO (QUESTION) → Check other skills or answer.
- ☐ 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:
# 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:
Read the doc
Present summary to user
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:
- Summarize the plan
- 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?"
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-plansskill.
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:
- You MUST load
SKILL(skill: "brainstorming")IMMEDIATELY. - You MUST NOT create PLAN/TodoWrite before brainstorming.
- You MUST NOT propose a solution/architecture yourself.
- You MUST NOT run GREP/GLOB/Read for implementation research.
- You MUST NOT use MCP tools for research before asking questions.
- 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-developmentorexecuting-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
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"):
- IDENTIFY: What command proves this claim?
- RUN: Execute the FULL command (fresh, complete)
- READ: Full output, check exit code, count failures
- VERIFY: Does output confirm the claim?
- 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:
- Check
<available_skills>for matches - If match found → Load with
SKILL(skill: "name")→ Follow EXACTLY - Announce which skill you're using
- 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.