Mindbridge ยท track status

MR-DRAIN

Suppressions and debt accumulate faster than they are drained โ€” the track ratchets the hook-suppression count to shrink-only, then audits and drains it.

Re-measured 2026-08-16 from live gh issue list. Verify before starting: the 603-suppression inventory is the ratchet issue's 2026-08-02 count โ€” re-run the inventory on origin/main before acting.

Next โ†’the suppression ratchet (#2976) โ€” ratchet FIRST: baseline today's count shrink-only so the denominator stops moving before any audit or drain.
Paused for WIRE-TRUTH. 3 open โ€” the suppression ratchet (#2976, p2) first, the tracker's merged-reference blind spot (#3305, p2) second, the 8 superseded person methods (#2987, p3) last.
603Hook suppressions
584Prose-or-nothing (96%)
19Cite an issue
8Superseded methods
Open workWhy this orderStanding rulingsHistory
Ratchet โ€” before any drain
p2 #2976 MR-DRAIN Part C: ratchet the 603 hook suppressions (ratchet FIRST), then audit and drain false justifications can rot unnoticed Dev only
603 hook suppressions across ten families, only 19 citing an issue โ€” 584 (96%) are prose-or-nothing, so a false justification rots unnoticed. Ratchet FIRST: baseline today's count shrink-only, then audit + categorize, then drain. The gate must check justification quality โ€” a new deferral must cite an open tracker โ€” not just the count.
Tracker blind spot โ€” before trusting counts
p2 #3305 Suppression tracker audit is blind to MERGED references โ€” a noqa citing a PR is 'tracked' forever and never re-checked merged PRs evade the re-check Latent
The audit only treats CLOSED as stale; a merged PR resolves to MERGED, so a # noqa citing one passes forever. Measured on main: six cited trackers, two of them merged PRs, reported by --audit-trackers as “none closed” โ€” invisible debt, and citing a merged PR is strictly better for passing the gate than citing an open issue. Fix shapes: treat MERGED as stale (the minimum), or reject PR references at write time. Fixing it will likely turn the nightly red on the two existing citations โ€” resolve or re-point those two in the same change.
Superseded code โ€” drain last
p3 #2987 ADR-084 leftovers: 8 person methods superseded by PersonIdentityRepository but still live on PersonData/PersonResolution eight tests guard dead code Dev only
Eight person methods still live on the older repos (PersonDataRepository, PersonResolutionRepository) while production calls only the PersonIdentityRepository twin, so eight real-DB tests guard code paths production has routed around. Split out of the V1-XFAIL drain batch (#2986, merged), which deleted three sibling methods on the same basis but left these eight because deleting eight methods from two live classes is a bigger change than a list drain and deserves its own review.
Why is it in this order?

Ratchet before drain, then close the tracker's blind spot before trusting its counts, then drain what production has routed around. Applied top to bottom; each rung only breaks ties left by the one above it.

  1. Ratchet before drain. Land the shrink-only baseline so the count stops moving (+91 in three weeks), then audit and drain โ€” a drain without a ratchet chases a moving denominator.
  2. Close the tracker's blind spot before trusting its counts. A suppression citing a merged PR is classified “tracked”, drops out of the unjustified count, and has a re-check that structurally cannot fire.
  3. Drain what production has routed around. Superseded methods whose tests guard code paths production no longer calls sort last.

What this deliberately ignores: the backlog size (603 is a moving denominator โ€” the ratchet moves first), issue age or filing order, how many suppressions one change removes, the apparent smallness of a deletion (the eight methods are, per their own issue, “a bigger change than a list drain”), and priority labels alone (the two p2s are ordered by the ratchet rule, not by label).

Standing rulings

track-order.json records no decided rulings for this track. The rulings in force are the two the page already cites: ratchet FIRST โ€” baseline today's count shrink-only, then audit and drain (owner ruling 2026-08-02, stated in the suppression ratchet, #2976); and paused for WIRE-TRUTH, resume at the ratchet (the index row).
History & forensics

The ratchet's measured instance. A # noqa justification (“deferred to post-Landing-11 read-API migration”) was false for 2.5 months โ€” Landing 11 closed 2026-05-16 โ€” and nothing noticed. The per-file .ai/materializer-write-allowlist.txt that once counted suppressions was drained 145 โ†’ 0 and deleted 2026-07-12 (the allowlist retirement, PR #2411). Over that window per-line noqa went 211 โ†’ 425, then 425 โ†’ 516.

Blind-spot provenance. The merged-reference hole was found by the round-3 adversarial lens on the no-op suppression drain (PR #3302, merged โ€” retired 22 no-op suppressions). The two merged PRs cited as trackers are the WhatsApp reply/mention context PR #1695 and the live Exchange staged-drain PR #1834.

Superseded-methods provenance. The 8-method issue split out of the V1-XFAIL drain batch (#2986, merged โ€” drained test_person_repositories_e2e.py 66 โ†’ 51), which deleted three sibling methods on the same zero-caller basis.