From 76cfed0936a429bbc7ac9c1089ee302479bee0a4 Mon Sep 17 00:00:00 2001 From: Conduction Release Bot Date: Wed, 5 Aug 2026 23:27:31 +0200 Subject: [PATCH 1/3] fix(gates): 46/40/28/9/7 were majority-false, and the runner corrupted its own measurements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two gates produced more false findings than real ones, which made a fleet burn-down UN-MERGEABLE: the gates are diff- AND file-scoped, so touching a file drags in its pre-existing findings, and when the residue is entirely false there is no honest way to green the PR. Two burn-down PRs (opencatalogi#808, docudesk#385) are stuck in exactly that state. Measured across 21 fleet repos at origin/development, against v1.4.0: gate-46 spec-anchor-existence 1,995 -> 918 (-54%) gate-40 form-label-association 1,211 -> 517 (-57%) gate-9 semantic-auth 45 -> 11 (-76%) gate-7 no-admin-idor 32 -> 26 (-19%, partial) Every relaxation ships with the true-positive case it must not swallow. Four new suites (gate-46, gate-40, gate-28, gate-9) and 8 new gate-7 cases, all discovered automatically by tests/run-helper-suites.sh. Each was mutation-checked: making the relaxed predicate always-true fails the suite, and so does making it always-false. gate-46 — 1,077 findings cleared, none of them evidence about a spec * the `:`-tail rule accepted only EQUALITY where the full-heading rule accepted a PREFIX, so `### Requirement: REQ-001: List zaken` rejected `#REQ-001` * a requirement id in trailing parens/brackets was invisible: `### Requirement: Payment Provider Adapter Interface (REQ-PAY-001)` rejected `#REQ-PAY-001`. Lifted tokens match by EQUALITY only, so `#REQ` and `#REQ-PAY` still do not resolve * an id before the colon — `#### Scenario REQ-BIE-004-01: Cron triggers` — likewise. Only tokens CONTAINING A DIGIT are lifted; without that every word of every heading becomes an anchor * `- [~]` and `- [-]` checkboxes were invisible to the task rule, which ALSO shifted every positional `#task-N` after them. A wrong positional resolution reports PASS against a different task — worse than the missing anchor it replaced * `openspec/specs/x.md` and `openspec/specs/x/spec.md` are the same spec * `#scenario`/`#requirement` no longer prefix-match every heading of that level; `#webhooks` against `## Webhooks (Task 2.9 of giant)` still resolves, by equality against the bracket-stripped heading gate-40 — 694 cleared, and its advice was an a11y REGRESSION The only way to satisfy it on `Installed apps only` was to add `aria-label`, which OVERRIDES the visible label and breaks speech-input users. 463 findings were that shape. Also: implicit `