SEMAPRAX

September 3, 2026 ยท View on GitHub

Claude Code loads this file automatically. The repository's operating invariants, read order, and change protocol live in AGENTS.md and are imported below rather than restated, so the two cannot drift apart.

@AGENTS.md

Before you finish

Run the gate profile for the change, not a bare cargo test:

scripts/quality.sh full      # or: quick | changed

Quality gates explains profile selection. Clippy runs with -D warnings, so an unused import fails the build.

Known conditions

cargo test --locked -p semaprax --lib aborts with a stack overflow on a default-stack debug build in two tests: wasm::internal_strings::tests::nesting::nested_if_compile_on_default_stack and cleanup_plan::build::iterative_lowering_tests::long_identity_cleanup_dag_owned_census_covers_many_deep_roots. Both reproduce on an unmodified tree and are not caused by your change; skip them with -- --skip nested_if_compile_on_default_stack --skip long_identity_cleanup_dag_owned_census_covers_many_deep_roots.

A full --workspace --all-targets test build links several hundred integration binaries and needs well over 10 GB. Build with CARGO_INCREMENTAL=0 and CARGO_PROFILE_TEST_DEBUG=0 when disk is limited.