# Contributing Keep Manicule local-first, data-free, and easy to read. - Put input normalization and validation in `Model.js`. - Keep UI, state, and process concerns in separate components. - Prefer small functions and self-explanatory names over code comments. - Add synthetic fixtures and tests for every accepted input shape. - Never commit personal libraries, API keys, or copyrighted collections. Run the complete local gate before opening a pull request: ```bash scripts/check.sh ``` For a new import shape, update `fieldAliases` or `recordsFromData`, preserve the canonical output shape, and add a normalization test. See [Adding your data](docs/ADDING-DATA.md) for the supported schema.