Skip to content

Commit c5ea982

Browse files
hotlongclaude
andauthored
fix(pm): give check-clause2-carriers --pair a legal exit for a card whose sibling carries the clause-② declaration (#16832)
`--pair` derived one pair per card a PR delivers and demanded a `Clause-②:` line from EVERY one of them. Measured on PR #16243 (`Fixes #15542` / `Closes #15854`): the first pair read `Clause-②: yes` from #15542's claim, and the second exited 4 naming a remedy no legitimate act could supply — #15854 by its own maintainer ruling closes when that PR lands, is never separately dispatched, never receives a claim comment, and carried `pm:retriage`, where a `Claim:` is a dispatch act the PM protocol forbids. GitHub closed #15854 one second after the merge on the same relation, so the pairing was right; the place the declaration was demanded from was not. Direction 3 of the filing, as the triage seat scoped it: the predicate is untouched and the limb gets a FOURTH READING — a card delivered by a PR whose SIBLING card carries the declaration. It prints a row naming the card, the PR, the sibling and the value read from that sibling's claim, and it rides on EXIT_OK: `references/contract-review.md` states the landing check as 「0 = 双肢一致…4 = 任一不成立」, so any new non-zero code would re-block the legal workflow while saying nothing the row does not. ⛔ No spelling is relaxed: the sibling is read by the same `cardDeclaration` over the same imported `CLAIM_COMMENT_MARKER`, and only a `declared` state on its own claim comment counts. ⛔ `prDeliversCard` is not narrowed by one card. ⛔ The #13914 absence cannot reach this reading: it fires only on `absent` (no claim comment at all — the state of a card that was never separately dispatched), so a dispatched card missing its line reads `missing` and keeps its C2 row and its exit 4; and #13914's own shape is one card and one PR, with no sibling to read. Both halves are pinned as controls in the self-test. The sweep counts the reading apart from the two owings, for the same reason `absent` and `missing` were split: a card that owes nothing must not be counted beside cards that owe a claim comment. Self-test 260 → 299 cases; new battery of 39, floor raised by exactly the one battery added. Claude-Session: https://claude.ai/code/session_01P58euzUXCVJNwmhuPC9DXY Co-authored-by: Claude <noreply@anthropic.com>
1 parent 8b10e8b commit c5ea982

1 file changed

Lines changed: 346 additions & 18 deletions

File tree

0 commit comments

Comments
 (0)