The 2026-08-24 ruling on objectui#4895 deferred Option C (retire the block-family types) with this condition:
revisit "if a later liveness pass shows the published types inert externally."
Nothing schedules that pass. This card is that pass, filed so the deferral becomes reachable — objectui#4895 cannot legally hold without a machine-fireable exit, and today it has none.
Why this is filed rather than folded into #4895
objectui#4895's ruled scope (Option B, the docs-truth fix) landed and merged in PR #5937, and the seat that landed it wrote "Card stays open deliberately — do not re-dispatch the docs half." What keeps it open is only Option C. The domain:ui execution seat then selected it by the lane's total order, read it, and stood down, because the remaining work is not startable. That dissent is correct, and it stays correct until this pass exists.
What must be measured
For each type in the deferred family (BlockSchema and the keys the ruling names — slotContent, slots, template, and the node-position slot vocabulary the docs taught):
- is it exported from the published surface;
- is it read by any consumer outside this repository.
Leg 2 is the one the ruling actually turns on, and it is the one no in-repo probe answers today.
⛔ A naive text grep does NOT answer this — measured, so nobody repeats it
Triage tried the obvious thing first and it failed, on this checkout (d06059f):
slotContent : 2 line-hit(s) across packages/*/src
slots : 195
template : 721
positive control `columns` : 1404
slots and template are ordinary English words that occur throughout unrelated code, so their counts measure vocabulary, not liveness. ⇒ Any pass that reports a number from git grep on those two names is reporting noise. (slotContent at 2 is specific enough to be real, but 2 ≠ 0, so even the "zero-read" half needs a proper reading rather than an assumption.)
The instrument this needs is the published manifest, not the source text.scripts/dump-public-manifest.mjs exists in this repo and is the natural starting point for leg 1. Leg 2 needs a decision about what "external consumer" is observable from here — that is part of this card's work, and if it turns out to be unobservable, say so as the result: "cannot be measured from inside the repo" is a finding that unblocks #4895 by converting Option C into a maintainer decision, and it is a legitimate deliverable of this card.
Acceptance
- A recorded reading per type for leg 1, produced by a named tool rather than a grep;
- A recorded reading, or an explicit NOT MEASURABLE with its reason, for leg 2;
- ⭐ A non-vacuity control: the same procedure run against a type that is certainly live must report it live. A pass where everything reads "inert" and nothing reads "live" has not measured anything.
- The result posted on objectui#4895 as well as here, since that card's hold is keyed to this one closing.
Provenance
Filed by the objectstack triage seat (objectstack#6015) so that objectui#4895 can carry a machine-fireable Restart-when: instead of an unschedulable deferral. ⛔ Nothing was edited and no PR was opened. Unassigned — grading and routing are the objectui lane's.
Generated by Claude Code
The 2026-08-24 ruling on objectui#4895 deferred Option C (retire the block-family types) with this condition:
Nothing schedules that pass. This card is that pass, filed so the deferral becomes reachable — objectui#4895 cannot legally hold without a machine-fireable exit, and today it has none.
Why this is filed rather than folded into #4895
objectui#4895's ruled scope (Option B, the docs-truth fix) landed and merged in PR #5937, and the seat that landed it wrote "Card stays open deliberately — do not re-dispatch the docs half." What keeps it open is only Option C. The
domain:uiexecution seat then selected it by the lane's total order, read it, and stood down, because the remaining work is not startable. That dissent is correct, and it stays correct until this pass exists.What must be measured
For each type in the deferred family (
BlockSchemaand the keys the ruling names —slotContent,slots,template, and the node-positionslotvocabulary the docs taught):Leg 2 is the one the ruling actually turns on, and it is the one no in-repo probe answers today.
⛔ A naive text grep does NOT answer this — measured, so nobody repeats it
Triage tried the obvious thing first and it failed, on this checkout (
d06059f):slotsandtemplateare ordinary English words that occur throughout unrelated code, so their counts measure vocabulary, not liveness. ⇒ Any pass that reports a number fromgit grepon those two names is reporting noise. (slotContentat 2 is specific enough to be real, but 2 ≠ 0, so even the "zero-read" half needs a proper reading rather than an assumption.)The instrument this needs is the published manifest, not the source text.
scripts/dump-public-manifest.mjsexists in this repo and is the natural starting point for leg 1. Leg 2 needs a decision about what "external consumer" is observable from here — that is part of this card's work, and if it turns out to be unobservable, say so as the result: "cannot be measured from inside the repo" is a finding that unblocks #4895 by converting Option C into a maintainer decision, and it is a legitimate deliverable of this card.Acceptance
Provenance
Filed by the objectstack triage seat (objectstack#6015) so that objectui#4895 can carry a machine-fireable
Restart-when:instead of an unschedulable deferral. ⛔ Nothing was edited and no PR was opened. Unassigned — grading and routing are the objectui lane's.Generated by Claude Code