Slice 4.2. The receipt duty from ADR-0024 was built yesterday on the premise that "the error is forgetting, not doing it wrong". The same upgrade falsified that on the same day: the receipt for schema.yaml was written, it is truthful, it names correctly what was carried over - and two fields were lost anyway. Nobody forgot anything. pruefe_upstream_drift.py now holds our schema.yaml structurally against the baseline: every type, field, enum value and required entry the baseline carries must exist here. Adding is allowed, losing is not. Checked counterfactually against the real loss, which it reports. For the two other extended files there is no equivalent - they are Python, and no structural comparison exists. That half stays open and is written down rather than glossed over. Building it taught the check two things about itself. It broke the existing selftest because that fixture wrote schema.yaml as prose - the same unrealistic fixture FB-12 already records as having made an assertion worthless for this very script. And my counter-control reported "nothing" for the removed crash guard, because a crash returns the same exit code as a failure; only checking for a traceback showed the script never reaches its summary without it. Both times the control was blunt, not the check. Sixteen assertions, six deliberate breaks, none uncovered. The occasion is recorded for the next harvest as two stolpersteine pages - the first use of the mechanism ADR-0009 decided: a receipt certifies attention rather than completeness, and a file cannot be authoritative and immutable at once. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F2Q4Ri8NGwyTZzScvKnWFM
24 KiB
24 KiB