Two gaps that survived tonight's gate programme. Neither is a defect in a gate's logic; both are limits on what the fixture corpus can prove, which is why they need recording rather than quiet carrying.
1. Seven gates have no regression protection
Regression coverage went from 22 gates to 58 of 65. The seven that remain, each for a stated structural reason:
| gates |
why |
| 4, 22 |
need external tooling the fixture harness does not have |
| 47, 48 |
are delta gates — they need a real diff, and a whole-tree fixture run reports NOT APPLICABLE. Confirmed this session: gate-48 measured na on all 18 apps in both arms of a fleet sweep, because a development HEAD has no delta base |
| 12, 41, 52 |
have a planted arm but no anti-widening arm anywhere |
That last row is the one worth acting on first. A planted arm alone proves a gate can fire; it says nothing about whether a fix that widens the gate would be caught. This session produced two concrete reminders of why that matters: a widening once took softwarecatalog from 23 to 64 findings with 47 of the new ones unclosable, and a near-miss on gate-25 would have converted four recovered findings back into silence while the count barely moved.
2. gate-6 cannot be graded by subject
orphan-auth writes its findings to a mktemp path, so the acceptance bundle cannot read which method it reported — only how many. Its row therefore grades a count, and would not notice a gate that reported the wrong method entirely.
The bundle invariant everywhere else is that a subject must be unsatisfiable by every other finding the bundle can produce. gate-6 is the one place that invariant cannot be checked. The limitation is written into the bundle rather than hidden, but it is a limitation.
Fix shape: give gate-6 a stable findings-log path like its siblings, then add subject assertions.
Why these are filed rather than fixed
Both mean editing run-hydra-gates.sh, and three PRs were live in that file when this was written. Two PRs can each merge cleanly onto main and still conflict with each other — that happened twice tonight — so adding a fourth writer would have manufactured conflicts rather than closed gaps.
Context
main is at 380ead3. Tonight closed 19 distinct gates on the comment axis plus the string-literal axis in 16, hardened source_scope, and CI-confirmed the #416 scope split. The comment-class survey and its per-gate table are the reason these two gaps are now the largest remaining unknowns in the corpus.
Two gaps that survived tonight's gate programme. Neither is a defect in a gate's logic; both are limits on what the fixture corpus can prove, which is why they need recording rather than quiet carrying.
1. Seven gates have no regression protection
Regression coverage went from 22 gates to 58 of 65. The seven that remain, each for a stated structural reason:
NOT APPLICABLE. Confirmed this session: gate-48 measurednaon all 18 apps in both arms of a fleet sweep, because adevelopmentHEAD has no delta baseThat last row is the one worth acting on first. A planted arm alone proves a gate can fire; it says nothing about whether a fix that widens the gate would be caught. This session produced two concrete reminders of why that matters: a widening once took softwarecatalog from 23 to 64 findings with 47 of the new ones unclosable, and a near-miss on gate-25 would have converted four recovered findings back into silence while the count barely moved.
2. gate-6 cannot be graded by subject
orphan-authwrites its findings to amktemppath, so the acceptance bundle cannot read which method it reported — only how many. Its row therefore grades a count, and would not notice a gate that reported the wrong method entirely.The bundle invariant everywhere else is that a subject must be unsatisfiable by every other finding the bundle can produce. gate-6 is the one place that invariant cannot be checked. The limitation is written into the bundle rather than hidden, but it is a limitation.
Fix shape: give gate-6 a stable findings-log path like its siblings, then add subject assertions.
Why these are filed rather than fixed
Both mean editing
run-hydra-gates.sh, and three PRs were live in that file when this was written. Two PRs can each merge cleanly ontomainand still conflict with each other — that happened twice tonight — so adding a fourth writer would have manufactured conflicts rather than closed gaps.Context
mainis at380ead3. Tonight closed 19 distinct gates on the comment axis plus the string-literal axis in 16, hardenedsource_scope, and CI-confirmed the#416scope split. The comment-class survey and its per-gate table are the reason these two gaps are now the largest remaining unknowns in the corpus.