Use when creating features, building components, adding functionality, or modifying behavior - explores user intent, requirements and design before implementation
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable
Use when completing tasks, implementing major features, or before merging to verify work meets requirements
Use when executing implementation plans with independent tasks in the current session