We work out what the old system actually does
Where source code is available we read it. Where it is not, we test the system with known inputs and record what comes out, which is slower but works on anything.
- Source read where it exists, behaviour tested where it does not
- Workarounds captured, not dismissed as bad habits
- Every recovered rule documented and confirmed