# Elixir Rules
- Ensure you generate valid typespecs for all data models and functions
- Ensure your functions are well documented
- Write idiomatic elixir code
- When making code changes run `mix format --check-formatted` on the modified files
- Follow Elixir best practices for code organization and implementation
- Leverage important mix tasks to validate your code:
- `mix test` to run your test suite
- `mix test --cover` to check test coverage
- `mix docs` to generate and validate documentation
- `mix credo` to enforce code quality standards
- `mix dialyzer` to perform static code analysis
- Generate knowledge about your code by running these tools and analyzing their output
- Work with fast build-test-run loops like a senior developer would
- Make incremental changes
- Run tests frequently
- Fix issues as soon as they are discovered
- Work in small, focused commits that implement one change or feature at a time
- Break down complex tasks into a series of smaller, manageable steps