Recipe: use diagnostics to spot semantic loss
Treat diagnostics as part of the result, not as an afterthought. They explain where a route preserved structure, widened a value, or skipped a construct.
A three-pass review
First check errors: an error means the output needs repair before use. Then scan warnings for intentional loss, such as unsupported annotations or a target format with fewer constraints. Finally, read informational notes for assumptions worth carrying into a code review.
Compare with the IR
When the output looks surprising, compare it with Shape IR. This separates a parsing problem from a generator limitation and gives you a concrete place to improve the route.