You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
tooling(pm): re-pin the measured closed-issue update rate at 415.1/day
`MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY` was measured 2026-08-31 at 188.3/day
and the divisor staleness alarm now reads a factor of ~2.1 against it on this
board. Re-measured by hand over the endpoint the constant's own docblock
prescribes (`GET /repos/{repo}/issues?state=closed&sort=updated`, read
2026-09-06T21:59Z): 400 rows / 0.964d = 415.1/day, re-read at depth 800 rows /
2.051d = 390.1/day and 1200 rows / 3.092d = 388.0/day.
The pin takes the 400-row window, the docblock's own convention. Self-test
cases that pinned 188.3 — the window arithmetic, the synthetic stream fixtures
and the clause wording — move with it; three prose sites that quoted the old
divisor in the present tense are corrected in place.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
* H22's premise, in the shape `classifyRatePremise` judges (#16393).
@@ -12851,7 +12853,7 @@ async function listRecentlyClosedIssues(
12851
12853
// Every row this pass READ, projected to the one stamp the observed update
12852
12854
// rate is counted over (#16393). ⛔ Deliberately the rows READ and not the
12853
12855
// rows ADMITTED: the pin this rate is checked against was measured over the
12854
-
// RAW stream (400 rows / 2.125 days), while `out` holds only the in-window
12856
+
// RAW stream (400 rows / 0.964 days), while `out` holds only the in-window
12855
12857
// closures — a strictly smaller population over a strictly shorter span. Rate
12856
12858
// them against each other and the difference between two quantities reads as
12857
12859
// drift in one of them, which is the #4690 inversion with the numbers the
@@ -18067,10 +18069,12 @@ async function selfTest() {
18067
18069
t('windows: …and 2.73d at the rate measured 8 days later — same cap, 25% more window', Number(windowCoverageDays(300, MEASURED_COMMITS_PER_DAY).toFixed(2)), 2.73);
18068
18070
t('windows: …which is why H23\'s cap became a TIME cap', COMMIT_WINDOW_DAYS, 3);
18069
18071
// ⛔ H22's is the one whose DIVISOR was the surprise: its rows are consumed by
18070
-
// closed-issue UPDATE activity, not by closures, and the two differ ~17x. The
18071
-
// old 4-page cap read as a closure window and was nothing of the kind.
18072
-
t('windows: H22\'s old 4-page cap bought only 2.12d of UPDATE recency', Number(windowCoverageDays(400, MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY).toFixed(2)), 2.12);
18073
-
t('windows: …and the honest divisor is ~17x the closure rate it read as', Number((MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY / 10.7).toFixed(1)), 17.6);
18072
+
// closed-issue UPDATE activity, not by closures, and the two differ ~39x at
18073
+
// the divisor re-pinned 2026-09-06, against the ~10.7 closures/day measured
18074
+
// when the defect was found. The old 4-page cap read as a closure window and
18075
+
// was nothing of the kind.
18076
+
t('windows: H22\'s old 4-page cap bought only 0.96d of UPDATE recency at the 2026-09-06 rate', Number(windowCoverageDays(400, MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY).toFixed(2)), 0.96);
18077
+
t('windows: …and the honest divisor is ~39x the closure rate it read as', Number((MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY / 10.7).toFixed(1)), 38.8);
18074
18078
t('windows: …which is why H22\'s cap became a CLOSURE-time cap', CLOSED_ISSUE_WINDOW_DAYS, 3);
18075
18079
t('windows: …and its horizon is seen by 12 consecutive runs', sweepOverlap(CLOSED_ISSUE_WINDOW_DAYS), 12);
18076
18080
// #13499 — H8's window is no longer a page cap at all, so the arithmetic that
@@ -18240,10 +18244,11 @@ async function selfTest() {
18240
18244
// Direction 1 — the floor case: a recent closure is admitted.
18241
18245
t('H22 window: a 1-day-old closure is inside', issueClosedWithinWindow(closed13606(1, 1), CH), true);
18242
18246
// Direction 2 — the row the OLD 4-page cap structurally could not reach. The
18243
-
// cap covered ~2.12d of UPDATE recency, so a card closed 2.5 days ago and
18244
-
// untouched since fell out of it: not late, GONE. Measured cost at the time
18245
-
// of the repair: 19 residue carriers closed within 3 days were missed.
18246
-
t('H22 window: the old 4-page cap reached only ~2.1 days of update-recency', windowCoverageDays(400, MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY) < 2.5, true);
18247
+
// cap covered ~0.96d of UPDATE recency at the divisor pinned 2026-09-06
18248
+
// (~2.12d at the one pinned when the repair landed), so a card closed 2.5
18249
+
// days ago and untouched since fell out of it: not late, GONE. Measured cost
18250
+
// at the time of the repair: 19 residue carriers closed within 3 days missed.
18251
+
t('H22 window: the old 4-page cap reached only ~1.0 days of update-recency', windowCoverageDays(400, MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY) < 2.5, true);
18247
18252
t('H22 window: …but the 3-day closure horizon admits that card', issueClosedWithinWindow(closed13606(2, 2.5), CH), true);
18248
18253
// …and the window still HAS an edge; a boundary that admits everything is none.
18249
18254
t('H22 window: a 4-day-old closure is outside', issueClosedWithinWindow(closed13606(3, 4), CH), false);
@@ -18463,28 +18468,30 @@ async function selfTest() {
18463
18468
// different quantities against each other and report the difference as drift.
t('#16393 stream: the pass stops on the first page past the horizon', driftedStats16393.closedPages, 28);
18478
+
t('#16393 stream: …and the rate is over the rows READ', Math.round(driftedStats16393.closedRateObserved * 100) / 100, 942.76);
18474
18479
t('#16393 stream: ⛔ …not over the rows ADMITTED, which is a different number', Math.round(observedRatePerDay(driftedRows16393, 'updated_at') * 100) / 100 === Math.round(driftedStats16393.closedRateObserved * 100) / 100, false);
18475
18480
t('#16393 stream: …a board running 2x the pin FIRES the alarm', h22Premise(driftedStats16393.closedRateObserved).state, 'drifted');
18476
-
t('#16393 stream: …and the factor is stated so it can be acted on', h22Premise(driftedStats16393.closedRateObserved).message.includes('a factor of 2.30'), true);
t('#16393 stream: …and the factor is stated so it can be acted on', h22Premise(driftedStats16393.closedRateObserved).message.includes('a factor of 2.27'), true);
t('#16393 clause: a drifted divisor is marked loud', clause16393(433.33).startsWith('⚠️ RATE PREMISE DRIFTED'), true);
18499
-
t('#16393 clause: …and names the re-measure act', clause16393(433.33).includes('re-pinned by hand, from a fresh measurement'), true);
18500
-
t('#16393 clause: an expired pin is marked loud too', clause16393(188.3, { nowMs: Date.parse('2026-11-01T00:00:00Z') }).startsWith('⚠️ RATE PREMISE EXPIRED'), true);
18505
+
t('#16393 clause: a drifted divisor is marked loud', clause16393(942.76).startsWith('⚠️ RATE PREMISE DRIFTED'), true);
18506
+
t('#16393 clause: …and names the re-measure act', clause16393(942.76).includes('re-pinned by hand, from a fresh measurement'), true);
18507
+
t('#16393 clause: an expired pin is marked loud too', clause16393(415.1, { nowMs: Date.parse('2026-11-01T00:00:00Z') }).startsWith('⚠️ RATE PREMISE EXPIRED'), true);
18501
18508
t('#16393 clause: an unobserved rate is marked loud, never silent', clause16393(null).startsWith('⚠️ RATE PREMISE UNOBSERVED'), true);
18502
-
t('#16393 clause: an in-band divisor is NOT marked loud', clause16393(200).includes('⚠️'), false);
18509
+
t('#16393 clause: an in-band divisor is NOT marked loud', clause16393(433.33).includes('⚠️'), false);
18503
18510
// ⛔ …but it still SPEAKS. A check that is only visible when it fires cannot
18504
18511
// be told apart from a check somebody deleted — `renderRatePremise`'s rule.
18505
-
t('#16393 clause: …and still speaks, so a deleted check cannot pass for a healthy board', clause16393(200).startsWith('rate premise OK'), true);
18506
-
t('#16393 clause: …naming both rates even when it agrees', clause16393(200).includes('observed ~200.0/day') && clause16393(200).includes('= 188.3/day'), true);
18512
+
t('#16393 clause: …and still speaks, so a deleted check cannot pass for a healthy board', clause16393(433.33).startsWith('rate premise OK'), true);
18513
+
t('#16393 clause: …naming both rates even when it agrees', clause16393(433.33).includes('observed ~433.3/day') && clause16393(433.33).includes('= 415.1/day'), true);
18507
18514
18508
18515
// ---- The clause on the summary line. Only time-INDEPENDENT properties are
18509
18516
// asserted here, for the reason above; the verdict wording is pinned by the
18510
18517
// builder cases.
18511
-
t('#16393 summary: the clause rides inside H22\'s own window clause', saidBy('h22Window', win13606({ closedPages: 6, closedRateObserved: 433.33 })).includes('RATE PREMISE'), true);
18512
-
t('#16393 summary: ⛔ …and not in a neighbour\'s', saidBy('h23Window', win13606({ closedPages: 6, closedRateObserved: 433.33 })).includes('RATE PREMISE'), false);
18513
-
t('#16393 summary: it names the pinned constant beside the number already quoted', saidBy('h22Window', win13606({ closedPages: 6, closedRateObserved: 433.33 })).includes('`MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY`'), true);
18518
+
t('#16393 summary: the clause rides inside H22\'s own window clause', saidBy('h22Window', win13606({ closedPages: 6, closedRateObserved: 942.76 })).includes('RATE PREMISE'), true);
18519
+
t('#16393 summary: ⛔ …and not in a neighbour\'s', saidBy('h23Window', win13606({ closedPages: 6, closedRateObserved: 942.76 })).includes('RATE PREMISE'), false);
18520
+
t('#16393 summary: it names the pinned constant beside the number already quoted', saidBy('h22Window', win13606({ closedPages: 6, closedRateObserved: 942.76 })).includes('`MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY`'), true);
18514
18521
// A sweep that never ran the pass says UNOBSERVED — which outranks every
18515
18522
// other verdict, so this case does not move with the calendar.
18516
18523
t('#16393 summary: a bare line reports the divisor UNCHECKED, not agreed with', saidBy('h22Window', summaryLine({}, 0)).includes('RATE PREMISE UNOBSERVED'), true);
0 commit comments