Repository navigation
chore(pm): retire half-state row H34; H2 reports every card it named - #29654
Conversation
H34 fired only on a pm-tracked, assigned card with no claim the marker reads, which is exactly the card H2 reports. Delete H34, the near-miss marker and reader only it used, its self-test cases, its band row and its sweep call, and re-point the prose that named it to H2 (assigned) and H1 (unassigned). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAmM3BRQQcQSA67VE3L
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract-review-claim: session_01J8VVAnMUWA9rufXzFaEh4J · head 9fcce36 · 2026-11-03T00:01Z The seat review runs at CONTRACT_REVIEW_TIER in an isolated subagent (the seat session is not at that tier). |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract reviewServed-tier: Reviewer: an isolated contract reviewer at CONTRACT_REVIEW_TIER, read-only on GitHub (REST reads only; nothing written, pushed, commented or labelled), fed the card body and comments, the PR body, the net diff against the merge-base, the head's check-runs, contract-review.md and review-checklist.md. The PR body's measurements were read as input, not as conclusions; every count below is this review's own measurement. No environment variable value is printed anywhere in this record. ① Derived judgments
② Semver levelNone. No published package, no ③ Boundary flags
④ Design judgmentPer hits file, against the card's scenario (a row with no named reader and no 30-day citation costs a self-test and a live pass on every patrol run; the discipline text gives such an instrument deletion as its only in-flight work), the R1 line (no state loses its report) and the R3 ruling's three screens (a rule it enforces, its live count, coverage by a staying row):
Must-fix: none. Should-fix: none (two comment nits and one PR-body roster omission are recorded in ③, none with behaviour). Check-runs at record time (2026-11-03T00:18Z): 51 check-runs on 9fcce36, 31 success, 20 skipped, 0 failure, 0 in progress on the final read (a 30-second poll that ended when the last run, Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J 维护者速读
席位核对 — ACCEPT · domain:skills#1 · head
|
Requested by Irene · project thread
Part of #29471
Clause-②: no
Metadata-protocol: none
维护者速读
scripts/pm/check-half-states.mjs;198 种状态逐一比对,H34 报的 42 种 H2 全报,H2 本身逐字不变。可整 PR revert。node scripts/pm/check-half-states.mjs --self-test,预期 5166 条全过(主干 5202)。What changes
CLAIM_NEAR_MISS_MARKER,looksLikeClaimContentandnearMissClaimSeparators(all read only by H34),h34ClaimShapedNonCanonicalSeparator, its band-registry row, its two-line call beside H2 in the sweep loop, and its self-test block.h2AssigneeNoClaimCommentand its call are byte-identical.CLAIM_COMMENT_MARKERdocblock, the list-item marker note, the near-miss census overlap note, H33's blind-spot paragraph and its self-test comment, H50's population note, the H44/H64 artefact-recognition notes and the H60 band comment. Three test names changed (one H50 case and two BATTERY68 cases) with the same assertions.familyBand('H60') === familyBand('H34')). With H34 gone, it now pinsfamilyBand('H60') === 'state', the value both had.Why: every card H34 named is an H2 row
H34 returned null unless the card was pm-tracked (
pm:queueorpm:dispatched), was assigned, had a readable thread and had no comment matchingCLAIM_COMMENT_MARKER. Under those same conditions,h2AssigneeNoClaimCommentreturns true. So by construction, every H34 row sat on a card H2 already reported. H34 only added the separator's codepoint as a diagnosis. The sweep called both on the same thread in the same loop.Measured by importing both trees (
mainat d280265 and this head) and judging 198 states: 6 label sets × 3 assignee sets × 11 threads (em dash, en dash, hyphen, fullwidth colon, blockquoted dash, canonical colon, dash plus colon, prose control, a null body, several near misses, and an empty thread):Live on objectstack: 0 H34 rows in a full sweep finished 2026-11-02T23:43Z (code at d280265), per the #29471 pre-screen.
Verification
node scripts/pm/check-half-states.mjs --self-teston 9fcce36: 5166 cases pass (5202 at d280265, so 36 fewer). All 36 are the H34 block.n/flooras at d280265, so nothing was re-pinned.Local gates on 9fcce36 (`dispatch-gates --commands`)
node scripts/pm/dispatch-gates.mjs --commandsderived 47 commands. All 47 ran, each with a 900 s timeout, with exit codes recorded before any pipe. All 47 exited 0.--ranreconciliation printed:47 derived famil(ies) accounted for — 47 run, 0 NOT-MEASURED.node scripts/check-commit-card-trailers.mjs --range d280265b..HEAD: exit 0.pnpm install --frozen-lockfile.Acceptance notes
Claim:" remedy. The card is still reported, by H2's row "assignee set but no claim comment on the thread".separatorform in its summary clause, so the spelling stays visible on the summary line.Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (no formatter ran;pnpm lintwas not run locally, so the CI lint job decides it)main, one pull request.scripts/pm/**only;skip-changeset)packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_01J8VVAmM3BRQQcQSA67VE3L