Filed by the domain:spec execution seat, session session_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T17:10Z, out of the #17670 remediation round (PR #18492). ⛔ Unlabelled beyond finding and unassigned; grading and routing are triage's.
⭐ This is a scheduled staleness, not a defect on the tree today. Everything below is correct right now and becomes wrong at a known future event.
What PR #18492 does, and why it is right
FormField.colSpan and FormField.span carried two claims that #17328 measured false. PR #18492 replaces them with text that states what each key resolves to — true on both renderer states — and then anchors the tier behaviour to a named commit rather than asserting it timelessly:
at the .objectui-sha pin 53ded82bf7 only the widest tier's class is emitted (@2xl:col-span-3 for a 3-column grid), so at intermediate widths the field rendered identically to omitting the key
That is the honest shape while the pin sits where it does. Measured at both states by executing the two renderer implementations:
| probe, 3-column grid |
pin 53ded82bf7 |
objectui main |
span: 'full' |
@2xl:col-span-3 |
@md:col-span-2 @2xl:col-span-3 |
colSpan: 4 |
@2xl:col-span-3 |
@md:col-span-2 @2xl:col-span-3 |
The renderer-side fix is objectui#9253, commit bd09957380 (2026-09-12), trailer 「Part of objectui#9244」. It is unreleased at this repo's pin (@object-ui/components 17.6.0 at both the pin and objectui main; 0 tags contain the commit).
The edge
At the .objectui-sha bump that absorbs bd09957380, this prose goes stale in the OTHER direction: the pin-anchored sentences will describe a renderer state the repo no longer builds against, and a reader has no way to tell from the text that the anchor has moved past it.
⚠️ Nothing mechanical enforces the re-read. The PR's TSDoc says so in place —
objectui#9253 (objectui bd09957380, ahead of that pin) emits one clamped class per multi-column tier … re-read this block at the pin bump that absorbs it
— which is the only durable channel prose has, but it is an instruction to a future human, ⛔ not a gate. And the gate that looks adjacent does not cover it: check:objectui-pin-citations checks citations that assert the current pin label (26 of them at last run); these are historical-spelling citations, and it deliberately records those as 「recorded and not checked」 (38 at the same run). ⇒ the one gate in the area is designed not to fire here.
⛔ Why this is not solved by 「just don't anchor to a pin」
The alternative is what PR #18492 is removing: a timeless assertion about renderer behaviour, which is exactly what went false. Anchoring is the right call; the gap is that an anchored sentence has a known expiry and nothing holds the ticket.
Possible directions — ⛔ no ruling implied
- Extend
check:objectui-pin-citations so a historical-spelling citation whose sha becomes an ancestor of the new pin is reported at the bump — it already parses both spellings, so it has the inputs.
- A
Restart-when: card parked against the bump, with the touched files listed, so the re-read is a queued state rather than a comment.
- Accept the in-place instruction as the guard and close this. ⛔ Recorded as an option, not recommended: the instruction lives in the file whose wrongness it predicts.
⚠️ Not measured
How many other pin-anchored sentences exist in packages/spec with the same expiry shape. The 38 「recorded and not checked」 historical citations are the obvious place to count, and that count is the first thing a fixing round owes.
Dedupe words
spanLadderFor · objectui#9253 · span-full-tier-ladder · pin bump reconcile · objectui-pin-citations historical
Refs
#17670 / PR #18492 · #17328 (the original measurement) · objectui#9253 (bd09957380) · .objectui-sha = 53ded82bf7
Generated by Claude Code
Filed by the
domain:specexecution seat, sessionsession_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T17:10Z, out of the #17670 remediation round (PR #18492). ⛔ Unlabelled beyondfindingand unassigned; grading and routing are triage's.⭐ This is a scheduled staleness, not a defect on the tree today. Everything below is correct right now and becomes wrong at a known future event.
What PR #18492 does, and why it is right
FormField.colSpanandFormField.spancarried two claims that #17328 measured false. PR #18492 replaces them with text that states what each key resolves to — true on both renderer states — and then anchors the tier behaviour to a named commit rather than asserting it timelessly:That is the honest shape while the pin sits where it does. Measured at both states by executing the two renderer implementations:
53ded82bf7mainspan: 'full'@2xl:col-span-3@md:col-span-2 @2xl:col-span-3colSpan: 4@2xl:col-span-3@md:col-span-2 @2xl:col-span-3The renderer-side fix is objectui#9253, commit
bd09957380(2026-09-12), trailer 「Part of objectui#9244」. It is unreleased at this repo's pin (@object-ui/components17.6.0 at both the pin and objectui main; 0 tags contain the commit).The edge
At the
.objectui-shabump that absorbsbd09957380, this prose goes stale in the OTHER direction: the pin-anchored sentences will describe a renderer state the repo no longer builds against, and a reader has no way to tell from the text that the anchor has moved past it.— which is the only durable channel prose has, but it is an instruction to a future human, ⛔ not a gate. And the gate that looks adjacent does not cover it:
check:objectui-pin-citationschecks citations that assert the current pin label (26 of them at last run); these are historical-spelling citations, and it deliberately records those as 「recorded and not checked」 (38 at the same run). ⇒ the one gate in the area is designed not to fire here.⛔ Why this is not solved by 「just don't anchor to a pin」
The alternative is what PR #18492 is removing: a timeless assertion about renderer behaviour, which is exactly what went false. Anchoring is the right call; the gap is that an anchored sentence has a known expiry and nothing holds the ticket.
Possible directions — ⛔ no ruling implied
check:objectui-pin-citationsso a historical-spelling citation whose sha becomes an ancestor of the new pin is reported at the bump — it already parses both spellings, so it has the inputs.Restart-when:card parked against the bump, with the touched files listed, so the re-read is a queued state rather than a comment.How many other pin-anchored sentences exist in
packages/specwith the same expiry shape. The 38 「recorded and not checked」 historical citations are the obvious place to count, and that count is the first thing a fixing round owes.Dedupe words
spanLadderFor·objectui#9253·span-full-tier-ladder·pin bump reconcile·objectui-pin-citations historicalRefs
#17670 / PR #18492 · #17328 (the original measurement) · objectui#9253 (
bd09957380) ·.objectui-sha=53ded82bf7Generated by Claude Code