No run in M4 received injected context. Neither arm. All 112.
bench/results/transcripts-final: 30/60 have injected_context
bench/results/transcripts-m4: 0/112 have injected_context
Broken out by arm, every one of the 112:
commitlore-guard: injected_context present 0 / absent 56
commitlore-on: injected_context present 0 / absent 56
The field is not vestigial — the earlier transcripts-final set populates it on exactly half its runs, which is what a two-arm design should look like. M4 populated it on none.
What this means for the verdict
bench/VERDICT-M4.md reports a null on commitlore-guard vs commitlore-on, both arms of which are defined by receiving records. If neither arm received any, the two arms were identical and the experiment compared nothing against nothing.
A null from that is not a weak result about the guard. It is not a result about the guard at all.
I am not yet asserting the delivery failed — this could be a recording gap rather than a delivery gap, and those are different failures with the same evidence. That ambiguity is itself issue #113's subject, and it is the reason #113 made metrics.ts refuse an effect estimate over rows whose exposure is unknown. That refusal now looks like it was protecting against exactly this.
Two things point at genuine non-delivery rather than a recording gap:
matched is an empty list on every M4 transcript
accepted_records is 1 on all 112 rows, and identical across arms — if the arms differed in what they received, that field is the one that should have differed
What has to be established, in order
- Whether the context was delivered and not recorded, or never delivered. The harness commit is pinned (
081d858c) and dist_digest is a single value across all rows, so the exact code that produced these runs is recoverable. Re-run one task, one seed, one arm at that pin and inspect. One run answers it.
- If it was never delivered,
bench/VERDICT-M4.md must say so — not as a caveat but as the headline. The verdict currently attributes the null to the guard's effect; it would instead be a harness fault, and the corrected paired/clustered analysis in that document would be analysing noise.
- A guard against the class, since this is now the fourth instrument failure in a row (M1/M2 empty, M4 saturated, M5's registered outcome zero-variance, and now this). Before a benchmark's results are analysed, assert that the treatment arm's exposure differs from the comparator's. If it does not, the run is void, and it should be void at analysis time rather than after publication.
Provenance
Found while enumerating candidate outcome variables for M5 under issue #121, by opening the transcripts rather than the summary rows. The summary rows do not carry injected_context at all, which is why every prior analysis — including mine — missed it.
No run in M4 received injected context. Neither arm. All 112.
Broken out by arm, every one of the 112:
The field is not vestigial — the earlier
transcripts-finalset populates it on exactly half its runs, which is what a two-arm design should look like. M4 populated it on none.What this means for the verdict
bench/VERDICT-M4.mdreports a null oncommitlore-guardvscommitlore-on, both arms of which are defined by receiving records. If neither arm received any, the two arms were identical and the experiment compared nothing against nothing.A null from that is not a weak result about the guard. It is not a result about the guard at all.
I am not yet asserting the delivery failed — this could be a recording gap rather than a delivery gap, and those are different failures with the same evidence. That ambiguity is itself issue #113's subject, and it is the reason #113 made
metrics.tsrefuse an effect estimate over rows whose exposure is unknown. That refusal now looks like it was protecting against exactly this.Two things point at genuine non-delivery rather than a recording gap:
matchedis an empty list on every M4 transcriptaccepted_recordsis1on all 112 rows, and identical across arms — if the arms differed in what they received, that field is the one that should have differedWhat has to be established, in order
081d858c) anddist_digestis a single value across all rows, so the exact code that produced these runs is recoverable. Re-run one task, one seed, one arm at that pin and inspect. One run answers it.bench/VERDICT-M4.mdmust say so — not as a caveat but as the headline. The verdict currently attributes the null to the guard's effect; it would instead be a harness fault, and the corrected paired/clustered analysis in that document would be analysing noise.Provenance
Found while enumerating candidate outcome variables for M5 under issue #121, by opening the transcripts rather than the summary rows. The summary rows do not carry
injected_contextat all, which is why every prior analysis — including mine — missed it.