Thank you for your interest in contributing. These guidelines apply to all ZenHive repositories.
- Fork the repository
- Create a feature branch from
development(ormainif nodevelopmentbranch exists) - Make your changes
- Run the test suite and ensure all checks pass
- Submit a pull request
All ZenHive Elixir projects enforce:
mix test # All tests pass
mix dialyzer # Zero warnings
mix credo --strict # Static analysis passes
mix format --check-formatted # Code is formattedUse imperative mood: Add feature, Fix bug, Update docs — not Added, Fixes, Updated.
- Keep PRs focused on a single change
- Include tests for new functionality
- Update documentation if behavior changes
- Reference any related issues
Before contributing, understand the project's core principles:
- Extract, don't hand-write — if something can be derived from upstream data, extend the extractor
- Patterns over instances — solve for N exchanges/cases, not one
- Pure functions first — provide computation, let consumers manage state
- No silent fallbacks — fail loudly with actionable messages
- Use GitHub Issues
- Include reproduction steps
- Include Elixir/OTP version (
elixir --version) - Include relevant error output
By contributing, you agree that your contributions will be licensed under the MIT License.