[Mova](https://md.mova.elamur.ai/free/en/) · [this page in HTML](https://mova.elamur.ai/free/en/docs/CONTRIBUTING/)

[home](https://md.mova.elamur.ai/free/en/) / [docs](https://md.mova.elamur.ai/free/en/docs/) / Contributing to Mova

# Contributing to Mova

Thank you for helping. Mova is small on purpose, so a good change is usually small too.

## Before you start

- Read [Mova](https://md.mova.elamur.ai/free/en/docs/) and [Architecture](https://md.mova.elamur.ai/free/en/docs/docs/architecture/). AI agents start with [AGENTS.md — Mova](https://md.mova.elamur.ai/free/en/docs/AGENTS/).
- Open an issue first for anything bigger than a fix, so we can agree on how it will be measured.

## How we work

- **English everywhere** in code, comments, docs and commit messages.
- **Mechanics in Rust.** Grep for what exists before writing new code.
- **Deterministic.** Use `BTreeMap`/`BTreeSet` where order matters. Run twice: the outputs must be identical.
- **Measure before you claim.** State every number with its command and date. Decide on the training splits and the two-fold check (`cv`); the held-out tests are run once per release.
- **Negative controls.** A gate that cannot show red is not a gate.
- **Licences of data** ([Data and model licences](https://md.mova.elamur.ai/free/en/docs/licence/DATA/)): non-commercial and research-only data only for tests; CC BY-SA data quoted and tested on, never shipped or modified into a release.

## Build and test

```
export MOVA_DATA=~/mova-data
./install.sh
cargo build --release
tests/run.sh
```

## Sending a change

- Small, logical commits, signed off (`git commit -s`, the [Developer Certificate of Origin](https://developercertificate.org/)).
- In the pull request, say what changed and what it measured before and after.
- Contributions are accepted under the licences of the repository ([Elamur Cosmic License](https://md.mova.elamur.ai/free/en/docs/LICENSE/), [licence/](https://md.mova.elamur.ai/free/en/docs/licence/)).

Questions: open an issue, write to [ai@elamur.ai](mailto:ai@elamur.ai), or join our Discord server: [discord.gg/elamur](https://discord.gg/elamur).
