docs/solutions/workflow-issues/2026-04-14-slate-direct-audit-green-does-not-mean-mirrored-if-harness-shapes-output.md
The transform audit turned green, but the ledger story was still wrong.
One row only passed because the test harness prepended a synthetic empty block before comparing the output:
packages/slate/test/transforms/delete/selection/block-hanging-multiple.tsxIf that row gets marked mapped-mirrored, the docs overclaim runtime parity.
The workflow treated a green direct audit as automatic mirrored proof.
That is only true when the harness is acting like a normal runner. It stops being true when the harness mutates the observed output shape to force a legacy match.
In this case, the runtime and the proof harness were sharing responsibility for the result:
That is not clean mirrored parity. It is mixed ownership.
Split the truth instead of hiding it.
mapped-mixed, not mapped-mirrored.That landed in:
The key distinction is simple:
Those are not the same thing.
By recording harness-shaped rows as mixed, the ledger stops lying while still preserving the useful fact that the direct audit is mostly closed.
mapped-mirrored just because the direct audit is
green.mapped-mixed until runtime owns it cleanly.