Filed by the domain:devx @ objectui execution seat (PM session session_01FhBNJcLRZLe8M87VcUgpKr, 2026-09-07T09:40Z) from the #8216 dev report's first open question, after PR #8282 landed and that card closed. ⛔ No domain:*, type or grade set — triage's. Dedup: REST listing of all open issues (452) + local grep for BLOCK_CONFIG (5 hits: #8216 and its four filed cards #8278 #8279 #8280 #8281 — none about the REQUIRED direction; control term hit).
What PR #8282 gates, and what it only reports
previews/__tests__/block-config-schema-parity-8216.test.ts (on main since 72b84e62c) gates two directions for every non-exempt BLOCK_CONFIG block: a field name the block's schema does not declare (MISSING), and a name whose key is tombstoned (RETIRED). It REPORTS a third direction and deliberately does not gate it: a schema-REQUIRED key with no control — the direction that made objectui#7772 a defect (object-kanban could not author a valid node however its four controls were filled, because groupBy was required and had no control).
Measured on f20e57d62 by the #8216 dev (report comment on that card): 0 at top level across 25 (block, face) rows, and 2 nested — page:tabs and page:accordion items[].children, the canvas nesting slot written by dragging a block into a tab or panel, never by the inspector. Non-vacuity: 12 of the 25 rows carry required keys, all with controls, so the zero is a reading.
Why it is not gated yet — the decision that has to be restated first
objectui#7772's triage recorded that an inspector need not expose every declared key as a product decision. A gate over a product decision gets waived the first time it reds, so it was left as a report. But the REQUIRED direction is the more valuable half: it is the one that stops a panel from being structurally unable to author a valid node (the anti-AI-error axis), and it would have caught #7772 three months earlier — the card's own argument.
The question
Restate the #7772 decision in gateable form, one of:
- A — keep it reported only (today's state; the count is printed on every run of the gate test).
- B — gate it at TOP level, with
items[].children on page:tabs / page:accordion as the one standing exemption (self-deleting, in the idiom the MISSING/RETIRED ledger already uses). Cost: one ledger with one exemption and no live debt; the four-axis reading from the report favours B on anti-AI-error and long-term soundness, and notes it is not pulling anything today (startup focus).
- C — gate it with a per-block "intentionally not exposed" table, if the product decision is that some required keys are authored elsewhere (the canvas, defaults) — that table IS the product decision, written down.
Dev recommendation on the report: A for now, B once the decision is restated. This seat does not decide product exposure; the card exists so the question is not lost when #8216 closed.
Related
objectui#8216 (closed on PR #8282) · objectui#7772 (the measured cost, and the triage note this hinges on) · objectui#8281 (the three blocks with no runtime-judgeable schema — exempt on both directions) · scripts/check-designer-field-key-parity.mjs (the sibling gate for PAYLOAD_SHAPES, which also does not judge required keys).
Generated by Claude Code
Filed by the
domain:devx @ objectuiexecution seat (PM sessionsession_01FhBNJcLRZLe8M87VcUgpKr, 2026-09-07T09:40Z) from the #8216 dev report's first open question, after PR #8282 landed and that card closed. ⛔ Nodomain:*, type or grade set — triage's. Dedup: REST listing of all open issues (452) + local grep forBLOCK_CONFIG(5 hits: #8216 and its four filed cards #8278 #8279 #8280 #8281 — none about the REQUIRED direction; control term hit).What PR #8282 gates, and what it only reports
previews/__tests__/block-config-schema-parity-8216.test.ts(onmainsince72b84e62c) gates two directions for every non-exemptBLOCK_CONFIGblock: a fieldnamethe block's schema does not declare (MISSING), and a name whose key is tombstoned (RETIRED). It REPORTS a third direction and deliberately does not gate it: a schema-REQUIRED key with no control — the direction that made objectui#7772 a defect (object-kanbancould not author a valid node however its four controls were filled, becausegroupBywas required and had no control).Measured on
f20e57d62by the #8216 dev (report comment on that card): 0 at top level across 25 (block, face) rows, and 2 nested —page:tabsandpage:accordionitems[].children, the canvas nesting slot written by dragging a block into a tab or panel, never by the inspector. Non-vacuity: 12 of the 25 rows carry required keys, all with controls, so the zero is a reading.Why it is not gated yet — the decision that has to be restated first
objectui#7772's triage recorded that an inspector need not expose every declared key as a product decision. A gate over a product decision gets waived the first time it reds, so it was left as a report. But the REQUIRED direction is the more valuable half: it is the one that stops a panel from being structurally unable to author a valid node (the anti-AI-error axis), and it would have caught #7772 three months earlier — the card's own argument.
The question
Restate the #7772 decision in gateable form, one of:
items[].childrenonpage:tabs/page:accordionas the one standing exemption (self-deleting, in the idiom the MISSING/RETIRED ledger already uses). Cost: one ledger with one exemption and no live debt; the four-axis reading from the report favours B on anti-AI-error and long-term soundness, and notes it is not pulling anything today (startup focus).Dev recommendation on the report: A for now, B once the decision is restated. This seat does not decide product exposure; the card exists so the question is not lost when #8216 closed.
Related
objectui#8216 (closed on PR #8282) · objectui#7772 (the measured cost, and the triage note this hinges on) · objectui#8281 (the three blocks with no runtime-judgeable schema — exempt on both directions) ·
scripts/check-designer-field-key-parity.mjs(the sibling gate forPAYLOAD_SHAPES, which also does not judge required keys).Generated by Claude Code