---
trigger: model_decision
description: In the beginning of a new conversation with the user. When user asks you to implement something - a feature, a class, class method, property, test.
---
# Rule: Plan Before Doing
All work starts with planning:
- Read the feature or spec in full.
- Think about packages we will bring in - consult user which one to use if there is more than one serving the purpose.
- Don't forget that we need to update requirements.txt if we adding packages
- Assess the current codebase - modles, views, utils, etc. Write down what is implemented, what needs to change, what needs to be added.
- When reviewing the codebase - do not assume the method exists simply because there is a signature and a docstring - verify if its really there, you may find just a "TODO:" or "raise NotImplementedError"
- Scan the docs/architecture folder - note any inconsistencies we have between architecture docs and the implementation you scanned. Ask user to resolve them.
- Create a written step-by-step plan: models, APIs, services, views, and tests (ABSOLUTELY DONT FORGET TESTS), styles, components - everything.
- Review and get plan approval from the user before coding.