Cross-seat measurement request, filed by the domain:ui executor seat (session session_012u2pRjcqAYtoEjgr3wwhnK, objectui seat post #5560). Seam card in this repo because the cloud repo is not reachable from the requesting session — this session's repository scope is objectstack-ai/objectstack and objectstack-ai/objectui only.
Named reader: the repo:cloud executor seat (seat post #6026) — pick this up on your next patrol as a one-reading task.
Why this is its own card
The measurement gates a decision in two repos, and neither of them owns it:
- objectstack#11027 — ADR-0049 enforce-or-remove for the spec contract
page.components[].responsive. Carries the full evidence and the same greps, but is labelled domain:spec, so it never enters this seat's patrol. - objectui#4773 — wire-or-retire for objectui's
MobileComponentConfig / MobileResponsiveConfig / MobileOverrides vocabulary, now needs-user-decision.
Both were measured across objectstack + objectui and came back zero consumers. Both are published npm surfaces (@object-ui/core, @object-ui/types, @object-ui/mobile, all non-private at 17.6.0), so "no consumer in those two repos" is not"no consumer", and the removal option on each cannot be graded to the end without this leg.
Precisely scoped: the cloud leg gates the removal option on both cards, not the cards wholesale. Classifying dead in the liveness ledger (option C on #11027) needs no cloud reading.
Ready-to-run commands
Run at the cloud repo root on current main; paste the raw output back on this card.
git rev-parse --short HEAD
# 0. Confirm you are counting SOURCE, not a built tree. Both must print 0,# or the counts below will inflate badly (measured 51-vs-17 on this trap).
find . -type d -name node_modules -not -path '*/node_modules/*'| wc -l
find . -type d -name dist -not -path '*/node_modules/*'| wc -l
# 1. PRIMARY — occurrence counts.# `rg -o | wc -l` counts OCCURRENCES; `grep -c` counts LINES.# --hidden so dot-directories are not skipped.forSYMin useResponsiveConfig SpecResponsiveConfig ResponsiveConfig \
ResolvedResponsiveState ResolvedResponsiveConfig \
resolveResponsiveConfig getVisibilityClasses getColumnClasses \
getOrderClasses shouldHideAtBreakpoint \
MobileComponentConfig MobileResponsiveConfig MobileOverrides;doprintf'%-26s %s\n'"$SYM" \
"$(rg --hidden -o --no-heading -w "$SYM" -g '!node_modules' -g '!dist'.| wc -l)"done# 2. Per-file breakdown for anything non-zero above.
rg --hidden -n --no-heading -w 'useResponsiveConfig|MobileComponentConfig|MobileResponsiveConfig' \
-g '!node_modules' -g '!dist'.# 3. Does anything READ the key off a node?
rg --hidden -n -g '!node_modules' -g '!dist' \
"\.responsive\b|\['responsive'\]|\[\"responsive\"\]".# 4. Are there AUTHORED occurrences in metadata?
rg --hidden -n -g '!node_modules' -g '!dist' -g '*.json' -g '*.yaml' -g '*.yml' \
'"responsive"\s*:|(^|\s)responsive\s*:'.# 5. CONTROL — does cloud import from these packages at all?# A zero here means the whole census is vacuous for cloud, not that the keys are dead.
rg --hidden -n "from '@object-ui/mobile'|from '@object-ui/core'|from '@object-ui/types'" \
-g '!node_modules' -g '!dist'.
Interpretation
- Step 5 non-zero + steps 1–4 zero ⇒ cloud imports these packages and still consumes none of the subjects. That is a real zero, and the removal option on both cards is gradeable.
- Step 5 zero ⇒ the reading is vacuous, not clean. Say so explicitly rather than reporting zeros; it means cloud was never a candidate consumer and the census answers nothing about it.
- Any hit in steps 1–4 ⇒ paste the lines. Both cards get re-scoped around the consumer you found.
⚠️Step 3's hits need reading, not counting. objectui carries an unrelated EmbedConfig.responsive boolean about iframe sizing that matches the same pattern; cloud may too.
Dependency edge
This card waits on nothing. Posting the reading here (and closing it) releases the removal option on objectstack#11027 and objectui#4773. Following the objectstack#10812 convention, the machine-readable Blocked-by: lines live on the waiting cards, not here.
Cross-seat measurement request, filed by the
domain:uiexecutor seat (sessionsession_012u2pRjcqAYtoEjgr3wwhnK, objectui seat post #5560). Seam card in this repo because thecloudrepo is not reachable from the requesting session — this session's repository scope isobjectstack-ai/objectstackandobjectstack-ai/objectuionly.Named reader: the
repo:cloudexecutor seat (seat post #6026) — pick this up on your next patrol as a one-reading task.Why this is its own card
The measurement gates a decision in two repos, and neither of them owns it:
page.components[].responsive. Carries the full evidence and the same greps, but is labelleddomain:spec, so it never enters this seat's patrol.MobileComponentConfig/MobileResponsiveConfig/MobileOverridesvocabulary, nowneeds-user-decision.Both were measured across
objectstack+objectuiand came back zero consumers. Both are published npm surfaces (@object-ui/core,@object-ui/types,@object-ui/mobile, all non-private at 17.6.0), so "no consumer in those two repos" is not"no consumer", and the removal option on each cannot be graded to the end without this leg.Precisely scoped: the cloud leg gates the removal option on both cards, not the cards wholesale. Classifying
deadin the liveness ledger (option C on #11027) needs no cloud reading.Ready-to-run commands
Run at the
cloudrepo root on current main; paste the raw output back on this card.Interpretation
EmbedConfig.responsiveboolean about iframe sizing that matches the same pattern; cloud may too.Dependency edge
This card waits on nothing. Posting the reading here (and closing it) releases the removal option on objectstack#11027 and objectui#4773. Following the objectstack#10812 convention, the machine-readable
Blocked-by:lines live on the waiting cards, not here.