I've now done this multiple times with older Claude versions.
If the project is complex, a key thing is telling it to do a 1:1 migration with full equivalent test coverage, following TDD best practices. That gives it the right structure to reliably test its own work and the results are consistently solid.