Documentation » Server & Development
For: developer
Contributing & Verification
The required checks and fidelity rules for changing the Go port safely.
Read the governing rulebook
Before changing player-observable behavior, read docs/fidelity/RULEBOOK.md. Its five rules govern the port:
- Player-facing bytes are law.
- The command surface is part of the game.
- Random draws and operation order must remain deterministic.
- Do not invent behavior the C game did not have.
- Verify the reachable call path and audit the whole class of repeated failures.
Format and verify
Run the repository formatter and all four required checks before committing:
make fmt
go build ./...
go vet ./...
go test ./...
golangci-lint run ./...
Website-only changes still use the Astro build from website-astro/:
npm run build
Work with the oracle
The src/ tree and the separate C oracle are read-only ground truth. Never repair a mismatch by editing them. Add or extend a differential scenario, prove the Go output against the reachable C function, and cite the applicable rule number in the change record.