- Analyze carefully and propose a solution
- Depict the process/plan: generates flowcharts or architecture diagrams
- Show me the data flow: traces how information moves through the code
- Visualize the state transitions: useful for UI
- Map the dependencies: clarifies what relies on what
- What would be the naive implementation of this: builds intition for why complexity matters
- Before writing the code, outline test cases that needs to pass: improves correctness
- Generate the implementation, then refactor for readability: two-step quality pass
- What's still hard coded that should be configurable: surfaces technical debt early
- Summarize architecture decisions so far: prevents drift
- List the constraints we've agreed on: keep implicit requirements explicit