Contributing
Before changing Jazz, read the status, roadmap, and governance to distinguish current behavior from planned work.
Repository map
src/contains the active Haskell compiler and runtime.jazz/contains the Jazz-authored standard library and hosted compiler.app/contains the command-line entry point.test/contains compiler, runtime, CLI, and repository suites.examples/contains checked teaching programs.programs/contains production-shaped correctness and benchmark cases.
Before changing Jazz
Semantic language changes are RFC-first. Maintenance and documentation fixes that preserve observable behavior may proceed implementation-first. In either case, keep implementation, focused tests, and affected public documentation in the same change.
Enter the reproducible Nix development shell and use focused tests while working. Before review, run the verification tier appropriate to the change. Long parser-scale, corpus, profiling, and benchmark workloads run weekly, manually, or for release candidates rather than on every pull request.
The canonical contributor guide contains setup, command, repository-ownership, RFC, CI-tier, issue, and pull-request details.
Public examples
A complete runnable program used in public documentation belongs under
examples/; inline code is a fragment. If an example contradicts the
implementation, correct the claim or propose a language change rather than
changing semantics to fit the prose.