The finding
21 baseline acknowledgements lapse on 2026-10-22, and 17 of them point at a closed issue.
Two separate defects that happen to land on the same date, which is why neither is visible on its own:
-
An expiry cliff. .hypatia-baseline.json has 211 entries. 21 share expires_at: 2026-10-21. scripts/apply-baseline.sh:177 pre-filters with map(select((.expires_at // "9999-12-31") >= $today)) — inclusive — so they are active through the 21st and all stop suppressing together on the 22nd.
-
Orphaned exit criteria. 17 of those 21 name a tracking_issue that is already CLOSED/COMPLETED. The suppression is the part that keeps working; the cure quietly stops being anyone's job, and nobody is watching a closed thread.
Evidence
Active-entry count as the filter would compute it on each date:
on 2026-09-22: 211 of 211 active
on 2026-10-21: 211 of 211 active
on 2026-10-22: 190 of 211 active <- 21 lapse here
on 2026-11-29: 190 of 211 active
on 2026-12-22: 165 of 211 active
jq '[.[] | select((.expires_at // "9999-12-31") >= "2026-10-22")] | length' .hypatia-baseline.json
Breakdown of the 21, by tracking issue and its state:
| tracking issue |
acks |
state |
| #399 |
5 |
CLOSED/COMPLETED |
| #492 |
5 |
CLOSED/COMPLETED |
| #378 |
3 |
CLOSED/COMPLETED |
| #494 |
2 |
CLOSED/COMPLETED |
| #254 |
1 |
CLOSED/COMPLETED |
| #496 |
1 |
CLOSED/COMPLETED |
| #493 |
3 |
OPEN |
| #124 |
1 |
OPEN |
17 orphaned / 4 owned. The batch that lapses first is overwhelmingly the batch nobody owns.
Across the whole ledger the orphan count was 20, spanning 7 closed issues: the 17 above, one more under #399 that has no expires_at at all, and two citing #951. #974 collapsed and repointed the #951 pair, so 18 remain orphaned today — 17 lapsing on 2026-10-22 and 1 that never lapses.
On the pair #974 fixed: #951 was closed COMPLETED with zero comments while its defect is demonstrably live (.github/workflows/actions.lock:210 still declares the floating transitive actions/setup-python@v2 under the asana pin, and setup-python is never a top-level lock key), because #963 superseded it and is OPEN. The ack simply never followed the supersession. That is the pattern to look for in the other 17: not closed-in-error, but closed-and-superseded with the ledger left behind.
Why this is not just housekeeping
An acknowledgement pointing at a closed issue is the "looks correct in every visible respect" failure mode. Every field validates, the schema passes, the ratchet is happy, the gate is green — and the one thing that would make it true, someone working the exit criteria, has silently stopped. It then converts to a red main on a date nobody has in their calendar, with no live thread to read for context.
Deliberately not done here
Not swept. A bulk rewrite of 18 tracking_issue values would be one unreviewable commit that re-points each ack at a guess. Each needs checking against the issue that actually superseded it — the #951 → #963 repoint took one command to establish and one to verify.
Acceptance criteria
expires_at distribution (211 entries)
2026-10-21 21
2026-11-29 25
2026-12-22 82
NONE 83
Refs #974, #963, #951, #966.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ji1bq3TypfycfUPAR7hSxR
The finding
21 baseline acknowledgements lapse on 2026-10-22, and 17 of them point at a closed issue.
Two separate defects that happen to land on the same date, which is why neither is visible on its own:
An expiry cliff.
.hypatia-baseline.jsonhas 211 entries. 21 shareexpires_at: 2026-10-21.scripts/apply-baseline.sh:177pre-filters withmap(select((.expires_at // "9999-12-31") >= $today))— inclusive — so they are active through the 21st and all stop suppressing together on the 22nd.Orphaned exit criteria. 17 of those 21 name a
tracking_issuethat is alreadyCLOSED/COMPLETED. The suppression is the part that keeps working; the cure quietly stops being anyone's job, and nobody is watching a closed thread.Evidence
Active-entry count as the filter would compute it on each date:
Breakdown of the 21, by tracking issue and its state:
17 orphaned / 4 owned. The batch that lapses first is overwhelmingly the batch nobody owns.
Across the whole ledger the orphan count was 20, spanning 7 closed issues: the 17 above, one more under #399 that has no
expires_atat all, and two citing #951. #974 collapsed and repointed the #951 pair, so 18 remain orphaned today — 17 lapsing on 2026-10-22 and 1 that never lapses.On the pair #974 fixed: #951 was closed
COMPLETEDwith zero comments while its defect is demonstrably live (.github/workflows/actions.lock:210still declares the floating transitiveactions/setup-python@v2under the asana pin, and setup-python is never a top-level lock key), because #963 superseded it and is OPEN. The ack simply never followed the supersession. That is the pattern to look for in the other 17: not closed-in-error, but closed-and-superseded with the ledger left behind.Why this is not just housekeeping
An acknowledgement pointing at a closed issue is the "looks correct in every visible respect" failure mode. Every field validates, the schema passes, the ratchet is happy, the gate is green — and the one thing that would make it true, someone working the exit criteria, has silently stopped. It then converts to a red main on a date nobody has in their calendar, with no live thread to read for context.
Deliberately not done here
Not swept. A bulk rewrite of 18
tracking_issuevalues would be one unreviewable commit that re-points each ack at a guess. Each needs checking against the issue that actually superseded it — the #951 → #963 repoint took one command to establish and one to verify.Acceptance criteria
expires_atone under CI: governance + hypatia-scan red on main — 104 Hypatia findings vs empty baseline #399), either (a) re-pointtracking_issueat the live successor issue, or (b) if the defect is genuinely cured, delete the ack and prove main stays green without it.tracking_issueis closed — this class is mechanically detectable and currently nothing looks for it.expires_atat all ("NONE"in the distribution below) — those are permanent suppressions that no date will ever force a review of.Refs #974, #963, #951, #966.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ji1bq3TypfycfUPAR7hSxR