The original system becomes the answer key. Cases are generated at every boundary and every known conflict. The original's result for each case is recorded, and the rebuild must give the same result for every case on every build.
Akka Specify runs the answer key on every build of the rebuild. A build fails the moment a result differs from the original, long before acceptance testing.
An existing system often lives in several forms at once: rate tables or rules in a spreadsheet, the code written around them, and the production service that other systems call. What the system does is known only by running it.
Discovery reads each of those sources and runs the original. Analysis lines the sources up and lists every place they disagree, and an owner signs a decision for each conflict before any code is written. The original then runs as an oracle: cases are generated at every weight break, every boundary between zones or tiers, every combination of rules and every recorded conflict, and the original's answer to each one is locked as the answer key.
The rebuild is correct when it gives the original's answer for every case in the key. Every difference that remains is a decision someone signed, and the record keeps it.
Integration tests run the rebuilt components on the real runtime, and the answer key runs beside them on every build. A result that drifts from the original fails that build.
A release that passes its exit conditions goes into pre-production for user acceptance. The original keeps running beside the rebuild until a parallel run on live traffic shows the two agree.
An owner decides which behaviour the rebuild keeps. A known defect becomes a signed decision, and its case is recorded as an expected difference.
Analysis lists every place the specification, the code and production disagree. Each conflict becomes a decision an owner signs before code is written.
The answer key compares only results. The rebuild is designed from Akka components, and the check reads what each system returns for each case.
The original is retired after the parallel run on live traffic shows the two systems agree.