Stop rule: If the baseline does not pass before migration, stop. Otherwise you will not know whether the migration caused the failure or merely revealed it.
1. Define the boundary
Know exactly what is changing and how you will recover.
2. Establish a passing baseline
Capture what “working” means before changing syntax.
3. Choose and pin the target
Reduce moving parts so a failure has fewer possible causes.
4. Migrate one component at a time
Make a behavior map before changing the component API.
5. Control shared state
A gradual migration may keep stores and runes side by side.
6. Protect SSR and hydration
Browser success does not prove server success.
7. Verify after every small change
Keep the suspect list short.
8. Release with a recovery plan
Production is another test environment, only less forgiving.
Evidence record
A few recorded facts are more useful than “I think it passed.”