Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,12 @@ Echo is a deterministic, renderer-agnostic engine. We prioritize:
## Testing Expectations
- Write tests before or alongside code changes.
- `cargo test` must pass locally before PR submission.
- Add unit/integration coverage for new logic; Lua/TypeScript tooling will regain coverage when reintroduced.
- Add unit/integration coverage for new logic; Rhai/TypeScript tooling will regain coverage when reintroduced.
- For WASM / living specs:
- Install toolchain target: `rustup target add wasm32-unknown-unknown`.
- Install Trunk once: `cargo install --locked trunk`.
- Dev loop for Spec-000: from repo root run `make spec-000-dev` (hot reload at http://127.0.0.1:8080).
- Release build: `make spec-000-build` (outputs to `specs/spec-000-rewrite/dist/`).

## Documentation & Telemetry
- Update relevant docs in `docs/` whenever behavior or architecture changes.
Expand All @@ -59,7 +64,7 @@ Echo is a deterministic, renderer-agnostic engine. We prioritize:

## Code Style
- Rust code must pass `cargo fmt` and `cargo clippy` without warnings.
- Lua scripts should remain deterministic (no uncontrolled globals, RNG via engine services).
- Rhai scripts should remain deterministic (no uncontrolled globals, RNG via engine services).
- TypeScript tooling (when active) lives in `reference/typescript/`; follow local lint configs when reactivated.
- Avoid non-deterministic APIs (no wall-clock, no uncontrolled randomness). Use Echo’s deterministic services.

Expand Down
Loading
Loading