swactor/CLAUDE/notes/constraints.md

31 lines
1.4 KiB
Markdown
Raw Normal View History

# 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