# Task Constraints (from user) ## Scope of Study - **Broad survey**: Not just Rust actor frameworks — include: - Rust: ractor, actix, kameo, coerce, stakker, xactor, bastion - Non-actor runtimes: tokio, C++ node/libuv event loop - OS-level: `process` scheduling/logic in operating systems - Classic actor systems: Erlang/OTP, Akka/Pekko (JVM) - Any widely-used, well-reputed system ## Priority & Approach - **Interleaved**: Pick a topic → analyze competitors → benchmark swactor → improve → repeat - **Also improve testing methodology and coverage** based on analysis - **Look at bug report histories** of competitor projects for insights - Behavioral tests only (Given/When/Then), no white-box/structural tests ## Code Structure Rules - **src/ is frozen**: No new files, no new modules, no structural changes. Only modify existing files in-place. - **No new dependencies** on the root crate (swactor's Cargo.toml) - May add new crates to `crates/` but they must NOT be pulled into `src/` - Cap at ~5 new crates — if approaching that, prune back - Integration tests in `tests/`, benchmarks in `benches/` - Benchmark execution capped at 2 minutes max - All notes go in `CLAUDE/notes/` - Report architecture changes in `docs/` ## Commit Rules - All `cargo test` must pass (including feature-gated) - Never skip/delete tests for active code - If a fix takes >3 attempts, log and move on