Start from observable behavior

We map user flows, validation rules, persistent data, generated files, permissions, APIs, devices, scheduled jobs and deployment dependencies before selecting a new stack.

Separate business rules from accidental behavior

Rules that protect real operations should survive. Workarounds caused by old UI, broken integrations or performance defects should not be copied blindly.

Classify before rebuilding

Each area is placed into one of four buckets: keep as-is, improve partially, modernize, or rebuild when there is a clear reason.

Finish at an operational state

Completion includes repeatable deployment, data consistency, retry and failure handling, logging, recovery and a handoff another developer can understand.

See implementation examples →