rust-java-migration-testing
Installation
SKILL.md
Java-to-Rust Migration Testing
Prove observable compatibility and Rust safety properties, not test volume. Treat the complete source test suite as a non-negotiable compatibility floor: migrate 100% of its test cases without weakening inputs or assertions, copy every test fixture/data/script byte-for-byte into the target repository, and make both implementations produce the same per-case observable result. Build three explicit test ledgers in this order:
Mandatory verification structure
- Require exact Java/Rust path parity; every
MISPLACEDor missingfile-map.csvtarget blocks completion. - Treat E0583/E0761/E0405/E0425/E0659 and broken fixture paths as structural failures after file moves.
- Treat up to 500 physical lines as normal, review authored
.rsfiles from 501–800 lines for cohesion, and block files above 800 lines; split suites by contract or behavior family rather than arbitrary ranges. - Allow focused unit tests in
#[cfg(test)]modules beside their implementation. Put public-boundary, cross-module, differential, host, load, and whole-project tests intests/or a non-published test/testkit crate. - Run path audit, fmt, default/all-feature check, Clippy, complete tests, golden/live differential, migration audit, and the project coverage gate without using any one result as parity proof.
Read Directory parity verification and Migration verification SOP.