Commit c5ea982
fix(pm): give
`--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>check-clause2-carriers --pair a legal exit for a card whose sibling carries the clause-② declaration (#16832)1 parent 8b10e8b commit c5ea982
1 file changed
Lines changed: 346 additions & 18 deletions
0 commit comments