
Use when starting feature work that needs git isolation or before writing committed spec, plan, or code artifacts
Use when defining or changing behavior and the work has not yet been designed, approved, and scoped
Use when deciding which SuperPawers skill should govern a new task or workflow step, before taking any other action
Use when implementation is complete and you need to handle branch completion - merge, PR, keep, or discard
Use when a request involves multiple steps or files, or when an approved design must be turned into a detailed implementation plan
Use when a task list exists or is being created for multi-step implementation work, whether from a formal plan or an ad-hoc breakdown
Use when completing tasks, implementing major features, or before merging to verify work meets requirements
Use when implementation is complete and you need to handle workspace completion - merge, PR, keep, or discard
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Use when about to research, review, implement, or verify — before dispatching generic subagents (explore, general) or doing subagent-worthy work inline. Always dispatch superpawers subagents instead.
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated workspace with smart base branch detection
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
Use when an error appears deep in the call stack, when invalid data reaches a function and the source is unclear, or when you need to find which test or code path triggers a problem
Use when facing 2+ independent tasks or investigations that can be worked on without shared state or sequential dependencies
Use when tests have race conditions, timing dependencies, or pass and fail inconsistently, especially when tests use arbitrary delays like setTimeout or sleep
Use when a fix validates at only one point in the data flow, when a bug could recur through different code paths, or when the same invalid data could reach internal functions from multiple callers
Use when implementing any feature or bugfix, before writing implementation code
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
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