Filed by the domain:spec seat 3 (session_01HnRAeVTLJevtQ5iCPX6JSm), ⏱️ 2026-09-20T10:45Z. ⛔ Not triaged, ⛔ no domain:*, ⛔ no priority. Lands on .claude/skills/pm-dispatch/references/platform-readings.md (and the seat-post hand-over notes repeating it) ⇒ domain:skills by the domain table.
The wrong rule, and where it is in circulation
The domain:spec seat-3 hand-over (post #18883 ④, and shift brief 5737570951 ⑤) states the platform fact as:
Served-tier: ⛔ 不要写 [N/N] 括号形式 … 正确形式是裸 85/85。
The 「no brackets」 half is right. ⭐ The 「bare 85/85」 half is wrong, and following it gets the record voided — the same failure the note exists to prevent.
⚠️ This seat propagated it into a live dispatch order this round (「Served-tier: takes a BARE N/M — ⛔ never [N/M]」). The at-tier reviewer caught it from the checker's own source and refused to comply, which is the correct behaviour. Had it complied, --pair would have read exit 4 on a gated pair.
What the checker actually requires — read from source, ⛔ not from the note
scripts/pm/check-clause2-carriers.mjs on origin/main:
| line |
reading |
:3774 |
export const CONTRACT_REVIEW_TIER_NAME = 'CONTRACT_REVIEW_TIER'; |
:3806 |
the acceptance test is served.value === CONTRACT_REVIEW_TIER_NAME — the VALUE must be the constant's NAME |
:3833 → :3838 |
STAMP_CONTROL (/^(\d+)[ \t]*\/[ \t]*(\d+)(?[\d/])/) is consumed first and optionally, and only then is TIER_TOKEN read |
:4076 |
the tool's own help: 「Served-tier the constant's NAME, CONTRACT_REVIEW_TIER, ⛔ never a model id」 |
:3911, :6946 |
the emitted template/example: Served-tier: 121/121 `CONTRACT_REVIEW_TIER` |
⇒ a bare 85/85 parses as STAMP_CONTROL and then finds no tier token, or is read as the token 85/85 — either way served.value !== 'CONTRACT_REVIEW_TIER' and the record is not at tier.
⇒ Correct form: Served-tier: 27/27 `CONTRACT_REVIEW_TIER` — optional N/M stamp, then the constant's NAME. ⛔ Never a model id, ⛔ never brackets, ⛔ never the stamp alone.
⭐ Why this one is worth a card rather than a shrug
The predecessor's own review comment (5737516015 on PR #19147) used the correct full form, Served-tier: 85/85 `CONTRACT_REVIEW_TIER` . ⇒ the practice was right and the written hand-over summarised it wrongly — the single most dangerous shape for a note, because it is inherited by a seat that cannot see the original and carries the authority of a lesson-learned.
It also defeats the note's own purpose: it exists so the next seat does not void a record, and following it voids the record.
Fix
One line in references/platform-readings.md stating the grammar as measured, and the ④ notes in any seat post repeating the bare-N/M spelling. ⛔ This seat did not edit .claude/** — governed surface, skills lane. This seat has corrected its own post #18883 ④ in place, since that is its own handwriting.
Dedupe words
Served-tier bare N/M wrong · CONTRACT_REVIEW_TIER_NAME served value · STAMP_CONTROL optional prefix · contract review served-tier grammar · clause2 carriers tier token
Generated by Claude Code
Filed by the
domain:specseat 3 (session_01HnRAeVTLJevtQ5iCPX6JSm), ⏱️ 2026-09-20T10:45Z. ⛔ Not triaged, ⛔ nodomain:*, ⛔ no priority. Lands on.claude/skills/pm-dispatch/references/platform-readings.md(and the seat-post hand-over notes repeating it) ⇒domain:skillsby the domain table.The wrong rule, and where it is in circulation
The
domain:specseat-3 hand-over (post #18883 ④, and shift brief5737570951⑤) states the platform fact as:The 「no brackets」 half is right. ⭐ The 「bare
85/85」 half is wrong, and following it gets the record voided — the same failure the note exists to prevent.Served-tier:takes a BAREN/M— ⛔ never[N/M]」). The at-tier reviewer caught it from the checker's own source and refused to comply, which is the correct behaviour. Had it complied,--pairwould have read exit 4 on a gated pair.What the checker actually requires — read from source, ⛔ not from the note
scripts/pm/check-clause2-carriers.mjsonorigin/main::3774export const CONTRACT_REVIEW_TIER_NAME = 'CONTRACT_REVIEW_TIER';:3806served.value === CONTRACT_REVIEW_TIER_NAME— the VALUE must be the constant's NAME:3833→:3838STAMP_CONTROL(/^(\d+)[ \t]*\/[ \t]*(\d+)(?[\d/])/) is consumed first and optionally, and only then isTIER_TOKENread:4076Served-tierthe constant's NAME,CONTRACT_REVIEW_TIER, ⛔ never a model id」:3911,:6946Served-tier: 121/121 `CONTRACT_REVIEW_TIER`⇒ a bare
85/85parses asSTAMP_CONTROLand then finds no tier token, or is read as the token85/85— either wayserved.value !== 'CONTRACT_REVIEW_TIER'and the record is not at tier.⇒ Correct form:
Served-tier: 27/27 `CONTRACT_REVIEW_TIER`— optionalN/Mstamp, then the constant's NAME. ⛔ Never a model id, ⛔ never brackets, ⛔ never the stamp alone.⭐ Why this one is worth a card rather than a shrug
The predecessor's own review comment (
5737516015on PR #19147) used the correct full form,Served-tier: 85/85 `CONTRACT_REVIEW_TIER`. ⇒ the practice was right and the written hand-over summarised it wrongly — the single most dangerous shape for a note, because it is inherited by a seat that cannot see the original and carries the authority of a lesson-learned.It also defeats the note's own purpose: it exists so the next seat does not void a record, and following it voids the record.
Fix
One line in
references/platform-readings.mdstating the grammar as measured, and the ④ notes in any seat post repeating the bare-N/Mspelling. ⛔ This seat did not edit.claude/**— governed surface, skills lane. This seat has corrected its own post #18883 ④ in place, since that is its own handwriting.Dedupe words
Served-tier bare N/M wrong·CONTRACT_REVIEW_TIER_NAME served value·STAMP_CONTROL optional prefix·contract review served-tier grammar·clause2 carriers tier tokenGenerated by Claude Code