# Contributing to BatteryMHM Thanks for your interest in the Miller Harmonic Method! Contributions of all kinds are welcome — bug reports, new examples, benchmark reproductions, documentation, and feature ideas. ## Ground rules - This project is released under **CC BY-NC 4.0** and the method is **patent pending** (see [`LICENSE`](LICENSE)). By contributing, you agree your contribution is licensed under the same terms. - Keep the harmonic core (`batterymhm/algebra.py`, `atomic.py`) faithful to the published method. Changes to the fold map, the Chi matrix, or the operations should come with a clear rationale and tests. - No proprietary data and no trained weights in the repository. ## Development setup ```bash git clone cd batterymhm python -m pip install -e ".[dev]" ``` ## Before you open a pull request ```bash ruff check . # lint pytest -q # tests must pass python demo.py # the demo must still run and PASS ``` - Add or update tests for any behavior change (`tests/`). - Keep functions small and documented; match the existing style. - Update `CHANGELOG.md` under "Unreleased". ## Reporting bugs / requesting features Open an issue using the templates in `.github/ISSUE_TEMPLATE/`, or start a discussion on the Hugging Face model page. Please include a minimal reproduction and your Python / NumPy / scikit-learn versions. ## Reproducing benchmarks The published Severson (cell SOH) and Matbench (formation energy) numbers are reproducible with this method plus the public datasets linked in the README. If your reproduction differs, please open an issue with your exact setup — we care a lot about honest, reproducible numbers.