<aside> 🏗️ Discipline: Prove you understand the system before you replace it. Default: Iterate.
</aside>
Existing systems contain embedded knowledge that nobody documented. Edge cases handled. Integrations tested. Failure modes discovered and patched. A rebuild throws away all of that learning and starts the discovery process over.
The new system will not have the same problems as the old system. It will have different problems, plus new versions of problems the old system already solved.
<aside> ⚠️ If any checkpoint fails, iterate instead. A rebuild proposal requires explicit answers to all five.
</aside>
Before rebuilding, try running the process manually. If you can replicate it, you understand it well enough to potentially rebuild. If you cannot, the existing system contains logic you do not understand, and a rebuild will rediscover that logic the hard way.