Finding — check-clause2-carriers --pair reads an unreadable Served-tier: line only under a gate clear (C7); a non-gated pair with the same record passes exit 0
Filed by the domain:skills execution PM seat (#7623), session session_01DAcomhvR9kKizeYgg89Vo8, 2026-09-14T10:30Z. Bare finding; keywords: check-clause2-carriers, Served-tier, C7, contract-review.md, declared ≠ enforced, scripts/pm/**.
What was measured, same script, same day
| pair |
gate hung? |
record's Served-tier: line |
--pair exit |
| objectstack PR #18157 / #17991 (record 5661052272) |
no (Clause-② not declared yes) |
Served-tier: 2433/2444, then CONTRACT_REVIEW_TIER`` — the reader strips the stamp control, then finds no token because of the 「, then」 prose; the control is also NOT total |
0 |
| objectui PR #9486 / #9191 (record 5662548425) |
yes, hung and cleared |
Served-tier: 10/10, then CONTRACT_REVIEW_TIER`` |
4, C7: 「carries a Served-tier: line with no readable tier token」 |
| objectui PR #9486 / #9191 (record 5662557100) |
yes |
Served-tier: 15/15 CONTRACT_REVIEW_TIER`` — the template's live shape |
0 |
readServedTier (scripts/pm/check-clause2-carriers.mjs, the SERVED_TIER_LINE / STAMP_CONTROL / TIER_TOKEN readers) answers unreadable for the first spelling in both rows; only the C7 row surfaces it, and c7ServedTierBelow(pair) is consulted on the clear path. The self-test pins the live shape (「⭐ the LIVE value shape — stamp control, then the tier — reads at tier and stands」, Served-tier: 75/75 CONTRACT_REVIEW_TIER``) and pins a NOT-total control as void; neither pin reaches a pair that never hung the gate.
Why it matters
references/contract-review.md :29 rules 「同形含首行 Served-tier::值写常量名 CONTRACT_REVIEW_TIER;无此行不成裁决,模板见 --template」 — a record whose line does not read is, by the rule, not a verdict at all. Yet the strip gate (--pair exit 0) let record 5661052272 stand as the review of record for a landing on origin/main (PR #18157 → 7e58d177ee), and the seat only learned the shape was unreadable when a gated pair on another repo refused it. The same is true of the NOT-total stamp control (11 off-tier turns from a 2026-09-13 fallback window inside a whole-session count): 回退证据 by the rule, invisible on the non-gated path.
Proposed shape (the dev decides)
- Evaluate the
Served-tier: reading of the review of record on EVERY pair that has one (the C6-RECORD path already locates it), not only beside a gate clear; an unreadable or off-tier line is exit 4 with C7's text either way. The rule text already says so (「无此行不成裁决」); the checker enforces it on one path of two.
- Keep the remedy row as is: re-post the record in the identifier-free live shape; the NEWEST heading comment on the head governs.
- The seat's own correction is on the record: from this card on it spells
Served-tier: N/N CONTRACT_REVIEW_TIER`` with the count taken over the reviewing round's transcript, never a whole-session count that can carry a past fallback window.
Duplicate check
Open finding cards (33) and the last 60 updated open issues carry nothing on the C7 scope; the nearest neighbours are #18141 (H51 key-and-sha span) and #18042 / PR #18138 (the template itself). GET /search/issues is not available on this channel.
Generated by Claude Code
Finding —
check-clause2-carriers --pairreads an unreadableServed-tier:line only under a gate clear (C7); a non-gated pair with the same record passes exit 0Filed by the
domain:skillsexecution PM seat (#7623), sessionsession_01DAcomhvR9kKizeYgg89Vo8, 2026-09-14T10:30Z. Barefinding; keywords:check-clause2-carriers,Served-tier, C7,contract-review.md, declared ≠ enforced,scripts/pm/**.What was measured, same script, same day
Served-tier:line--pairexitClause-②not declaredyes)Served-tier: 2433/2444, thenCONTRACT_REVIEW_TIER`` — the reader strips the stamp control, then finds no token because of the 「, then」 prose; the control is also NOT totalServed-tier: 10/10, thenCONTRACT_REVIEW_TIER``Served-tier:line with no readable tier token」Served-tier: 15/15CONTRACT_REVIEW_TIER`` — the template's live shapereadServedTier(scripts/pm/check-clause2-carriers.mjs, theSERVED_TIER_LINE/STAMP_CONTROL/TIER_TOKENreaders) answersunreadablefor the first spelling in both rows; only the C7 row surfaces it, andc7ServedTierBelow(pair)is consulted on the clear path. The self-test pins the live shape (「⭐ the LIVE value shape — stamp control, then the tier — reads at tier and stands」,Served-tier: 75/75CONTRACT_REVIEW_TIER``) and pins a NOT-total control as void; neither pin reaches a pair that never hung the gate.Why it matters
references/contract-review.md:29 rules 「同形含首行Served-tier::值写常量名CONTRACT_REVIEW_TIER;无此行不成裁决,模板见--template」 — a record whose line does not read is, by the rule, not a verdict at all. Yet the strip gate (--pairexit 0) let record 5661052272 stand as the review of record for a landing onorigin/main(PR #18157 →7e58d177ee), and the seat only learned the shape was unreadable when a gated pair on another repo refused it. The same is true of the NOT-total stamp control (11 off-tier turns from a 2026-09-13 fallback window inside a whole-session count): 回退证据 by the rule, invisible on the non-gated path.Proposed shape (the dev decides)
Served-tier:reading of the review of record on EVERY pair that has one (the C6-RECORD path already locates it), not only beside a gate clear; an unreadable or off-tier line is exit 4 with C7's text either way. The rule text already says so (「无此行不成裁决」); the checker enforces it on one path of two.Served-tier: N/NCONTRACT_REVIEW_TIER`` with the count taken over the reviewing round's transcript, never a whole-session count that can carry a past fallback window.Duplicate check
Open
findingcards (33) and the last 60 updated open issues carry nothing on the C7 scope; the nearest neighbours are #18141 (H51 key-and-sha span) and #18042 / PR #18138 (the template itself).GET /search/issuesis not available on this channel.Generated by Claude Code