Contributing
Contributions are welcome. The project is MIT licensed and built to be forked,
learned from, and extended. This page is the short version; the repository’s
CONTRIBUTING.md is the authoritative record.
The one rule
Section titled “The one rule”Before anything else: contributions must honour the honesty mandate. Real physics, real data, no fake numbers; label the illustrative; license and credit every asset. A visually impressive PR that fabricates a value will not be merged.
Development setup
Section titled “Development setup”git clone https://github.com/Hotragn/H.O.T-EARTH.gitcd H.O.T-EARTHnpm installnpm run devBefore you open a PR
Section titled “Before you open a PR”Run the checks locally. All three should pass.
npm run test # Vitest: pure logic in lib/ is fully coverednpx tsc --noEmit # types must be cleannpm run build # a production build must succeedCode style
Section titled “Code style”- Physics and data logic goes in
lib/, as pure functions with tests and the null-safety contract (bad input returnsnullor[], never throws). Do not put math in components. - New worlds start in
lib/worlds.tsand follow the existing per-world pattern. See Build your first world. - Match the surrounding code: naming, comment density, and idioms. Keep the mission-control aesthetic and the existing design tokens.
- Write the notes. A new world or data layer ships with its
*_PHYSICS.mdand*_DATA_SOURCES.md, stating accuracy bounds and credits.
PR flow
Section titled “PR flow”- Branch from
main(for examplefeature/your-world). - Make focused changes with tests.
- Ensure tests, types, and build are green.
- Open a PR describing what is real, what is illustrative, and your sources.
Where to ask
Section titled “Where to ask”- GitHub Discussions for questions and ideas.
- Issues for bugs and data problems. The “Was this page helpful?” widget on each doc page opens a prefilled issue for docs feedback.