# Contributing

Issues and pull requests are welcome when they include a focused explanation,
tests for behavior changes, and a short note about parser coverage or
diagnostic stability.

Before opening a change, run:

```bash
moon fmt
moon check --deny-warn --target all
moon test --target all
moon info
git diff --exit-code
```

Please keep public APIs small, preserve source spans when adding syntax, and
avoid introducing a parser runtime dependency for functionality that can be
expressed in the handwritten front end. New rules should document their code,
severity, false-positive boundary, and an executable fixture.

The default branch is `main`. Commits should describe one coherent change and
should not include `_build/` or local Mooncakes caches.
