Dedup keywords: CONTRACT_REVIEW_TIER · 降档保险丝 · clause-② review tier · non-spec lane self-review · contract-review.md 复核归属
Filed by the domain:ui#2 execution seat at objectui, session_018HrVaotisyhgmot9o2MLRq, after acting on the stricter of the two texts per SKILL.md 〈优先级〉 (「两条细则冲突 ⇒ 按更严的一条行动并立卡;⛔ 不当场改文本了结」). ⛔ Unassigned, ungraded, and ⛔ no text edited by this seat — scripts/pm/** and the skill tree have a single writer on the objectstack side.
The two texts, and where they disagree
Both describe who renders the clause-② contract review when the seat is below CONTRACT_REVIEW_TIER.
| source |
what it says |
scripts/pm/dispatch-gates.mjs, clause-② docblock (at 0b31d90) |
a clause-② card is built at the default tier and "REVIEWED at CONTRACT_REVIEW_TIER — in the spec seat only, since the 2026-09-10 ruling; every other lane's clause-② review is that lane's own default-tier review plus the gates, and neither the triage seat nor the maintainer-summoned director spawns a contract-review-tier subagent for anything" |
.claude/skills/pm-dispatch/references/contract-review.md, 复核归属与资格 |
「按档位:达档席内审契约增量;未达档 ⛔ 不自审,走保险丝路;豁免仅独立性件与保险丝」 |
| same file, 降档保险丝 |
「保险丝管每个出条款②裁决的席:每场前必读服役档(platform-readings.md),未达档 ⛔ 不自审」 · 「读数不达档 ⇒ 改走转录核验的达档复核子代理」 |
⇒ for a non-spec lane sitting below tier — the ordinary case for domain:ui, domain:cli, domain:engine, domain:services — the first text says self-review at your own default tier and the second says ⛔ never self-review, route to an isolated at-tier subagent. They cannot both be followed.
Why this is not academic — it has been costing a card
objectui#8167 (the lane's oldest p2 Bug, director-ruled complete on 2026-09-17T15:25Z) was stood down for "the tier bar" three times: 2026-09-16T16:10Z, 2026-09-17T00:48Z, and 2026-09-18T02:07Z (objectui comment 5724009276), the last concluding it "is not dispatchable as an ordinary card today".
⭐ That conclusion does not follow from either text, and the distinction is the point worth encoding: the disputed half is the REVIEW tier, never the BUILD tier. Both texts agree a clause-② card is built at the default judgment tier. So no reading of clause ② has ever made such a card undispatchable — what was owed was a review route, ⛔ not a dispatch bar. The card was claimed and dispatched on 2026-09-18T04:14Z under the stricter route.
⚠️ Note the seat-post half of the same drift: objectui#5560 §0a records 「the tier fuse binds only the spec seat and the skills seat — ⛔ not this lane」, sourced to a 7aae005 reading. contract-review.md's current text says 每个出条款②裁决的席. A seat reading its own post rather than the source gets the superseded rule.
The ask
Settle which text governs for a non-spec lane below tier, and make the loser point at the winner. ⛔ This card does not propose the answer — both directions are defensible and the choice has a real cost either way:
- dispatch-gates' reading (lane self-reviews at default tier) is cheaper and is what the 2026-09-10 ruling is quoted as saying, but it means a clause-② verdict of record can be rendered below
CONTRACT_REVIEW_TIER, which is exactly what the fuse exists to refuse;
- contract-review.md's reading (isolated at-tier subagent, transcript-verified) is stricter and self-consistent with the
Served-tier: requirement and with --pair exiting 4 when that line is not the constant name — but it contradicts the docblock's explicit "neither the triage seat nor the maintainer-summoned director spawns a contract-review-tier subagent for anything".
⚠️ One mechanical detail that may decide it on its own: the 同形 record requires a first line Served-tier: whose value is the constant name CONTRACT_REVIEW_TIER, and check-clause2-carriers.mjs --pair exits 4 when it is not. If a non-spec lane is meant to self-review at its own default tier, then either that line is a literal constant NAME (a format token that asserts nothing about the serving model) or every non-spec lane's record fails the pair check. Which of those two it is was ⛔ not measured by this seat.
Dedup
⛔ Not run — this seat files with keywords and does not search, per SKILL.md 〈分诊座位职责〉 (「立卡者不查重,只附 3–5 个查重词」). Keywords at the top.
Generated by Claude Code
Dedup keywords:
CONTRACT_REVIEW_TIER· 降档保险丝 · clause-② review tier · non-spec lane self-review ·contract-review.md复核归属Filed by the
domain:ui#2execution seat at objectui,session_018HrVaotisyhgmot9o2MLRq, after acting on the stricter of the two texts per SKILL.md 〈优先级〉 (「两条细则冲突 ⇒ 按更严的一条行动并立卡;⛔ 不当场改文本了结」). ⛔ Unassigned, ungraded, and ⛔ no text edited by this seat —scripts/pm/**and the skill tree have a single writer on the objectstack side.The two texts, and where they disagree
Both describe who renders the clause-② contract review when the seat is below
CONTRACT_REVIEW_TIER.scripts/pm/dispatch-gates.mjs, clause-② docblock (at0b31d90)CONTRACT_REVIEW_TIER— in the spec seat only, since the 2026-09-10 ruling; every other lane's clause-② review is that lane's own default-tier review plus the gates, and neither the triage seat nor the maintainer-summoned director spawns a contract-review-tier subagent for anything".claude/skills/pm-dispatch/references/contract-review.md, 复核归属与资格platform-readings.md),未达档 ⛔ 不自审」 · 「读数不达档 ⇒ 改走转录核验的达档复核子代理」⇒ for a non-spec lane sitting below tier — the ordinary case for
domain:ui,domain:cli,domain:engine,domain:services— the first text says self-review at your own default tier and the second says ⛔ never self-review, route to an isolated at-tier subagent. They cannot both be followed.Why this is not academic — it has been costing a card
objectui#8167 (the lane's oldest p2 Bug, director-ruled complete on 2026-09-17T15:25Z) was stood down for "the tier bar" three times: 2026-09-16T16:10Z, 2026-09-17T00:48Z, and 2026-09-18T02:07Z (objectui comment
5724009276), the last concluding it "is not dispatchable as an ordinary card today".⭐ That conclusion does not follow from either text, and the distinction is the point worth encoding: the disputed half is the REVIEW tier, never the BUILD tier. Both texts agree a clause-② card is built at the default judgment tier. So no reading of clause ② has ever made such a card undispatchable — what was owed was a review route, ⛔ not a dispatch bar. The card was claimed and dispatched on 2026-09-18T04:14Z under the stricter route.
7aae005reading.contract-review.md's current text says 每个出条款②裁决的席. A seat reading its own post rather than the source gets the superseded rule.The ask
Settle which text governs for a non-spec lane below tier, and make the loser point at the winner. ⛔ This card does not propose the answer — both directions are defensible and the choice has a real cost either way:
CONTRACT_REVIEW_TIER, which is exactly what the fuse exists to refuse;Served-tier:requirement and with--pairexiting 4 when that line is not the constant name — but it contradicts the docblock's explicit "neither the triage seat nor the maintainer-summoned director spawns a contract-review-tier subagent for anything".Served-tier:whose value is the constant nameCONTRACT_REVIEW_TIER, andcheck-clause2-carriers.mjs --pairexits 4 when it is not. If a non-spec lane is meant to self-review at its own default tier, then either that line is a literal constant NAME (a format token that asserts nothing about the serving model) or every non-spec lane's record fails the pair check. Which of those two it is was ⛔ not measured by this seat.Dedup
⛔ Not run — this seat files with keywords and does not search, per SKILL.md 〈分诊座位职责〉 (「立卡者不查重,只附 3–5 个查重词」). Keywords at the top.
Generated by Claude Code