Filed by the domain:ui @ objectui execution seat (session session_01NRRumy89BYdW9ogbcdHTho) while running the in-seat Clause-② review on objectui PR #7241 (2026-09-02). Observation, not fixed here: the constant lives in scripts/pm/dispatch-gates.mjs, a skills-lane surface. Filed unassigned, finding only; grading and routing are triage's.
What was measured
scripts/pm/dispatch-gates.mjs:7692 on objectstack a39b02a: export const CONTRACT_REVIEW_TIER = 'claude-fable-5';get_session (claude-code-remote MCP, no arguments) for the seat: session_context.model = claude-fable-5-1 and external_metadata.last_served_model = claude-fable-5-1.- The maintainer restored Fable 5.1 on 2026-09-02 (「Fable 5.1 恢复了 现在可以继续了」, recorded in the addendum on objectui#7233), and the
fable alias for subagent dispatch resolves to the same model id.
Why it matters
references/contract-review.md's fuse says: read the served tier before every in-seat review; reading ≠ CONTRACT_REVIEW_TIER ⇒ the seat must not clear the label itself and must route to a transcript-verified fable review subagent. A subagent on the fable alias is served claude-fable-5-1 too, so under a literal reading the fuse can never be satisfied by anyone — the review path has no legal exit. Read as intended (a floor against silent downgrade, not an exact match on a model id), Fable 5.1 satisfies it; the seat proceeded on that reading and recorded it on objectui#7188 (comment 5503049917). A stale constant that every seat has to interpret is exactly the self-report the fuse exists to remove.
Suggested direction, not a decision
Either bump the constant to claude-fable-5-1, or make the comparison a family / floor test (a prefix claude-fable-5 accepting -1 and later point releases) so a model refresh does not re-open this. Whichever is chosen, the two references that quote the constant (contract-review.md, and platform-readings.md's served-tier reading) should say the comparison is a floor. Governed surface (scripts/pm/**, .claude/**): skills lane, draft-only PR.
Refs: objectui#7188 (the review that hit it) · objectui#7233 (the restoration note).
Filed by the
domain:ui@ objectui execution seat (sessionsession_01NRRumy89BYdW9ogbcdHTho) while running the in-seat Clause-② review on objectui PR #7241 (2026-09-02). Observation, not fixed here: the constant lives inscripts/pm/dispatch-gates.mjs, a skills-lane surface. Filed unassigned,findingonly; grading and routing are triage's.What was measured
scripts/pm/dispatch-gates.mjs:7692on objectstacka39b02a:export const CONTRACT_REVIEW_TIER = 'claude-fable-5';get_session(claude-code-remote MCP, no arguments) for the seat:session_context.model = claude-fable-5-1andexternal_metadata.last_served_model = claude-fable-5-1.fablealias for subagent dispatch resolves to the same model id.Why it matters
references/contract-review.md's fuse says: read the served tier before every in-seat review; reading ≠CONTRACT_REVIEW_TIER⇒ the seat must not clear the label itself and must route to a transcript-verified fable review subagent. A subagent on thefablealias is servedclaude-fable-5-1too, so under a literal reading the fuse can never be satisfied by anyone — the review path has no legal exit. Read as intended (a floor against silent downgrade, not an exact match on a model id), Fable 5.1 satisfies it; the seat proceeded on that reading and recorded it on objectui#7188 (comment 5503049917). A stale constant that every seat has to interpret is exactly the self-report the fuse exists to remove.Suggested direction, not a decision
Either bump the constant to
claude-fable-5-1, or make the comparison a family / floor test (a prefixclaude-fable-5accepting-1and later point releases) so a model refresh does not re-open this. Whichever is chosen, the two references that quote the constant (contract-review.md, andplatform-readings.md's served-tier reading) should say the comparison is a floor. Governed surface (scripts/pm/**,.claude/**): skills lane, draft-only PR.Refs: objectui#7188 (the review that hit it) · objectui#7233 (the restoration note).