pm(half-states): name the POPULATION each H22 docblock number was measured on - #17793
Merged
Merged
Conversation
…sured on H22 pages the closed-card window through `closedWindowPagePath`. The scheduled patrol runner's stream comes back card-only; the byte-identical request from a proxied agent container comes back 49.6% pull requests. Four prose sites in `scripts/pm/check-half-states.mjs` quoted container-stream numbers while describing the patrol's stream, so the measurement recipe they carry, followed correctly, yields the wrong number. Rewrites, prose only — ⛔ no constant moves (139.4 and 40 stay): - the⚠️ Cost note under `CLOSED_ISSUE_WINDOW_DAYS`: the 46% PR share is named as a container reading, the patrol's own 5-page / 428-closure run is quoted as the runner-side measurement, and the note now carries the re-measure RECIPE (filter pull requests out BEFORE counting; rate the card-only slice); - the same docblock's present-tense "the divisor below now reads 415.1", restated as history against the 139.4 the file now carries; - `CLOSED_ISSUE_WINDOW_PAGE_CEILING`'s derivation: the 4,000-row / 12.8-day read is named as container-taken, with the runner-side headroom (about twice the ~4.3x derived) added as a note, not a change; - `listRecentlyClosedIssues`'s `rateRows` comment: the pin's population stated as it now stands, and why READ rows are comparable to it on the runner and not from a container. The population difference is MEASURED through the sweep's own numbers; the runner's permission block as its mechanism is ⛔ not claimed — the runner's raw response was never read. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MCLBsUgfykL74aU716rzVK
This was referenced Sep 12, 2026
os-sales
marked this pull request as ready for review
September 12, 2026 05:39
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 #17626
H22 pages its closed-card window through
closedWindowPagePath—GET /repos/{repo}/issues?state=closed&sort=updated&direction=desc&per_page=100&page=N. Two callers issue the byte-identical request and get different POPULATIONS: the scheduled patrol runner's pages come back card-only, a proxied agent container's come back 49.6% pull requests. Four prose sites inscripts/pm/check-half-states.mjsquoted the container's stream while describing the patrol's, so the measurement recipe they carry — followed correctly — yields the wrong number. This is prose only: no constant moves (MEASURED_CLOSED_ISSUE_UPDATES_PER_DAYstays 139.4,CLOSED_ISSUE_WINDOW_PAGE_CEILINGstays 40), no H-row, no self-test change.The boundary this card asked to survive the fix
The population difference itself is MEASURED, through the sweep's own numbers. The runner's⚠️ Cost note says it in those words.
permissions:block as the MECHANISM is NOT claimed — the runner's raw response was never read. Every new sentence below is written that way, and theThe four sites, before and after
1. The⚠️ Cost note under
CLOSED_ISSUE_WINDOW_DAYS2f8ad091) reports 5 pages, 428 in-window closures, reach 2026-09-07; 428 in-window closures cannot come out of 5 PR-inclusive pages, since only ~250 of those 500 rows would be cards. The 2026-09-09 run is the same shape at 6 pages.2. The same docblock's present-tense divisor sentence
MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY(188.3 of 2026-08-31 — the new alarm reads a factor of 2.11 on objectstack) #16419: the divisor below now reads 415.1)» — present tense against a divisor that now reads 139.4.MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY(188.3 of 2026-08-31 — the new alarm reads a factor of 2.11 on objectstack) #16419 re-pinned 415.1 on 2026-09-06 from the container stream; check-half-states: H22'sMEASURED_CLOSED_ISSUE_UPDATES_PER_DAYpin has drifted 2.5x, so every sweep's own coverage sentence is misdescribed by that factor #17254 re-pinned on 2026-09-11 from the card-only slice, and the divisor below now reads 139.4. The~13 pagesthis note derives is also marked as a 2026-09-06 container reading, and explicitly not comparable to today's 5 pages on population alone — the two readings are five days AND one population apart, with the decomposition left where PR fix(pm): re-pin H22 closed-issue update rate from a card-only measurement of the stream the patrol actually pages #17627 put it, inMEASURED_CLOSED_ISSUE_UPDATES_PER_DAY.3.
CLOSED_ISSUE_WINDOW_PAGE_CEILING's derivation4.
listRecentlyClosedIssues'srateRowscommentrateRowsholds cards and the observed rate is counted on the same population the pin was; the same request from a container returns 49.6% pull requests andrateRowswould count those too — a rate on one population checked against a pin on another. TheREADvsADMITTEDargument (check:react-declaration-parity 是唯一没接进任何 workflow 的源码审计门禁,且无 MANIFEST 时静默 skip 退出 0 —— 它现在永远不可能红 #4690 with the numbers the right way up) is unchanged.The re-measure recipe the file now carries
Stated once, in the⚠️ Cost note, and pointed at from sites 3 and 4:
On the 2026-09-11T04:22:36Z container read that slice gives 5 pages / 426 rows / ~139.4 per day, against 9 pages / 426 / ~256.2 per day on the whole stream. The slice reproduces the runner's own 5 pages; the raw stream does not. That is the operative half — a seat following the old note from a container reproduced #17254's false
RATE PREMISE DRIFTEDalarm every time.Verification
All of it taken on the final commit
034c09ace. Gate families derived withnode scripts/pm/dispatch-gates.mjs --commands(no paths passed — it takes its own change set from the merge base), each command run with its exit code captured before any pipe, then reconciled:Every one of the 40 exits 0, including
pnpm check:pm-dispatch-gates(detached — it runs past the foreground cap — and waited on withtail --pid). Named readings:pnpm check:pm-half-states— self-test 3656 cases pass on the base file (8fa3fe63d) and 3656 cases pass after; the count is unchanged because no pin moved and no self-test assertion names any of the rewritten sentences (grepped46% of the rows,415.1,0.964,312/dayacross the tree — the only hits outside this file's own prose are two historical mentions this PR does not touch).pnpm check:nul-bytes—check-nul-bytes: OK (scanned 8451 text file(s) ... no raw ASCII control bytes); plus a self-scan of the edited file,grep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]', zero hits.node scripts/check-comment-mask-corpus.mjs—6640 files, 0 disagree, 0 unparseable.node scripts/check-scripts-symbol-anchors.mjs—3186 anchors across 248 scripts resolve.Repository-wide scans (
pnpm lintfirst among them) are CI's run, not this PR's.Acceptance notes
MEASURED_CLOSED_ISSUE_UPDATES_PER_DAY's docblock (landed by PR fix(pm): re-pin H22 closed-issue update rate from a card-only measurement of the stream the patrol actually pages #17627, outside this card's declared surface) states the runner's token scopes as part of its population paragraph. It does label the reading «Measured, not inferred from the workflow file», so it is not a mechanism claim, but it sits closer to one than thepull-requests: readonhalf-state-patrol.ymlso the runner and a container read the same stream. This PR takes the recipe route the dispatch chose; the permission route is untouched and its cost (roughly doubling H22's page bill) is unmeasured.skip-changeset:scripts/pm/**is not published — no package'sfiles[]ships this script.Generated by Claude Code
Generated by Claude Code