Task · SKT-0026

A two-direction label divergence is reported as both a contradiction and a gap

Description

33 findings appear byte-identical in both the Contradictions and the Coverage gaps sections of the fidelity report. Verified 2026-08-29 by sorting each section’s finding lines and intersecting them.

The cause is that a labels comparison producing both only-in-synth and only-in-reality keys is a divergence in two directions, and the report emits the whole finding into both sections rather than splitting it. aws_applicationelb_info is the clearest example: only-in-synth=[tag_VpcId]; only-in-reality=[scrape_job] appears in full under both headings.

This matters for the gate flip specifically. SKT-0010.05 makes contradictions fail the build and gaps only report. A finding sitting in both sections has an ambiguous verdict — it fails the build, but it is also presented as the forgivable class — and fixing the synth side clears it from Contradictions while leaving an identical line under Coverage gaps that now names a divergence which no longer exists in that direction.

It also makes the two counts non-independent, so any plan reading 67 and 646 as separate quantities is wrong by 33.

Split the finding instead: the only-in-synth keys are the contradiction, the only-in-reality keys are the gap, and each belongs in exactly one section. Whether the split lines keep the full label sets for context is a presentation choice; what must not survive is one line claiming both verdicts.

Acceptance Criteria

Definition of Done

Implementation Plan

Execute jointly with SKT-0025 in Lane C. Split two-direction label-key divergences into direction-specific findings and sections, test that no byte-identical line appears in both sections, and verify by intersection rather than total counts.

Implementation Notes

Final verification 2026-08-29: two-direction label differences render as separate direction-specific findings. Sorting and intersecting the post-lane Contradictions and Coverage gaps sections produced zero byte-identical lines, and focused tests prove a corrected direction leaves no stale text. just check and just dump passed. No blueprint field or construct/workload config struct changed, so the conditional blueprint-schema DoD item was not applicable.

Final Summary

Split bidirectional label divergences into independent contradiction and gap findings. Focused tests, zero section intersection, just check, and just dump passed.

View the source file on GitHub