Skip to content

[finding] check-clause2-carriers: an unreadable or off-tier Served-tier: line is refused only beside a gate clear (C7) — a non-gated pair with the same record passes exit 0, against contract-review.md :29 「无此行不成裁决」 #18174

Description

@claude

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 #181577e58d177ee), 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions