tooling(pm): re-pin the measured closed-issue update rate at 415.1/day - #16423
Queued
claude[bot] wants to merge 1 commit into
Queued
tooling(pm): re-pin the measured closed-issue update rate at 415.1/day#16423claude[bot] wants to merge 1 commit into
claude[bot] wants to merge 1 commit into
Conversation
`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
Contributor
Author
Verdict: ACCEPTImplemented-by: os-dev flight S (opus), branch What was checked
Rulings
验收备注 (noted, not filed)
LandingNot governed, ordinary queue landing: the seat flips the draft to ready and arms auto-merge (SQUASH). On merge the seat strips Generated by Claude Code |
os-steve
marked this pull request as ready for review
September 6, 2026 23:25
os-steve
enabled auto-merge
September 6, 2026 23:25
os-steve
added this pull request to the merge queue
Sep 6, 2026
Any commits made after this event will not be merged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #16419
H22's pinned divisor
MEASURED_CLOSED_ISSUE_UPDATES_PER_DAYwas measured 2026-08-31 at 188.3/day. The staleness alarm that landed with PR #16406 read a factor of ~2.1 against it on its first live run and named this act. ⛔ A sweep never writes the pin (H8's rule): the re-measure below is by hand, and the sweep's ownclosedRateObservedappears only as the CONTROL beside it, never as its source.The measurement
By hand, over the endpoint the constant's own docblock prescribes and no other —
GET /repos/{repo}/issues?state=closed&sort=updated&direction=desc&per_page=100, onobjectstack-ai/objectstack, in pages of 100. All three depths are computed from ONE read of 12 pages (HTTP 200 on every page), started 2026-09-06T21:59Z and finished 22:00Z.The rate is rows READ divided by the
updated_atspan they cover — the raw stream, pull requests included, which is the population this pin has always been measured over (570 of the 1,200 rows are PRs).updated_atspanThe three depths agree to within 7% (415.1 / 388.0 = 1.07), far inside the 2x band, so there is nothing to adjudicate between them. The pin takes the 400-row window, the docblock's own convention; the deeper reads are recorded beside it exactly as that block has always recorded them.
CONTROL, not instrument. The read-only sweep on this board observed ~388.0/day over the 12 pages its own closed pass read — an independent agreement with the 1,200-row depth above, to one decimal. It is quoted, never assigned.
The alarm, before and after
Read-only sweep,
objectstack-ai/objectstack, H22's window clause:Before (at
0ea5f9d9f7, 2026-09-06T21:5xZ):After (at
5d60e2aea5, 2026-09-06T22:0xZ):The census clause moves with it by construction, since it interpolates the constant: "the stream is consumed by closed-issue ACTIVITY (~415.1/day, measured 2026-09-06), not by closures (~11/day)".
Sibling board, after —
objectstack-ai/objectuiswept with THIS file (its own installed copy is older and carries none of this machinery):That is a reading, not a regression this PR can avoid: the two boards measured 2.2x apart within the same hour (388.0 vs 174.9), so no single pinned divisor is in band on both. It is recorded under acceptance notes below rather than acted on here.
What changed, and why the diff is larger than two literals
The constant (188.3 → 415.1), its
_AT('2026-08-31'→'2026-09-06'), and the measurement block above them (read time, endpoint, window, rate, the two depth re-reads). The paragraph stating WHY the rate is carried as data, and the ⛔ updates-not-closures warning, are byte-identical — ruled, and verified in the diff.Self-test cases that pinned 188.3, named as the ruling requires. Case count unchanged at 2,636; 14 cases were red on the constant alone and are repaired in place:
windowCoverageDays(400, pin)2.12 → 0.96 d;pin / 10.717.6 → 38.8);a factor of 2.30→2.27,observed ~433.3→~942.8,= 188.3/day→= 415.1/day), and the pair asserting a drifted sweep does NOT rewrite the pin, which pins the literals themselves.Three prose sites that stated the old divisor in the present tense and would have been false the moment this landed. Each is a clause, each is named here because a silent one is unreviewable:
CLOSED_ISSUE_WINDOW_DAYScost note: "the divisor below still reads 188.3 and this note states the disagreement instead of quietly editing it" — now states that the disagreement was closed by the hand re-measure, which is what H8's rule prescribes;CLOSED_ISSUE_WINDOW_PAGE_CEILING: "the divisor is a factor of ~2.2 light" — now past tense, with the re-pin named;400 rows / 2.125 days→400 rows / 0.964 days).Every remaining
188.3in the file is dated history and reads as such (the 2026-08-31 measurement table, the retired ceiling's derivation, the alarm's origin narrative).Gates — every exit captured before any pipe, at
5d60e2aea5node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 36 commands from the real change set (1 path, three-dot vs merge base0ea5f9d9f); all 36 were run, and--ranreconciles:✓ dispatch-gates --ran: 36 derived famil(ies) accounted for — 36 run, 0 NOT-MEASURED.One of them,pnpm check:pm-dispatch-gates, needs ~9 minutes (1,534 cases pass).node scripts/pm/check-half-states.mjs --self-test→✓ check-half-states self-test: 2636 cases pass.(exit 0; same count as before the change).node scripts/pm/check-clause2-carriers.mjs --self-test→✓ check-clause2-carriers self-test: 190 cases pass(exit 0).node scripts/pm/check-governed-merges.mjs --test scripts/pm/check-half-states.mjs→ exit 0,✅ NOT governed — ordinary queue landing applies to a PR with exactly this file list.node scripts/check-nul-bytes.mjs→check-nul-bytes: OK (scanned 8057 text file(s) … no raw ASCII control bytes).pnpm lint(eslint . --no-inline-config) throughscripts/pm/os-verify-lock.sh(slotissue-16419, acquired first try):VERDICT command-exit 0 · held the lock 70s · waited 0s. Not a narrowed run — the whole tree, no eslint output.check-published-list-mirrors(and its self-test),check:console-injection,check:engine-double-contract,check:i18n-stale-fill,check:pm-label-desc-cap— all exit 0.check:published-readme-exportsexits 3 = PREREQUISITE NOT MET (it needs builtdist/*.d.tsfor 37+ packages): NOT MEASURED, not a finding, and unrelated to a diff that touches no package.skip-changeset: no package publishes anything from this diff — one PM tooling script.验收备注 (acceptance notes — observations, not cards, per #16351)
~17xis now~39x, and it was ruled byte-identical. The preserved paragraph says update events and closures "differ by ~17x on this board" — true of 188.3 against the 10.7 closures/day measured 2026-08-31, and ~38.8x of the new pin against that same recorded closure rate. The self-test case that computes exactly that ratio had to move (17.6 → 38.8), so the file now states two multipliers. I did not touch the paragraph: it was ruled byte-identical, and writing a new multiplier there honestly needs a closure-rate measurement this card did not commission. One line for the seat, either way it goes.Generated by Claude Code
Generated by Claude Code