D132 - Generated fixtures and dumped shaders do not share an extension
Status: assumed
Shader fixtures generated here are .gcn; a shader dumped
out of a title stays .bin.
The two carry opposite obligations. A dumped shader is console-derived and must never be tracked - the provenance guard bans that extension outright and that ban is correct. A generated fixture must be tracked, so the differential test runs on a machine with no LLVM.
They shared an extension until the provenance guard rejected the fixtures, which was the guard being right rather than over-broad. The alternative was to add a path exception to the guard in all three places it lives; that would have weakened a principle-1 mechanism to accommodate a naming collision, and left a directory where a real dump could later be committed unnoticed.
Splitting the extension keeps the guard exactly as strict and encodes
the distinction where it belongs. corpus::is_shader accepts
both, because the difference is provenance rather than content - they
decode identically.